` tags. [#2281](https://github.com/gocodebox/lifterlms/issues/2281)
-+ When an order post is restored from the trash its post status will now be "llms-pending" in favor of the default "draft" status.
-
-##### Bug Fixes
-
-+ Fixed unclosed checkout div wrapper on empty cart. [#2277](https://github.com/gocodebox/lifterlms/issues/2277)
-+ Don't attempt to lookup the default payment gateway from user meta data.
-+ Fixed required fields duplication when the form is a child of a `.wp-block-column` element. [#2134](https://github.com/gocodebox/lifterlms/issues/2134)
-+ Fixed an issue that prevented disabling the access plan’s option, Override Membership Redirects, once enabled. [#2234](https://github.com/gocodebox/lifterlms/issues/2234)
-+ Disabled `scroll-behavior: smooth` on checkout screen to address form element validity checking issues on Chromium-based browsers. [#2206](https://github.com/gocodebox/lifterlms/issues/2206)
-
-##### Deprecations
-
-+ Deprecated `LLMS_Controller_Orders::switch_payment_source()` in favor of `LLMS_Controller_Checkout::switch_payment_source()`.
-+ Deprecated the `lifterlms_update_option_{$type}` action in favor of the `llms_update_option_{$type}` filter.
-+ Method `LLMS_Controller_Orders::confirm_pending_order()` is deprecated in favor of `LLMS_Controller_Checkout::confirm_pending_order()`.
-+ Method `LLMS_Controller_Orders::create_pending_order()` is deprecated in favor of `LLMS_Controller_Checkout::create_pending_order()`.
-+ Method `LLMS_Controller_Orders::switch_payment_source()` is deprecated in favor of `LLMS_Controller_Checkout::switch_payment_source()`.
-+ Passing jQuery selections into the `window.LLMS.Spinner` functions is deprecated. Use JS `Elements` or selection strings parseable by `document.querySelector()` instead.
-+ Deprecated hook `llms_{$method}_title` in favor of `llms_{$method}_refund_title`.
-
-##### Developer Notes
-
-+ Added admin settings helper function, `llms_get_dashicon_link()`, intended to enable the addition of external resource helper links to settings field descriptions.
-+ The `LLMS_Student` object can be instantiated as an empty object and bypass current user autoloading. In the future this may affect integrations using the `lifterlms_new_pending_order` action hook which will receive an "empty" student object during order setup by gateways utilizing new AJAX-powered checkout endpoints.
-+ Added a filter, `llms_gateway_{$this->id}_logging_enabled`, which will allow force enabling/disabling of gateway logging functions.
-+ Improved payment gateway secure string logging by adding a method, `add_secure_string()` allowing developers to add secure strings during runtime without the necessity of registering the strings using filters.
-+ Introduces new function `llms_is_option_secure()` for determining if an "secured" option is defined in a "secure" manner.
-+ Implemented new gateway feature: `modify_recurring_payments`. [#2176](https://github.com/gocodebox/lifterlms/issues/2176)
-+ Added two new parameters to LLMS_Access_Plan::get_redirection_url() - `$encode` to optionally get a raw (not encoded) URL. - `$querystring_only` to optionally get only the redirect URL if set via NPUT_GET variable.
-+ Added new parameter `$querystring_only` to the filter hook `llms_plan_get_checkout_redirection`.
-+ Admin settings fields now display `after_html` for additional field types which support `desc`.
-+ The CSS for `.llms-spinning` and `.llms-spinner` elements is no longer loaded as part of the `lifterlms.css` and `admin.css` files, instead it is loaded dynamically when `window.LLMS.Spinner` functions are called. In some cases CSS overrides to these elements which relied on CSS rule load order may no longer successfully override the default CSS rules. These overrides may need to be updated to have more specific selectors in order to ensure the overrides are retained.
-+ The Javascript object, `window.LLMS.Spinner`, has been converted to a module accessible from the same variable.
-+ The `window.LLMS.Spinner` methods now accept JS Elements and selector strings parseable by `document.querySelector()` in addition to jQuery selections.
-+ Added new filter `llms_transaction_can_be_refunded` enabling custom refund restrictions to be applied to a transaction.
-
-##### Updated Templates
-
-+ [templates/block-templates/archive-course.html](https://github.com/gocodebox/lifterlms/blob/7.0.0/templates/block-templates/archive-course.html)
-+ [templates/block-templates/archive-llms_membership.html](https://github.com/gocodebox/lifterlms/blob/7.0.0/templates/block-templates/archive-llms_membership.html)
-+ [templates/block-templates/single-no-access.html](https://github.com/gocodebox/lifterlms/blob/7.0.0/templates/block-templates/single-no-access.html)
-+ [templates/block-templates/taxonomy-course_cat.html](https://github.com/gocodebox/lifterlms/blob/7.0.0/templates/block-templates/taxonomy-course_cat.html)
-+ [templates/block-templates/taxonomy-course_difficulty.html](https://github.com/gocodebox/lifterlms/blob/7.0.0/templates/block-templates/taxonomy-course_difficulty.html)
-+ [templates/block-templates/taxonomy-course_tag.html](https://github.com/gocodebox/lifterlms/blob/7.0.0/templates/block-templates/taxonomy-course_tag.html)
-+ [templates/block-templates/taxonomy-course_track.html](https://github.com/gocodebox/lifterlms/blob/7.0.0/templates/block-templates/taxonomy-course_track.html)
-+ [templates/block-templates/taxonomy-membership_cat.html](https://github.com/gocodebox/lifterlms/blob/7.0.0/templates/block-templates/taxonomy-membership_cat.html)
-+ [templates/block-templates/taxonomy-membership_tag.html](https://github.com/gocodebox/lifterlms/blob/7.0.0/templates/block-templates/taxonomy-membership_tag.html)
-+ [templates/checkout/form-gateways.php](https://github.com/gocodebox/lifterlms/blob/7.0.0/templates/checkout/form-gateways.php)
-+ [templates/checkout/form-switch-source.php](https://github.com/gocodebox/lifterlms/blob/7.0.0/templates/checkout/form-switch-source.php)
-+ [templates/myaccount/view-order-actions.php](https://github.com/gocodebox/lifterlms/blob/7.0.0/templates/myaccount/view-order-actions.php)
-
-
-v6.11.0 - 2022-09-22
---------------------
-
-##### Updates and Enhancements
-
-+ Since version 6.0.0, the Certificate Title Block provided the option to use four Google-hosted fonts. These fonts will now be served from the site's server in favor of serving them from the Google Fonts CDN. For more information about this change, please refer to https://make.wordpress.org/themes/2022/06/18/complying-with-gdpr-when-using-google-fonts/. If you wish to continue loading fonts from Google's CDN, add the following code to your functions.php file: `add_filter( 'llms_use_google_webfonts', '__return_true' );`. [#2189](https://github.com/gocodebox/lifterlms/issues/2189)
-+ Upgraded included library, `@woocommerce/action-scheduler`, to version [3.5.2](https://github.com/woocommerce/action-scheduler/releases/tag/3.5.2).
-
-##### Bug Fixes
-
-+ Fixed a division by zero error encountered on quiz reporting screens for quizzes with 0 total available points. [#2270](https://github.com/gocodebox/lifterlms/issues/2270)
-
-
-v7.0.0-rc.1 - 2022-09-14
-------------------------
-
-##### New Features
-
-+ Added handling for admin settings options that store their option values in a nested array.
-+ Added new AJAX checkout and payment source switching endpoints for payment gateways to utilize instead of the preexisting synchronous form submission methods.
-+ On purchase completed retrieve the redirection URL from the INPUT_POST 'redirect' variable, if no 'redirect' variable is passed via INPUT_GET. The INPUT_POST 'redirect' variable comes from the new checkout form's hidden field 'redirect' populated with LLMS_Access_Plan::get_redirection_url(). [#2229](https://github.com/gocodebox/lifterlms/issues/2229)
-
-##### Updates and Enhancements
-
-+ When an order post is restored from the trash its post status will now be "llms-pending" in favor of the default "draft" status.
-
-##### Bug Fixes
-
-+ Don't attempt to lookup the default payment gateway from user meta data.
-+ Fixed an issue that prevented disabling the access plan’s option, Override Membership Redirects, once enabled. [#2234](https://github.com/gocodebox/lifterlms/issues/2234)
-+ Disabled `scroll-behavior: smooth` on checkout screen to address form element validity checking issues on Chromium-based browsers. [#2206](https://github.com/gocodebox/lifterlms/issues/2206)
-
-##### Deprecations
-
-+ Deprecated `LLMS_Controller_Orders::switch_payment_source()` in favor of `LLMS_Controller_Checkout::switch_payment_source()`.
-+ Deprecated the `lifterlms_update_option_{$type}` action in favor of the `llms_update_option_{$type}` filter.
-+ Method `LLMS_Controller_Orders::confirm_pending_order()` is deprecated in favor of `LLMS_Controller_Checkout::confirm_pending_order()`.
-+ Method `LLMS_Controller_Orders::create_pending_order()` is deprecated in favor of `LLMS_Controller_Checkout::create_pending_order()`.
-+ Method `LLMS_Controller_Orders::switch_payment_source()` is deprecated in favor of `LLMS_Controller_Checkout::switch_payment_source()`.
-+ Passing jQuery selections into the `window.LLMS.Spinner` functions is deprecated. Use JS `Elements` or selection strings parseable by `document.querySelector()` instead.
-+ Deprecated hook `llms_{$method}_title` in favor of `llms_{$method}_refund_title`.
-
-##### Developer Notes
-
-+ Added admin settings helper function, `llms_get_dashicon_link()`, intended to enable the addition of external resource helper links to settings field descriptions.
-+ The `LLMS_Student` object can be instantiated as an empty object and bypass current user autoloading. In the future this may affect integrations using the `lifterlms_new_pending_order` action hook which will receive an "empty" student object during order setup by gateways utilizing new AJAX-powered checkout endpoints.
-+ Added a filter, `llms_gateway_{$this->id}_logging_enabled`, which will allow force enabling/disabling of gateway logging functions.
-+ Improved payment gateway secure string logging by adding a method, `add_secure_string()` allowing developers to add secure strings during runtime without the necessity of registering the strings using filters.
-+ Introduces new function `llms_is_option_secure()` for determining if an "secured" option is defined in a "secure" manner.
-+ Implemented new gateway feature: `modify_recurring_payments`. [#2176](https://github.com/gocodebox/lifterlms/issues/2176)
-+ Added two new parameters to LLMS_Access_Plan::get_redirection_url() - `$encode` to optionally get a raw (not encoded) URL. - `$querystring_only` to optionally get only the redirect URL if set via NPUT_GET variable.
-+ Added new parameter `$querystring_only` to the filter hook `llms_plan_get_checkout_redirection`.
-+ Admin settings fields now display `after_html` for additional field types which support `desc`.
-+ The CSS for `.llms-spinning` and `.llms-spinner` elements is no longer loaded as part of the `lifterlms.css` and `admin.css` files, instead it is loaded dynamically when `window.LLMS.Spinner` functions are called. In some cases CSS overrides to these elements which relied on CSS rule load order may no longer successfully override the default CSS rules. These overrides may need to be updated to have more specific selectors in order to ensure the overrides are retained.
-+ The Javascript object, `window.LLMS.Spinner`, has been converted to a module accessible from the same variable.
-+ The `window.LLMS.Spinner` methods now accept JS Elements and selector strings parseable by `document.querySelector()` in addition to jQuery selections.
-+ Added new filter `llms_transaction_can_be_refunded` enabling custom refund restrictions to be applied to a transaction.
-
-##### Updated Templates
-
-+ [templates/checkout/form-gateways.php](https://github.com/gocodebox/lifterlms/blob/7.0.0-rc.1/templates/checkout/form-gateways.php)
-+ [templates/checkout/form-switch-source.php](https://github.com/gocodebox/lifterlms/blob/7.0.0-rc.1/templates/checkout/form-switch-source.php)
-+ [templates/myaccount/view-order-actions.php](https://github.com/gocodebox/lifterlms/blob/7.0.0-rc.1/templates/myaccount/view-order-actions.php)
-
-
-v6.10.2 - 2022-09-14
---------------------
-
-##### Updates and Enhancements
-
-+ Updated `woocommerce/action-scheduler` to version [3.5.1](https://github.com/woocommerce/action-scheduler/releases/tag/3.5.1).
-
-##### Security Fixes
-
-+ Fixed a data sanitization issue related to achievement permalinks.
-
-
-v6.10.1 - 2022-09-07
---------------------
-
-##### Bug Fixes
-
-+ Fixed a PHP warning raised when logging errors during email notification dispatch. [#2250](https://github.com/gocodebox/lifterlms/issues/2250)
-+ Fixed issue preventing one-time orders for being included in membership revenue reporting widgets. [#2254](https://github.com/gocodebox/lifterlms/issues/2254)
-
-
-v7.0.0-beta.1 - 2022-08-29
---------------------------
-
-##### New Features
-
-+ Added handling for admin settings options that store their option values in a nested array.
-+ Added new AJAX checkout and payment source switching endpoints for payment gateways to utilize instead of the preexisting synchronous form submission methods.
-+ On purchase completed retrieve the redirection URL from the INPUT_POST 'redirect' variable, if no 'redirect' variable is passed via INPUT_GET. The INPUT_POST 'redirect' variable comes from the new checkout form's hidden field 'redirect' populated with LLMS_Access_Plan::get_redirection_url(). [#2229](https://github.com/gocodebox/lifterlms/issues/2229)
-
-##### Updates and Enhancements
-
-+ When an order post is restored from the trash its post status will now be "llms-pending" in favor of the default "draft" status.
-
-##### Bug Fixes
-
-+ Don't attempt to lookup the default payment gateway from user meta data.
-+ Fixed an issue that prevented disabling the access plan’s option, Override Membership Redirects, once enabled. [#2234](https://github.com/gocodebox/lifterlms/issues/2234)
-+ Disabled `scroll-behavior: smooth` on checkout screen to address form element validity checking issues on Chromium-based browsers. [#2206](https://github.com/gocodebox/lifterlms/issues/2206)
-
-##### Deprecations
-
-+ Deprecated `LLMS_Controller_Orders::switch_payment_source()` in favor of `LLMS_Controller_Checkout::switch_payment_source()`.
-+ Deprecated the `lifterlms_update_option_{$type}` action in favor of the `llms_update_option_{$type}` filter.
-+ Method `LLMS_Controller_Orders::confirm_pending_order()` is deprecated in favor of `LLMS_Controller_Checkout::confirm_pending_order()`.
-+ Method `LLMS_Controller_Orders::create_pending_order()` is deprecated in favor of `LLMS_Controller_Checkout::create_pending_order()`.
-+ Method `LLMS_Controller_Orders::switch_payment_source()` is deprecated in favor of `LLMS_Controller_Checkout::switch_payment_source()`.
-+ Passing jQuery selections into the `window.LLMS.Spinner` functions is deprecated. Use JS `Elements` or selection strings parseable by `document.querySelector()` instead.
-+ Deprecated hook `llms_{$method}_title` in favor of `llms_{$method}_refund_title`.
-
-##### Developer Notes
-
-+ Added admin settings helper function, `llms_get_dashicon_link()`, intended to enable the addition of external resource helper links to settings field descriptions.
-+ The `LLMS_Student` object can be instantiated as an empty object and bypass current user autoloading. In the future this may affect integrations using the `lifterlms_new_pending_order` action hook which will receive an "empty" student object during order setup by gateways utilizing new AJAX-powered checkout endpoints.
-+ Added a filter, `llms_gateway_{$this->id}_logging_enabled`, which will allow force enabling/disabling of gateway logging functions.
-+ Improved payment gateway secure string logging by adding a method, `add_secure_string()` allowing developers to add secure strings during runtime without the necessity of registering the strings using filters.
-+ Introduces new function `llms_is_option_secure()` for determining if an "secured" option is defined in a "secure" manner.
-+ Implemented new gateway feature: `modify_recurring_payments`. [#2176](https://github.com/gocodebox/lifterlms/issues/2176)
-+ Added two new parameters to LLMS_Access_Plan::get_redirection_url() - `$encode` to optionally get a raw (not encoded) URL. - `$querystring_only` to optionally get only the redirect URL if set via NPUT_GET variable.
-+ Added new parameter `$querystring_only` to the filter hook `llms_plan_get_checkout_redirection`.
-+ Admin settings fields now display `after_html` for additional field types which support `desc`.
-+ The CSS for `.llms-spinning` and `.llms-spinner` elements is no longer loaded as part of the `lifterlms.css` and `admin.css` files, instead it is loaded dynamically when `window.LLMS.Spinner` functions are called. In some cases CSS overrides to these elements which relied on CSS rule load order may no longer successfully override the default CSS rules. These overrides may need to be updated to have more specific selectors in order to ensure the overrides are retained.
-+ The Javascript object, `window.LLMS.Spinner`, has been converted to a module accessible from the same variable.
-+ The `window.LLMS.Spinner` methods now accept JS Elements and selector strings parseable by `document.querySelector()` in addition to jQuery selections.
-+ Added new filter `llms_transaction_can_be_refunded` enabling custom refund restrictions to be applied to a transaction.
-
-##### Updated Templates
-
-+ [templates/checkout/form-gateways.php](https://github.com/gocodebox/lifterlms/blob/7.0.0-beta.1/templates/checkout/form-gateways.php)
-+ [templates/checkout/form-switch-source.php](https://github.com/gocodebox/lifterlms/blob/7.0.0-beta.1/templates/checkout/form-switch-source.php)
-+ [templates/myaccount/view-order-actions.php](https://github.com/gocodebox/lifterlms/blob/7.0.0-beta.1/templates/myaccount/view-order-actions.php)
-
-
-v6.10.0 - 2022-08-29
---------------------
-
-##### Updates and Enhancements
-
-+ Updtaed woocommerce/action-scheduler to version [3.5.0](https://github.com/woocommerce/action-scheduler/releases/tag/3.5.0).
-+ Upgrades the bundled `quill-wordcount` module to version 2.0, addressing an issue encountered when counting words with non-Latin character languages.
-
-##### Bug Fixes
-
-+ Make `
` elements in quiz attempt results scrollable.
-+ Make sure the current user can edit the lesson, when changing its completion status from the admin reporting.
-+ Added missing textodmain for the string 'Move {post_title} to the Trash'. [#2224](https://github.com/gocodebox/lifterlms/issues/2224)
-+ Fixed PHP fatal error when quick editing an award. [#2231](https://github.com/gocodebox/lifterlms/issues/2231)
-+ Updated Spain's provinces list. [#2243](https://github.com/gocodebox/lifterlms/issues/2243)
-
-##### Deprecations
-
-+ The files `assets/vendor/quill/quill.module.wordcount.js` and `assets/vendor/quill/quill.module.wordcount.min.js` are to be removed in the next major release. Instead of loading these files directly, use `wp_enqueue_script( 'llms-quill-wordcount' )`.
-
-
-v6.9.0 - 2022-07-28
--------------------
-
-##### Updates and Enhancements
-
-+ Removed site-wide font-weight styles targeting `` through `` elements. [#2217](https://github.com/gocodebox/lifterlms/issues/2217)
-
-##### Bug Fixes
-
-+ Fixed issue preventing decimals from being used for coupon discount amounts. [#2149](https://github.com/gocodebox/lifterlms/issues/2149)
-+ Added AR (Arezzo) to Italy's states list. [#2214](https://github.com/gocodebox/lifterlms/issues/2214)
-
-
-v7.0.0-alpha.4 - 2022-07-18
----------------------------
-
-+ Fixed error causing recurring payment reschedules to fail with a fatal error.
-
-
-v7.0.0-alpha.3 - 2022-07-16
----------------------------
-
-+ Add max-length sanitization to admin settings which specify a max length.
-+ Fixed invalid user links on admin order screens when viewing incomplete orders missing a registered user.
-+ Added new function `llms_is_secure()`.
-+ Added `lifterlms-` and `llms-` as automatically stripped prefixed when using `llms_strip_prefixes()`.
-+ Added new temporary metadata, `temp_gateway_ids` to orders for use by gateways when switching payment methods.
-+ Moved `LLMS.Spinner` Javascript into an `@lifterlms/components` module and removed its reliance on jQuery.
-+ Disabled `scroll-behavior: scroll` on checkout screens to address a validity reporting issue on Chromium-based browsers.
-
-
-v6.8.0 - 2022-07-12
--------------------
-
-##### Bug Fixes
-
-+ Fixed Hello Theme's word-break and spacing for quiz answer options. [#2132](https://github.com/gocodebox/lifterlms/issues/2132)
-+ Fixed text/label alignment in Twenty-Twenty-Two theme.
-+ Fixed regression introduced in version 6.3.0 which prevented the Courses nav item from being customized in the BuddyPress profile nav menu. [#2142](https://github.com/gocodebox/lifterlms/issues/2142)
-
-##### Developer Notes
-
-+ Added new filter `llms_product_get_restrictions` hook to filter the list of restrictions placed on a given product. [#2201](https://github.com/gocodebox/lifterlms/issues/2201)
-
-
-v7.0.0-alpha.2 - 2022-06-23
----------------------------
-
-##### New Features
-
-+ Added handling for admin settings options that store their option values in a nested array.
-+ Added new AJAX checkout and payment source switching endpoints for payment gateways to utilize instead of the preexisting synchronous form submission methods.
-
-##### Bug Fixes
-
-+ Don't attempt to lookup the default payment gateway from user meta data.
-+ Fixes Hello Theme's word-break and spacing for quiz answer options. Also fixes text/label alignment in Twenty-Twenty-Two Theme. [#2132](https://github.com/gocodebox/lifterlms/issues/2132)
-
-##### Deprecations
-
-+ Deprecated `LLMS_Controller_Orders::switch_payment_source()` in favor of `LLMS_Controller_Checkout::switch_payment_source()`.
-+ Deprecated the `lifterlms_update_option_{$type}` action in favor of the `llms_update_option_{$type}` filter.
-+ Method `LLMS_Controller_Orders::confirm_pending_order()` is deprecated in favor of `LLMS_Controller_Checkout::confirm_pending_order()`.
-+ Method `LLMS_Controller_Orders::create_pending_order()` is deprecated in favor of `LLMS_Controller_Checkout::create_pending_order()`.
-+ Method `LLMS_Controller_Orders::switch_payment_source()` is deprecated in favor of `LLMS_Controller_Checkout::switch_payment_source()`.
-+ Deprecated hook `llms_{$method}_title` in favor of `llms_{$method}_refund_title`.
-
-##### Developer Notes
-
-+ Added admin settings helper function, `llms_get_dashicon_link()`, intended to enable the addition of external resource helper links to settings field descriptions.
-+ The `LLMS_Student` object can be instantiated as an empty object and bypass current user autoloading. In the future this may affect integrations using the `lifterlms_new_pending_order` action hook which will receive an "empty" student object during order setup by gateways utilizing new AJAX-powered checkout endpoints.
-+ Added a filter, `llms_gateway_{$this->id}_logging_enabled`, which will allow force enabling/disabling of gateway logging functions.
-+ Improved payment gateway secure string logging by adding a method, `add_secure_string()` allowing developers to add secure strings during runtime without the necessity of registering the strings using filters.
-+ Implemented new gateway feature: `modify_recurring_payments`. [#2176](https://github.com/gocodebox/lifterlms/issues/2176)
-+ Admin settings fields now display `after_html` for additional field types which support `desc`.
-+ Added new filter `llms_transaction_can_be_refunded` enabling custom refund restrictions to be applied to a transaction.
-
-##### Updated Templates
-
-+ [templates/checkout/form-gateways.php](https://github.com/gocodebox/lifterlms/blob/7.0.0-alpha.2/templates/checkout/form-gateways.php)
-+ [templates/checkout/form-switch-source.php](https://github.com/gocodebox/lifterlms/blob/7.0.0-alpha.2/templates/checkout/form-switch-source.php)
-+ [templates/myaccount/view-order-actions.php](https://github.com/gocodebox/lifterlms/blob/7.0.0-alpha.2/templates/myaccount/view-order-actions.php)
-
-
-v7.0.0-alpha.1 - 2022-06-15
----------------------------
-
-##### New Features
-
-+ Added new AJAX checkout and payment source switching endpoints for payment gateways to utilize instead of the preexisting synchronous form submission methods.
-
-##### Bug Fixes
-
-+ Don't attempt to lookup the default payment gateway from user meta data.
-
-##### Deprecations
-
-+ Deprecated `LLMS_Controller_Orders::switch_payment_source()` in favor of `LLMS_Controller_Checkout::switch_payment_source()`.
-+ Method `LLMS_Controller_Orders::confirm_pending_order()` is deprecated in favor of `LLMS_Controller_Checkout::confirm_pending_order()`.
-+ Method `LLMS_Controller_Orders::create_pending_order()` is deprecated in favor of `LLMS_Controller_Checkout::create_pending_order()`.
-+ Method `LLMS_Controller_Orders::switch_payment_source()` is deprecated in favor of `LLMS_Controller_Checkout::switch_payment_source()`.
-+ Deprecated hook `llms_{$method}_title` in favor of `llms_{$method}_refund_title`.
-
-##### Developer Notes
-
-+ The `LLMS_Student` object can be instantiated as an empty object and bypass current user autoloading. In the future this may affect integrations using the `lifterlms_new_pending_order` action hook which will receive an "empty" student object during order setup by gateways utilizing new AJAX-powered checkout endpoints.
-+ Improved payment gateway secure string logging by adding a method, `add_secure_string()` allowing developers to add secure strings during runtime without the necessity of registering the strings using filters.
-+ Implemented new gateway feature: `modify_recurring_payments`. [#2176](https://github.com/gocodebox/lifterlms/issues/2176)
-+ Added new filter `llms_transaction_can_be_refunded` enabling custom refund restrictions to be applied to a transaction.
-
-##### Updated Templates
-
-+ [templates/checkout/form-gateways.php](https://github.com/gocodebox/lifterlms/blob/7.0.0-alpha.1/templates/checkout/form-gateways.php)
-+ [templates/checkout/form-switch-source.php](https://github.com/gocodebox/lifterlms/blob/7.0.0-alpha.1/templates/checkout/form-switch-source.php)
-+ [templates/myaccount/view-order-actions.php](https://github.com/gocodebox/lifterlms/blob/7.0.0-alpha.1/templates/myaccount/view-order-actions.php)
-
-
-v6.7.0 - 2022-06-09
--------------------
-
-##### Updates and Enhancements
-
-+ Update LifterLMS Blocks to [v2.4.3](https://make.lifterlms.com/2022/06/09/lifterlms-blocks-version-2-4-3/).
-+ Upgraded Action Scheduler to [v3.4.1](https://github.com/woocommerce/action-scheduler/releases/tag/3.4.1).
-+ Upgraded Action Scheduler to [v3.4.2](https://github.com/woocommerce/action-scheduler/releases/tag/3.4.2).
-
-##### Bug Fixes
-
-+ Fixed a fatal error on PHP 8+ when restoring a post type from revision. [#2164](https://github.com/gocodebox/lifterlms/issues/2164)
-
-
-v6.6.0 - 2022-05-23
--------------------
-
-##### PHP Minimum Required Version Change
-
-+ **Raised the minimum supported PHP version to 7.4.**
-
-##### WordPress Minimum Required Version Change
-
-+ **Raised the minimum supported WordPress core version to 5.6.**
-
-##### New Features
-
-+ Added support for WordPress 6.0.
-
-##### Bug Fixes
-
-+ Fixed the ability for 3rd party plugins to use the `lifterlms_external_engagement_handler_arguments` and `lifterlms_external_engagement_query_arguments` filters.
-+ Added automatic exclusion of "no cache" pages from the WP Engine server-side cache when using "pretty" permalinks. [#1717](https://github.com/gocodebox/lifterlms/issues/1717)
-+ Stop subtracting LifterLMS order note comments from global comment counts via the `wp_count_comments` filter on WordPress 6.0 and later. See related WordPress Trac ticket [#19901](https://core.trac.wordpress.org/ticket/19901)
-
-
-v6.5.0 - 2022-05-11
--------------------
-
-##### Upcoming PHP Version Requirement Change
-
-**This will be the last version of LifterLMS to support PHP 7.3. The next version of LifterLMS, expected before the end of May 2022, will raise the minimum supported PHP version to 7.4. PHP 7.3 reached its official [end of life](https://www.php.net/eol.php) on December 6, 2021. If you are still using PHP 7.3 please upgrade to PHP 7.4 or later as soon as possible.**
-
-##### Updates and Enhancements
-
-+ Updates LifterLMS Rest to [v1.0.0-beta.25](https://make.lifterlms.com/2022/05/11/lifterlms-rest-api-version-1-0-0-beta-25/).
-
-##### Bug Fixes
-
-+ Students who have already completed a lesson will now automatically bypass the lesson's drip restrictions. [#1835](https://github.com/gocodebox/lifterlms/issues/1835)
-+ Properly encode certificate JS localization data. [#2140](https://github.com/gocodebox/lifterlms/issues/2140)
-
-##### Developer Notes
-
-+ Added a new filter, `llms_lesson_drip_bypass_if_completed`, which controls the automatic bypass of drip restrictions for completed lessons. [#1835](https://github.com/gocodebox/lifterlms/issues/1835)
-+ Allow avoiding error return when updating an `LLMS_Post_Model` post meta with the same value as the one stored in the database. [#909](https://github.com/gocodebox/lifterlms/issues/909)
-
-
-v6.4.0 - 2022-04-19
--------------------
-
-##### Upcoming PHP Version Requirement Change
-
-**LifterLMS will drop support for PHP 7.3 by May, 2022. This will raise the minimum supported PHP version to 7.4. PHP 7.3 reached its official [end of life](https://www.php.net/eol.php) on December 6, 2021. If you are still using PHP 7.3 please upgrade to PHP 7.4 or later as soon as possible.**
-
-##### New Features
-
-+ Any "secure" payment gateway options will be automatically masked when written to debug log files.
-
-##### Updates and Enhancements
-
-+ When building notification content, only parse merge codes used in the notification. [#1465](https://github.com/gocodebox/lifterlms/issues/1465)
-+ Improved checks related to the number of quiz attempts allowed for each student.
-+ Prevent browser page caching on quizzes. [#2092](https://github.com/gocodebox/lifterlms/issues/2092)
-
-##### Bug Fixes
-
-+ Allowed classes extended from the manual payment gateway class to display payment instructions.
-+ Allowed the `LLMS_Shortcode_User_Info` class to be filtered by the `llms_load_shortcodes` and `llms_load_shortcode_path` hooks.
-+ Stop using the deprecated `FILTER_SANITIZE_STRING` constant.
-+ Fixed an issue that caused shortcodes to not be replaced in some engagement emails. [#2070](https://github.com/gocodebox/lifterlms/issues/2070)
-+ Improve core forms detection so to exclude duplicates. [#2052](https://github.com/gocodebox/lifterlms/issues/2052)
-+ Added Aosta (AO) to the list of Italian provinces. [#2098](https://github.com/gocodebox/lifterlms/issues/2098)
-+ Fixed a compatibility issue with the Elementor Pro Theme Builder encountered on course and membership catalogs. [#2111](https://github.com/gocodebox/lifterlms/issues/2111)
-+ Fixed an issue where merge codes in reusable blocks on certificate templates were not replaced when the template was displayed or when the certificate was awarded and published. [#2058](https://github.com/gocodebox/lifterlms/issues/2058)
-+ Fixed an issue with OceanWP and Twenty Twenty themes where the Terms and Conditions checkbox was displayed incorrectly. [#1938](https://github.com/gocodebox/lifterlms/issues/1938)
-
-##### Developer Notes
-
-+ Added a new filter, `llms_secure_strings` allowing developers to register strings that should be automatically masked when written to log files.
-+ Added new filter `llms_no_cache` to control whether or not LifterLMS will send nocache headers. [#2092](https://github.com/gocodebox/lifterlms/issues/2092)
-+ Added new filter `llms_template_loader_restricted_priority` to control the priority of the `template_include` hook callback used to load restricted content single templates.
-
-
-v6.3.0 - 2022-04-07
--------------------
-
-##### Upcoming PHP Version Requirement Change
-
-**LifterLMS will drop support for PHP 7.3 by May, 2022. This will raise the minimum supported PHP version to 7.4. PHP 7.3 reached its official [end of life](https://www.php.net/eol.php) on December 6, 2021. If you are still using PHP 7.3 please upgrade to PHP 7.4 or later as soon as possible.**
-
-##### New Features
-
-+ Automatically add student's dashboard endpoints to the BuddyPress profile nav. [#627](https://github.com/gocodebox/lifterlms/issues/627)
-
-##### Updates and Enhancements
-
-+ Upgraded LifterLMS Blocks to [v2.4.2](https://make.lifterlms.com/2022/04/07/lifterlms-blocks-version-2-4-2/).
-+ Updated LifterLMS Helper to [v3.4.2](https://make.lifterlms.com/2022/04/01/lifterlms-helper-version-3-4-2/).
-
-##### Bug Fixes
-
-+ Fixed paged queries in student dashboard not working when using plain permalinks.
-+ Fixed an issue that prevented searching students in some admin areas when WordPress was installed in a subdirectory. [#2096](https://github.com/gocodebox/lifterlms/issues/2096)
-+ Fixed lesson's comments status not reflecting default global setting when created with the course builder. [#2099](https://github.com/gocodebox/lifterlms/issues/2099)
-
-##### Deprecations
-
-+ Deprecated `LLMS_Integration_Buddypress::achievements_screen()` method with no replacement.
-+ Deprecated `LLMS_Integration_Buddypress::certificates_screen()` method with no replacement.
-+ Deprecated `LLMS_Integration_Buddypress::courses_screen()` method with no replacement.
-+ Deprecated `LLMS_Integration_Buddypress::memberships_screen()` method with no replacement.
-+ Deprecated `LLMS_Integration_Buddypress::remove_courses_paginate_links_filter()` method with no replacement.
-+ Deprecated `LLMS_Integration_Buddypress::modify_courses_paginate_links()` method with no replacement.
-
-##### Developer Notes
-
-+ Added `llms_get_paged_query_var()` function that returns the page number query var for the current request.
-+ Added new filter `llms_buddypress_profile_endpoints` to control the LifterLMS endpoints to be added to the BuddyPress profile.
-+ Added new filter `llms_buddypress_min_nav_item_slug` to control the LifterLMS main BuddyPress' nav item slug.
-+ Added new filter `llms_buddypress_min_nav_item_label` to control the LifterLMS main BuddyPress' nav item label.
-+ Added new filter `llms_buddypress_min_nav_item_position` to control the LifterLMS main BuddyPress' nav item position.
-
-
-v6.2.0 - 2022-03-30
--------------------
-
-##### Updates and Enhancements
-
-+ Changed the `llmsStudentsSelect2()` JavaScript function to use the LifterLMS REST API "list students" endpoint instead of the `LLMS_AJAX_Handler::query_students()` PHP function.
-+ Upgraded LifterLMS Blocks to [v2.4.1](https://make.lifterlms.com/2022/03/30/lifterlms-blocks-version-2-4-1/).
-
-##### Bug Fixes
-
-+ Fixed issue with hidden checkboxes on LifterLMS forms.
-+ Fixed a compatiblity issue with the Divi Theme Builder ignoring access restrictions when using template with custom body. [#2063](https://github.com/gocodebox/lifterlms/issues/2063)
-+ Fixed an error encountered on the Engagements > Certificates screen when using the BuddyBoss theme. [#2080](https://github.com/gocodebox/lifterlms/issues/2080)
-
-##### Deprecations
-
-+ Deprecated `LLMS_AJAX_Handler::query_students()`. Use the [REST API list students](https://developer.lifterlms.com/rest-api/#tag/Students/paths/~1students/get) endpoint instead.
-
-##### Developer Notes
-
-+ Added new filter `llms_template_loader_priority` to control the priority of the `template_include` hook callback used to load restricted content templates.
-
-
-v6.1.0 - 2022-03-23
--------------------
-
-##### Upcoming PHP Version Requirement Change
-
-**LifterLMS will drop support for PHP 7.3 by May, 2022. This will raise the minimum supported PHP version to 7.4. PHP 7.3 reached its official [end of life](https://www.php.net/eol.php) on December 6, 2021. If you are still using PHP 7.3 please upgrade to PHP 7.4 or later as soon as possible.**
-
-##### New Features
-
-+ Added the `{earned_date}` certificate merge code.
-
-##### Updates and Enhancements
-
-+ Changed the label for the `{current_date}` certificate merge code from 'Earned Date' to 'Current Date'.
-+ Updates LifterLMS REST to [v1.0.0-beta.24](https://make.lifterlms.com/2022/03/17/lifterlms-rest-api-version-1-0-0-beta-24/).
-
-##### Bug Fixes
-
-+ Fixed an issue encountered when editing an order with a completed payment plan. [#2067](https://github.com/gocodebox/lifterlms/issues/2067)
-+ Fixed access of protected LLMS_Abstract_Query properties.
-
-
-v6.0.0 - 2022-03-08
--------------------
-
-**This major release of LifterLMS focuses on improving the experience of creating, designing, and managing achievements and certificates: use the block editor to design certificates, sync awards with their templates, award achievements and certificates on demand without requiring an engagement trigger, and [much more](https://lifterlms.com/docs/getting-started-with-lifterlms-6-0/). In addition, this release removes a significant number of previously deprecated classes, methods, and functions. Please read the full Breaking Changes sections for more information on removed code.**
-
-##### New Features
-
-+ The block editor is now enabled by default for certificates when using WordPress versions 5.8 and later.
- + Existing certificates are marked as "legacy" and will continue to use the classic editor until migrated.
- + To migrate a certificate, click the "Migrate Certificate" button. This will force the certificate's content into blocks.
-+ A number of new settings are available to certificates when using the block editor:
- + Set the certificate's display (and print) size using common paper sizes such as US Letter, US Legal, A3, A4, and more.
- + Set the certificate's display orientation: portrait of landscape.
- + Set the certificate's inner margins.
- + Set the certificate's background color.
-+ A new block, the Certificate Title Block, has been made available to certificates.
- + The block works like a WordPress core Heading Block with added options for selecting from a few display fonts (provided by Google Web Fonts).
- + The block controls the title of awarded certificates.
-+ Added the ability for administrators and LMS managers to edit earned certificates/achievements from the students reporting screen, as well as award new certificates/achievements to students.
-+ Added the ability to sync awarded certificates with the template used to generate them. [#1078](https://github.com/gocodebox/lifterlms/issues/1078)
-+ The `post_name` of earned certificate posts will be generated with a randomized 3+ character string in favor of relying on sequential numbers.
-+ Added certificate global options for the default size of new certificates and certificate templates.
-+ Certificate and email template merge code buttons now include [llms-user] information shortcodes.
-+ Added certificate sequential ID functionality merge code.
-+ Added a link to return to the student dashboard when viewing an awarded certificate. [#1959](https://github.com/gocodebox/lifterlms/issues/1959)
-+ Provide additional information to hooks on the student single course reporting screen.
-
-##### Updates and Enhancements
-
-+ Added new default images for use with achievements and certificates.
- + The site-wide default images can be customized on the admin panel under Settings -> Engagements.
- + The old default images will automatically be used for legacy certificates and can be forced by filtering `llms_use_legacy_engagement_images`. [#1081](https://github.com/gocodebox/lifterlms/issues/1081)
-+ Certificates no longer use the `header.php` and `footer.php` files from the site's theme, instead custom templates (`templates/certificates/header.php` and `templates/certificates/footer.php`) are used instead. These templates are minimal and exclude theme wrappers which reduces the visual conflicts encountered from theme wrappers, backgrounds, and more, especially when printing certificates. [#463](https://github.com/gocodebox/lifterlms/issues/463)
-+ The achievements and certificates dashboard endpoints are now paginated. [#669](https://github.com/gocodebox/lifterlms/issues/669)
-+ Added pagination to achievement and certificate reporting pages.
-+ The URL of earned user certificates has been changed from "my_certificate" to "certificate". Requests to the old url are automatically redirected to the new url, including instances where the URL slug has been translated.
-+ The URL of certificate template previews has been changed from "certificate" to "certificate-template".
-+ The certificate merge code, `{first_name}`, now outputs an empty string in favor of falling back to the user's nickname when there is no first name for the user. [#1640](https://github.com/gocodebox/lifterlms/issues/1640)
-+ The look and behavior of the certificate {{MINI_CERTIFICATE}} pop-over notification merge code now displays a placeholder preview of the certificate in favor of attempting to render a tiny version of the actual certificate. [#1950](https://github.com/gocodebox/lifterlms/issues/1950)
-+ The coupon code in the student's order details table is now wrapped in a `` tag instead of an `` tag. [#2033](https://github.com/gocodebox/lifterlms/issues/2033)
-+ Updates LifterLMS REST to [v1.0.0-beta.23](https://make.lifterlms.com/2022/02/23/lifterlms-rest-api-version-1-0-0-beta-23/).
-+ Updated LifterLMS Blocks to [version 2.4.0](https://make.lifterlms.com/2022/02/25/lifterlms-blocks-version-2-4-0/).
-
-##### Bug Fixes
-
-+ Delayed engagements are automatically unscheduled when the related post is deleted.
-+ A disabled student dashboard endpoint will no longer display the endpoint's summary on the main dashboard page. [#535](https://github.com/gocodebox/lifterlms/issues/535)
-+ Prior to sending a delayed engagement the recipient's enrollment in the related post is verified resulting the engagement not being triggered if the recipient's enrollment has been terminated. [#290](https://github.com/gocodebox/lifterlms/issues/290)
-+ Post search filter boxes on various post tables will now longer display a link to the selected post.
-+ Basic notification code is no longer loaded on the admin panel.
-+ Fixed the label hover on picture type quizzes in some themes. [#2015](https://github.com/gocodebox/lifterlms/issues/2015)
-
-##### Database Migration
-
-+ A database migration is required when upgrading from versions earlier than 6.0.0. A description of the required updates can be found at [https://lifterlms.com/docs/lifterlms-database-updates/#600](https://lifterlms.com/docs/lifterlms-database-updates/#600).
-
-##### Deprecations
-
-+ Public access to properties of the abstract `LLMS_Database_Query` has been deprecated.
- + Public access to class property `LLMS_Database_Query::$found_results`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_found_results()`.
- + Public access to class property `LLMS_Database_Query::$max_pages`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_max_pages()`.
- + Public access to class property `LLMS_Database_Query::$number_results`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_number_results()`.
- + Public access to class property `LLMS_Database_Query::$results`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_results()`.
- + Public access to class property `LLMS_Database_Query::$query_vars`. The variable as a whole cannot be publicly accessed, instead use `LLMS_Database_Query::get()` and `LLMS_Database_Query::set()` to read and write to the array.
- + The above changes were made to the abstract class `LLMS_Database_Query` but the following concrete classes that utilize the abstract are also affected by this change: `LLMS_Query_User_Postmeta`, `LLMS_Student_Query`, `LLMS_Query_Quiz_Attempt`, `LLMS_Events_Query`, and `LLMS_Notifications_Query`.
-+ Class `LLMS_Achievement_User` is deprecated with no direct replacement.
- + Method `LLMS_Achievement::is_enabled()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_blogname()` is deprecated with no replacement.
- + Method `LLMS_Achievement::format_string()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_title()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_content()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Achievement::create()` is deprecated with no replacement.
-+ Method `LLMS_Achievements::trigger_engagement()` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement()`.
-+ Class `LLMS_Certificate` is deprecated with no direct replacement.
- + Method `LLMS_Certificate::is_enabled()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_blogname()` is deprecated with no replacement.
- + Method `LLMS_Certificate::format_string()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_title()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_content()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_title()` is deprecated with no replacement.
-+ Method `LLMS_Certificates::trigger_engagement()` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate()`.
-+ Method `LLMS_Engagements::init()` is deprecated with no replacement.
-+ Method `LLMS_Engagements::handle_achievement` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement`.
-+ Method `LLMS_Engagements::handle_certificate` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate`.
-+ Method `LLMS_Engagements::handle_email` is deprecated in favor of `LLMS_Engagement_Handler::handle_email`.
-+ Method `LLMS_Database_Query::set_found_results()` is deprecated.
-+ Class `LLMS_Achievement_User` is deprecated with no direct replacement.
- + Method `LLMS_Achievement_User::has_user_earned()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::init()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::trigger()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::get_content_html()` is deprecated with no replacement.
-+ Class `LLMS_Certificate_User` is deprecated with no direct replacement.
- + Method `LLMS_Certificate_User::init()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::trigger()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::set_shortcode_user()` is deprecated with no replacement.
-+ Engagement debug logging is removed. Use `llms_log()` directly instead.
-+ Filter `llms_db_query_get_default_args` is deprecated in favor of `llms_{$this->id}_query_get_default_args`.
-+ Filter `llms_certificate_has_user_earned` is deprecated in favor of `llms_earned_certificate_dupcheck`.
-+ Unused public class property `LLMS_Achievements::$content` is deprecated with no replacement.
-+ Method `LLMS_Admin_Post_Types::meta_metabox_init()` is deprecated with no replacement.
-+ The site options `lifterlms_certificate_bg_img_width`, `lifterlms_certificate_bg_img_height`, and `lifterlms_certificate_legacy_image_size` are now used only for certificates and certificate templates created using the classic editor.
- + The settings, found on the Engagements Settings screen, are hidden by default.
- + During the database upgrade from versions earlier than 6.x, an site option, `llms_has_legacy_certificates` is added when at least one certificate is found. This option will display the settings so they can continue to be used for legacy certificates.
- + After migrating all certificates on a site, the settings will still display. In order to remove them from the screen a developer can either delete the option `llms_has_legacy_certificates` or return `false` from the filter `llms_has_legacy_certificates`.
-+ Method `LLMS_Engagements::handle_certificate` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate`. [#290](https://github.com/gocodebox/lifterlms/issues/290)
-+ Method `LLMS_Engagements::handle_achievement` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement`. [#290](https://github.com/gocodebox/lifterlms/issues/290)
-+ The constant `LLMS_ENGAGEMENT_DEBUG` is deprecated with no replacement.
-+ Engagement debugging via `LLMS_Engagements::log` is deprecated. Use `llms_log()` instead.
-+ Method `LLMS_Engagements::handle_email` is deprecated in favor of `LLMS_Engagement_Handler::handle_email`.
-+ Filter `lifterlms_register_post_type_llms_my_certificate` is deprecated in favor of `lifterlms_register_post_type_my_certificate`.
-+ Deprecated the misspelled protected method `LLMS_Database_Query::preprare_query()` and replaced with `LLMS_Database_Query::prepare_query()`.
- + Class method `LLMS_Events_Query::preprare_query` replaced with `LLMS_Events_Query::prepare_query()`.
- + Class method `LLMS_Query_Quiz_Attempt::preprare_query` replaced with `LLMS_Query_Quiz_Attempt::prepare_query()`.
- + Class method `LLMS_Query_User_Postmeta::preprare_query` replaced with `LLMS_Query_User_Postmeta::prepare_query()`.
- + Class method `LLMS_Student_Query::preprare_query` replaced with `LLMS_Student_Query::prepare_query()`.
- + Class method `LLMS_Notifications_Query::preprare_query` replaced with `LLMS_Notifications_Query::prepare_query()`.
- + Class method `LLMS_Notifications_Query::preprare_query` replaced with `LLMS_Notifications_Query::prepare_query()`. [#859](https://github.com/gocodebox/lifterlms/issues/859)
-
-##### Breaking Changes
-
-+ Removed FSE template: `templates/block-templates/single-certificate.html`.
-+ Removed the deprecated `LLMS()` function in favor of the `llms()` function.
-+ Removed the deprecated the `LLMS_SendWP::do_remote_install()` method in favor of the `LLMS_Abstract_Email_Provider::do_remote_install()` method.
-+ Removed the deprecated `LLMS_Abstract_Email_Provider::output_css()` method.
-+ Removed the deprecated `LLMS_Abstract_Generator_Posts::increment()` method.
-+ Removed the deprecated `LLMS_Admin_Users_Table::load_dependencies()` method.
-+ Removed the deprecated `LLMS_Admin_Import::localize_stat()` method.
-+ Removed the deprecated `LLMS_Admin_Notices_Core::check_staging()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::generator_course_status()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::output_step_html()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::scripts()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::watch_course_generation()` method.
-+ Removed the deprecated `llms_format_decimal()` function.
-+ Removed the deprecated `llms_set_person_auth_cookie()` function.
-+ Removed the deprecated `LLMS_Course::sections` property.
-+ Removed the deprecated `LLMS_Course::sku` property.
-+ Removed the deprecated `LLMS_Frontend_Assets::enqueue_inline_pw_script()` method.
-+ Removed the deprecated `LLMS_Frontend_Assets::enqueue_inline_script()` method.
-+ Removed the deprecated `LLMS_Frontend_Assets::is_inline_script_enqueued()` method.
-+ Removed the deprecated `LLMS_Generator::add_custom_values()` method.
-+ Removed the deprecated `LLMS_Generator::add_custom_values()` method.
-+ Removed the deprecated `LLMS_Generator::format_date()` method.
-+ Removed the deprecated `LLMS_Generator::get_author_id_from_raw()` method.
-+ Removed the deprecated `LLMS_Generator::get_default_post_status()` method.
-+ Removed the deprecated `LLMS_Generator::get_generated_posts()` method.
-+ Removed the deprecated `LLMS_Generator::increment()` method.
-+ Removed the deprecated `llms__created` action hook from the `LLMS_Abstract_Database_Store::create()` method.
-+ Removed the deprecated `llms__deleted` action hook from the `LLMS_Abstract_Database_Store::delete()` method.
-+ Removed the deprecated `llms__updated` action hook from the `LLMS_Abstract_Database_Store::update()` method.
-+ Removed the deprecated `llms_user_removed_from_membership_level` action hook from the `LLMS_Student::unenroll()` method.
-+ Removed the deprecated and misspelled `$purchaseable` global variable in the `lifterlms_template_pricing_table()` function.
-+ Removed the deprecated and misspelled `$purchaseable` global variable in the `templates/product/pricing-table.php` file.
-+ Removed the deprecated `LLMS_Frontend_Password` class.
-+ Removed the deprecated `LLMS_Install::db_updates()` method.
-+ Removed the deprecated `LLMS_Install::update_notice()` method.
-+ Removed the deprecated `LLMS_Notifications::dispatch_processors()` method.
-+ Removed the deprecated `llms_processors_async_dispatching` filter hook from the `LLMS_Notifications::__construct()` method.
-+ Removed the deprecated `LLMS_Notifications::$_instance` property.
-+ Removed the deprecated `LLMS_Person_Handler::register()` method.
-+ Removed the deprecated `LLMS_Person_Handler::sanitize_field()` method.
-+ Removed the deprecated `LLMS_Person_Handler::update()` method.
-+ Removed the deprecated `LLMS_Person_Handler::validate_fields()` method.
-+ Removed the deprecated `LLMS_Person_Handler::voucher_toggle_script()` method.
-+ Removed the deprecated `templates/admin/notices/db-update.php` file.
-+ Removed the deprecated `templates/admin/notices/db-updating.php` file.
-+ Removed the deprecated `llms_usernames_blacklist` filter hook in the `llms_get_usernames_blocklist()` function.
-+ Removed the deprecated `includes/libraries/wp-background-processing/index.php` file.
-+ Removed the deprecated `includes/libraries/wp-background-processing/wp-async-request.php` file.
-+ Removed the deprecated `includes/libraries/wp-background-processing/wp-background-process.php` file.
-+ Removed the deprecated `LLMS_Section::get_next_available_lesson_order()` method.
-+ Removed the deprecated `LLMS_Section::get_order()` method.
-+ Removed the deprecated `LLMS_Section::get_parent_course()` method.
-+ Removed the deprecated `LLMS_Section::set_parent_course()` method.
-+ Removed the deprecated `LLMS_AJAX::check_voucher_duplicate()` method.
-+ Removed the deprecated `LLMS_AJAX::get_ajax_data()` method.
-+ Removed the deprecated `LLMS_AJAX::register_script()` method.
-+ Removed the deprecated `LLMS_Interface_Post_Audio` interface.
-+ Removed the deprecated `LLMS_Interface_Post_Sales_Page` interface.
-+ Removed the deprecated `LLMS_Interface_Post_Video` interface.
-+ Removed the deprecated `LLMS_Achievements::$_instance` property.
-+ Removed the deprecated `LLMS_Certificates::$_instance` property.
-+ Removed the deprecated `LLMS_Emails::$_instance` property.
-+ Removed the deprecated `LLMS_Engagements::$_instance` property.
-+ Removed the deprecated `LLMS_Events::$_instance` property.
-+ Removed the deprecated `LLMS_Grades::$_instance` property.
-+ Removed the deprecated `LLMS_Integrations::$_instance` property.
-+ Removed the deprecated `LLMS_Payment_Gateways::$_instance` property.
-+ Removed the deprecated `LLMS_Processors::$_instance` property.
-+ Removed the deprecated `LLMS_Sessions::$_instance` property.
-
-##### Developer Notes
-
-+ Added `LLMS_Awards_Query`, used for querying data about awarded certificates and achievements.
- + The method signature `LLMS_Student::get_achievements()` and `LLMS_Student::get_certificates()` now use this class under tho hood.
- + The previous method signature, which passed data into a direct SQL query, is now deprecated.
-+ Achievement and certificate data storage locations have been modified, primarily to reduce reliance on the `wp_postmeta` table which will result in a site-wide performance improvement, especially on large sites.
- + Meta properties `_llms_achievement_content` and `_llms_certificate_content` have been removed in favor of `WP_Post::$post_content`.
- + Meta properties `_llms_achievement_title` and `_llms_certificate_title` have been removed in favor of `WP_Post::$post_title`.
- + Meta properties `_llms_achievement_template` and `_llms_certificate_template` have been removed in favor of `WP_Post::$post_parent`.
- + Meta properties `_llms_achievement_image` and `_llms_certificate_image` have been moved the meta property `_thumbnail_id` in order to utilize the WordPress core's featured image functionality and internal APIs.
-+ Reliance on `lifterlms_user_postmeta` for achievement and certificate data will be removed in a future release.
- + User postmeta properties `_achievement_earned` and `_certificate_earned` will continue to be recorded but are no longer being used internally.
- + The `updated_date` is now accessible via `WP_Post::$post_date`.
- + The `user_id` is now accessible via `WP_Post::$post_author`.
-+ Added new Javascript UI components library, modeled after `@wordpress/components`. [Read more](https://github.com/gocodebox/lifterlms/tree/dev-600/packages/components).
-+ Added a new SVG icon library, modeled after `@wordpress/icons`. [Read more](https://github.com/gocodebox/lifterlms/tree/dev-600/packages/icons).
-+ The merge code button seen on certificate and email template editors is now an SVG image instead of a PNG.
-+ Added utility function for escaping and quoting strings. [#1027](https://github.com/gocodebox/lifterlms/issues/1027)
-+ Added the ability to force an admin metabox field value through the new `meta` arg. [#2016](https://github.com/gocodebox/lifterlms/issues/2016)
-+ Added new utility function for stripping prefixes from strings.
-
-##### Performance Improvements
-
-+ Increased the number of files that are autoloaded instead of manually loaded.
-
-##### Updated Templates
-
-+ [templates/achievements/loop.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/achievements/loop.php)
-+ [templates/achievements/template.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/achievements/template.php)
-+ [templates/admin/notices/db-update.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/admin/notices/db-update.php)
-+ [templates/admin/notices/db-updating.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/admin/notices/db-updating.php)
-+ [templates/admin/reporting/reporting.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/admin/reporting/reporting.php)
-+ [templates/admin/reporting/tabs/students/courses-course.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/admin/reporting/tabs/students/courses-course.php)
-+ [templates/admin/reporting/tabs/students/information.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/admin/reporting/tabs/students/information.php)
-+ [templates/block-templates/single-certificate.html](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/block-templates/single-certificate.html)
-+ [templates/certificates/actions.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/certificates/actions.php)
-+ [templates/certificates/content-legacy.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/certificates/content-legacy.php)
-+ [templates/certificates/content.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/certificates/content.php)
-+ [templates/certificates/dynamic-styles.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/certificates/dynamic-styles.php)
-+ [templates/certificates/footer.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/certificates/footer.php)
-+ [templates/certificates/header.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/certificates/header.php)
-+ [templates/certificates/loop.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/certificates/loop.php)
-+ [templates/certificates/preview.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/certificates/preview.php)
-+ [templates/certificates/template.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/certificates/template.php)
-+ [templates/checkout/form-switch-source.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/checkout/form-switch-source.php)
-+ [templates/content-certificate.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/content-certificate.php)
-+ [templates/emails/footer.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/emails/footer.php)
-+ [templates/emails/header.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/emails/header.php)
-+ [templates/myaccount/my-grades-single-table.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/myaccount/my-grades-single-table.php)
-+ [templates/myaccount/view-order-actions.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/myaccount/view-order-actions.php)
-+ [templates/myaccount/view-order-information.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/myaccount/view-order-information.php)
-+ [templates/myaccount/view-order-transactions.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/myaccount/view-order-transactions.php)
-+ [templates/myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/myaccount/view-order.php)
-+ [templates/product/pricing-table.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/product/pricing-table.php)
-+ [templates/single-certificate.php](https://github.com/gocodebox/lifterlms/blob/6.0.0/templates/single-certificate.php)
-
-
-v6.0.0-rc.1 - 2022-03-03
-------------------------
-
-##### New Features
-
-+ Added a link to return to the student dashboard when viewing an awarded certificate. [#1959](https://github.com/gocodebox/lifterlms/issues/1959)
-+ The block editor is now enabled by default for certificates when using WordPress versions 5.8 and later.
- + Existing certificates are marked as "legacy" and will continue to use the classic editor until migrated.
- + To migrate a certificate, click the "Migrate Certificate" button. This will force the certificate's content into blocks.
-+ A number of new settings are available to certificates when using the block editor:
- + Set the certificate's display (and print) size using common paper sizes such as US Letter, US Legal, A3, A4, and more.
- + Set the certificate's display orientation: portrait of landscape.
- + Set the certificate's inner margins.
- + Set the certificate's background color.
-+ A new block, the Certificate Title Block, has been made available to certificates.
- + The block works like a WordPress core Heading Block with added options for selecting from a few display fonts (provided by Google Web Fonts).
- + The block controls the title of awarded certificates.
-+ + Added the ability to sync awarded certificates with the template used to generate them. [#1078](https://github.com/gocodebox/lifterlms/issues/1078)
-+ The `post_name` of earned certificate posts will be generated with a randomized 3+ character string in favor of relying on sequential numbers.
-+ Added the ability for administrators and LMS managers to edit earned certificates/achievements from the students reporting screen, as well as award new certificates/achievements to students.
-+ + Added certificate global options for the default size of new certificates and certificate templates.
-+ Certificate and email template merge code buttons now include [llms-user] information shortcodes.
-+ Added certificate sequential ID functionality merge code. [Read more](@TODO).
-+ Provide additional information to hooks on the student single course reporting screen.
-
-##### Updates and Enhancements
-
-+ Added pagination to achievement and certificate reporting pages.
-+ Certificates no longer use the `header.php` and `footer.php` files from the site's theme, instead custom templates (`templates/certificates/header.php` and `templates/certificates/footer.php`) are used instead. These templates are minimal and exclude theme wrappers which reduces the visual conflicts encountered from theme wrappers, backgrounds, and more, especially when printing certificates. [#463](https://github.com/gocodebox/lifterlms/issues/463)
-+ The achievements and certificates dashboard endpoints are now paginated. [#669](https://github.com/gocodebox/lifterlms/issues/669)
-+ Added new default images for use with achievements and certificates.
- + The site-wide default images can be customized on the admin panel under Settings -> Engagements.
- + The old default images can be used by filtering `llms_use_legacy_engagement_images`. [#1081](https://github.com/gocodebox/lifterlms/issues/1081)
-+ The URL of earned user certificates has been changed from "my_certificate" to "certificate". Requests to the old url are automatically redirected to the new url, including instances where the URL slug has been translated.
-+ The URL of certificate template previews has been changed from "certificate" to "certificate-template".
-+ The certificate merge code, `{first_name}`, now outputs an empty string in favor of falling back to the user's nickname when there is no first name for the user. [#1640](https://github.com/gocodebox/lifterlms/issues/1640)
-+ Updates LifterLMS REST to [v1.0.0-beta.23](https://make.lifterlms.com/2022/02/23/lifterlms-rest-api-version-1-0-0-beta-23/).
-+ Updated LifterLMS Blocks to [version 2.4.0](https://make.lifterlms.com/2022/02/25/lifterlms-blocks-version-2-4-0/).
-+ The look and behavior of the certificate {{MINI_CERTIFICATE}} pop-over notification merge code now displays a placeholder preview of the certificate in favor of attempting to render a tiny version of the actual certificate. [#1950](https://github.com/gocodebox/lifterlms/issues/1950)
-
-##### Bug Fixes
-
-+ + Fixed how the protected `LLMS_Notifications_Query::$found_results` property is accessed in `LLMS_Abstract_Notification_Controller::has_subscriber_received()`. + Fixed how the protected `LLMS_Notifications_Query::$max_pages` property is accessed in `lifterlms_template_student_dashboard_my_notifications()`.
-+ Delayed engagements are automatically unscheduled when the related post is deleted.
-+ Prior to sending a delayed engagement the recipient's enrollment in the related post is verified resulting the engagement not being triggered if the recipient's enrollment has been terminated. [#290](https://github.com/gocodebox/lifterlms/issues/290)
-+ A disabled student dashboard endpoint will no longer display the endpoint's summary on the main dashboard page. [#535](https://github.com/gocodebox/lifterlms/issues/535)
-+ Post search filter boxes on various post tables will now longer display a link to the selected post.
-+ Basic notification code is no longer loaded on the admin panel.
-
-##### Deprecations
-
-+ Public access to properties of the abstract `LLMS_Database_Query` has been deprecated.
- + Public access to class property `LLMS_Database_Query::$found_results`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_found_results()`.
- + Public access to class property `LLMS_Database_Query::$max_pages`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_max_pages()`.
- + Public access to class property `LLMS_Database_Query::$number_results`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_number_results()`.
- + Public access to class property `LLMS_Database_Query::$results`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_results()`.
- + Public access to class property `LLMS_Database_Query::$query_vars`. The variable as a whole cannot be publicly accessed, instead use `LLMS_Database_Query::get()` and `LLMS_Database_Query::set()` to read and write to the array.
- + The above changes were made to the abstract class `LLMS_Database_Query` but the following concrete classes that utilize the abstract are also affected by this change: `LLMS_Query_User_Postmeta`, `LLMS_Student_Query`, `LLMS_Query_Quiz_Attempt`, `LLMS_Events_Query`, and `LLMS_Notifications_Query`.
-+ Class `LLMS_Achievement_User` is deprecated with no direct replacement.
- + Method `LLMS_Achievement::is_enabled()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_blogname()` is deprecated with no replacement.
- + Method `LLMS_Achievement::format_string()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_title()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_content()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Achievement::create()` is deprecated with no replacement.
-+ Method `LLMS_Achievements::trigger_engagement()` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement()`.
-+ Class `LLMS_Certificate` is deprecated with no direct replacement.
- + Method `LLMS_Certificate::is_enabled()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_blogname()` is deprecated with no replacement.
- + Method `LLMS_Certificate::format_string()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_title()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_content()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_title()` is deprecated with no replacement.
-+ Method `LLMS_Certificates::trigger_engagement()` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate()`.
-+ Method `LLMS_Engagements::init()` is deprecated with no replacement.
-+ Method `LLMS_Engagements::handle_achievement` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement`.
-+ Method `LLMS_Engagements::handle_certificate` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate`.
-+ Method `LLMS_Engagements::handle_email` is deprecated in favor of `LLMS_Engagement_Handler::handle_email`.
-+ Method `LLMS_Database_Query::set_found_results()` is deprecated.
-+ Class `LLMS_Achievement_User` is deprecated with no direct replacement.
- + Method `LLMS_Achievement_User::has_user_earned()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::init()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::trigger()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::get_content_html()` is deprecated with no replacement.
-+ Class `LLMS_Certificate_User` is deprecated with no direct replacement.
- + Method `LLMS_Certificate_User::init()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::trigger()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::set_shortcode_user()` is deprecated with no replacement.
-+ Engagement debug logging is removed. Use `llms_log()` directly instead.
-+ Filter `llms_db_query_get_default_args` is deprecated in favor of `llms_{$this->id}_query_get_default_args`.
-+ Filter `llms_certificate_has_user_earned` is deprecated in favor of `llms_earned_certificate_dupcheck`.
-+ Unused public class property `LLMS_Achievements::$content` is deprecated with no replacement.
-+ Method `LLMS_Admin_Post_Types::meta_metabox_init()` is deprecated with no replacement.
-+ The site options `lifterlms_certificate_bg_img_width`, `lifterlms_certificate_bg_img_height`, and `lifterlms_certificate_legacy_image_size` are now used only for certificates and certificate templates created using the classic editor.
- + The settings, found on the Engagements Settings screen, are hidden by default.
- + During the database upgrade from versions earlier than 6.x, an site option, `llms_has_legacy_certificates` is added when at least one certificate is found. This option will display the settings so they can continue to be used for legacy certificates.
- + After migrating all certificates on a site, the settings will still display. In order to remove them from the screen a developer can either delete the option `llms_has_legacy_certificates` or return `false` from the filter `llms_has_legacy_certificates`.
-+ Method `LLMS_Engagements::handle_certificate` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate`. [#290](https://github.com/gocodebox/lifterlms/issues/290)
-+ Method `LLMS_Engagements::handle_achievement` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement`. [#290](https://github.com/gocodebox/lifterlms/issues/290)
-+ The constant `LLMS_ENGAGEMENT_DEBUG` is deprecated with no replacement.
-+ Engagement debugging via `LLMS_Engagements::log` is deprecated. Use `llms_log()` instead.
-+ Method `LLMS_Engagements::handle_email` is deprecated in favor of `LLMS_Engagement_Handler::handle_email`.
-+ Filter `lifterlms_register_post_type_llms_my_certificate` is deprecated in favor of `lifterlms_register_post_type_my_certificate`.
-+ Deprecated the misspelled protected method `LLMS_Database_Query::preprare_query()` and replaced with `LLMS_Database_Query::prepare_query()`.
- + Class method `LLMS_Events_Query::preprare_query` replaced with `LLMS_Events_Query::prepare_query()`.
- + Class method `LLMS_Query_Quiz_Attempt::preprare_query` replaced with `LLMS_Query_Quiz_Attempt::prepare_query()`.
- + Class method `LLMS_Query_User_Postmeta::preprare_query` replaced with `LLMS_Query_User_Postmeta::prepare_query()`.
- + Class method `LLMS_Student_Query::preprare_query` replaced with `LLMS_Student_Query::prepare_query()`.
- + Class method `LLMS_Notifications_Query::preprare_query` replaced with `LLMS_Notifications_Query::prepare_query()`.
- + Class method `LLMS_Notifications_Query::preprare_query` replaced with `LLMS_Notifications_Query::prepare_query()`. [#859](https://github.com/gocodebox/lifterlms/issues/859)
-
-##### Breaking Changes
-
-+ Removed FSE template: `templates/block-templates/single-certificate.html`.
-+ Removed the deprecated `LLMS()` function in favor of the `llms()` function.
-+ Removed the deprecated the `LLMS_SendWP::do_remote_install()` method in favor of the `LLMS_Abstract_Email_Provider::do_remote_install()` method.
-+ Removed the deprecated `LLMS_Abstract_Email_Provider::output_css()` method.
-+ Removed the deprecated `LLMS_Abstract_Generator_Posts::increment()` method.
-+ Removed the deprecated `LLMS_Admin_Users_Table::load_dependencies()` method.
-+ Removed the deprecated `LLMS_Admin_Import::localize_stat()` method.
-+ Removed the deprecated `LLMS_Admin_Notices_Core::check_staging()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::generator_course_status()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::output_step_html()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::scripts()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::watch_course_generation()` method.
-+ Removed the deprecated `llms_format_decimal()` function.
-+ Removed the deprecated `llms_set_person_auth_cookie()` function.
-+ Removed the deprecated `LLMS_Course::sections` property.
-+ Removed the deprecated `LLMS_Course::sku` property.
-+ Removed the deprecated `LLMS_Frontend_Assets::enqueue_inline_pw_script()` method.
-+ Removed the deprecated `LLMS_Frontend_Assets::enqueue_inline_script()` method.
-+ Removed the deprecated `LLMS_Frontend_Assets::is_inline_script_enqueued()` method.
-+ Removed the deprecated `LLMS_Generator::add_custom_values()` method.
-+ Removed the deprecated `LLMS_Generator::add_custom_values()` method.
-+ Removed the deprecated `LLMS_Generator::format_date()` method.
-+ Removed the deprecated `LLMS_Generator::get_author_id_from_raw()` method.
-+ Removed the deprecated `LLMS_Generator::get_default_post_status()` method.
-+ Removed the deprecated `LLMS_Generator::get_generated_posts()` method.
-+ Removed the deprecated `LLMS_Generator::increment()` method.
-+ Removed the deprecated `llms__created` action hook from the `LLMS_Abstract_Database_Store::create()` method.
-+ Removed the deprecated `llms__deleted` action hook from the `LLMS_Abstract_Database_Store::delete()` method.
-+ Removed the deprecated `llms__updated` action hook from the `LLMS_Abstract_Database_Store::update()` method.
-+ Removed the deprecated `llms_user_removed_from_membership_level` action hook from the `LLMS_Student::unenroll()` method.
-+ Removed the deprecated and misspelled `$purchaseable` global variable in the `lifterlms_template_pricing_table()` function.
-+ Removed the deprecated and misspelled `$purchaseable` global variable in the `templates/product/pricing-table.php` file.
-+ Removed the deprecated `LLMS_Frontend_Password` class.
-+ Removed the deprecated `LLMS_Install::db_updates()` method.
-+ Removed the deprecated `LLMS_Install::update_notice()` method.
-+ Removed the deprecated `LLMS_Notifications::dispatch_processors()` method.
-+ Removed the deprecated `llms_processors_async_dispatching` filter hook from the `LLMS_Notifications::__construct()` method.
-+ Removed the deprecated `LLMS_Notifications::$_instance` property.
-+ Removed the deprecated `LLMS_Person_Handler::register()` method.
-+ Removed the deprecated `LLMS_Person_Handler::sanitize_field()` method.
-+ Removed the deprecated `LLMS_Person_Handler::update()` method.
-+ Removed the deprecated `LLMS_Person_Handler::validate_fields()` method.
-+ Removed the deprecated `LLMS_Person_Handler::voucher_toggle_script()` method.
-+ Removed the deprecated `templates/admin/notices/db-update.php` file.
-+ Removed the deprecated `templates/admin/notices/db-updating.php` file.
-+ Removed the deprecated `llms_usernames_blacklist` filter hook in the `llms_get_usernames_blocklist()` function.
-+ Removed the deprecated `includes/libraries/wp-background-processing/index.php` file.
-+ Removed the deprecated `includes/libraries/wp-background-processing/wp-async-request.php` file.
-+ Removed the deprecated `includes/libraries/wp-background-processing/wp-background-process.php` file.
-+ Removed the deprecated `LLMS_Section::get_next_available_lesson_order()` method.
-+ Removed the deprecated `LLMS_Section::get_order()` method.
-+ Removed the deprecated `LLMS_Section::get_parent_course()` method.
-+ Removed the deprecated `LLMS_Section::set_parent_course()` method.
-+ Removed the deprecated `LLMS_AJAX::check_voucher_duplicate()` method.
-+ Removed the deprecated `LLMS_AJAX::get_ajax_data()` method.
-+ Removed the deprecated `LLMS_AJAX::register_script()` method.
-+ Removed the deprecated `LLMS_Interface_Post_Audio` interface.
-+ Removed the deprecated `LLMS_Interface_Post_Sales_Page` interface.
-+ Removed the deprecated `LLMS_Interface_Post_Video` interface.
-+ Removed the deprecated `LLMS_Achievements::$_instance` property.
-+ Removed the deprecated `LLMS_Certificates::$_instance` property.
-+ Removed the deprecated `LLMS_Emails::$_instance` property.
-+ Removed the deprecated `LLMS_Engagements::$_instance` property.
-+ Removed the deprecated `LLMS_Events::$_instance` property.
-+ Removed the deprecated `LLMS_Grades::$_instance` property.
-+ Removed the deprecated `LLMS_Integrations::$_instance` property.
-+ Removed the deprecated `LLMS_Payment_Gateways::$_instance` property.
-+ Removed the deprecated `LLMS_Processors::$_instance` property.
-+ Removed the deprecated `LLMS_Sessions::$_instance` property.
-
-##### Developer Notes
-
-+ Added `LLMS_Awards_Query`, used for querying data about awarded certificates and achievements.
- + The method signature `LLMS_Student::get_achievements()` and `LLMS_Student::get_certificates()` now use this class under tho hood.
- + The previous method signature, which passed data into a direct SQL query, is now deprecated.
-+ Achievement and certificate data storage locations have been modified, primarily to reduce reliance on the `wp_postmeta` table which will result in a site-wide performance improvement, especially on large sites.
- + Meta properties `_llms_achievement_content` and `_llms_certificate_content` have been removed in favor of `WP_Post::$post_content`.
- + Meta properties `_llms_achievement_title` and `_llms_certificate_title` have been removed in favor of `WP_Post::$post_title`.
- + Meta properties `_llms_achievement_template` and `_llms_certificate_template` have been removed in favor of `WP_Post::$post_parent`.
- + Meta properties `_llms_achievement_image` and `_llms_certificate_image` have been moved the meta property `_thumbnail_id` in order to utilize the WordPress core's featured image functionality and internal APIs.
-+ Reliance on `lifterlms_user_postmeta` for achievement and certificate data will be removed in a future release.
- + User postmeta properties `_achievement_earned` and `_certificate_earned` will continue to be recorded but are no longer being used internally.
- + The `updated_date` is now accessible via `WP_Post::$post_date`.
- + The `user_id` is now accessible via `WP_Post::$post_author`.
-+ Added new Javascript UI components library, modeled after `@wordpress/components`. [Read more](https://github.com/gocodebox/lifterlms/tree/dev-600/packages/components).
-+ Added a new SVG icon library, modeled after `@wordpress/icons`. [Read more](https://github.com/gocodebox/lifterlms/tree/dev-600/packages/icons).
-+ The merge code button seen on certificate and email template editors is now an SVG image instead of a PNG.
-+ Added utility function for escaping and quoting strings. [#1027](https://github.com/gocodebox/lifterlms/issues/1027)
-+ Added the ability to force an admin metabox field value through the new `meta` arg. [#2016](https://github.com/gocodebox/lifterlms/issues/2016)
-+ Added new utility function for stripping prefixes from strings.
-
-##### Performance Improvements
-
-+ Increased the number of files that are autoloaded instead of manually loaded.
-
-##### Updated Templates
-
-+ [templates/achievements/loop.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/achievements/loop.php)
-+ [templates/achievements/template.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/achievements/template.php)
-+ [templates/admin/notices/db-update.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/admin/notices/db-update.php)
-+ [templates/admin/notices/db-updating.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/admin/notices/db-updating.php)
-+ [templates/admin/reporting/reporting.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/admin/reporting/reporting.php)
-+ [templates/admin/reporting/tabs/students/courses-course.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/admin/reporting/tabs/students/courses-course.php)
-+ [templates/admin/reporting/tabs/students/information.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/admin/reporting/tabs/students/information.php)
-+ [templates/block-templates/single-certificate.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/block-templates/single-certificate.html)
-+ [templates/certificates/actions.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/certificates/actions.php)
-+ [templates/certificates/content-legacy.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/certificates/content-legacy.php)
-+ [templates/certificates/content.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/certificates/content.php)
-+ [templates/certificates/dynamic-styles.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/certificates/dynamic-styles.php)
-+ [templates/certificates/footer.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/certificates/footer.php)
-+ [templates/certificates/header.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/certificates/header.php)
-+ [templates/certificates/loop.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/certificates/loop.php)
-+ [templates/certificates/preview.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/certificates/preview.php)
-+ [templates/certificates/template.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/certificates/template.php)
-+ [templates/checkout/form-switch-source.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/checkout/form-switch-source.php)
-+ [templates/content-certificate.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/content-certificate.php)
-+ [templates/emails/footer.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/emails/footer.php)
-+ [templates/emails/header.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/emails/header.php)
-+ [templates/myaccount/my-grades-single-table.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/myaccount/my-grades-single-table.php)
-+ [templates/myaccount/view-order-actions.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/myaccount/view-order-actions.php)
-+ [templates/myaccount/view-order-information.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/myaccount/view-order-information.php)
-+ [templates/myaccount/view-order-transactions.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/myaccount/view-order-transactions.php)
-+ [templates/myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/myaccount/view-order.php)
-+ [templates/product/pricing-table.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/product/pricing-table.php)
-+ [templates/single-certificate.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-rc.1/templates/single-certificate.php)
-
-
-v6.0.0-beta.2 - 2022-02-22
---------------------------
-
-##### New Features
-
-+ Added a link to return to the student dashboard when viewing an awarded certificate. [#1959](https://github.com/gocodebox/lifterlms/issues/1959)
-+ The block editor is now enabled by default for certificates when using WordPress versions 5.8 and later.
- + Existing certificates are marked as "legacy" and will continue to use the classic editor until migrated.
- + To migrate a certificate, click the "Migrate Certificate" button. This will force the certificate's content into blocks.
-+ A number of new settings are available to certificates when using the block editor:
- + Set the certificate's display (and print) size using common paper sizes such as US Letter, US Legal, A3, A4, and more.
- + Set the certificate's display orientation: portrait of landscape.
- + Set the certificate's inner margins.
- + Set the certificate's background color.
-+ A new block, the Certificate Title Block, has been made available to certificates.
- + The block works like a WordPress core Heading Block with added options for selecting from a few display fonts (provided by Google Web Fonts).
- + The block controls the title of awarded certificates.
-+ + Added the ability to sync awarded certificates with the template used to generate them. [#1078](https://github.com/gocodebox/lifterlms/issues/1078)
-+ The `post_name` of earned certificate posts will be generated with a randomized 3+ character string in favor of relying on sequential numbers.
-+ Added the ability for administrators and LMS managers to edit earned certificates/achievements from the students reporting screen, as well as award new certificates/achievements to students.
-+ + Added certificate global options for the default size of new certificates and certificate templates.
-+ Certificate and email template merge code buttons now include [llms-user] information shortcodes.
-+ Added certificate sequential ID functionality merge code. [Read more](@TODO).
-
-##### Updates and Enhancements
-
-+ Added pagination to achievement and certificate reporting pages.
-+ Certificates no longer use the `header.php` and `footer.php` files from the site's theme, instead custom templates (`templates/certificates/header.php` and `templates/certificates/footer.php`) are used instead. These templates are minimal and exclude theme wrappers which reduces the visual conflicts encountered from theme wrappers, backgrounds, and more, especially when printing certificates. [#463](https://github.com/gocodebox/lifterlms/issues/463)
-+ The achievements and certificates dashboard endpoints are now paginated. [#669](https://github.com/gocodebox/lifterlms/issues/669)
-+ Added new default images for use with achievements and certificates.
- + The site-wide default images can be customized on the admin panel under Settings -> Engagements.
- + The old default images can be used by filtering `llms_use_legacy_engagement_images`. [#1081](https://github.com/gocodebox/lifterlms/issues/1081)
-+ The URL of earned user certificates has been changed from "my_certificate" to "certificate". Requests to the old url are automatically redirected to the new url, including instances where the URL slug has been translated.
-+ The URL of certificate template previews has been changed from "certificate" to "certificate-template".
-+ The certificate merge code, `{first_name}`, now outputs an empty string in favor of falling back to the user's nickname when there is no first name for the user. [#1640](https://github.com/gocodebox/lifterlms/issues/1640)
-+ Updates LifterLMS REST to [v1.0.0-beta.22](https://make.lifterlms.com/2021/12/15/lifterlms-rest-api-version-1-0-0-beta-22/).
-+ The look and behavior of the certificate {{MINI_CERTIFICATE}} pop-over notification merge code now displays a placeholder preview of the certificate in favor of attempting to render a tiny version of the actual certificate. [#1950](https://github.com/gocodebox/lifterlms/issues/1950)
-
-##### Bug Fixes
-
-+ + Fixed how the protected `LLMS_Notifications_Query::$found_results` property is accessed in `LLMS_Abstract_Notification_Controller::has_subscriber_received()`. + Fixed how the protected `LLMS_Notifications_Query::$max_pages` property is accessed in `lifterlms_template_student_dashboard_my_notifications()`.
-+ Delayed engagements are automatically unscheduled when the related post is deleted.
-+ Prior to sending a delayed engagement the recipient's enrollment in the related post is verified resulting the engagement not being triggered if the recipient's enrollment has been terminated. [#290](https://github.com/gocodebox/lifterlms/issues/290)
-+ A disabled student dashboard endpoint will no longer display the endpoint's summary on the main dashboard page. [#535](https://github.com/gocodebox/lifterlms/issues/535)
-+ Post search filter boxes on various post tables will now longer display a link to the selected post.
-+ Basic notification code is no longer loaded on the admin panel.
-
-##### Deprecations
-
-+ Public access to properties of the abstract `LLMS_Database_Query` has been deprecated.
- + Public access to class property `LLMS_Database_Query::$found_results`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_found_results()`.
- + Public access to class property `LLMS_Database_Query::$max_pages`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_max_pages()`.
- + Public access to class property `LLMS_Database_Query::$number_results`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_number_results()`.
- + Public access to class property `LLMS_Database_Query::$results`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_results()`.
- + Public access to class property `LLMS_Database_Query::$query_vars`. The variable as a whole cannot be publicly accessed, instead use `LLMS_Database_Query::get()` and `LLMS_Database_Query::set()` to read and write to the array.
- + The above changes were made to the abstract class `LLMS_Database_Query` but the following concrete classes that utilize the abstract are also affected by this change: `LLMS_Query_User_Postmeta`, `LLMS_Student_Query`, `LLMS_Query_Quiz_Attempt`, `LLMS_Events_Query`, and `LLMS_Notifications_Query`.
-+ Class `LLMS_Achievement_User` is deprecated with no direct replacement.
- + Method `LLMS_Achievement::is_enabled()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_blogname()` is deprecated with no replacement.
- + Method `LLMS_Achievement::format_string()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_title()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_content()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Achievement::create()` is deprecated with no replacement.
-+ Method `LLMS_Achievements::trigger_engagement()` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement()`.
-+ Class `LLMS_Certificate` is deprecated with no direct replacement.
- + Method `LLMS_Certificate::is_enabled()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_blogname()` is deprecated with no replacement.
- + Method `LLMS_Certificate::format_string()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_title()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_content()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_title()` is deprecated with no replacement.
-+ Method `LLMS_Certificates::trigger_engagement()` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate()`.
-+ Method `LLMS_Engagements::init()` is deprecated with no replacement.
-+ Method `LLMS_Engagements::handle_achievement` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement`.
-+ Method `LLMS_Engagements::handle_certificate` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate`.
-+ Method `LLMS_Engagements::handle_email` is deprecated in favor of `LLMS_Engagement_Handler::handle_email`.
-+ Method `LLMS_Database_Query::set_found_results()` is deprecated.
-+ Class `LLMS_Achievement_User` is deprecated with no direct replacement.
- + Method `LLMS_Achievement_User::has_user_earned()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::init()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::trigger()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::get_content_html()` is deprecated with no replacement.
-+ Class `LLMS_Certificate_User` is deprecated with no direct replacement.
- + Method `LLMS_Certificate_User::init()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::trigger()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::set_shortcode_user()` is deprecated with no replacement.
-+ Engagement debug logging is removed. Use `llms_log()` directly instead.
-+ Filter `llms_db_query_get_default_args` is deprecated in favor of `llms_{$this->id}_query_get_default_args`.
-+ Filter `llms_certificate_has_user_earned` is deprecated in favor of `llms_earned_certificate_dupcheck`.
-+ Unused public class property `LLMS_Achievements::$content` is deprecated with no replacement.
-+ Method `LLMS_Admin_Post_Types::meta_metabox_init()` is deprecated with no replacement.
-+ The site options `lifterlms_certificate_bg_img_width`, `lifterlms_certificate_bg_img_height`, and `lifterlms_certificate_legacy_image_size` are now used only for certificates and certificate templates created using the classic editor.
- + The settings, found on the Engagements Settings screen, are hidden by default.
- + During the database upgrade from versions earlier than 6.x, an site option, `llms_has_legacy_certificates` is added when at least one certificate is found. This option will display the settings so they can continue to be used for legacy certificates.
- + After migrating all certificates on a site, the settings will still display. In order to remove them from the screen a developer can either delete the option `llms_has_legacy_certificates` or return `false` from the filter `llms_has_legacy_certificates`.
-+ Method `LLMS_Engagements::handle_certificate` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate`. [#290](https://github.com/gocodebox/lifterlms/issues/290)
-+ Method `LLMS_Engagements::handle_achievement` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement`. [#290](https://github.com/gocodebox/lifterlms/issues/290)
-+ The constant `LLMS_ENGAGEMENT_DEBUG` is deprecated with no replacement.
-+ Engagement debugging via `LLMS_Engagements::log` is deprecated. Use `llms_log()` instead.
-+ Method `LLMS_Engagements::handle_email` is deprecated in favor of `LLMS_Engagement_Handler::handle_email`.
-+ Filter `lifterlms_register_post_type_llms_my_certificate` is deprecated in favor of `lifterlms_register_post_type_my_certificate`.
-+ Deprecated the misspelled protected method `LLMS_Database_Query::preprare_query()` and replaced with `LLMS_Database_Query::prepare_query()`.
- + Class method `LLMS_Events_Query::preprare_query` replaced with `LLMS_Events_Query::prepare_query()`.
- + Class method `LLMS_Query_Quiz_Attempt::preprare_query` replaced with `LLMS_Query_Quiz_Attempt::prepare_query()`.
- + Class method `LLMS_Query_User_Postmeta::preprare_query` replaced with `LLMS_Query_User_Postmeta::prepare_query()`.
- + Class method `LLMS_Student_Query::preprare_query` replaced with `LLMS_Student_Query::prepare_query()`.
- + Class method `LLMS_Notifications_Query::preprare_query` replaced with `LLMS_Notifications_Query::prepare_query()`.
- + Class method `LLMS_Notifications_Query::preprare_query` replaced with `LLMS_Notifications_Query::prepare_query()`. [#859](https://github.com/gocodebox/lifterlms/issues/859)
-
-##### Breaking Changes
-
-+ Removed FSE template: `templates/block-templates/single-certificate.html`.
-+ Removed the deprecated `LLMS()` function in favor of the `llms()` function.
-+ Removed the deprecated the `LLMS_SendWP::do_remote_install()` method in favor of the `LLMS_Abstract_Email_Provider::do_remote_install()` method.
-+ Removed the deprecated `LLMS_Abstract_Email_Provider::output_css()` method.
-+ Removed the deprecated `LLMS_Abstract_Generator_Posts::increment()` method.
-+ Removed the deprecated `LLMS_Admin_Users_Table::load_dependencies()` method.
-+ Removed the deprecated `LLMS_Admin_Import::localize_stat()` method.
-+ Removed the deprecated `LLMS_Admin_Notices_Core::check_staging()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::generator_course_status()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::output_step_html()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::scripts()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::watch_course_generation()` method.
-+ Removed the deprecated `llms_format_decimal()` function.
-+ Removed the deprecated `llms_set_person_auth_cookie()` function.
-+ Removed the deprecated `LLMS_Course::sections` property.
-+ Removed the deprecated `LLMS_Course::sku` property.
-+ Removed the deprecated `LLMS_Frontend_Assets::enqueue_inline_pw_script()` method.
-+ Removed the deprecated `LLMS_Frontend_Assets::enqueue_inline_script()` method.
-+ Removed the deprecated `LLMS_Frontend_Assets::is_inline_script_enqueued()` method.
-+ Removed the deprecated `LLMS_Generator::add_custom_values()` method.
-+ Removed the deprecated `LLMS_Generator::add_custom_values()` method.
-+ Removed the deprecated `LLMS_Generator::format_date()` method.
-+ Removed the deprecated `LLMS_Generator::get_author_id_from_raw()` method.
-+ Removed the deprecated `LLMS_Generator::get_default_post_status()` method.
-+ Removed the deprecated `LLMS_Generator::get_generated_posts()` method.
-+ Removed the deprecated `LLMS_Generator::increment()` method.
-+ Removed the deprecated `llms__created` action hook from the `LLMS_Abstract_Database_Store::create()` method.
-+ Removed the deprecated `llms__deleted` action hook from the `LLMS_Abstract_Database_Store::delete()` method.
-+ Removed the deprecated `llms__updated` action hook from the `LLMS_Abstract_Database_Store::update()` method.
-+ Removed the deprecated `llms_user_removed_from_membership_level` action hook from the `LLMS_Student::unenroll()` method.
-+ Removed the deprecated and misspelled `$purchaseable` global variable in the `lifterlms_template_pricing_table()` function.
-+ Removed the deprecated and misspelled `$purchaseable` global variable in the `templates/product/pricing-table.php` file.
-+ Removed the deprecated `LLMS_Frontend_Password` class.
-+ Removed the deprecated `LLMS_Install::db_updates()` method.
-+ Removed the deprecated `LLMS_Install::update_notice()` method.
-+ Removed the deprecated `LLMS_Notifications::dispatch_processors()` method.
-+ Removed the deprecated `llms_processors_async_dispatching` filter hook from the `LLMS_Notifications::__construct()` method.
-+ Removed the deprecated `LLMS_Notifications::$_instance` property.
-+ Removed the deprecated `LLMS_Person_Handler::register()` method.
-+ Removed the deprecated `LLMS_Person_Handler::sanitize_field()` method.
-+ Removed the deprecated `LLMS_Person_Handler::update()` method.
-+ Removed the deprecated `LLMS_Person_Handler::validate_fields()` method.
-+ Removed the deprecated `LLMS_Person_Handler::voucher_toggle_script()` method.
-+ Removed the deprecated `templates/admin/notices/db-update.php` file.
-+ Removed the deprecated `templates/admin/notices/db-updating.php` file.
-+ Removed the deprecated `llms_usernames_blacklist` filter hook in the `llms_get_usernames_blocklist()` function.
-+ Removed the deprecated `includes/libraries/wp-background-processing/index.php` file.
-+ Removed the deprecated `includes/libraries/wp-background-processing/wp-async-request.php` file.
-+ Removed the deprecated `includes/libraries/wp-background-processing/wp-background-process.php` file.
-+ Removed the deprecated `LLMS_Section::get_next_available_lesson_order()` method.
-+ Removed the deprecated `LLMS_Section::get_order()` method.
-+ Removed the deprecated `LLMS_Section::get_parent_course()` method.
-+ Removed the deprecated `LLMS_Section::set_parent_course()` method.
-+ Removed the deprecated `LLMS_AJAX::check_voucher_duplicate()` method.
-+ Removed the deprecated `LLMS_AJAX::get_ajax_data()` method.
-+ Removed the deprecated `LLMS_AJAX::register_script()` method.
-+ Removed the deprecated `LLMS_Interface_Post_Audio` interface.
-+ Removed the deprecated `LLMS_Interface_Post_Sales_Page` interface.
-+ Removed the deprecated `LLMS_Interface_Post_Video` interface.
-+ Removed the deprecated `LLMS_Achievements::$_instance` property.
-+ Removed the deprecated `LLMS_Certificates::$_instance` property.
-+ Removed the deprecated `LLMS_Emails::$_instance` property.
-+ Removed the deprecated `LLMS_Engagements::$_instance` property.
-+ Removed the deprecated `LLMS_Events::$_instance` property.
-+ Removed the deprecated `LLMS_Grades::$_instance` property.
-+ Removed the deprecated `LLMS_Integrations::$_instance` property.
-+ Removed the deprecated `LLMS_Payment_Gateways::$_instance` property.
-+ Removed the deprecated `LLMS_Processors::$_instance` property.
-+ Removed the deprecated `LLMS_Sessions::$_instance` property.
-
-##### Developer Notes
-
-+ Added `LLMS_Awards_Query`, used for querying data about awarded certificates and achievements.
- + The method signature `LLMS_Student::get_achievements()` and `LLMS_Student::get_certificates()` now use this class under tho hood.
- + The previous method signature, which passed data into a direct SQL query, is now deprecated.
-+ Achievement and certificate data storage locations have been modified, primarily to reduce reliance on the `wp_postmeta` table which will result in a site-wide performance improvement, especially on large sites.
- + Meta properties `_llms_achievement_content` and `_llms_certificate_content` have been removed in favor of `WP_Post::$post_content`.
- + Meta properties `_llms_achievement_title` and `_llms_certificate_title` have been removed in favor of `WP_Post::$post_title`.
- + Meta properties `_llms_achievement_template` and `_llms_certificate_template` have been removed in favor of `WP_Post::$post_parent`.
- + Meta properties `_llms_achievement_image` and `_llms_certificate_image` have been moved the meta property `_thumbnail_id` in order to utilize the WordPress core's featured image functionality and internal APIs.
-+ Reliance on `lifterlms_user_postmeta` for achievement and certificate data will be removed in a future release.
- + User postmeta properties `_achievement_earned` and `_certificate_earned` will continue to be recorded but are no longer being used internally.
- + The `updated_date` is now accessible via `WP_Post::$post_date`.
- + The `user_id` is now accessible via `WP_Post::$post_author`.
-+ Added new Javascript UI components library, modeled after `@wordpress/components`. [Read more](https://github.com/gocodebox/lifterlms/tree/dev-600/packages/components).
-+ Added a new SVG icon library, modeled after `@wordpress/icons`. [Read more](https://github.com/gocodebox/lifterlms/tree/dev-600/packages/icons).
-+ The merge code button seen on certificate and email template editors is now an SVG image instead of a PNG.
-+ Added utility function for escaping and quoting strings. [#1027](https://github.com/gocodebox/lifterlms/issues/1027)
-+ Added new utility function for stripping prefixes from strings.
-
-##### Performance Improvements
-
-+ Increased the number of files that are autoloaded instead of manually loaded.
-
-##### Updated Templates
-
-+ [templates/achievements/loop.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/achievements/loop.php)
-+ [templates/achievements/template.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/achievements/template.php)
-+ [templates/admin/notices/db-update.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/admin/notices/db-update.php)
-+ [templates/admin/notices/db-updating.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/admin/notices/db-updating.php)
-+ [templates/admin/reporting/reporting.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/admin/reporting/reporting.php)
-+ [templates/admin/reporting/tabs/courses/overview.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/admin/reporting/tabs/courses/overview.php)
-+ [templates/admin/reporting/tabs/memberships/overview.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/admin/reporting/tabs/memberships/overview.php)
-+ [templates/admin/reporting/tabs/quizzes/overview.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/admin/reporting/tabs/quizzes/overview.php)
-+ [templates/admin/reporting/tabs/students/information.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/admin/reporting/tabs/students/information.php)
-+ [templates/block-templates/archive-course.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/block-templates/archive-course.html)
-+ [templates/block-templates/archive-llms_membership.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/block-templates/archive-llms_membership.html)
-+ [templates/block-templates/single-no-access.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/block-templates/single-no-access.html)
-+ [templates/block-templates/taxonomy-course_cat.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/block-templates/taxonomy-course_cat.html)
-+ [templates/block-templates/taxonomy-course_difficulty.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/block-templates/taxonomy-course_difficulty.html)
-+ [templates/block-templates/taxonomy-course_tag.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/block-templates/taxonomy-course_tag.html)
-+ [templates/block-templates/taxonomy-course_track.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/block-templates/taxonomy-course_track.html)
-+ [templates/block-templates/taxonomy-membership_cat.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/block-templates/taxonomy-membership_cat.html)
-+ [templates/block-templates/taxonomy-membership_tag.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/block-templates/taxonomy-membership_tag.html)
-+ [templates/certificates/actions.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/certificates/actions.php)
-+ [templates/certificates/content-legacy.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/certificates/content-legacy.php)
-+ [templates/certificates/content.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/certificates/content.php)
-+ [templates/certificates/dynamic-styles.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/certificates/dynamic-styles.php)
-+ [templates/certificates/footer.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/certificates/footer.php)
-+ [templates/certificates/header.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/certificates/header.php)
-+ [templates/certificates/loop.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/certificates/loop.php)
-+ [templates/certificates/preview.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/certificates/preview.php)
-+ [templates/certificates/template.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/certificates/template.php)
-+ [templates/checkout/form-confirm-payment.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/checkout/form-confirm-payment.php)
-+ [templates/checkout/form-switch-source.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/checkout/form-switch-source.php)
-+ [templates/content-certificate.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/content-certificate.php)
-+ [templates/course/lesson-navigation.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/course/lesson-navigation.php)
-+ [templates/course/lesson-preview.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/course/lesson-preview.php)
-+ [templates/course/parent-course.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/course/parent-course.php)
-+ [templates/emails/footer.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/emails/footer.php)
-+ [templates/emails/header.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/emails/header.php)
-+ [templates/loop-main.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/loop-main.php)
-+ [templates/loop.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/loop.php)
-+ [templates/myaccount/my-grades-single-table.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/myaccount/my-grades-single-table.php)
-+ [templates/myaccount/view-order-actions.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/myaccount/view-order-actions.php)
-+ [templates/myaccount/view-order-information.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/myaccount/view-order-information.php)
-+ [templates/myaccount/view-order-transactions.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/myaccount/view-order-transactions.php)
-+ [templates/myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/myaccount/view-order.php)
-+ [templates/product/pricing-table.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/product/pricing-table.php)
-+ [templates/quiz/questions/content-picture_choice.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/quiz/questions/content-picture_choice.php)
-+ [templates/quiz/results.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/quiz/results.php)
-+ [templates/single-certificate.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.2/templates/single-certificate.php)
-
-
-v5.10.0 - 2022-02-22
---------------------
-
-##### Updates and Enhancements
-
-+ Added an option to specify a custom checkout form title for free access plans. [#1774](https://github.com/gocodebox/lifterlms/issues/1774)
-+ Updated LifterLMS Blocks to [v2.3.2](https://make.lifterlms.com/2022/02/22/lifterlms-blocks-version-2-3-2/). [#1774](https://github.com/gocodebox/lifterlms/issues/1774)
-
-##### Bug Fixes
-
-+ Fixed ability to sort course students table by completed date. [#1969](https://github.com/gocodebox/lifterlms/issues/1969)
-+ Fixed reporting issue encountered when a course has no lessons. [#2012](https://github.com/gocodebox/lifterlms/issues/2012)
-+ Fixed broken checkout on Twenty Twenty-Two Theme when using the password strength meter. [#1997](https://github.com/gocodebox/lifterlms/issues/1997)
-+ Fixed block template slug generation from path in Windows environments. [#2001](https://github.com/gocodebox/lifterlms/issues/2001)
-+ Fixed an issue encountered when using the search box on the voucher admin posts list screen. [#2005](https://github.com/gocodebox/lifterlms/issues/2005)
-
-##### Updated Templates
-
-+ [templates/admin/reporting/tabs/courses/overview.php](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/admin/reporting/tabs/courses/overview.php)
-+ [templates/admin/reporting/tabs/memberships/overview.php](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/admin/reporting/tabs/memberships/overview.php)
-+ [templates/admin/reporting/tabs/quizzes/overview.php](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/admin/reporting/tabs/quizzes/overview.php)
-+ [templates/block-templates/archive-course.html](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/block-templates/archive-course.html)
-+ [templates/block-templates/archive-llms_membership.html](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/block-templates/archive-llms_membership.html)
-+ [templates/block-templates/single-certificate.html](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/block-templates/single-certificate.html)
-+ [templates/block-templates/single-no-access.html](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/block-templates/single-no-access.html)
-+ [templates/block-templates/taxonomy-course_cat.html](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/block-templates/taxonomy-course_cat.html)
-+ [templates/block-templates/taxonomy-course_difficulty.html](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/block-templates/taxonomy-course_difficulty.html)
-+ [templates/block-templates/taxonomy-course_tag.html](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/block-templates/taxonomy-course_tag.html)
-+ [templates/block-templates/taxonomy-course_track.html](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/block-templates/taxonomy-course_track.html)
-+ [templates/block-templates/taxonomy-membership_cat.html](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/block-templates/taxonomy-membership_cat.html)
-+ [templates/block-templates/taxonomy-membership_tag.html](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/block-templates/taxonomy-membership_tag.html)
-+ [templates/checkout/form-confirm-payment.php](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/checkout/form-confirm-payment.php)
-+ [templates/course/lesson-navigation.php](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/course/lesson-navigation.php)
-+ [templates/course/lesson-preview.php](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/course/lesson-preview.php)
-+ [templates/course/parent-course.php](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/course/parent-course.php)
-+ [templates/loop-main.php](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/loop-main.php)
-+ [templates/loop.php](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/loop.php)
-+ [templates/myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/myaccount/view-order.php)
-+ [templates/quiz/questions/content-picture_choice.php](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/quiz/questions/content-picture_choice.php)
-+ [templates/quiz/results.php](https://github.com/gocodebox/lifterlms/blob/5.10.0/templates/quiz/results.php)
-
-
-v6.0.0-beta.1 - 2022-02-16
---------------------------
-
-##### New Features
-
-+ Added a link to return to the student dashboard when viewing an awarded certificate. [#1959](https://github.com/gocodebox/lifterlms/issues/1959)
-+ The block editor is now enabled by default for certificates when using WordPress versions 5.8 and later.
- + Existing certificates are marked as "legacy" and will continue to use the classic editor until migrated.
- + To migrate a certificate, click the "Migrate Certificate" button. This will force the certificate's content into blocks.
-+ A number of new settings are available to certificates when using the block editor:
- + Set the certificate's display (and print) size using common paper sizes such as US Letter, US Legal, A3, A4, and more.
- + Set the certificate's display orientation: portrait of landscape.
- + Set the certificate's inner margins.
- + Set the certificate's background color.
-+ A new block, the Certificate Title Block, has been made available to certificates.
- + The block works like a WordPress core Heading Block with added options for selecting from a few display fonts (provided by Google Web Fonts).
- + The block controls the title of awarded certificates.
-+ + Added the ability to sync awarded certificates with the template used to generate them. [#1078](https://github.com/gocodebox/lifterlms/issues/1078)
-+ The `post_name` of earned certificate posts will be generated with a randomized 3+ character string in favor of relying on sequential numbers.
-+ Added the ability for administrators and LMS managers to edit earned certificates/achievements from the students reporting screen, as well as award new certificates/achievements to students.
-+ + Added certificate global options for the default size of new certificates and certificate templates.
-+ Certificate and email template merge code buttons now include `[llms-user]` information shortcodes.
-+ Added certificate sequential ID functionality merge code.
-
-##### Updates and Enhancements
-
-+ Added pagination to achievement and certificate reporting pages.
-+ Certificates no longer use the `header.php` and `footer.php` files from the site's theme, instead custom templates (`templates/certificates/header.php` and `templates/certificates/footer.php`) are used instead. These templates are minimal and exclude theme wrappers which reduces the visual conflicts encountered from theme wrappers, backgrounds, and more, especially when printing certificates. [#463](https://github.com/gocodebox/lifterlms/issues/463)
-+ The achievements and certificates dashboard endpoints are now paginated. [#669](https://github.com/gocodebox/lifterlms/issues/669)
-+ Added new default images for use with achievements and certificates.
- + The site-wide default images can be customized on the admin panel under Settings -> Engagements.
- + The old default images can be used by filtering `llms_use_legacy_engagement_images`. [#1081](https://github.com/gocodebox/lifterlms/issues/1081)
-+ The URL of earned user certificates has been changed from "my_certificate" to "certificate". Requests to the old url are automatically redirected to the new url, including instances where the URL slug has been translated.
-+ The URL of certificate template previews has been changed from "certificate" to "certificate-template".
-+ The certificate merge code, `{first_name}`, now outputs an empty string in favor of falling back to the user's nickname when there is no first name for the user. [#1640](https://github.com/gocodebox/lifterlms/issues/1640)
-+ Updates LifterLMS REST to [v1.0.0-beta.22](https://make.lifterlms.com/2021/12/15/lifterlms-rest-api-version-1-0-0-beta-22/).
-+ The look and behavior of the certificate {{MINI_CERTIFICATE}} pop-over notification merge code now displays a placeholder preview of the certificate in favor of attempting to render a tiny version of the actual certificate. [#1950](https://github.com/gocodebox/lifterlms/issues/1950)
-
-##### Bug Fixes
-
-+ + Fixed how the protected `LLMS_Notifications_Query::$found_results` property is accessed in `LLMS_Abstract_Notification_Controller::has_subscriber_received()`. + Fixed how the protected `LLMS_Notifications_Query::$max_pages` property is accessed in `lifterlms_template_student_dashboard_my_notifications()`.
-+ Delayed engagements are automatically unscheduled when the related post is deleted.
-+ Prior to sending a delayed engagement the recipient's enrollment in the related post is verified resulting the engagement not being triggered if the recipient's enrollment has been terminated. [#290](https://github.com/gocodebox/lifterlms/issues/290)
-+ A disabled student dashboard endpoint will no longer display the endpoint's summary on the main dashboard page. [#535](https://github.com/gocodebox/lifterlms/issues/535)
-+ Post search filter boxes on various post tables will now longer display a link to the selected post.
-+ Basic notification code is no longer loaded on the admin panel.
-
-##### Deprecations
-
-+ Public access to properties of the abstract `LLMS_Database_Query` has been deprecated.
- + Public access to class property `LLMS_Database_Query::$found_results`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_found_results()`.
- + Public access to class property `LLMS_Database_Query::$max_pages`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_max_pages()`.
- + Public access to class property `LLMS_Database_Query::$number_results`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_number_results()`.
- + Public access to class property `LLMS_Database_Query::$results`. The property is no longer publicly writable but can be read via `LLMS_Database_Query::get_results()`.
- + Public access to class property `LLMS_Database_Query::$query_vars`. The variable as a whole cannot be publicly accessed, instead use `LLMS_Database_Query::get()` and `LLMS_Database_Query::set()` to read and write to the array.
- + The above changes were made to the abstract class `LLMS_Database_Query` but the following concrete classes that utilize the abstract are also affected by this change: `LLMS_Query_User_Postmeta`, `LLMS_Student_Query`, `LLMS_Query_Quiz_Attempt`, `LLMS_Events_Query`, and `LLMS_Notifications_Query`.
-+ Class `LLMS_Achievement_User` is deprecated with no direct replacement.
- + Method `LLMS_Achievement::is_enabled()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_blogname()` is deprecated with no replacement.
- + Method `LLMS_Achievement::format_string()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_title()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_content()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Achievement::create()` is deprecated with no replacement.
-+ Method `LLMS_Achievements::trigger_engagement()` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement()`.
-+ Class `LLMS_Certificate` is deprecated with no direct replacement.
- + Method `LLMS_Certificate::is_enabled()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_blogname()` is deprecated with no replacement.
- + Method `LLMS_Certificate::format_string()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_title()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_content()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_title()` is deprecated with no replacement.
-+ Method `LLMS_Certificates::trigger_engagement()` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate()`.
-+ Method `LLMS_Engagements::init()` is deprecated with no replacement.
-+ Method `LLMS_Engagements::handle_achievement` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement`.
-+ Method `LLMS_Engagements::handle_certificate` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate`.
-+ Method `LLMS_Engagements::handle_email` is deprecated in favor of `LLMS_Engagement_Handler::handle_email`.
-+ Method `LLMS_Database_Query::set_found_results()` is deprecated.
-+ Class `LLMS_Achievement_User` is deprecated with no direct replacement.
- + Method `LLMS_Achievement_User::has_user_earned()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::init()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::trigger()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::get_content_html()` is deprecated with no replacement.
-+ Class `LLMS_Certificate_User` is deprecated with no direct replacement.
- + Method `LLMS_Certificate_User::init()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::trigger()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::set_shortcode_user()` is deprecated with no replacement.
-+ Engagement debug logging is removed. Use `llms_log()` directly instead.
-+ Filter `llms_db_query_get_default_args` is deprecated in favor of `llms_{$this->id}_query_get_default_args`.
-+ Filter `llms_certificate_has_user_earned` is deprecated in favor of `llms_earned_certificate_dupcheck`.
-+ Unused public class property `LLMS_Achievements::$content` is deprecated with no replacement.
-+ Method `LLMS_Admin_Post_Types::meta_metabox_init()` is deprecated with no replacement.
-+ The site options `lifterlms_certificate_bg_img_width`, `lifterlms_certificate_bg_img_height`, and `lifterlms_certificate_legacy_image_size` are now used only for certificates and certificate templates created using the classic editor.
- + The settings, found on the Engagements Settings screen, are hidden by default.
- + During the database upgrade from versions earlier than 6.x, an site option, `llms_has_legacy_certificates` is added when at least one certificate is found. This option will display the settings so they can continue to be used for legacy certificates.
- + After migrating all certificates on a site, the settings will still display. In order to remove them from the screen a developer can either delete the option `llms_has_legacy_certificates` or return `false` from the filter `llms_has_legacy_certificates`.
-+ Method `LLMS_Engagements::handle_certificate` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate`. [#290](https://github.com/gocodebox/lifterlms/issues/290)
-+ Method `LLMS_Engagements::handle_achievement` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement`. [#290](https://github.com/gocodebox/lifterlms/issues/290)
-+ The constant `LLMS_ENGAGEMENT_DEBUG` is deprecated with no replacement.
-+ Engagement debugging via `LLMS_Engagements::log` is deprecated. Use `llms_log()` instead.
-+ Method `LLMS_Engagements::handle_email` is deprecated in favor of `LLMS_Engagement_Handler::handle_email`.
-+ Filter `lifterlms_register_post_type_llms_my_certificate` is deprecated in favor of `lifterlms_register_post_type_my_certificate`.
-+ Deprecated the misspelled protected method `LLMS_Database_Query::preprare_query()` and replaced with `LLMS_Database_Query::prepare_query()`.
- + Class method `LLMS_Events_Query::preprare_query` replaced with `LLMS_Events_Query::prepare_query()`.
- + Class method `LLMS_Query_Quiz_Attempt::preprare_query` replaced with `LLMS_Query_Quiz_Attempt::prepare_query()`.
- + Class method `LLMS_Query_User_Postmeta::preprare_query` replaced with `LLMS_Query_User_Postmeta::prepare_query()`.
- + Class method `LLMS_Student_Query::preprare_query` replaced with `LLMS_Student_Query::prepare_query()`.
- + Class method `LLMS_Notifications_Query::preprare_query` replaced with `LLMS_Notifications_Query::prepare_query()`.
- + Class method `LLMS_Notifications_Query::preprare_query` replaced with `LLMS_Notifications_Query::prepare_query()`. [#859](https://github.com/gocodebox/lifterlms/issues/859)
-
-##### Breaking Changes
-
-+ Removed FSE template: `templates/block-templates/single-certificate.html`.
-+ Removed the deprecated `LLMS()` function in favor of the `llms()` function.
-+ Removed the deprecated the `LLMS_SendWP::do_remote_install()` method in favor of the `LLMS_Abstract_Email_Provider::do_remote_install()` method.
-+ Removed the deprecated `LLMS_Abstract_Email_Provider::output_css()` method.
-+ Removed the deprecated `LLMS_Abstract_Generator_Posts::increment()` method.
-+ Removed the deprecated `LLMS_Admin_Users_Table::load_dependencies()` method.
-+ Removed the deprecated `LLMS_Admin_Import::localize_stat()` method.
-+ Removed the deprecated `LLMS_Admin_Notices_Core::check_staging()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::generator_course_status()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::output_step_html()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::scripts()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::watch_course_generation()` method.
-+ Removed the deprecated `llms_format_decimal()` function.
-+ Removed the deprecated `llms_set_person_auth_cookie()` function.
-+ Removed the deprecated `LLMS_Course::sections` property.
-+ Removed the deprecated `LLMS_Course::sku` property.
-+ Removed the deprecated `LLMS_Frontend_Assets::enqueue_inline_pw_script()` method.
-+ Removed the deprecated `LLMS_Frontend_Assets::enqueue_inline_script()` method.
-+ Removed the deprecated `LLMS_Frontend_Assets::is_inline_script_enqueued()` method.
-+ Removed the deprecated `LLMS_Generator::add_custom_values()` method.
-+ Removed the deprecated `LLMS_Generator::add_custom_values()` method.
-+ Removed the deprecated `LLMS_Generator::format_date()` method.
-+ Removed the deprecated `LLMS_Generator::get_author_id_from_raw()` method.
-+ Removed the deprecated `LLMS_Generator::get_default_post_status()` method.
-+ Removed the deprecated `LLMS_Generator::get_generated_posts()` method.
-+ Removed the deprecated `LLMS_Generator::increment()` method.
-+ Removed the deprecated `llms__created` action hook from the `LLMS_Abstract_Database_Store::create()` method.
-+ Removed the deprecated `llms__deleted` action hook from the `LLMS_Abstract_Database_Store::delete()` method.
-+ Removed the deprecated `llms__updated` action hook from the `LLMS_Abstract_Database_Store::update()` method.
-+ Removed the deprecated `llms_user_removed_from_membership_level` action hook from the `LLMS_Student::unenroll()` method.
-+ Removed the deprecated and misspelled `$purchaseable` global variable in the `lifterlms_template_pricing_table()` function.
-+ Removed the deprecated and misspelled `$purchaseable` global variable in the `templates/product/pricing-table.php` file.
-+ Removed the deprecated `LLMS_Frontend_Password` class.
-+ Removed the deprecated `LLMS_Install::db_updates()` method.
-+ Removed the deprecated `LLMS_Install::update_notice()` method.
-+ Removed the deprecated `LLMS_Notifications::dispatch_processors()` method.
-+ Removed the deprecated `llms_processors_async_dispatching` filter hook from the `LLMS_Notifications::__construct()` method.
-+ Removed the deprecated `LLMS_Notifications::$_instance` property.
-+ Removed the deprecated `LLMS_Person_Handler::register()` method.
-+ Removed the deprecated `LLMS_Person_Handler::sanitize_field()` method.
-+ Removed the deprecated `LLMS_Person_Handler::update()` method.
-+ Removed the deprecated `LLMS_Person_Handler::validate_fields()` method.
-+ Removed the deprecated `LLMS_Person_Handler::voucher_toggle_script()` method.
-+ Removed the deprecated `templates/admin/notices/db-update.php` file.
-+ Removed the deprecated `templates/admin/notices/db-updating.php` file.
-+ Removed the deprecated `llms_usernames_blacklist` filter hook in the `llms_get_usernames_blocklist()` function.
-+ Removed the deprecated `includes/libraries/wp-background-processing/index.php` file.
-+ Removed the deprecated `includes/libraries/wp-background-processing/wp-async-request.php` file.
-+ Removed the deprecated `includes/libraries/wp-background-processing/wp-background-process.php` file.
-+ Removed the deprecated `LLMS_Section::get_next_available_lesson_order()` method.
-+ Removed the deprecated `LLMS_Section::get_order()` method.
-+ Removed the deprecated `LLMS_Section::get_parent_course()` method.
-+ Removed the deprecated `LLMS_Section::set_parent_course()` method.
-+ Removed the deprecated `LLMS_AJAX::check_voucher_duplicate()` method.
-+ Removed the deprecated `LLMS_AJAX::get_ajax_data()` method.
-+ Removed the deprecated `LLMS_AJAX::register_script()` method.
-+ Removed the deprecated `LLMS_Interface_Post_Audio` interface.
-+ Removed the deprecated `LLMS_Interface_Post_Sales_Page` interface.
-+ Removed the deprecated `LLMS_Interface_Post_Video` interface.
-+ Removed the deprecated `LLMS_Achievements::$_instance` property.
-+ Removed the deprecated `LLMS_Certificates::$_instance` property.
-+ Removed the deprecated `LLMS_Emails::$_instance` property.
-+ Removed the deprecated `LLMS_Engagements::$_instance` property.
-+ Removed the deprecated `LLMS_Events::$_instance` property.
-+ Removed the deprecated `LLMS_Grades::$_instance` property.
-+ Removed the deprecated `LLMS_Integrations::$_instance` property.
-+ Removed the deprecated `LLMS_Payment_Gateways::$_instance` property.
-+ Removed the deprecated `LLMS_Processors::$_instance` property.
-+ Removed the deprecated `LLMS_Sessions::$_instance` property.
-
-##### Developer Notes
-
-+ Added `LLMS_Awards_Query`, used for querying data about awarded certificates and achievements.
- + The method signature `LLMS_Student::get_achievements()` and `LLMS_Student::get_certificates()` now use this class under tho hood.
- + The previous method signature, which passed data into a direct SQL query, is now deprecated.
-+ Achievement and certificate data storage locations have been modified, primarily to reduce reliance on the `wp_postmeta` table which will result in a site-wide performance improvement, especially on large sites.
- + Meta properties `_llms_achievement_content` and `_llms_certificate_content` have been removed in favor of `WP_Post::$post_content`.
- + Meta properties `_llms_achievement_title` and `_llms_certificate_title` have been removed in favor of `WP_Post::$post_title`.
- + Meta properties `_llms_achievement_template` and `_llms_certificate_template` have been removed in favor of `WP_Post::$post_parent`.
- + Meta properties `_llms_achievement_image` and `_llms_certificate_image` have been moved the meta property `_thumbnail_id` in order to utilize the WordPress core's featured image functionality and internal APIs.
-+ Reliance on `lifterlms_user_postmeta` for achievement and certificate data will be removed in a future release.
- + User postmeta properties `_achievement_earned` and `_certificate_earned` will continue to be recorded but are no longer being used internally.
- + The `updated_date` is now accessible via `WP_Post::$post_date`.
- + The `user_id` is now accessible via `WP_Post::$post_author`.
-+ Added new Javascript UI components library, modeled after `@wordpress/components`. [Read more](https://github.com/gocodebox/lifterlms/tree/dev-600/packages/components).
-+ Added a new SVG icon library, modeled after `@wordpress/icons`. [Read more](https://github.com/gocodebox/lifterlms/tree/dev-600/packages/icons).
-+ The merge code button seen on certificate and email template editors is now an SVG image instead of a PNG.
-+ Added utility function for escaping and quoting strings. [#1027](https://github.com/gocodebox/lifterlms/issues/1027)
-+ Added new utility function for stripping prefixes from strings.
-
-##### Performance Improvements
-
-+ Increased the number of files that are autoloaded instead of manually loaded.
-
-##### Updated Templates
-
-+ [templates/achievements/loop.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/achievements/loop.php)
-+ [templates/achievements/template.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/achievements/template.php)
-+ [templates/admin/notices/db-update.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/admin/notices/db-update.php)
-+ [templates/admin/notices/db-updating.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/admin/notices/db-updating.php)
-+ [templates/admin/reporting/reporting.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/admin/reporting/reporting.php)
-+ [templates/admin/reporting/tabs/courses/overview.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/admin/reporting/tabs/courses/overview.php)
-+ [templates/admin/reporting/tabs/memberships/overview.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/admin/reporting/tabs/memberships/overview.php)
-+ [templates/admin/reporting/tabs/quizzes/overview.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/admin/reporting/tabs/quizzes/overview.php)
-+ [templates/admin/reporting/tabs/students/information.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/admin/reporting/tabs/students/information.php)
-+ [templates/block-templates/archive-course.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/block-templates/archive-course.html)
-+ [templates/block-templates/archive-llms_membership.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/block-templates/archive-llms_membership.html)
-+ [templates/block-templates/single-no-access.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/block-templates/single-no-access.html)
-+ [templates/block-templates/taxonomy-course_cat.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/block-templates/taxonomy-course_cat.html)
-+ [templates/block-templates/taxonomy-course_difficulty.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/block-templates/taxonomy-course_difficulty.html)
-+ [templates/block-templates/taxonomy-course_tag.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/block-templates/taxonomy-course_tag.html)
-+ [templates/block-templates/taxonomy-course_track.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/block-templates/taxonomy-course_track.html)
-+ [templates/block-templates/taxonomy-membership_cat.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/block-templates/taxonomy-membership_cat.html)
-+ [templates/block-templates/taxonomy-membership_tag.html](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/block-templates/taxonomy-membership_tag.html)
-+ [templates/certificates/actions.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/certificates/actions.php)
-+ [templates/certificates/content-legacy.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/certificates/content-legacy.php)
-+ [templates/certificates/content.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/certificates/content.php)
-+ [templates/certificates/dynamic-styles.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/certificates/dynamic-styles.php)
-+ [templates/certificates/footer.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/certificates/footer.php)
-+ [templates/certificates/header.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/certificates/header.php)
-+ [templates/certificates/loop.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/certificates/loop.php)
-+ [templates/certificates/preview.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/certificates/preview.php)
-+ [templates/certificates/template.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/certificates/template.php)
-+ [templates/checkout/form-confirm-payment.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/checkout/form-confirm-payment.php)
-+ [templates/checkout/form-switch-source.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/checkout/form-switch-source.php)
-+ [templates/content-certificate.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/content-certificate.php)
-+ [templates/course/lesson-navigation.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/course/lesson-navigation.php)
-+ [templates/course/lesson-preview.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/course/lesson-preview.php)
-+ [templates/course/parent-course.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/course/parent-course.php)
-+ [templates/emails/footer.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/emails/footer.php)
-+ [templates/emails/header.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/emails/header.php)
-+ [templates/loop-main.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/loop-main.php)
-+ [templates/loop.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/loop.php)
-+ [templates/myaccount/my-grades-single-table.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/myaccount/my-grades-single-table.php)
-+ [templates/myaccount/view-order-actions.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/myaccount/view-order-actions.php)
-+ [templates/myaccount/view-order-information.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/myaccount/view-order-information.php)
-+ [templates/myaccount/view-order-transactions.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/myaccount/view-order-transactions.php)
-+ [templates/myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/myaccount/view-order.php)
-+ [templates/product/pricing-table.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/product/pricing-table.php)
-+ [templates/quiz/questions/content-picture_choice.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/quiz/questions/content-picture_choice.php)
-+ [templates/quiz/results.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/quiz/results.php)
-+ [templates/single-certificate.php](https://github.com/gocodebox/lifterlms/blob/6.0.0-beta.1/templates/single-certificate.php)
-
-
-v5.9.0 - 2022-02-15
--------------------
-
-##### Updates and Enhancements
-
-+ Picture choice questions are now organized using flexbox in favor of a float-powered column layout.
-+ Resolved PHP 8.1 deprecation warnings. [#1859](https://github.com/gocodebox/lifterlms/issues/1859)
-
-##### Bug Fixes
-
-+ Updated `llms_get_endpoint_url()` to better adhere to a site's permalink structure with regards to the presence of a trailing slash in the generated url. [#1983](https://github.com/gocodebox/lifterlms/issues/1983)
-+ Only allow users with `edit_post` capabilities to bypass content restrictions.
-+ Fixed stretched images in quiz description/questions when using the Twenty Twenty-Two theme. [#1976](https://github.com/gocodebox/lifterlms/issues/1976)
-
-##### Deprecations
-
-+ Method `LLMS_AJAX::check_voucher_duplicate()` is deprecated in favor of `LLMS_AJAX_HANDLER::check_voucher_duplicate()`.
-
-##### Updated Templates
-
-+ [templates/admin/reporting/tabs/courses/overview.php](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/admin/reporting/tabs/courses/overview.php)
-+ [templates/admin/reporting/tabs/memberships/overview.php](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/admin/reporting/tabs/memberships/overview.php)
-+ [templates/admin/reporting/tabs/quizzes/overview.php](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/admin/reporting/tabs/quizzes/overview.php)
-+ [templates/block-templates/archive-course.html](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/block-templates/archive-course.html)
-+ [templates/block-templates/archive-llms_membership.html](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/block-templates/archive-llms_membership.html)
-+ [templates/block-templates/single-certificate.html](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/block-templates/single-certificate.html)
-+ [templates/block-templates/single-no-access.html](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/block-templates/single-no-access.html)
-+ [templates/block-templates/taxonomy-course_cat.html](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/block-templates/taxonomy-course_cat.html)
-+ [templates/block-templates/taxonomy-course_difficulty.html](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/block-templates/taxonomy-course_difficulty.html)
-+ [templates/block-templates/taxonomy-course_tag.html](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/block-templates/taxonomy-course_tag.html)
-+ [templates/block-templates/taxonomy-course_track.html](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/block-templates/taxonomy-course_track.html)
-+ [templates/block-templates/taxonomy-membership_cat.html](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/block-templates/taxonomy-membership_cat.html)
-+ [templates/block-templates/taxonomy-membership_tag.html](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/block-templates/taxonomy-membership_tag.html)
-+ [templates/checkout/form-confirm-payment.php](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/checkout/form-confirm-payment.php)
-+ [templates/course/lesson-navigation.php](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/course/lesson-navigation.php)
-+ [templates/course/lesson-preview.php](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/course/lesson-preview.php)
-+ [templates/course/parent-course.php](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/course/parent-course.php)
-+ [templates/loop-main.php](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/loop-main.php)
-+ [templates/loop.php](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/loop.php)
-+ [templates/myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/myaccount/view-order.php)
-+ [templates/quiz/questions/content-picture_choice.php](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/quiz/questions/content-picture_choice.php)
-+ [templates/quiz/results.php](https://github.com/gocodebox/lifterlms/blob/5.9.0/templates/quiz/results.php)
-
-
-v6.0.0-alpha.4 - 2022-02-11
----------------------------
-
-##### Updates and Enhancements
-
-+ Removed usage of PHP features deprecated in PHP 8.1.
-+ Added a link to return to the student dashboard when viewing an awarded certificate.
-+ Allow block templates to be overridden from themes or plugins.
-+ Added a "Reset Certificate" button to restore certificates to the default template.
-+ Added links from achievement and certificate templates to view all awards generated from the template.
-+ Added the ability to sync achievements (sync all awards to the parent template and sync one award to it's parent).
-+ Improved class autoloading.
-
-##### Bug Fixes
-
-+ Fixed certificate print compatibility issues with the OceanWP and Genesis themes.
-+ Fixed custom font usage in the Certificate Title block to utilize WP Core functionality introduced in version 5.9.
-+ Fixed access to protected properties in the `LLMS_Notifications_Query` class.
-
-##### Breaking Changes
-
-+ Removed the Single Certificate block template.
-
-
-v5.8.0 - 2022-01-26
--------------------
-
-##### New Features
-
-+ Add theme support for the Twenty Twenty-Two theme. [#1824](https://github.com/gocodebox/lifterlms/issues/1824)
-+ Added WordPress Full Site Editing compatibility for various LifterLMS-powered templates.
-
-##### Updates and Enhancements
-
-+ The minimum required WordPress core version is now version 5.5.
-+ Tested against WordPress version 5.9.
-+ Updated LifterLMS Blocks: [v2.3.0](https://make.lifterlms.com/2022/01/25/lifterlms-blocks-version-2-3-0/), [v2.3.1](https://make.lifterlms.com/2022/01/26/lifterlms-blocks-version-2-3-1/).
-+ Remove the "description" registered with LifterLMS custom post types. [#710](https://github.com/gocodebox/lifterlms/issues/710)
-
-##### Updated Templates
-
-+ [templates/block-templates/archive-course.html](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/block-templates/archive-course.html)
-+ [templates/block-templates/archive-llms_membership.html](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/block-templates/archive-llms_membership.html)
-+ [templates/block-templates/single-certificate.html](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/block-templates/single-certificate.html)
-+ [templates/block-templates/single-no-access.html](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/block-templates/single-no-access.html)
-+ [templates/block-templates/taxonomy-course_cat.html](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/block-templates/taxonomy-course_cat.html)
-+ [templates/block-templates/taxonomy-course_difficulty.html](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/block-templates/taxonomy-course_difficulty.html)
-+ [templates/block-templates/taxonomy-course_tag.html](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/block-templates/taxonomy-course_tag.html)
-+ [templates/block-templates/taxonomy-course_track.html](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/block-templates/taxonomy-course_track.html)
-+ [templates/block-templates/taxonomy-membership_cat.html](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/block-templates/taxonomy-membership_cat.html)
-+ [templates/block-templates/taxonomy-membership_tag.html](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/block-templates/taxonomy-membership_tag.html)
-+ [templates/course/lesson-navigation.php](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/course/lesson-navigation.php)
-+ [templates/course/lesson-preview.php](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/course/lesson-preview.php)
-+ [templates/course/parent-course.php](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/course/parent-course.php)
-+ [templates/loop-main.php](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/loop-main.php)
-+ [templates/loop.php](https://github.com/gocodebox/lifterlms/blob/5.8.0/templates/loop.php)
-
-
-v6.0.0-alpha.3 - 2022-01-14
----------------------------
-
-##### Updates and Enhancements
-
-+ Automatically dequeue print-only stylesheets to reduce theme and plugin conflicts when printing certificates.
-+ Only enable the Certificate Title block font-family selector for WordPress 5.9 and later.
-+ Only enable the Block Editor for certificates on WordPress 5.8 and later.
-+ Replaced welcome message placeholder text with a real welcome message.
-
-##### Bug Fixes
-
-+ Explicitly define a default font-family ("default") for the Certificate Title block.
-+ Fixed visual issues encountered on certificates when resizing the browser window.
-+ Fixed issue with the certificate block template on WordPress 5.8 (divider blocks aren't centered by default).
-
-##### Breaking Changes
-
-+ Removed the deprecated `LLMS()` function in favor of the `llms()` function.
-+ Removed the deprecated `LLMS_SendWP::do_remote_install()` method in favor of the `LLMS_Abstract_Email_Provider::do_remote_install()` method.
-+ Removed the deprecated `LLMS_Abstract_Email_Provider::output_css()` method.
-+ Removed the deprecated `LLMS_Abstract_Generator_Posts::increment()` method.
-+ Removed the deprecated `LLMS_Admin_Users_Table::load_dependencies()` method.
-+ Removed the deprecated `LLMS_Admin_Import::localize_stat()` method.
-+ Removed the deprecated `LLMS_Admin_Notices_Core::check_staging()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::generator_course_status()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::output_step_html()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::scripts()` method.
-+ Removed the deprecated `LLMS_Admin_Setup_Wizard::watch_course_generation()` method.
-+ Removed the deprecated `llms_format_decimal()` function.
-+ Removed the deprecated `llms_set_person_auth_cookie()` function.
-+ Removed the deprecated `LLMS_Course::sections` property.
-+ Removed the deprecated `LLMS_Course::sku` property.
-+ Removed the deprecated `LLMS_Frontend_Assets::enqueue_inline_pw_script()` method.
-+ Removed the deprecated `LLMS_Frontend_Assets::enqueue_inline_script()` method.
-+ Removed the deprecated `LLMS_Frontend_Assets::is_inline_script_enqueued()` method.
-+ Removed the deprecated `LLMS_Generator::add_custom_values()` method.
-+ Removed the deprecated `LLMS_Generator::add_custom_values()` method.
-+ Removed the deprecated `LLMS_Generator::format_date()` method.
-+ Removed the deprecated `LLMS_Generator::get_author_id_from_raw()` method.
-+ Removed the deprecated `LLMS_Generator::get_default_post_status()` method.
-+ Removed the deprecated `LLMS_Generator::get_generated_posts()` method.
-+ Removed the deprecated `LLMS_Generator::increment()` method.
-+ Removed the deprecated `llms__created` action hook from the `LLMS_Abstract_Database_Store::create()` method.
-+ Removed the deprecated `llms__deleted` action hook from the `LLMS_Abstract_Database_Store::delete()` method.
-+ Removed the deprecated `llms__updated` action hook from the `LLMS_Abstract_Database_Store::update()` method.
-+ Removed the deprecated `llms_user_removed_from_membership_level` action hook from the `LLMS_Student::unenroll()` method.
-+ Removed the deprecated and misspelled `$purchaseable` global variable in the `lifterlms_template_pricing_table()` function.
-+ Removed the deprecated and misspelled `$purchaseable` global variable in the `templates/product/pricing-table.php` file.
-+ Removed the deprecated `LLMS_Frontend_Password` class.
-+ Removed the deprecated `LLMS_Install::db_updates()` method.
-+ Removed the deprecated `LLMS_Install::update_notice()` method.
-+ Removed the deprecated `LLMS_Notifications::dispatch_processors()` method.
-+ Removed the deprecated `llms_processors_async_dispatching` filter hook from the `LLMS_Notifications::__construct()` method.
-+ Removed the deprecated `LLMS_Notifications::$_instance` property.
-+ Removed the deprecated `LLMS_Person_Handler::register()` method.
-+ Removed the deprecated `LLMS_Person_Handler::sanitize_field()` method.
-+ Removed the deprecated `LLMS_Person_Handler::update()` method.
-+ Removed the deprecated `LLMS_Person_Handler::validate_fields()` method.
-+ Removed the deprecated `LLMS_Person_Handler::voucher_toggle_script()` method.
-+ Removed the deprecated `templates/admin/notices/db-update.php` file.
-+ Removed the deprecated `templates/admin/notices/db-updating.php` file.
-+ Removed the deprecated `llms_usernames_blacklist` filter hook in the `llms_get_usernames_blocklist()` function.
-+ Removed the deprecated `includes/libraries/wp-background-processing/index.php` file.
-+ Removed the deprecated `includes/libraries/wp-background-processing/wp-async-request.php` file.
-+ Removed the deprecated `includes/libraries/wp-background-processing/wp-background-process.php` file.
-+ Removed the deprecated `LLMS_Section::get_next_available_lesson_order()` method.
-+ Removed the deprecated `LLMS_Section::get_order()` method.
-+ Removed the deprecated `LLMS_Section::get_parent_course()` method.
-+ Removed the deprecated `LLMS_Section::set_parent_course()` method.
-+ Removed the deprecated `LLMS_AJAX::get_ajax_data()` method.
-+ Removed the deprecated `LLMS_AJAX::register_script()` method.
-+ Removed the deprecated `LLMS_Interface_Post_Audio` interface.
-+ Removed the deprecated `LLMS_Interface_Post_Sales_Page` interface.
-+ Removed the deprecated `LLMS_Interface_Post_Video` interface.
-+ Removed the deprecated `LLMS_Achievements::$_instance` property.
-+ Removed the deprecated `LLMS_Certificates::$_instance` property.
-+ Removed the deprecated `LLMS_Emails::$_instance` property.
-+ Removed the deprecated `LLMS_Engagements::$_instance` property.
-+ Removed the deprecated `LLMS_Events::$_instance` property.
-+ Removed the deprecated `LLMS_Grades::$_instance` property.
-+ Removed the deprecated `LLMS_Integrations::$_instance` property.
-+ Removed the deprecated `LLMS_Payment_Gateways::$_instance` property.
-+ Removed the deprecated `LLMS_Processors::$_instance` property.
-+ Removed the deprecated `LLMS_Sessions::$_instance` property.
-
-
-v5.7.0 - 2022-01-11
--------------------
-
-##### Updates and Enhancements
-
-+ Informed developers about the deprecated `LLMS_Section::get_next_available_lesson_order()` method.
-+ Informed developers about the deprecated `LLMS_Section::get_order()` method.
-+ Informed developers about the deprecated `LLMS_Section::get_parent_course()` method.
-+ Informed developers about the deprecated `LLMS_Section::set_parent_course()` method.
-
-##### Deprecations
-
-+ Deprecated `LLMS_Frontend_Assets::enqueue_inline_pw_script()` with no replacement.
-+ Deprecated the `LLMS_Lesson::get_order()` method in favor of the `LLMS_Lesson::get( 'order' )` method.
-+ Deprecated the `LLMS_Lesson::get_parent_course()` method in favor of the `LLMS_Lesson::get( 'parent_course' )` method.
-+ Deprecated the `LLMS_Lesson::set_parent_course()` method in favor of the `LLMS_Lesson::set( 'parent_course', $course_id )` method.
-+ Deprecated the `LLMS_AJAX_Handler::add_lesson_to_course()` method with no replacement.
-+ Deprecated the `LLMS_AJAX_Handler::create_lesson()` method with no replacement.
-+ Deprecated the `LLMS_AJAX_Handler::create_section()` method with no replacement.
-+ Deprecated the `LLMS_Lesson_Handler::assign_to_course()` method with no replacement.
-+ Deprecated the `LLMS_Post_Handler::create_section()` method with no replacement.
-
-##### Updated Templates
-
-+ [templates/course/lesson-navigation.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/course/lesson-navigation.php)
-+ [templates/course/lesson-preview.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/course/lesson-preview.php)
-+ [templates/course/parent-course.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/course/parent-course.php)
-
-
-v6.0.0-alpha.2 - 2022-01-04
----------------------------
-
-##### New Features
-
-+ Added certificate global options for the default size of new certificates and certificate templates.
-
-##### Updates and enhancements
-
-+ The site options `lifterlms_certificate_bg_img_width`,
-`lifterlms_certificate_bg_img_height`, and
-`lifterlms_certificate_legacy_image_size` are now used only for certificates
-and certificate templates created using the classic editor.
- + The settings, found on the Engagements Settings screen, are hidden by default.
- + During the database upgrade from versions earlier than 6.x, an site option, `llms_has_legacy_certificates` is added when at least one certificate is found. This option will display the settings so they can continue to be used for legacy certificates.
- + After migrating all certificates on a site, the settings will still display. In order to remove them from the screen a developer can either delete the option `llms_has_legacy_certificates` or return `false` from the filter `llms_has_legacy_certificates`.
-+ Restore certificate save hooks after executing callback updates to facilitate scenarios where more than one certificate is updated in a single request.
-
-##### Bug Fixes
-
-+ Only register the Certificate Title block for use on certificate post types.
-
-##### Updated Templates
-
-+ [templates/certificates/content-legacy.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/certificates/content-legacy.php)
-
-
-v6.0.0-alpha.1 - 2021-12-28
----------------------------
-
-**This version is an unstable pre-release! We strongly advise against installing this in a production environment.**
-
-##### New Features
-
-+ The block editor is now enabled by default for certificates.
- + Existing certificates are marked as "legacy" and will continue to use the classic editor until migrated.
- + To migrate a certificate, click the "Migrate Certificate" button. This will force the certificate's content into blocks.
-+ A number of new settings are available to certificates when using the block editor:
- + Set the certificate's display (and print) size using common paper sizes such as US Letter, US Legal, A3, A4, and more.
- + Set the certificate's display orientation: portrait of landscape.
- + Set the certificate's inner margins.
- + Set the certificate's background color.
-+ A new block, the Certificate Title Block, has been made available to certificates.
- + The block works like a WordPress core Heading Block with added options for selecting from a few display fonts (provided by Google Web Fonts).
- + The block controls the title of awarded certificates.
-+ + Added the ability to sync awarded certificates with the template used to generate them. [#1078](https://github.com/gocodebox/lifterlms#1078)
-+ The `post_name` of earned certificate posts will be generated with a randomized 3+ character string in favor of relying on sequential numbers.
-+ Added the ability for administrators and LMS managers to edit earned certificates/achievements from the students reporting screen, as well as award new certificates/achievements to students.
-+ Certificate and email template merge code buttons now include [llms-user] information shortcodes.
-+ Added certificate sequential ID functionality merge code. [Read more](@TODO).
-
-##### Updates and Enhancements
-
-+ Added pagination to achievement and certificate reporting pages.
-+ Certificates no longer use the `header.php` and `footer.php` files from the site's theme, instead custom templates (`templates/certificates/header.php` and `templates/certificates/footer.php`) are used instead. These templates are minimal and exclude theme wrappers which reduces the visual conflicts encountered from theme wrappers, backgrounds, and more, especially when printing certificates. [#463](https://github.com/gocodebox/lifterlms#463)
-+ The achievements and certificates dashboard endpoints are now paginated. [#669](https://github.com/gocodebox/lifterlms#669)
-+ Added new default images for use with achievements and certificates.
- + The site-wide default images can be customized on the admin panel under Settings -> Engagements.
- + The old default images can be used by filtering `llms_use_legacy_engagement_images`. [#1081](https://github.com/gocodebox/lifterlms#1081)
-+ The URL of earned user certificates has been changed from "my_certificate" to "certificate". Requests to the old url are automatically redirected to the new url, including instances where the URL slug has been translated.
-+ The URL of certificate template previews has been changed from "certificate" to "certificate-template".
-+ The certificate merge code, `{first_name}`, now outputs an empty string in favor of falling back to the user's nickname when there is no first name for the user. [#1640](https://github.com/gocodebox/lifterlms#1640)
-+ Updates LifterLMS REST to [v1.0.0-beta.22](https://make.lifterlms.com/2021/12/15/lifterlms-rest-api-version-1-0-0-beta-22/).
-
-##### Bug Fixes
-
-+ Delayed engagements are automatically unscheduled when the related post is deleted.
-+ Prior to sending a delayed engagement the recipient's enrollment in the related post is verified resulting the engagement not being triggered if the recipient's enrollment has been terminated. [#290](https://github.com/gocodebox/lifterlms#290)
-+ A disabled student dashboard endpoint will no longer display the endpoint's summary on the main dashboard page. [#535](https://github.com/gocodebox/lifterlms#535)
-+ Post search filter boxes on various post tables will now longer display a link to the selected post.
-+ Basic notification code is no longer loaded on the admin panel.
-
-##### Deprecations
-
-+ Class `LLMS_Achievement_User` is deprecated with no direct replacement.
- + Method `LLMS_Achievement::is_enabled()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_blogname()` is deprecated with no replacement.
- + Method `LLMS_Achievement::format_string()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_title()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_content()` is deprecated with no replacement.
- + Method `LLMS_Achievement::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Achievement::create()` is deprecated with no replacement.
-+ Method `LLMS_Achievments::trigger_engagement()` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement()`.
-+ Class `LLMS_Certificate` is deprecated with no direct replacement.
- + Method `LLMS_Certificate::is_enabled()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_blogname()` is deprecated with no replacement.
- + Method `LLMS_Certificate::format_string()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_title()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_content()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Certificate::get_title()` is deprecated with no replacement.
-+ Method `LLMS_Certificates::trigger_engagement()` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate()`.
-+ Method `LLMS_Engagements::init()` is deprecated with no replacement.
-+ Method `LLMS_Engagements::handle_achievement` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement`.
-+ Method `LLMS_Engagements::handle_certificate` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate`.
-+ Method `LLMS_Engagements::handle_email` is deprecated in favor of `LLMS_Engagement_Handler::handle_email`.
-+ Method `LLMS_Database_Query::set_found_results()` is deprecated.
-+ Class `LLMS_Achievement_User` is deprecated with no direct replacement.
- + Method `LLMS_Achievement_User::has_user_earned()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::init()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::trigger()` is deprecated with no replacement.
- + Method `LLMS_Achievement_User::get_content_html()` is deprecated with no replacement.
-+ Class `LLMS_Certificate_User` is deprecated with no direct replacement.
- + Method `LLMS_Certificate_User::init()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::trigger()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::get_content_html()` is deprecated with no replacement.
- + Method `LLMS_Certificate_User::set_shortcode_user()` is deprecated with no replacement.
-+ Engagement debug logging is removed. Use `llms_log()` directly instead.
-+ Filter `llms_db_query_get_default_args` is deprecated in favor of `llms_{$this->id}_query_get_default_args`.
-+ Filter `llms_certificate_has_user_earned` is deprecated in favor of `llms_earned_certificate_dupcheck`.
-+ Unused public class property `LLMS_Achievements::$content` is deprecated with no replacement.
-+ Method `LLMS_Engagements::handle_certificate` is deprecated in favor of `LLMS_Engagement_Handler::handle_certificate`. [#290](https://github.com/gocodebox/lifterlms#290)
-+ Method `LLMS_Engagements::handle_achievement` is deprecated in favor of `LLMS_Engagement_Handler::handle_achievement`. [#290](https://github.com/gocodebox/lifterlms#290)
-+ The constant `LLMS_ENGAGEMENT_DEBUG` is deprecated with no replacement.
-+ Engagement debugging via `LLMS_Engagements::log` is deprecated. Use `llms_log()` instead.
-+ Method `LLMS_Engagements::handle_email` is deprecated in favor of `LLMS_Engagement_Handler::handle_email`.
-+ Filter `lifterlms_register_post_type_llms_my_certificate` is deprecated in favor of `lifterlms_register_post_type_my_certificate`.
-+ Deprecated the misspelled protected method `LLMS_Database_Query::preprare_query()` and replaced with `LLMS_Database_Query::prepare_query()`.
- + Class method `LLMS_Events_Query::preprare_query` replaced with `LLMS_Events_Query::prepare_query()`.
- + Class method `LLMS_Query_Quiz_Attempt::preprare_query` replaced with `LLMS_Query_Quiz_Attempt::prepare_query()`.
- + Class method `LLMS_Query_User_Postmeta::preprare_query` replaced with `LLMS_Query_User_Postmeta::prepare_query()`.
- + Class method `LLMS_Student_Query::preprare_query` replaced with `LLMS_Student_Query::prepare_query()`.
- + Class method `LLMS_Notifications_Query::preprare_query` replaced with `LLMS_Notifications_Query::prepare_query()`.
- + Class method `LLMS_Notifications_Query::preprare_query` replaced with `LLMS_Notifications_Query::prepare_query()`. [#859](https://github.com/gocodebox/lifterlms#859)
-
-##### Developer Notes
-
-+ Added `LLMS_Awards_Query`, used for querying data about awarded certificates and achievements.
- + The method signature `LLMS_Student::get_achievements()` and `LLMS_Student::get_certificates()` now use this class under tho hood.
- + The previous method signature, which passed data into a direct SQL query, is now deprecated.
-+ Achievement and certificate data storage locations have been modified, primarily to reduce reliance on the `wp_postmeta` table which will result in a site-wide performance improvement, especially on large sites.
- + Meta properties `_llms_achievement_content` and `_llms_certificate_content` have been removed in favor of `WP_Post::$post_content`.
- + Meta properties `_llms_achievement_title` and `_llms_certificate_title` have been removed in favor of `WP_Post::$post_title`.
- + Meta properties `_llms_achievement_template` and `_llms_certificate_template` have been removed in favor of `WP_Post::$post_parent`.
- + Meta properties `_llms_achievement_image` and `_llms_certificate_image` have been moved the meta property `_thumbnail_id` in order to utilize the WordPress core's featured image functionality and internal APIs.
-+ Reliance on `lifterlms_user_postmeta` for achievement and certificate data will be removed in a future release.
- + User postmeta properties `_achievement_earned` and `_certificate_earned` will continue to be recorded but are no longer being used internally.
- + The `updated_date` is now accessible via `WP_Post::$post_date`.
- + The `user_id` is now accessible via `WP_Post::$post_author`.
-+ Added new Javascript UI components library, modeled after `@wordpress/components`. [Read more](https://github.com/gocodebox/lifterlms/tree/dev-600/packages/components).
-+ Added a new SVG icon library, modeled after `@wordpress/icons`. [Read more](https://github.com/gocodebox/lifterlms/tree/dev-600/packages/icons).
-+ The merge code button seen on certificate and email template editors is now an SVG image instead of a PNG.
-+ Added utility function for escaping and quoting strings. [#1027](https://github.com/gocodebox/lifterlms#1027)
-+ Added new utility function for stripping prefixes from strings.
-
-##### Updated Templates
-
-+ [templates/achievements/loop.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/achievements/loop.php)
-+ [templates/achievements/template.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/achievements/template.php)
-+ [templates/admin/reporting/tabs/students/information.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/admin/reporting/tabs/students/information.php)
-+ [templates/certificates/actions.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/certificates/actions.php)
-+ [templates/certificates/content-legacy.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/certificates/content-legacy.php)
-+ [templates/certificates/content.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/certificates/content.php)
-+ [templates/certificates/dynamic-styles.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/certificates/dynamic-styles.php)
-+ [templates/certificates/footer.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/certificates/footer.php)
-+ [templates/certificates/header.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/certificates/header.php)
-+ [templates/certificates/loop.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/certificates/loop.php)
-+ [templates/certificates/preview.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/certificates/preview.php)
-+ [templates/certificates/template.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/certificates/template.php)
-+ [templates/content-certificate.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/content-certificate.php)
-+ [templates/single-certificate.php](https://github.com/gocodebox/lifterlms/blob/trunk/templates/single-certificate.php)
-
-
-v5.6.0 - 2021-12-07
--------------------
-
-##### New Features
-
-+ Added an option to prevent users (by role) from copying site content and saving local copies of images.
-+ Added new site setting to disallow concurrent user sessions for specified user roles.
-
-##### Updates and Enhancements
-
-+ Updates LifterLMS REST to [v1.0.0-beta.21](https://make.lifterlms.com/2021/12/07/lifterlms-rest-api-version-1-0-0-beta-21/).
-
-##### Developer Notes
-
-+ Database migration functions can now be namespaced, eliminating the need to prefix update function names with a version number.
-
-
-v5.5.0 - 2021-11-05
--------------------
-
-##### New Features
-
-+ Includes the LLMS-CLI beta, a set of WP-CLI commands for LifterLMS and LifterLMS add-ons, as part of the core plugin:
- + To get started, run `wp llms --help` in your terminal or read the [online command documentation](https://developer.lifterlms.com/cli/commands/llms/).
- + Please note that the LLMS-CLI is included as a public beta feature. The command API is in a pre-release state and, as such, is subject to change without warning.
- + If you encounter any issues or wish to provide feedback on the LLMS-CLI please get in touch at [https://github.com/gocodebox/lifterlms-cli](https://github.com/gocodebox/lifterlms-cli).
-
-##### Bug Fixes
-
-+ Fix AJAX post search when using search queries containing quotes.
-
-##### Deprecations
-
-+ The `lifterlms_register_post_type_llms_engagement` is deprecated in favor of `lifterlms_register_post_type_engagement`.
-+ The `lifterlms_register_post_type_llms_achievement` is deprecated in favor of `lifterlms_register_post_type_achievement`.
-+ The `lifterlms_register_post_type_llms_certificate` is deprecated in favor of `lifterlms_register_post_type_certificate`.
-+ The `lifterlms_register_post_type_llms_my_certificate` is deprecated in favor of `lifterlms_register_post_type_my_certificate`.
-+ The `lifterlms_register_post_type_llms_email` is deprecated in favor of `lifterlms_register_post_type_email`.
-+ The `lifterlms_register_post_type_llms_coupon` is deprecated in favor of `lifterlms_register_post_type_coupon`.
-+ The `lifterlms_register_post_type_llms_voucher` is deprecated in favor of `lifterlms_register_post_type_voucher`.
-
-##### Developer Notes
-
-+ The `llms-addons` style asset no longer ships an unminified version.
-+ The `llms-admin-add-ons` style asset no longer ships an unminified version and the filename of the distributed file has changed.
-+ All the LifterLMS post types are now registered using the static method `LLMS_Post_Types::register_post_type()`.
-+ Upgraded woocommerce/action-scheduler to [v3.4.0](https://github.com/woocommerce/action-scheduler/releases/tag/3.4.0).
-
-
-v5.4.1 - 2021-10-26
--------------------
-
-##### Bug fixes
-
-+ Exclude internal-use-only properties (related to reporting caches and student counts) when exporting or cloning courses. [#1532](https://github.com/gocodebox/lifterlms/issues/1532)
-+ Don't sanitize input from user forms until validation has succeeded. [#1829](https://github.com/gocodebox/lifterlms/issues/1829.)
-+ Fixed an issue encountered when fields are removed from reusable blocks, causing some user forms from functioning as expected. [#1832](https://github.com/gocodebox/lifterlms/issues/1832)
-
-
-v5.4.0 - 2021-10-14
--------------------
-
-##### Updates
-
-+ Added logic to prevent the permanent deletion of courses or memberships with active subscriptions.
-+ When a subscription attempts to charge a recurring payment against a deleted course or membership the transaction will be cancelled and the order marked as failed.
-+ Updates LifterLMS Blocks to [v2.2.1](https://make.lifterlms.com/2021/09/29/lifterlms-blocks-version-2-2-1/).
-+ Updates LifterLMS REST to [v1.0.0-beta.20](https://make.lifterlms.com/2021/10/11/lifterlms-rest-api-version-1-0-0-beta-20/).
-
-##### Bug fixes
-
-+ Fixed issue encountered when cloning lessons with attached assignments.
-+ Fixed an error encountered when viewing an order for a deleted course or membership on the student dashboard.
-
-##### Templates Updated
-
-+ templates/myaccount/view-order.php
-
-
-v5.3.3 - 2021-10-05
--------------------
-
-##### Updates
-
-+ Update woocommerce/actions-scheduler to version 3.3.0.
-
-##### Bug fixes
-
-+ Fixed an issue causing the latest earned achievement to not display on the "My Grades" tab in certain scenarios.
-+ Fix issue causing a `waiting...` message to display on the JS dev console.
-+ Fix improper usage of `apply_filters_deprecated()` encountered when using deprecated theme settings filters in the course builder.
-+ Fixed missing text domain, thanks [chetansatasiya](https://github.com/chetansatasiya)!
-
-##### Developer notes
-
-+ Improved the `LLMS.waitFor()` runtime JS dependency loader to output improved debugging information.
-
-
-v5.3.2 - 2021-09-21
--------------------
-
-##### Updates
-
-+ Updated the SendWP integration account management URL.
-
-##### Bug fixes
-
-+ Fixed issue encountered with TinyMCE editor instances in repeater metabox groups.
-+ Fixed issue causing the latest achievement to not display when reviewing grades on the student dashboard.
-
-
-v5.3.1 - 2021-09-13
--------------------
-
-##### Bug fixes
-
-+ Fixed quote slashing for non-admin roles when editing content in the course builder.
-+ The LifterLMS admin icon now uses an encoded SVG to improve admin color scheme compatibility.
-+ Fixed an issue with empty admin notices.
-
-##### Dev updates
-
-+ The creation date of `llms_orders` is now determined by `llms_current_time()`.
-
-
-v5.3.0 - 2021-08-31
--------------------
-
-##### Updates
-
-+ Improved logic used to determine when a limited length subscription has completed its payment schedule.
-+ Improved accessibility of various icon buttons on the admin orders view/edit screen.
-+ Improved display of quiz attempts containing questions which have been deleted from the database.
-+ POT files from included library plugins (like LifterLMS REST) are now excluded from LifterLMS distributions.
-
-##### Development updates
-
-+ Introduced `LLMS_Trait_Singleton` to replace redundant singleton pattern definitions across classes in the codebase.
-+ Moved the loading of the autoloader to the main `lifterlms.php` file.
-+ Updated the `LLMS_Payment_Gateway` abstract class to utilize `LLMS_Abstract_Options_Data` for accessing gateway options.
-+ Audio and video embed methods shared by `LLMS_Course` and `LLMS_Membership` have been relocated to `LLMS_Trait_Audio_Video_Embed`.
-+ Sales page methods shared by `LLMS_Course` and `LLMS_Membership` have been relocated to `LLMS_Trait_Sales_Page`.
-
-##### Bug Fixes
-
-+ Fixed a visual issue encountered on the payment confirmation screen on small screens / mobile devices.
-+ Fix untranslatable time period strings (day, week, month, and year) found on the admin orders view/edit screen.
-+ Fixed an error encountered when attempting to grade a quiz attempt containing deleted questions.
-
-##### Deprecations
-
-+ Removed usage and references to the `LLMS_Order` post meta property `date_billing_end`. To determine if a subscription has ended, use `LLMS_Order::get_remaining_payments()` instead.
-+ Removed private method `LLMS_Order::calculate_billing_end_date()`.
-+ Deprecated the class property `$_instance` from the following classes, use the public method `instance()` instead:
- + `LLMS_Achievements`
- + `LLMS_Certificates`
- + `LLMS_Emails`
- + `LLMS_Engagements`
- + `LLMS_Events`
- + `LLMS_Grades`
- + `LLMS_Integrations`
- + `LLMS_Notifications`
- + `LLMS_Payment_Gateways`
- + `LLMS_Processors`
- + `LLMS_Sessions`
-
-##### Templates Updated
-
-+ templates/checkout/form-confirm-payment.php
-+ templates/admin/reporting/tabs/quizzes/attempt.php
-+ templates/quiz/results-attempt-questions-list.php
-
-
-v5.2.1 - 2021-08-17
--------------------
-
-##### Updates
-
-+ [LifterLMS Helper Version 3.4.1](https://make.lifterlms.com/2021/08/17/lifterlms-helper-version-3-4-1/).
-+ Made minor development-related changes to the `LLMS_Order` class.
-
-##### Bug Fixes
-
-+ Fixed an issue encountered when a course or membership sales page redirect is enabled but no URL is saved.
-
-
-v5.2.0 - 2021-08-10
--------------------
-
-##### Upcoming Payment Reminder Notification
-
-+ A new notification, the "Upcoming Payment Reminder" notification has been added. This notification sends a reminder to students a configurable number of days before a payment is do for a recurring subscription.
-+ When upgrading to version 5.2.0, this notification will be automatically *disabled*, visit LifterLMS -> Settings -> Notifications and select the new notification to enable it after upgrading.
-+ Props to [@niluzok](https://github.com/niluzok) for doing the initial work required to build this notification!
-
-##### Updates
-
-+ Reworked the database upgrader script to allow for minor upgrades which don't require significant data migration to upgrade silently without requiring user consent to initiate.
-+ Improved internal methods used to generate tables in the body of email notifications.
-
-##### Bug Fixes
-
-+ Student registration date is now displayed in the site's timezone in favor of UTC time.
-+ Properly pass options `template_path` and `default_path` to the template handler when creating an admin notice using a template.
-+ Removed translation (and incorrect text domain) from a logging function encountered when a recurring payment errors as a result of the payment gateway having been deactivated.
-
-##### Deprecations
-
-+ `LLMS_Install::db_updates()` is deprecated, use ``LLMS_DB_Upgrader::enqueue_updates()` instead.
-+ `LLMS_Install::update_notice()` is deprecated with no replacement.
-+ Template `admin/notices/db-update.php` is deprecated in favor of `includes/admin/views/db-update.php`.
-+ Template `admin/notices/db-updating.php` is deprecated with no replacement.
-
-
-v5.1.3 - 2021-08-04
--------------------
-
-+ Bugfix: Fixed an issue where a white box would be output over the certificate background image.
-+ Bugfix: Fixed an issue in the course builder causing lessons to be orphaned from a course when moved into an unsaved section.
-+ [LifterLMS Helper Version 3.4.0](https://make.lifterlms.com/2021/08/04/lifterlms-helper-version-3-4-0/)
-
-
-v5.1.2 - 2021-07-28
--------------------
-
-+ Bugfix: Pass second parameter to the `get_the_excerpt` filter.
-+ Fix: Corrected typos in error messages encountered during password reset.
-
-
-v5.1.1 - 2021-07-26
--------------------
-
-+ Bugfix: Fixed a bug causing malformed character codes to be rendered in forms when installing forms with translated labels.
-+ [LifterLMS Helper version 3.3.1](https://make.lifterlms.com/2021/07/26/lifterlms-helper-version-3-3-1/)
-
-
-v5.1.0 - 2021-07-19
--------------------
-
-##### Updates
-
-+ **Raised the minimum required WordPress core version to 5.8!**
-+ Adds WordPress core 5.8 compatibility.
-+ Improved user information forms required field validation.
-+ Added functionality to ensure that user email and password fields are *always* displayed to logged out users on checkout and registration forms.
-+ Added functionality to ensure that user email and password fields are *always* displayed on the account edit form.
-+ [LifterLMS Blocks version 2.2.0](https://make.lifterlms.com/2021/07/19/lifterlms-blocks-version-2-2-0/)
-
-##### Bug fixes
-
-+ Fixed an issue preventing certain orphaned quizzes from being deleted.
-+ Prevent users from submitting a password change without submitting their current password.
-+ Allow logged in users to checkout when no form fields are set to display.
-
-
-v5.0.2 - 2021-07-08
--------------------
-
-##### LifterLMS Blocks
-
-+ Upgraded to [version 2.1.1](https://make.lifterlms.com/2021/07/08/lifterlms-blocks-version-2-1-1/).
-
-##### Bug Fixes
-
-+ Fixed issue with non-Latin characters in dashboard endpoint URL slugs.
-+ Fixed issue preventing address localization when using the [lifterlms_registration] shortcode.
-
-
-v5.0.1 - 2021-06-28
--------------------
-
-##### Updates
-
-+ Update to [LifterLMS Blocks v2.1.0](https://make.lifterlms.com/2021/06/28/lifterlms-blocks-version-2-1-0/).
-+ Added a new filter to allow programmatically alter required field validation results.
-
-##### Bugfixes
-
-+ Fixed an issue causing preventing form layout options from working when passed into shortcodes.
-+ Fixed an issue preventing custom radio, select, and dropdown fields from working during checkout.
-+ Fixed an accessibility issue encountered during password strength validation.
-
-
-v5.0.0 - 2021-06-22
--------------------
-
-##### User Information Form Builder
-
-+ Customize all user information collection forms using the block editor for drag and drop and WYSIWYG form building.
-+ Customize field labels, placeholders, descriptions and more with an easy point and click interface.
-+ Determine if fields are required or optional with a simple toggle switch.
-+ Update the form layout with the block editor. Reorder fields, add columns, and more with a simple drag and drop interface.
-+ Remove unwanted fields with the click of a button.
-
-##### User Location Information Form Fields
-
-+ During user account creation and updates the user location fields are now locale aware ensuring that the proper terminology is used and only locale-required fields are displayed for the selected locale.
-+ The "Country" field has been updated to be automatically populated with a list of countries. View the full list in the file at `languages/countries.php` and the filter `lifterlms_countries` can be used to modify the default list at runtime.
-+ The "State" field on user forms has been updated to be automatically populated with a list of states (provinces or regions) for the selected country. This list of states can be found in the file at `languages/states.php` and the filter `lifterlms_states` can be used to modify the default list at runtime.
-+ Both "Country" and "State" fields are now searchable dropdowns elements.
-+ The lists of countries and states will be automatically updated during future releases based on information provided by [GeoNames](https://www.geonames.org/) APIs.
-
-##### Mergecodes everywhere via new `[llms-user]` shortcode
-
-+ Allows merging most user information field data into any post or page, email, or notification (as well as widgets and more).
-
-##### Updates
-
-+ Email and password confirmation fields may now be made optional.
-+ "User Information Options" have been largely removed in favor of determining which fields are displayed via the forms UI
-+ The former "User Information Options" settings area has been renamed to "User Privacy Options".
-+ Removed email lookup logic since `wp_authenticate()` supports email addresses as `user_login` since WP 4.5.
-+ Custom user fields added via filters are now displayed on the admin panel at priority 11 instead of 10.
-+ Added shortcode processing in LifterLMS-generated emails.
-+ If a symbol cannot be found for the supplied currency code, return the code instead of an empty string.
-
-##### Bug Fixes
-
-+ Changed the filter on return of `LLMS_Person_Handler::get_password_reset_fields()` from `lifterlms_lost_password_fields` to `llms_password_reset_fields`.
-+ Fixed duplicate references to the `llms-select2` script.
-
-##### Development changes
-
-+ Added before and after actions hooks for admin tools.
-+ The filter `lifterlms_before_user_${action}` is now triggered by `do_action_ref_array()` instead of `do_action()` allowing modification of `$posted_data` and `$fields` via hooks.
-+ A number of action and filter hooks have been moved to new locations within the codebase. They will continue to function as expected (with some minor exceptions).
-+ Enqueue select2 on account and checkout pages for searchable dropdowns for country & state.
-+ Stop loading removed processor "table_to_csv".
-
-##### Library & Vendor Updates
-
-+ Updates LifterLMS Blocks to version 2.0.1.
-+ Updates woocommerce/actions-scheduler to version 3.2.1.
-+ Load core libraries from new location and load WP Background Processing lib.
-+ The vendor script dependency `topModal.js` has been removed.
-
-##### Templates Updated
-
-+ templates/checkout/form-checkout.php
-+ templates/checkout/form-confirm-payment.php
-+ templates/checkout/form-gateways.php
-+ templates/global/form-login.php
-+ templates/global/form-registration.php
-+ templates/myaccount/form-edit-account.php
-+ templates/product/free-enroll-form.php
-
-##### Deprecations
-
-The following have been deprecated and will be removed from LifterLMS in a major update following version 5.0.0.
-
-+ Class Method: `LLMS_Person_Handler::get_available_fields()` is deprecated in favor of `LLMS_Forms::get_form_fields()`.
-+ Class Method: `LLMS_Person_Handler::register()` is deprecated, in favor of `llms_register_user()`.
-+ Class Method: `LLMS_Person_Handler::sanitize_field()` (private method) is deprecated with no replacement.
-+ Class Method: `LLMS_Person_Handler::update()` is deprecated, in favor of `llms_update_user()`.
-+ Class Method: `LLMS_Person_Handler::validate_fields()` is deprecated with no replacement.
-+ Class Method: `LLMS_Person_Handler::voucher_toggle_script()` is deprecated with no replacement.
-+ Filter: `llms_usernames_blacklist` is deprecated, use `llms_usernames_blocklist` instead.
-+ Filter: `lifterlms_get_user_custom_fields` is deprecated with no replacement.
-+ Function: `llms_get_minimum_password_strength()` is deprecated with no replacement.
-+ Option: `lifterlms_registration_generate_username` is deprecated in favor of the new method `LLMS_Forms::are_usernames_enabled()`.
-
-##### Removed Items
-
-+ Private method `LLMS_Processors::includes()` has been removed.
-+ Private methods `LLMS_Person_Handler::fill_fields()` and `LLMS_Person_Handler::insert_data()` were removed.
-+ Previously deprecated class method `LLMS_Quiz::get_lessons()` has been removed.
-+ Previously deprecated class method `LLMS_Controller_Quizzes::take_quiz()` has been removed.
-+ Previously deprecated class `LLMS_Processor_Table_To_Csv` has been removed.
-
-
-v5.0.0-rc.2 - 2021-06-18
-------------------------
-
-+ Remove password description merge codes from reusable block schema.
-+ Explicitly define required field attributes on reusable block schema.
-+ Requires WP 5.7 or later to edit forms & show an upgrade nudge when requirements are not met.
-+ Add a link from the (now) legacy account settings area to help experienced users find the new form building area
-+ Add a (subtle) custom fields add-on upgrade nudge when viewing the forms list on the admin panel
-+ Update LifterLMS Blocks to 2.0.0-rc.2
-
-
-v5.0.0-rc.1 - 2021-06-15
-------------------------
-
-+ Updates Action Scheduler library to version 3.2.0
-+ Remove the {min_strength} and {min_length} merge codes from the User Password block description.
-+ Don't load removed files during OptimizePress compatibility.
-+ Add a 5.0.0 DB upgrade routine and welcome notice
-+ Add the LifterLMS Helper as an included library
-+ Add WordPress 5.8 compatibility on the Widgets and Customizer screens.
-+ Move form location definitions into a schema file
-+ Require WordPress 5.7+ to manage forms via the block editor
-+ Upgrades LifterLMS Blocks to 2.0.0-rc.1
-
-
-v5.0.0-beta.2 - 2021-06-01
----------------------------
-
-+ Updates LifterLMS Blocks to 2.0.0-beta.6.
-+ (Re-)introduces the user information shortcode as `[llms-user]`.
-+ Add Admins status tool to reinstall core forms & reusable blocks.
-+ Fixed issue causing data from conditionally disabled fields (like state) from being cleared during form submission
-+ Updated form post type labels and added missing labels
-+ Removed the previously deprecated class `LLMS_Frontend_Forms` and it's deprecated class methods `reset_password()` and `voucher_check()`.
-+ Removed the previously deprecated class `LLMS_Frontend_Password` and it's deprecated class methods: `retrieve_password()`, `check_password()`, and `reset_password()`.
-+ Updated country and state localization lists.
-
-
-v5.0.0-beta.1 - 2021-05-19
----------------------------
-
-+ LifterLMS Blocks 2.0.0-beta.5
-+ Added site-wide field name validation
-+ Reworked the output of user information fields on the admin panel to share a handler and APIs with frontend fields.
-+ Deprecated filter: `lifterlms_get_user_custom_fields` in favor of `llms_admin_profile_fields`
-+ Improved previewing of form posts using WP Core block editor UI elements
-+ Open Registration form can now always be previewed regardless of the open registration site setting
-
-
-v5.0.0-alpha.6 - 2021-05-07
----------------------------
-
-+ LifterLMS Blocks 2.0.0-beta.4
-+ Fix default reusable password field type from plain text to password
-+ Change the default reusable block post titles to reduce confusion when searching for blocks in the editor
-
-
-v5.0.0-alpha.5 - 2021-05-03
----------------------------
-
-+ Reorganized new files into subdirectories.
-+ Added serverside password minimum length validation.
-+ Fix duplicate password strength meter output.
-+ Fix the user password field type from text to password
-+ Fix the phone number field type from text to tel
-+ Fix user state select field
-+ Don't autoload field values from specified datastore when a "value" is explicitly passed to the field.
-+ Only load published reusable blocks on the frontend of the website
-+ Improved the UX for editing a users account by automatically "hiding" password and email fields and only requiring them to be submitted when users explicit request an update via the field's "change" toggle button.
-
-
-v5.0.0-alpha.4 - 2021-04-26
----------------------------
-
-+ Default form templates now use reusable blocks.
-+ Improved the user experience surrounding fields with a confirmation field (email address and password).
-+ Added the ability to define a field's column width instead of requiring the usage of WP column blocks.
-+ Added support for reusable blocks on form posts
-+ Upgraded LifterLMS Blocks to 2.0.0-beta.3.
-
-
-v5.0.0-alpha.3 - 2021-03-23
----------------------------
-
-+ Fixed issue preventing users from editing their email address and password on the dashboard account edit screens.
-+ Fixed issues with country names with the article "the" in their name, for example "The Netherlands" instead of "Netherlands The".
-+ Upgraded LifterLMS Blocks to version 2.0.0-beta.2.
-
-
-v5.0.0-alpha.2 - 2021-03-22
----------------------------
-
-##### Updates
-
-+ Updates LifterLMS Blocks to version 2.0.0-beta.1
-+ Adds functionality to force usage of the Block Editor for editing LifterLMS forms
-+ Updates localization functionality and methods to have more accurate information.
-+ Added a function for determining if open registration is enabled.
-+ Added a WP Admin Bar link below the "Edit Page" link to enable editing the form (if a form exists on the page).
-
-##### Bug Fixes
-
-+ Fixed an issue encountered when custom HTML fields exist on a form (backwards compatibility for pre 5.x fields API).
-
-
-v5.0.0-alpha.1 - 2021-01-07
----------------------------
-
-##### User Information Form Builder
-
-+ Customize all user information collection forms using the block editor for drag and drop and WYSIWYG form building.
-+ Customize field labels, placeholders, descriptions and more with an easy point and click interface.
-+ Determine if fields are required or optional with a simple toggle switch.
-+ Update the form layout with the block editor. Reorder fields, add columns, and more with a simple drag and drop interface.
-+ Remove unwanted fields with the click of a button.
-
-##### User Location Information Form Fields
-
-+ During user account creation and updates the user location fields are now locale aware ensuring that the proper terminology is used and only locale-required fields are displayed for the selected locale.
-+ The "Country" field has been updated to be automatically populated with a list of countries. View the full list in the file at `languages/countries.php` and the filter `lifterlms_countries` can be used to modify the default list at runtime.
-+ The "State" field on user forms has been updated to be automatically populated with a list of states (provinces or regions) for the selected country. This list of states can be found in the file at `languages/states.php` and the filter `lifterlms_states` can be used to modify the default list at runtime.
-+ Both "Country" and "State" fields are now searchable dropdowns elements.
-+ The lists of countries and states will be automatically updated during future releases based on information provided by [GeoNames](https://www.geonames.org/) APIs.
-
-##### Mergecodes everywhere via new `[user]` shortcode
-
-+ TODO.
-
-##### Updates
-
-+ Email and password confirmation fields may now be made optional.
-+ "User Information Options" have been largely removed in favor of determining which fields are displayed via the forms UI
-+ The former "User Information Options" settings area has been renamed to "User Privacy Options".
-
-##### Bug Fixes
-
-+ Changed the filter on return of `LLMS_Person_Handler::get_password_reset_fields()` from `lifterlms_lost_password_fields` to `llms_password_reset_fields`.
-
-##### Development changes
-
-+ The filter `lifterlms_before_user_${action}` is now triggered by `do_action_ref_array()` instead of `do_action()` allowing modification of `$posted_data` and `$fields` via hooks.
-+ A number of action and filter hooks have been moved to new locations within the codebase. They will continue to function as expected (with some minor exceptions).
-+ Enqueue select2 on account and checkout pages for searchable dropdowns for country & state.
-
-##### Library & Vendor Updates
-
-+ Load core libraries from new location and load WP Background Processing lib.
-+ The vendor script dependency `topModal.js` has been removed.
-
-##### Templates Updated
-
-+ templates/global/form-login.php
-+ templates/global/form-registration.php
-+ templates/product/free-enroll-form.php
-
-##### Deprecations
-
-The following have been deprecated and will be removed from LifterLMS in a major update following version 5.0.0.
-
-+ Class Method: `LLMS_Person_Handler::get_available_fields()` is deprecated in favor of `LLMS_Forms::get_form_fields()`.
-+ Class Method: `LLMS_Person_Handler::register()` is deprecated, in favor of `llms_register_user()`.
-+ Class Method: `LLMS_Person_Handler::sanitize_field()` (private method) is deprecated with no replacement.
-+ Class Method: `LLMS_Person_Handler::update()` is deprecated, in favor of `llms_update_user()`.
-+ Class Method: `LLMS_Person_Handler::validate_fields()` is deprecated with no replacement.
-+ Class Method: `LLMS_Person_Handler::voucher_toggle_script()` is deprecated with no replacement.
-+ Filter: `llms_usernames_blacklist` is deprecated, use `llms_usernames_blocklist` instead.
-+ Function: `llms_get_minimum_password_strength()` is deprecated with no replacement.
-+ Option: `lifterlms_registration_generate_username` is deprecated in favor of the new method `LLMS_Forms::are_usernames_enabled()`.
-
-##### Removed Items
-
-+ Private method `LLMS_Processors::includes()` has been removed.
-+ Private methods `LLMS_Person_Handler::fill_fields()` and `LLMS_Person_Handler::insert_data()` were removed.
-+ Previously deprecated class method `LLMS_Quiz::get_lessons()` has been removed.
-+ Previously deprecated class method `LLMS_Controller_Quizzes::take_quiz()` has been removed.
-+ Previously deprecated class `LLMS_Processor_Table_To_Csv` has been removed.
-
-
-v4.21.3 - 2021-05-31
---------------------
-
-##### Updates
-
-+ Increase 3rd party support for WP core hook `lostpassword_post` hook.
-
-##### Bug fixes
-
-+ Props to [Hemant Patidar](https://www.linkedin.com/in/hemantsolo/) for discovering an issue preventing rate limiting in various security plugins from working on the LifterLMS password recovery form.
-+ Fixed an issue encountered when updating LifterLMS premium add-ons via the LifterLMS Helper encountered when API errors are occur.
-+ Updated the failure error code from 'activation' to 'deactivation' in the `LLMS_Add_On` class.
-+ Updated the API connection error message returned when using the `LLMS_Abstract_API_Handler` class.
-
-##### Deprecations
-
-+ Class `LLMS_Frontend_Password` is deprecated, see deprecated methods and their replacements below:
-
- + `LLMS_Frontend_Password::retrieve_password()` is deprecated in favor of `LLMS_Controller_Account::lost_password()`.
- + `LLMS_Frontend_Password::check_password_reset_key()` is deprecated in favor of `check_password_reset_key()`.
- + `LLMS_Frontend_Password::reset_password()` is deprecated in favor of `reset_password()`.
-
-
-v4.21.2 - 2021-05-17
---------------------
-
-##### Security Update
-
-This releases fixes a security issue affecting LifterLMS versions 4.21.1 and earlier:
-
-+ Thank you to [Amirmohammad vakili](https://www.linkedin.com/in/amirmuhammad-vakili-65a7a11b3/) for reporting an insecure direct object reference issue.
-
-##### Updates
-
-+ Added the `view_grades` capability which is used to determine whether or not a user has the ability to view another user's grades on the website's frontend.
-
-##### Bug fixes
-
-+ Fixed an issue causing PHP errors when attempting to access a quiz attempt that doesn't exist.
-+ Fixed a localization issue encountered when entering transaction amounts on the admin panel.
-
-
-v4.21.1 - 2021-04-29
---------------------
-
-##### Security Update
-
-This releases fixes two security issues affecting LifterLMS versions 4.21.0 and earlier:
-
-+ Thank you to [Amirmohammad vakili](https://www.linkedin.com/in/amirmuhammad-vakili-65a7a11b3/) for reporting a way to store XSS.
-+ Thank you to Ashish Jha from [Bluefire Redteam](https://www.bluefire-redteam.com/) for reporting a reflected XSS issue on checkout screens.
-
-
-v4.21.0 - 2021-04-19
---------------------
-
-##### Updates
-
-+ Certificate exports will now automatically include (most) externally hosted images and stylesheets.
-+ Opt-in forward compatibility changes have been made to the `LLMS_Abstract_Options_Data` class.
-
-##### Bugfixes
-
-+ Fixed an issue causing one-time payment orders from being included in totals on some reporting screens.
-+ Fixed an issue causing student enrollment counts to be incorrect under some circumstances.
-+ Fixed issues resulting in unnecessary duplicated instances of course background data processing.
-+ Fixed an error encountered when a course is deleted prior to its background data being processed.
-+ Fixed an escaping issue causing passwords with a backslash character from being usable following a password reset.
-
-
-v4.20.0 - 2021-03-16
---------------------
-
-##### Bugfixes
-
-+ Fixed an issue causing a fatal error when attempting to access reports for deleted students. Thanks Thanks [@pondermatic](https://github.com/pondermatic)!
-+ Fixed an issue encountered on the builder causing the last section to be returned when retrieving the previous section for the first section.
-
-
-v4.19.0 - 2021-03-11
---------------------
-
-##### Supported Version Requirement Updates
-
-+ **The minimum supported PHP version has been raised to PHP 7.3. Please upgrade to a [supported PHP version](https://www.php.net/supported-versions).**
-+ **The minimum supported WordPress core version has been raised to version 5.3.**
-
-##### Bug fixes
-
-+ Fixed an issue causing TinyMCE editor instances to be unusable within metaboxes when using the block editor.
-
-
-v4.18.0 - 2021-03-04
---------------------
-
-**This is the last release of LifterLMS that will declare support for PHP 7.2. PHP 7.2 reached its official [end of life](https://www.php.net/eol.php) on November 30, 2020. With the next release of LifterLMS the minimum supported PHP version will be raised to 7.3. If you're currently using PHP 7.2 please contact your host and request an upgrade to a [supported PHP version](https://www.php.net/supported-versions) as soon as possible!**
-
-##### Updates
-
-+ Tested up to WordPress core version 5.7
-+ Updated several occurrences of `json_encode()` with preferred `wp_json_encode()`.
-
-##### Bug fixes
-
-+ Added a tie-breaker when there are multiple enrollment statuses with the same date & time. Thanks [@pondermatic](https://github.com/pondermatic)!
-+ On admin order pages and tables don't print links for deleted students.
-+ Fixed an issue on admin order pages when viewing an order for a deleted student.
-
-
-v4.17.0 - 2021-02-22
---------------------
-
-##### Updates
-
-+ The post type feature "llms-sales-page" has been added to course and membership post types, signifying they support custom sales pages.
-
-##### Bug fixes
-
-+ Fixed compatibility issues with Yoast SEO 15.8.
-+ Fixed duplicate action hook in `content-no-access-after.php` template.
-+ Added early returns to several templates to prevent undefined variables errors.
-+ Fixed an undefined variable encountered in course builder JS debug logging.
-
-##### Templates Updated
-
-+ content-no-access-after.php
-+ quiz/meta-information.php
-+ quiz/results.php
-+ quiz/start-button.php
-
-
-v4.16.0 - 2021-02-18
---------------------
-
-##### Updates
-
-+ Added preview management to the student dashboard to allow previewing of the dashboard as a site visitor.
-+ Added a new filter to allow customization of courses output by the [lifterlms_courses] shortcode. Thanks [@reedhewitt](https://github.com/reedhewitt)!
-+ Added compatibility code to reduce plugin conflicts encountered in the course builder. Resolves a conflict encountered when building quizzes with Yoast SEO installed.
-
-##### Bug fixes
-
-+ Fixed undefined variable error encountered when creating custom notification types. Thanks [@pondermatic](https://github.com/pondermatic)!
-+ Fixed incorrect variables passed to `sprintf()` in logging functions used by the course data background processor. Thanks [@pondermatic](https://github.com/pondermatic)!
-
-
-v4.15.0 - 2021-02-09
---------------------
-
-##### Updates
-
-+ Database migration: remove any "orphaned" access plans which were not properly cleaned up during deletion of parent course or membership.
-+ Improved performance of membership post association query methods.
-
-##### Bug fixes
-
-+ Access plans will now be automatically deleted when their parent course or membership is deleted.
-+ Fix an issue with donut charts/graphs on RTL sites.
-+ Fix an issue causing unpublished (draft/private) courses from being returned during queries for membership post associations.
-
-##### LifterLMS REST 1.0.0-beta.15
-
-###### Updates
-
-+ Added Access Plan resource and endpoint.
-+ Provide a more significant error message when trying to delete an item without permissions.
-+ Use `WP_Http` constants in favor of integers when referencing HTTP status codes.
-
-###### Bug fixes
-
-+ Fixes localization issues where a singular name was used in favor of the expected plural form.
-+ Fixed issues where an error object was not properly returned when expected
-+ Fixed call to undefined function `llms_bad_request_error()`, must be `llms_rest_bad_request_error()`.
-+ Fixed access plans resource link.
-+ Fixed wrong trigger retrieved when multiple trigger were present for the same user/post pair on Student Enrollment resources.
-
-
-v4.14.0 - 2021-02-04
---------------------
-
-##### Updates
-
-+ Added a user preference option allowing users to opt-out of the course builder's autosave functionality. [More information](https://lifterlms.com/docs/using-course-builder/#manual-saving).
-+ 5-star review request displayed at 30 enrollments instead of 50.
-
-##### Bug fixes
-
-+ Fixed an issue encountered when using shortcodes in the description of an access plan.
-+ Fixed an issue encountered when editing auto-draft courses on the course builder.
-
-##### Deprecations
-
-+ `LLMS_Controller_Quizzes::take_quiz()` is deprecated in favor of `LLMS_AJAX_Handler::quiz_start()`.
-+ Method `LLMS_Quiz::get_lessons()` is deprecated with no replacement.
-
-
-v4.13.0 - 2021-01-26
---------------------
-
-##### Updates
-
-+ **The minimum supported WordPress core version has been raised to 5.2.** For more information, please review the [LifterLMS Minimum System Requirements](https://lifterlms.com/docs/minimum-system-requirements-lifterlms/).
-+ When cloning courses and lessons the cloned post will be created as a draft.
-+ When cloning courses the suffix "(Clone)" will be appended to the title of the course to unify cloning behavior with lessons.
-+ Added information about LifterLMS specific constant values to the LifterLMS system report.
-+ Added a new constant `LLMS_IS_SITE_CLONE` which can be used to force the site's clone status.
-
-##### Bug fixes
-
-+ Reverts site clone detection check changes implemented in 4.12.0 to restore pre 4.12.0 functionality which only runs checks on the admin panel for logged in users with the `manage_lifterlms` capability.
-+ Restore reliance on `mb_convert_encoding()` when passing html strings into `DOMDocument` and use the alternate method introduced in version 4.8.0 as a fallback.
-+ Fixed an issue encountered when unexpected or malformed data is stored in the LifterLMS admin notices option.
-
-
-v4.12.0 - 2021-01-20
---------------------
-
-##### Updates
-
-+ Automatic site clone detection checks have been adjusted to always run in favor of only running on the admin panel.
-+ LifterLMS Site Features (like recurring payment status) can now be configured via constant values.
-+ Added `llms_load_admin_tools` action to allow 3rd parties to easily hook into our admin tools system.
-+ Made numerous performance improvements on the course data background processor.
-+ Course data background processing will now be automatically throttled for courses with 500 students or more as opposed to the old value of 2,500 or more.
-
-##### Bug fixes
-
-+ Fixed an incorrect HTML `for` attribute and added an `id` to the related input element on the student dashboard voucher redemption endpoint.
-+ Fixed a pagination error encountered when using course or membership list shortcodes on the static front page.
-+ Make sure `is_lifterlms()` exists before calling it in navigation menu-related classes.
-
-##### Deprecations
-
-+ `LLMS_Admin_Notices_Core::check_staging()` is deprecated in favor of `LLMS_Staging::notice()`.
-+ Unused property `LLMS_Course::$sections` is replaced by `LLMS_Course::get_sections()`.
-+ Unused property `LLMS_Course::$sku` is deprecated with no replacement.
-+ `LLMS_Frontend_Forms` is deprecated, functionality is available via `LLMS_Controller_Account`.
-+ `LLMS_Frontend_Forms::reset_password()` is deprecated in favor of `LLMS_Controller_Account::reset_password()`.
-
-##### Templates Updated
-
-+ templates/myaccount/form-redeem-voucher.php
-
-
-v4.11.0 - 2021-01-07
---------------------
-
-##### Updates
-
-+ Adds the ability to use the Instructors blocks on the membership post type. Thanks [@alaa-alshamy](https://github.com/alaa-alshamy)!
-+ Updated LifterLMS Blocks to [Version 1.11.1](https://make.lifterlms.com/2020/12/29/lifterlms-blocks-version-1-11-1/).
-
-##### Bug fixes
-
-+ Fixed a PHP Notice encountered when trying to retrieve next lesson from an empty section.
-
-##### Templates updated
-
-+ templates/course/author.php
-
-
-v4.10.2 - 2021-01-04
---------------------
-
-##### Updates
-
-+ Improved performance of `llms_get_enrolled_students()`.
-+ Refactored lesson navigation query functions.
-
-##### Bug fixes
-
-+ Fixed sorting error when sorting student reports by name.
-
-
-v4.10.1 - 2020-12-10
---------------------
-
-##### Bug fixes
-
-+ Fixed visual issues encountered on the admin Add-Ons screen.
-+ Use `hr.wp-header-end` in favor of a second (hidden) to "catch" admin notices on the Add-Ons screen.
-+ Replace incorrect usage of invalid ID `llms_shop` with `courses` during catalog template loader checks.
-+ Function `llms_get_post()` will now only allow instantiation of LifterLMS classes.
-+ Remove unneeded require autoloaded file `includes/class.llms.quiz.data.php`.
-
-
-v4.10.0 - 2020-12-01
---------------------
-
-##### Updates
-
-+ Adds native theme support for the WordPress default theme Twenty Twenty-One.
-+ Improved the `llms_archive_description()` function and related filter.
-
-##### Bug fixes
-
-+ Fix issue encountered when using multiple role plugins to add the Instructor role to an Administrator user account. Thanks [@daniel-shuy](https://github.com/daniel-shuy)!
-+ Fixed an issue encountered when using non-latin characters in a course post URL slug. Thanks [@alaa-alshamy](https://github.com/alaa-alshamy)!
-
-##### Templates Updated
-
-+ templates/loop/pagination.php
-
-
-v4.9.0 - 2020-11-24
--------------------
-
-+ Tested up to WordPress core 5.6 (RC.1).
-+ Raised the minimum required WordPress core version to 5.1.
-+ Add new localization utilities for developers.
-+ Fixed various issues found on PHP 8.
-+ Added script localization for block editor scripts.
-+ Updated LifterLMS Rest to [Version 1.0.0-beta.17](https://make.lifterlms.com/2020/11/24/lifterlms-rest-api-version-1-0-0-beta-17/).
-+ Updated LifterLMS Blocks to [Version 1.10.0](https://make.lifterlms.com/2020/11/24/lifterlms-blocks-version-1-10-0/).
-
-
-v4.8.0 - 2020-11-16
--------------------
-
-##### Updates
-
-+ Added additional course imports and templates at the end of the setup wizard
-+ Added a cloud importer enabling 1-click importing of courses and course templates via the importer at LifterLMS -> Import
-+ Added strict comparisons in several places.
-+ Course "extra" data is only added to course arrays during exports to improve performance on the course builder.
-+ Improved template override loading performance on sites with no child theme.
-
-##### Bug fixes
-
-+ Fixed issues related to reliance on methods provided by the `mb_string` PHP module.
-
-##### Deprecations
-
-+ `LLMS_Admin_Setup_Wizard::generator_course_status()` is deprecated with no replacement.
-+ `LLMS_Admin_Setup_Wizard::watch_course_generation()` is deprecated with no replacement.
-
-
-v4.7.1 - 2020-11-05
--------------------
-
-##### Bug fixes
-
-+ During import generation set the post excerpt during the initial post insert instead of during metadata updates after creation.
-
-##### LifterLMS REST API 1.0.0-beta.16
-
-+ Improved performance of various database queries.
-
-
-v4.7.0 - 2020-11-02
--------------------
-
-##### Updates
-
-+ Major refactor of the `LLMS_Generator` class.
-+ Course export structure improved to include images and reusable blocks found in post content.
-+ When importing courses images will be automatically sideloaded into the media library as new attachment posts
-+ When importing courses reusable blocks will be imported
-+ Improved the success message displayed following a course import
-+ The class `LLMS_Admin_Reporting` is now always loaded on the admin panel.
-+ Performance improvements have been made to the `LLMS_Events_Query` to support using the `no_found_rows` query argument.
-+ When an order's billing plan "completes", a new meta property will be added to the order, `plan_ended`, which can be used to query orders with completed plans.
-+ Made improvements to the admin payment rescheduler tool to have more accurate reporting information.
-
-##### Bug fixes
-
-+ Replaced an instance of the LifterLMS (old) 1.0 rocket logo with the current rocket logo. Thanks [@imknight](https://github.com/imknight)!
-+ Ensure builder `switch-number` fields are set with the `number` type attribute. Thanks [@imknight](https://github.com/imknight)!
-+ Don't display a "View Post" link when updating post types that aren't publicly queryable. Thanks [@imknight](https://github.com/imknight)!
-+ Fixed the incorrect output of an achievement's title in a popover notification when using the {{ACHIEVEMENT_TITLE}} merge code. Thanks [@CadenG150](https://github.com/@CadenG150)!
-+ Fixed an error encountered when plugins utilize the `WP_Users_List_Table` class outside of the `users.php` screen.
-
-##### Deprecations
-
-+ `LLMS_Admin_Import::localize_stat()` is deprecated with no replacement.
-+ `LLMS_Admin_Users_Table::load_dependencies()` is deprecated with no replacement. The included class, `LLMS_Admin_Reporting` is now always loaded.
-+ `LLMS_Generator::add_custom_values()` is deprecated in favor of `LLMS_Generator_Courses::add_custom_values`.
-+ `LLMS_Generator::get_author_id_from_raw()` is deprecated in favor of `LLMS_Generator_Courses::get_author_id_from_raw()`.
-+ `LLMS_Generator::get_default_post_status()` is deprecated in favor of `LLMS_Generator_Courses::get_default_post_status()`.
-+ `LLMS_Generator::get_generated_posts()` is deprecated in favor of `LLMS_Generator::get_generated_content()`.
-+ `LLMS_Generator::format_date()` is deprecated in favor of `LLMS_Generator_Courses::format_date()`.
-+ `LLMS_Generator::increment()` is deprecated with no replacement.
-
-
-v4.6.0 - 2020-10-19
--------------------
-
-+ Added an admin tool to help automatically identify and schedule missed recurring payments
-+ Use `llms_deprecated_function()` in favor of `llms_log()`.
-+ Removed logging and use `apply_filters_deprecated()` in favor of `apply_filters()`.
-
-
-v4.5.1 - 2020-10-14
--------------------
-
-##### Updates
-
-+ Added logic in `LLMS_Database_Query` to reduce unnecessary DB reads when total results are not required.
-
-##### Bug fixes
-
-+ Removed the course "Excerpt" area in favor of utilization of the course sales page content.
-+ Show sales reporting currency symbol based on LifterLMS site options in favor of the browser's locale settings.
-+ Fixed an issue causing achievement-related JS DOM events to be bound unnecessarily. Thanks to [@imknight](https://github.com/imknight)!
-+ Fixed an issue causing site administrator capabilities to be removed during LifterLMS data removal.
-+ Fixed an issue causing an instructors course post count to display 0 on the admin panel courses post table. Thanks to [nhandl3](https://github.com/nhandl3)!
-+ Only display the admin bar "View Manager" to users who can bypass content restrictions.
-+ Updated jQuery code to stop using deprecated events and methods in preparation for jQuery upgrades in the WordPress core.
-+ Fixed PHP notice encountered on the admin panel when using Yoast SEO.
-
-
-v4.5.0 - 2020-10-06
--------------------
-
-##### Updates
-
-+ Students can now choose to make their certificates publicly accessible. Huge thanks to [@alaa-alshamy](https://github.com/alaa-alshamy) for contributing this awesome new feature!
-+ When accessing a certificate that does not have sharing enabled, a 404 will be served in favor of an error message.
-+ Admin payment gateway notices will no longer redisplay a week after being dismissed.
-+ Log files will be automatically split when a file is 5MB or larger, ensuring that log files never grow too large.
-+ During student registration, `wp_signon()` is used to login the newly created user.
-+ Improved slow background process database queries run during the automatic "closing" of idle user sessions.
-
-##### Bug fixes
-
-+ `LLMS_User_Certificate::get_related_post_id()` and `LLMS_User_Certificate::get_user_id()` will now always return an integer.
-+ Fixes issues related to account sign on/out and session start/end events being recorded incorrectly.
-
-##### Deprecations
-
-+ `llms_set_person_auth_cookie()` is deprecated in favor of WP core methods such as `wp_signon()`, `wp_set_current_user()`, and/or `wp_set_auth_cookie()`.
-
-
-v4.4.4 - 2020-09-21
--------------------
-
-##### Bug fixes
-
-+ Don't pass unsupported parameter `$use_cache` to the `calculate_grade()` method, thanks [@pondermatic](https://github.com/pondermatic)!
-+ Add an HTML title attribute to the admin setup wizard page.
-+ Fix issue causing notices to be logged during quiz attempt deletion on the admin panel.
-
-##### Deprecations
-
-+ Method `LLMS_Admin_Setup_Wizard::scripts()` & `LLMS_Admin_Setup_Wizard::output_step_html()` are deprecated with no replacements.
-
-##### LifterLMS REST API version 1.0.0-beta.15
-
-+ Bugfix: Created lessons will now have the derivative `course_id` property set according to the ID of the lesson's parent section.
-+ Bugfix: The `course_id` property of lessons is now properly marked as read-only.
-
-
-v4.4.3 - 2020-09-16
--------------------
-
-+ Bugfix: Fix engagement email duplicate check issue.
-+ Bugfix: Fix transposition issue found in engagement email dupcheck debug log message.
-
-
-v4.4.2 - 2020-09-08
--------------------
-
-+ Bugfix: Fix lesson navigation regression introduced in 4.4.0.
-
-
-v4.4.1 - 2020-09-04
--------------------
-
-+ Bugfix: Delayed engagement emails will not be sent to students who's enrollment is not active in the related course or membership which triggered the email.
-+ Bugfix: Fixed regression introduced in 4.4.0 preventing the `certificates.css` stylesheet from loading on certificate screens.
-+ Update: Engagement email related logs will be logged to a separate logfile, `engagement-emails` in favor of the main `llms` log.
-
-
-v4.4.0 - 2020-09-02
--------------------
-
-##### Updates
-
-+ Improved LifterLMS static asset registration, queuing, definitions, and management.
-+ Added strict comparators in various areas of the codebase.
-
-##### Changes to deprecated function logs and warnings
-
-+ The `llms_deprecated_function()` method now uses `_deprecated_function()` (from the WP core) under the hood.
-+ LifterLMS deprecation warnings are logged to the WP core `debug.log` file in favor of the LifterLMS log file.
-+ LifterLMS deprecation warnings will now trigger a `E_USER_DEPRECATED` error when `WP_DEBUG` is enabled.
-
-##### Bugfixes
-
-+ Fixed a lesson navigation issue encountered when sections contain unpublished lessons.
-+ Fixed an undefined variable notice encountered on the student dashboard.
-+ Fixed an issue encountered when the `wp_login_url()` function returns an empty string.
-+ Fixed a double slash found in an asset URI.
-
-##### Deprecations
-
-+ `LLMS_Frontend_Assets::is_inline_script_enqueued()` is deprecated in favor of `LLMS_Frontend_Assets::is_inline_enqueued()`.
-+ `LLMS_Ajax::register_script()` is deprecated with no replacement.
-+ `LLMS_Ajax::get_ajax_data()` is deprecated with no replacement.
-+ Javascript AJAX nonce variable is moved from `wp_ajax_data.nonce` to `window.llms.ajax-nonce`.
-
-##### Templates Updated
-
-+ templates/checkout/form-gateways.php
-+ templates/course/lesson-preview.php
-+ templates/course/syllabus.php
-
-
-v4.3.3 - 2020-08-17
--------------------
-
-+ Fixed an issue causing legends of reporting charts to be truncated and only readable after a mouse hover.
-+ Fixed an issue caused by passing `null` values to `wp_insert_post()`.
-+ Fixed a javascript error encountered on LifterLMS settings screens.
-
-
-v4.3.2 - 2020-08-10
--------------------
-
-+ WP 5.5 compatibility: Automatically deregister "protected" post types from wp-sitemap.xml.
-
-
-v4.3.1 - 2020-08-06
--------------------
-
-+ When resetting tracking data cookies, set a "secure" cookie where possible.
-+ Catch an unhandled error encountered when generating certificate exports.
-+ When an error is encountered during certificate export generation, display an error notice instead of a general notice.
-
-
-v4.3.0 - 2020-07-28
--------------------
-
-##### Security Fix
-
-+ Fixed an XSS issue on account edit and registration forms. Thanks to [Morningstar](https://twitter.com/0xMstar) for reporting this issue!
-
-##### Bug fixes
-
-+ Fixed an error encountered during customizer live theme preview encountered when Twenty-twenty is the current theme.
-+ The `$type` property of the `LLMS_Abstract_Database_Store` is now set to a default placeholder value (`_db_record_`) in favor of an empty string.
-+ Set the `$type` property of the `LLMS_Event` class to `event`.
-+ Set the `$type` property of the `LLMS_Quiz_Attempt` class to `quiz_attempt`.
-+ Set the `$type` property of the `LLMS_User_Post_Meta` class to `user_postmeta`.
-
-##### Updates
-
-+ Added a filter `llms_form_field_args` to allow extending form fields prior to HTML rendering.
-
-##### Deprecations
-
-The following filter hooks have been deprecated. These hooks were being called as the result of a bug (noted above) and should no longer be used. They will be removed in the next *major* version of LifterLMS.
-
-+ `llms__created` has been deprecated, use `llms_{$type}_created` where `{$type}` is the database record type defined by the class property.
-+ `llms__deleted` has been deprecated, use `llms_{$type}_deleted` where `{$type}` is the database record type defined by the class property.
-+ `llms__updated` has been deprecated, use `llms_{$type}_updated` where `{$type}` is the database record type defined by the class property.
-
-
-v4.2.0 - 2020-07-21
--------------------
-
-##### Updates
-
-+ Admins can now preview the checkout screen as visitors or students using the "View As" function from the WP Admin bar
-+ Javascript cookies now set cookies with `sameSite` set to `strict` as recommended by Firefox/Mozilla.
-+ Added filters to allow 3rd parties to use LifterLMS completion tracking APIs to "complete" external or non-LMS content.
-+ Added "deep" orphan checks when checking the relationship between a quiz and a lesson.
-+ Normalized the return structure in `LLMS_Post_Instructors::get_instructors()` when no instructor set, thanks [@nicolas-jaussaud](https://github.com/nicolas-jaussaud)!
-+ Update LifterLMS rocket icon used in the WP Admin Bar in the "View As" area.
-
-##### Bug fixes
-
-+ When deleting a quiz attempt the related lesson will now be automatically marked as "Incomplete" when appropriate.
-+ `LLMS_Abstract_User_Data::get_id()` now always returns an integer.
-+ Fixed a 404 error resulting from settings tooltips referencing a missing icon asset.
-+ Added logic to set the order status to 'cancelled' when an enrollment linked to an order is deleted.
-
-
-
-v4.1.0 - 2020-07-06
--------------------
-
-##### LifterLMS REST 1.0.0-beta.14
-
-+ **Breaking**: `LLMS_REST_Controller::prepare_links()` now requires a second parameter, the `WP_REST_Request` for the current request. Any classes extending and overwriting this method must adjust their method signature to accommodate this change.
-+ Bugfix: Fixed issue causing response objects to unintentionally include keys of remapped fields. This error occurs only when extending core controllers and attempting to exclude core fields.
-
-
-v4.0.0 - 2020-06-25
--------------------
-
-This is a *major* release. Many backwards incompatible changes have been made that may affect your site if you have custom code which rely on previously deprecated functions or methods. If you're not sure about your custom code, test the upgrade in a [staging site](https://lifterlms.com/docs/staging/).
-
-##### Bug Fixes
-
-+ Fixed an issue encountered during quiz grading.
-+ Add RTL language support for popover interfaces found throughout the course builder.
-+ Fixed issue encountered in MySQL 8.0 when using the bbPress integration.
-
-##### LifterLMS REST API 1.0.0-beta.13
-
-+ Bugfix: Fixed error response messages on the instructors endpoint.
-+ Bugfix: Fixed student progress deletion endpoint issues preventing progress from being fully removed.
-
-##### Action Scheduler Library
-
-Switches from prospress/action-scheduler to woocommerce/action-scheduler. The repository has been moved but it's the same library & upgrades to latest version (3.1.6).
-
-While this is a semantically major upgrade of the library there are no backwards incompatible changes to the public API.
-
-There have been several deprecated functions/classes. The LifterLMS core does not directly use any of these deprecated functions but 3rd parties might and should review the changelog of the library to see if they are affected by any deprecations: https://github.com/woocommerce/action-scheduler/releases.
-
-##### Deprecations
-
-+ Function `LLMS()` is deprecated in favor of `llms()`.
-
-##### Templates Modified
-
-+ templates/global/form-login.php
-+ templates/global/form-registration.php
-
-##### Miscellaneous Breaking Changes
-
-**WP Session Manager Library**
-
-Removes the bundled WP Session Manager plugin dependency, all public methods included with this plugin have been removed without direct replacements.
-
-**Removed JS dependencies**
-
-Removes bundled JS bootstrap 3 dependencies: "collapse" and "transition"
-
-**Removed CSS Classes**
-
-Removes classnames from student dashboard login and registration form wrapper elements which conflict with bootstrap causing visual issues.
-
-These classes are not used by the LifterLMS core or add-ons and are a legacy class that hasn't been removed for fear of creating backwards compatibility issues with any custom css, 3rd party themes, etc...
-
-+ templates/global/form-login.php: Removes `col-1` class from the `div.llms-person-login-form-wrapper` element.
-+ templates/global/form-registration.php: : Removes `col-2` class from the `div.llms-new-person-form-wrapper` element.
-
-**Removed SVG assets and functionality**
-
-+ LifterLMS no longer utilizes SVGs powered by the `LLMS_Svg` class. The class has been deprecated and removed (see below).
-+ The `assets/svg` directory (and all SVG assets contained within) has been removed.
-+ The constant `LLMS_SVG_DIR` has been removed.
-
-##### Previously deprecated classes (and files) that have been removed
-
-+ `LLMS_Admin_Analytics`: `includes/admin/class.llms.admin.analytics.php`
-+ `LLMS_Analytics`: `includes/class.llms.analytics.php`
-+ `LLMS_Analytics_Courses`: `includes/admin/analytics/class.llms.analytics.courses.php`
-+ `LLMS_Analytics_Memberships`: `includes/admin/analytics/class.llms.analytics.memberships.php`
-+ `LLMS_Analytics_Page`: `includes/admin/analytics/class.llms.analytics.page.php`
-+ `LLMS_Analytics_Sales`: `includes/admin/analytics/class.llms.analytics.sales.php`
-+ `LLMS_Course_Basic`: `includes/class.llms.course.basic.php`
-+ `LLMS_Course_Handler`: `includes/class.llms.course.handler.php`
-+ `LLMS_Course_Factory`: `includes/class.llms.course.factory.php`
-+ `LLMS_Lesson_Basic`: `includes/class.llms.lesson.basic.php`
-+ `LLMS_Meta_Box_Expiration`: `includes/admin/post-types/meta-boxes/class.llms.meta.box.expiration.php`
-+ `LLMS_Meta_Box_Video`: `includes/admin/post-types/meta-boxes/class.llms.meta.box.video.php`
-+ `LLMS_Number`: `includes/class.llms.number.php`
-+ `LLMS_Person`: `includes/class.llms.person.php`
-+ `LLMS_Quiz_Legacy`: `includes/class.llms.quiz.legacy.php`
-+ `LLMS_Svg`: `includes/class.llms.svg.php`
-+ `LLMS_Table_Questions`: `includes/admin/reporting/tables/llms.table.questions.php`
-+ `LLMS\Users\User`: `includes/Users/User.php`
-
-##### Previously deprecated class properties that have been removed
-
-+ `LifterLMS->person` (generally accessed via `LLMS()->person`).
-+ `LLMS_Analytics_Widget->date_end`
-+ `LLMS_Analytics_Widget->date_start`
-+ `LLMS_Analytics_Widget->output`
-+ `LLMS_Certificate->enabled`
-+ `LLMS_Course_Data->$course`
-+ `LLMS_Course_Data->$course_id`
-
-##### Previously deprecated class methods that have been removed:
-
-+ `LLMS_Admin_Table::queue_export()`
-+ `LLMS_AJAX::get_achievements()`
-+ `LLMS_AJAX::get_all_posts()`
-+ `LLMS_AJAX::get_associated_lessons()`
-+ `LLMS_AJAX::get_certificates()`
-+ `LLMS_AJAX::get_courses()`
-+ `LLMS_AJAX::get_course_tracks()`
-+ `LLMS_AJAX::get_emails()`
-+ `LLMS_AJAX::get_enrolled_students()`
-+ `LLMS_AJAX::get_enrolled_students_ids()`
-+ `LLMS_AJAX::get_lesson()`
-+ `LLMS_AJAX::get_lessons()`
-+ `LLMS_AJAX::get_lessons_alt()`
-+ `LLMS_AJAX::get_memberships()`
-+ `LLMS_AJAX::get_question()`
-+ `LLMS_AJAX::get_sections()`
-+ `LLMS_AJAX::get_sections_alt()`
-+ `LLMS_AJAX::get_students()`
-+ `LLMS_AJAX::update_syllabus()`
-+ `LLMS_Course::get_children_sections()`
-+ `LLMS_Course::get_children_lessons()`
-+ `LLMS_Course::get_author()`
-+ `LLMS_Course::get_author_id()`
-+ `LLMS_Course::get_author_name()`
-+ `LLMS_Course::get_sku()`
-+ `LLMS_Course::get_id()`
-+ `LLMS_Course::get_title()`
-+ `LLMS_Course::get_permalink()`
-+ `LLMS_Course::get_user_postmeta_data()`
-+ `LLMS_Course::get_user_postmetas_by_key()`
-+ `LLMS_Course::get_checkout_url()`
-+ `LLMS_Course::get_start_date()`
-+ `LLMS_Course::get_end_date()`
-+ `LLMS_Course::get_next_uncompleted_lesson()`
-+ `LLMS_Course::get_lesson_ids()`
-+ `LLMS_Course::get_syllabus_sections()`
-+ `LLMS_Course::get_short_description()`
-+ `LLMS_Course::get_syllabus()`
-+ `LLMS_Course::get_user_enroll_date()`
-+ `LLMS_Course::get_user_post_data()`
-+ `LLMS_Course::check_enrollment()`
-+ `LLMS_Course::is_user_enrolled()`
-+ `LLMS_Course::get_student_progress()`
-+ `LLMS_Course::get_membership_link()`
-+ `LLMS_Lesson::get_assigned_quiz()`
-+ `LLMS_Lesson::get_drip_days()`
-+ `LLMS_Lesson::mark_complete()`
-+ `LLMS_PlayNice::divi_fb_wc_product_tabs_after()`
-+ `LLMS_PlayNice::divi_fb_wc_product_tabs_before()`
-+ `LLMS_PlayNice::wc_is_account_page()`
-+ `LLMS_Post_Instructors::get_defaults()`
-+ `LLMS_Query::set_dashboard_pagination()`
-+ `LLMS_Query::add_query_vars()`
-+ `LLMS_Question::get_correct_option()`
-+ `LLMS_Question::get_correct_option_key()`
-+ `LLMS_Question::get_options()`
-+ `LLMS_Quiz::get_assoc_lesson()`
-+ `LLMS_Quiz::get_passing_percent()`
-+ `LLMS_Quiz::get_remaining_attempts_by_user()`
-+ `LLMS_Quiz::get_time_limit()`
-+ `LLMS_Quiz::get_total_allowed_attempts()`
-+ `LLMS_Quiz::get_total_attempts_by_user()`
-+ `LLMS_Quiz_Attempt::get_status()`
-+ `LLMS_Shortcode_My_Account::lost_password()`
-+ `LLMS_Section::count_children_lessons()`
-+ `LLMS_Section::delete()`
-+ `LLMS_Section::get_children_lessons()`
-+ `LLMS_Section::remove_all_child_lessons()`
-+ `LLMS_Section::remove_child_lesson()`
-+ `LLMS_Section::set_order()`
-+ `LLMS_Section::set_title()`
-+ `LLMS_Section::update()`
-+ `LLMS_Session::init()`
-+ `LLMS_Session::maybe_start_session()`
-+ `LLMS_Session::set_expiration_variant_time()`
-+ `LLMS_Session::set_expiration_time()`
-+ `LLMS_Session::use_php_sessions()`
-+ `LLMS_Student::delete_quiz_attempt()`
-+ `LLMS_Student::get_best_quiz_attempt()`
-+ `LLMS_Student::get_quiz_data()`
-+ `LLMS_Student::has_access()`
-+ `LLMS_Student_Dashboard::output_courses_content()`
-+ `LLMS_Student_Dashboard::output_dashboard_content()`
-+ `LLMS_Student_Dashboard::output_notifications_content()`
-+ `LLMS_Widget_Course_Progress::widget_contents()`
-
-##### Previously deprecated functions that have been removed
-
-+ `is_filtered()`
-+ `lifterlms_template_loop_view_link()`
-+ `llms_add_user_table_columns()`
-+ `llms_add_user_table_rows()`
-+ `llms_create_new_person()`
-+ `llms_get_question()`
-+ `llms_get_quiz()`
-+ `llms_set_user_password_rest_key()`
-+ `llms_setup_product_data()`
-+ `llms_setup_question_data()`
-+ `llms_verify_password_reset_key()`
-
-##### Previously deprecated hooks that have been removed
-
-+ Action: `lifterlms_before_memberships_loop_item_title`
-+ Action: `lifterlms_after_memberships_loop_item_title`
-+ Action: `lifterlms_after_memberships_loop_item_title`
-+ Filter: `lifterlms_completed_transaction_message`
-+ Filter: `lifterlms_is_filtered`
-+ Filter: `lifterlms_get_analytics_pages`
-+ Filter: `lifterlms_analytics_tabs_array`
-
-##### Previously deprecated shortcodes that have been removed
-
-+ `[courses]`
-+ `[lifterlms_user_statistics]`
-
-##### Previously deprecated templates that have been removed
-
-+ `templates/loop/view-link.php`
-
-##### Previously deprecated global variables that have been removed
-
-+ `$product`
-+ `$question`
-
-
-v3.41.1 - 2020-06-23
---------------------
-
-+ Apply restrictions to post content and excerpts during WP REST requests.
-
-
-v4.0.0-rc.1 - 2020-06-18
-------------------------
-
-View release notes at [https://make.lifterlms.com/2020/06/18/lifterlms-version-4-0-0-rc-1/](https://make.lifterlms.com/2020/06/18/lifterlms-version-4-0-0-rc-1/).
-
-
-v3.41.0 - 2020-06-12
---------------------
-
-##### Bug Fixes
-
-+ Fix issues encountered when a user role with the `edit_users` capability has multiple LifterLMS roles (like Student).
-
-##### LifterLMS 4.0.0 Release Preparation
-
-LifterLMS 4.0.0, our first major release in several years, is nearing the end of it's beta testing cycle. Many unused legacy functions, classes, and files are being removed in version 4.0.0 and well as many functions, classes, and files that were previously deprecated.
-
-The following is a list of items that have not been previously deprecated but will be removed from LifterLMS 4.0.0.
-
-For full details on the release, information on beta testing, and more, see our [blog post on the release](https://make.lifterlms.com/2020/06/01/preparing-for-lifterlms-4-0-0/).
-
-##### Deprecations
-
-The WP Session Manager plugin / library that is bundled into the LifterLMS core code base is deprecated from our code base and is being fully removed in favor of an internal session manager.
-
-The bundled Javascript Boostrap 3 modules, "collapse" and "transition" are deprecated from our codebase and are being removed.
-
-The following CSS classes are deprecated and will be removed:
-
-+ `templates/global/form-login.php`: The `col-1` class from the `div.llms-person-login-form-wrapper` element will be removed.
-+ `templates/global/form-registration.php`: : The `col-2` class from the `div.llms-new-person-form-wrapper` element will be removed.
-
-The following classes are deprecated:
-
-+ `LLMS_Number`: `includes/class.llms.number.php`
-+ `LLMS_Person`: `includes/class.llms.person.php`
-+ `LLMS_Table_Questions`: `includes/admin/reporting/tables/llms.table.questions.php`
-
-The following class methods are deprecated:
-
-+ `LLMS_PlayNice::divi_fb_wc_product_tabs_after()`
-+ `LLMS_PlayNice::divi_fb_wc_product_tabs_before()`
-+ `LLMS_Question::get_correct_option()`
-+ `LLMS_Question::get_correct_option_key()`
-+ `LLMS_Quiz::get_passing_percent()`, use `LLMS_Quiz::get( 'passing_percent' )` instead.
-+ `LLMS_Quiz::get_assoc_lesson()`, use `LLMS_Quiz::get( 'lesson_id' )` instead.
-+ `LLMS_Session::init()`
-+ `LLMS_Session::maybe_start_session()`
-+ `LLMS_Session::set_expiration_variant_time()`
-+ `LLMS_Session::set_expiration_time()`
-+ `LLMS_Session::use_php_sessions()`
-
-The following class properties are deprecated:
-
-+ `LifterLMS->person` (generally accessed via `LLMS()->person`).
-
-The following functions are deprecated:
-
-+ `lifterlms_template_loop_view_link()`
-+ `llms_add_user_table_columns()`
-+ `llms_add_user_table_rows()`
-+ `llms_get_question()`
-+ `llms_get_quiz()`
-+ `llms_setup_product_data()`
-+ `llms_setup_question_data()`
-
-The following global variables are deprecated:
-
-+ `$product`
-+ `$question`
-
-The following action hooks are deprecated:
-
-+ `lifterlms_before_memberships_loop_item_title`
-+ `lifterlms_after_memberships_loop_item_title`
-+ `lifterlms_after_memberships_loop_item_title`
-
-The following template file is deprecated:
-
-+ `templates/loop/view-link.php`
-
-
-v4.0.0-beta.3 - 2020-06-10
---------------------------
-
-View beta release notes at [https://make.lifterlms.com/2020/06/10/lifterlms-version-4-0-0-beta-3/](https://make.lifterlms.com/2020/06/10/lifterlms-version-4-0-0-beta-3/).
-
-
-v3.40.0 - 2020-06-09
---------------------
-
-##### Updates
-
-+ Adds a 1-click installation connector for the MailHawk email delivery plugin.
-
-##### Bugfixes
-
-+ Fixed an issue encountered during checkout when using a coupon against an access plan with a free trial.
-
-##### Deprecations
-
-+ `LLMS_SendWP::do_remote_install()` will be converted to a protected method and should no longer be called directly.
-+ `LLMS_Abstract_Email_Provider::output_css()`
-
-##### Templates updated
-
-+ templates/checkout/form-gateways.php
-
-
-v4.0.0-beta.2 - 2020-06-04
---------------------------
-
-View beta release notes at [https://make.lifterlms.com/2020/06/04/lifterlms-version-4-0-0-beta-2/](https://make.lifterlms.com/2020/06/04/lifterlms-version-4-0-0-beta-2/).
-
-
-v4.0.0-beta.1 - 2020-06-01
---------------------------
-
-View beta release notes at [https://make.lifterlms.com/2020/06/01/lifterlms-version-4-0-0-beta-1/](https://make.lifterlms.com/2020/06/01/lifterlms-version-4-0-0-beta-1/).
-
-
-v3.39.0 - 2020-05-28
---------------------
-
-+ Student Welcome notifications and user registered engagements now fire when users are created via the REST POST requests to the `/students` endpoint.
-+ Bugfix: Error encountered when printing full-page certificates on certain themes.
-
-##### LifterLMS REST 1.0.0-beta.12
-
-+ Feature: Added the ability to filter student and instructor collection list requests by various user information fields.
-+ Fix: Prevent infinite loops encountered when invalid API keys are utilized.
-+ Fix: Add an action used to fire LifterLMS core engagement and notification emails
-
-
-v3.38.2 - 2020-05-19
---------------------
-
-+ Added a default question type ("choice") to prevent malformed questions from being inadvertently stored in the database.
-+ When retrieving question data from the database, automatically fall back to the default question type value if no question type is saved.
-
-
-v3.38.1 - 2020-05-11
---------------------
-
-+ Update: Added methods for retrieving a list of posts associated with a membership.
-+ Bug fix: Fixed an issue causing certificate backgrounds to be cropped or cut in certain circumstances.
-+ Bug fix: Fixed an issue generating certificate downloads on servers where `mime_content_type()` does not exist.
-+ Bug fix: Fixed an issue which caused bbPress course forum restrictions to stop working.
-
-
-v3.38.0 - 2020-04-29
---------------------
-
-##### Updates
-
-+ The output of course restriction errors which may prevent enrollment is now displayed in it's own template in favor of the logic being included in the `product/pricing-table.php` template.
-+ The course progress bar shortcode will now only display the progress bar to enrolled users. An additional option has been added to the shortcode to allow showing a 0% progress bar to non-enrolled users. [Read more](https://lifterlms.com/docs/shortcodes/#lifterlms_course_progress).
-+ The "Course Progress" widget now has an option to optionally display the progress bar to non-enrolled users. By default it will display only to enrolled students.
-+ Updates LifterLMS Blocks to version 1.9.0
-
-##### Bug fixes
-
-+ Fixed an issue causing free access plans to bypass course enrollment restrictions like capacity and enrollment time periods.
-+ Fixed an issue causing custom checkout success redirects to fail when using gateways that require a payment confirmation step. This fixes an issue in the LifterLMS PayPal payment gateway.
-+ Fixed an issue causing deprecation theme-compatibility related deprecation notices to be incorrectly thrown.
-+ Fixed spelling error in variable passed to the `product/pricing-table.php` template. The misspelled variable is still being passed to the variable for backwards compatibility.
-+ Updated the way notification background processors are dispatched. This fixes an issue in the LifterLMS Twilio add-on.
-
-##### Deprecations
-
-+ `LLMS_Notifications::dispatch_processors()` is deprecated in favor of async dispatching via `LLMS_Notifications::schedule_processors_dispatch()`.
-
-##### Templates Updated
-
-+ templates/product/pricing-table.php
-
-##### LifterLMS Blocks
-
-+ Update: Improved script dependencies definitions.
-+ Update: Updated asset paths for consistency with other LifterLMS projects.
-+ Update: Updated various WP Core references that have been deprecated (maintains backwards compatibility).
-+ Update: The Lesson Progression block is no longer rendered server-side in the block editor (minor performance improvement).
-+ Update: Converted the course progress block into a dynamic block. Fixes an issue allowing the progress block to be visible to non-enrolled students.
-+ Update: Added a filter on the output of the Pricing Table block: `llms_blocks_render_pricing_table_block`.
-+ Bug fix: Fixed an issue encountered when using the WP Core "Table" block.
-+ Bug fix: Fixed a few areas where `class` was being used instead of `className` to define CSS classes on elements in the block editor.
-+ Bug fix: Fixed a user-experience issues encountered on the Course Information block when all possible information is disabled.
-+ Bug fix: Fixed an issue causing visibility attributes to render on blocks that don't support them.
-+ Bug fix: Fixed an issue preventing 3rd party blocks from modifying default block visibility settings.
-+ Bug fix: Fixed a spelling error visible inside the block editor.
-+ Bug fix: Fixed an issue causing the "Course Progress" block to be shown to non-enrolled students and visitors.
-+ Bug fix: Removed redundant CSS from frontend.
-+ Bug fix: Stop outputting editor CSS on the frontend.
-+ Bug fix: Dynamic blocks with no content to render will now only output their empty render messages inside the block editor, not on the frontend.
-+ Changes to the Classic Editor Block:
- + The classic editor block will no longer show block visibility settings because it is impossible to use those settings to filter the block on the frontend.
- + In order to apply visibility settings to the classic editor block, place the Classic Editor within a "Group" block and apply visibility settings to the Group.
-
-
-v3.37.19 - 2020-04-20
----------------------
-
-##### Updates
-
-+ Added a new debugging tool to clear pending batches created by background processors.
-+ Added a new method `LLMS_Abstract_Notification_View::get_object()` which can be used by notification views to override the loading of the post (or object) which triggered the notification.
-
-##### Bug Fixes
-
-+ Added localization to strings on the coupon admin screen. Thanks [parfilov](https://github.com/parfilov)!
-+ Fixed issue encountered in metaboxes when the `$post` global variable is not set.
-
-
-v3.37.18 - 2020-04-14
----------------------
-
-+ Fix regression introduced in version 3.34.0 which prevented checkout success redirection to external domains.
-+ Resolved a conflict with LifterLMS, Divi, and WooCommerce encountered when using the Divi frontend pagebuilder on courses and memberships.
-+ Fixed issue causing localization issues when creating access plans, thanks [@mcguffin](https://github.com/mcguffin)!
-
-
-v3.37.17 - 2020-04-10
----------------------
-
-##### Updates
-
-+ Updated the lost password and password reset form handlers for improved error handling and extendability by other plugins.
-
-##### Bug Fixes
-
-+ Fixed a conflict with WooCommerce resulting in password reset issues on the WooCommerce account dashboard.
-+ Fixed an issue allowing voucher codes from deleted vouchers to still be redeemed.
-+ Fixed an issue with pagination on the courses tab of a users BuddyPress profile.
-+ Fixed a typo in the `post_status` query arg when retrieving access plans for a course or membership.
-
-##### Deprecations
-
-+ `LLMS_PlayNice::wc_is_account_page()` is no longer required and is deprecated with no replacement
-+ WP core `get_password_reset_key()` should be used in favor of `llms_set_user_password_rest_key()`.
-+ WP core `check_password_reset_key()` should be used in favor of `llms_verify_password_reset_key()`.
-
-
-v3.37.16 - 2020-03-31
----------------------
-
-+ Bugfix: Fix issue causing student dashboard notification view to work incorrectly.
-
-
-v3.37.15 - 2020-03-27
----------------------
-
-##### Security Notice
-
-**This releases fixes a security issue. Please upgrade immediately!**
-
-Props to [Omri Herscovici and Sagi Tzadik from Check Point Research](https://www.checkpoint.com/) who found and disclosed the vulnerability resolved in this release.
-
-##### Updates & Bug Fixes
-
-+ Excluded `page.*` events in order to keep the events table small.
-+ Fixed error encountered when errors encountered validating custom fields. Thanks to [@wenchen](https://github.com/wenchen)!
-+ Fixed issue causing course pagination issues in certain scenarios.
-
-##### LifterLMS REST API Version 1.0.0-beta.11
-
-+ Bugfix: Correctly store user `billing_postcode` meta data.
-+ Bugfix: Fixed issue preventing course.created (and other post.created) webhooks from firing.
-
-
-v3.37.14 - 2020-03-25
----------------------
-
-+ Update: Added the ability to view the PHP error log file (as defined by `ini_get( 'error_log' )` ) on the LifterLMS -> Status -> Logs page.
-+ Update: Added strict comparisons for various condition checks.
-+ Bugfix: Fixed an issue where users might be redirected to the wrong course following a course import at the conclusion of the setup wizard.
-+ Bugfix: Fixed issue with tracking event data being lost due to cookie size limitations.
-+ Bugfix: Fixed issue potentially encountered when checking user capabilities for certificates and achievements.
-+ Bugfix: Fixed an issue preventing additional instances of the JS `LLMS.Storage` class from being instantiated.
-
-
-v3.37.13 - 2020-03-10
----------------------
-
-+ Remove usage of internal functions marked as deprecated.
-
-
-v3.37.12 - 2020-03-10
----------------------
-
-##### Updates
-
-+ Tested up to WordPress Core version 5.4.
-+ Added support for post revisions for course, lesson, and membership post types.
-
-##### Developer updates
-
-+ Added strict comparisons for various condition checks.
-+ Added a new filter, `llms_builder_{$post_type}_force_delete` which allows control over whether a post is moved to the trash or immediately deleted when trashed via the course builder.
-
-##### Bugfixes
-
-+ Fixed the name of the "actions" column on the quiz reporting screen.
-+ Fixed PHP warnings resulting from functions used to exclude order notes from comment counts.
-+ Fixed issue causing order notes to be included in the count displayed on the admin comments list despite their exclusion from the table itself.
-+ Fixed PHP notice thrown on the WordPress menu editor interface encountered when student dashboard endpoints have been deleted or removed.
-+ Fixed issue causing quotes to be encoded in various email, achievement, and certificate fields.
-
-##### Deprecations
-
-The following have been deprecated with no replacements and will be removed in the next major update:
-
-+ `LLMS_Course_Factory::get_course()`
-+ `LLMS_Course_Factory::get_lesson()`
-+ `LLMS_Course_Factory::get_product()`
-+ `LLMS_Course_Factory::get_quiz()`
-+ `LLMS_Course_Factory::get_question()`
-+ `LLMS_Course_Handler::get_users_not_enrolled()`
-
-
-v3.37.11 - 2020-03-03
----------------------
-
-##### Updates
-
-+ Resolved a conflict with the "Starter Templates" plugin which made it impossible to edit quizzes while the plugin was enabled.
-
-##### Bugfixes
-
-+ Fixed an issue causing lesson post authors to be "lost" when adding an existing lesson to a course.
-+ Fixed an issue causing php notices to be generated during existing lesson addition on the course builder.
-+ Fixed an issue causing course bbPress forums to be lost when editing that course using the "Quick Edit" function from the courses table.
-
-##### LifterLMS REST v1.0.0-beta.10
-
-+ Added text domain to i18n functions that were missing the domain.
-+ Added a "trigger" parameter to enrollment-related endpoints.
-+ Added `llms_rest_enrollments_item_schema`, `llms_rest_prepare_enrollment_object_response`, `llms_rest_enrollment_links` filter hooks.
-+ Fixed setting roles instead of appending them when updating user, thanks [@pondermatic](https://github.com/pondermatic)!
-+ Fixed return when the enrollment to be deleted doesn't exist, returns `204` instead of `404`.
-+ Fixed 'context' query parameter schema, thanks [@pondermatic](https://github.com/pondermatic)!
-
-
-v3.37.10 - 2020-02-19
----------------------
-
-+ Update: Exclude the privacy policy page from the sitewide restriction.
-+ Update: Added filter `llms_enable_open_registration`.
-+ Fix: Notices are printed on pages configured as a membership restriction redirect page.
-+ Fix: Do not apply membership restrictions on the page set as membership's restriction redirect page.
-+ Fix: Added flag to print notices when landing on the redirected page.
-
-
-v3.37.9 - 2020-02-11
---------------------
-
-+ Updated CSS classes used in privacy policy text suggestions per changes in WordPress core 5.3. Thanks [@garretthyder](https://github.com/garretthyder)!
-+ Added privacy exported group descriptions. Thanks [@garretthyder](https://github.com/garretthyder)!
-+ Added filters `llms_user_enrollment_allowed_post_types` & `llms_user_enrollment_status_allowed_post_types` which allow 3rd parties to enroll users into additional post types via core enrollment methods.
-+ Added option for admin settings fields to show an asterisk for required fields.
-+ Added option for integration plugins can now add automatically generated "Settings" link to the plugins screen.
-+ Bugfix: Fixed an IE compatibility issue related to usage of `Object.assign()`.
-
-
-v3.37.8 - 2020-01-21
---------------------
-
-+ Fix: Student quiz attempts are now automatically deleted when a quiz is deleted.
-+ Fix: "Orphaned" quizzes (those with no parent course and/or lesson) can be deleted from the Quiz reporting table.
-+ Fix: Quiz IDs on the quiz reporting screen now link to the quiz within the course builder. If the quiz is an "orphan" there will be no link.
-
-
-v3.38.0-beta.2 - 2019-12-19
----------------------------
-
-+ Update LifterLMS Blocks to v1.7.3.
-
-
-v3.38.0-beta.1 - 2019-12-13
----------------------------
-
-##### Form Management Improvements
-
-+ Forms (registration, checkout, account) are now managed via a block editor interface.
-+ Customize field labels, description, and placeholders in a simple WYSIWYG interface.
-+ Mark fields as required with a toggle.
-+ Reorder fields with drag and drop.
-+ Customize layout using block editor columns.
-+ Use LifterLMS block-level visibility to conditionally display fields based on enrollment or logged in status.
-
-##### Form Localization
-
-+ Added default country and state/region lists (see the "languages" directory).
-+ Country and state forms are now searchable dropdowns that adjusted based on the currently selected country.
-+ Each country's locale information (such as what a "post code" is called and whether or not the country has states or post codes) will update automatically based on the selected country.
-+ Enqueue select2 on account and checkout pages for searchable dropdowns for country & state.
-
-##### Updates
-
-+ New shortcode `[user]` which is used to output user information in a merge code interface.
-+ Improved form field generation via `LLMS_Form_Field` class.
-+ LifterLMS Settings: renamed "User Information Options" to "User Privacy Options".
-+ Reorganized open registration setting.
-+ Use `LLMS.wait_for()` for dependency waiting.
-+ Moved checkout template variable declarations to the checkout shortcode controller.
-+ Removed field display settings in favor of form customization using the form editors.
-+ Organized function files. Some functions have been moved.
-+ Function `llms_get_minimum_password_strength_name()` now accepts a parameter to retrieve strength name by key.
-+ Use `LLMS.wait_for()` for dependency waiting.
-
-##### LifterLMS Blocks v1.6.0
-
-+ Feature: Added form field blocks for use on the Forms manager.
-+ Feature: Add logic for `logged_in` and `logged_out` block visibility options.
-+ Update: Added isDisabled property to Search component.
-+ Update: Adjusted priority of `render_block` filter to 20.
-+ Bug fix: Import `InspectorControls` from `wp.blockEditor` in favor of deprecated `wp.editor`
-+ Bug fix: Automatically store course/membership instructor with `post_author` data when the post is created.
-+ Bug fix: Pass style rules as camelCase.
-
-##### Removed unused Javascript assets
-
-+ Remove unused bootstrap transition and collapse scripts.
-+ Remove topModal vendor dependency.
-+ Remove password strength inline enqueues.
-
-##### Bug fixes
-
-+ Only attempt to add a nonce to the datastore when a nonce exists in the settings object.
-
-##### Deprecations
-
-+ Deprecated `LLMS_Person_Handler::register()` method, use `llms_register_user()` instead.
-+ Deprecated `llms_get_minimum_password_strength()` with no replacement.
-
-##### Template Updates
-
-+ templates/checkout/form-checkout.php
-+ templates/checkout/form-gateways.php
-+ templates/global/form-registration.php
-
-v3.37.7 - 2020-01-08
---------------------
-
-+ Fix error resulting from undefined default value.
-+ Fix PHP 7.4 deprecation notice.
-
-
-v3.37.6 - 2019-12-12
---------------------
-
-+ New transaction creation date is now specified using `llms_current_time()`.
-+ Use the last successful transaction time to calculate from when the previously stored next payment date is in the future.
-+ Fixed an issue causing transaction post titles to be recorded with missing data due to invalid `strftime()` placeholders.
-
-
-v3.37.5 - 2019-12-09
---------------------
-
-+ Update LifterLMS Blocks to v1.7.2: fixes a bug causing the block editor to encounter a fatal error when accessing custom post types that don't support custom fields.
-
-
-v3.37.4 - 2019-12-06
---------------------
-
-##### Bug Fixes
-
-+ Fixed a bug causing certificate _template_ exports to export the site's homepage instead of the certificate preview.
-+ When exporting a certificate template, use the `post_author` to determine what user to use for merge code data.
-+ Revert Accounts settings tab page id to "account".
-
-##### LifterLMS Blocks v1.7.1
-
-+ Feature: Add logic for `logged_in` and `logged_out` block visibility options.
-+ Update: Added `isDisabled` property to Search component.
-+ Update: Adjusted priority of `render_block` filter to 20.
-+ Update: Added filter, `llms_block_supports_visibility` to allow modification of the return of the check.
-+ Update: Disabled block visibility on registration & account forms to prevent a potentially confusing form creation experience.
-+ Update: Added block editor rendering for password type fields.
-+ Update: Perform post migrations on `current_screen` instead of `admin_enqueue_scripts`.
-+ Update: Update various dependencies to use updated gutenberg packages.
-+ Bug fix: Fixed a WordPress 5.3 issues with JSON data affecting the ability to save course/membership instructors.
-+ Bug fix: Import `InspectorControls` from `wp.blockEditor` in favor of deprecated `wp.editor`
-+ Bug fix: Automatically store course/membership instructor with `post_author` data when the post is created.
-+ Bug fix: Pass style rules as camelCase.
-+ Bug fix: Fixed an issue causing "No HTML Returned" to be displayed in place of the Lesson Progression block on free lessons when viewed by a logged-out user.
-
-
-v3.37.3 - 2019-12-03
---------------------
-
-+ Added an action `llms_certificate_generate_export` to allow modification of certificate exports before being stored on the server.
-+ Don't unslash uploaded file `tmp_name`, thanks [@pondermatic](https://github.com/pondermatic)!
-+ TwentyTwenty Theme Support: Hide site header and footer, and set a white body background in single certificates.
-+ Renamed setting field IDs to be unique for open/close wrapper fields on the engagements and account settings pages.
-+ Removed redundant functions defined in the `LLMS_Settings_Page` class to reduce code redundancy in account and engagement setting page classes.
-+ The `LLMS_Settings_Page` base class now automatically defines actions to save and output settings content.
-
-
-v3.37.2 - 2019-11-22
---------------------
-
-+ LifterLMS notices will now be displayed on pages defined as a Course or Membership sales page.
-+ TwentyTwenty Theme: Updated to use `background-color` property instead of `background` shorthand when adding custom elements to style.
-+ Added filter `llms_sessions_end_idle_cron_recurrence` to allow customization of the recurrence of the idle session cleanup cronjob.
-+ Added filter `llms_quiz_is_open` to allow customization of whether or not a quiz is available to a student.
-+ When adding an client-side tracking events to the always make sure the server-side verification nonce is always set on the storage object.
-+ The Course/Membership filter on the main students reporting screen now correctly limits post results based on instructor access.
-
-
-v3.37.1 - 2019-11-13
---------------------
-
-+ TwentyTwenty Theme: Fixed course information block misalignment.
-+ Fixed conflict with WooCommerce resulting from the movement of the deprecated LifterLMS function `is_filtered()`.
-
-
-v3.37.0 - 2019-11-11
---------------------
-
-##### Updates
-
-+ Tested and compatible with WordPress core 5.3.
-+ Add theme support for the TwentyTwenty core default theme.
-+ Improved security and data sanitization in with regards to the SendWP integration connector.
-
-##### LifterLMS Rest API 1.0.0-beta.8
-
-+ Added memberships controller, huge thanks to [@pondermatic](https://github.com/pondermatic)!
-+ Added new filters:
-
- + `llms_rest_lesson_filters_removed_for_response`
- + `llms_rest_course_item_schema`
- + `llms_rest_pre_insert_course`
- + `llms_rest_prepare_course_object_response`
- + `llms_rest_course_links`
-
-+ Improved validation when defining instructors for courses.
-+ Improved performance on post collection listing functions.
-+ Ensure that a course instructor is always set for courses.
-+ Fixed `sales_page_url` not returned in `edit` context.
-+ In `update_additional_object_fields()` method, use `WP_Error::$errors` in place of `WP_Error::has_errors()` to support WordPress version prior to 5.1.
-
-
-v3.36.5 - 2019-11-05
---------------------
-
-+ Add filter: `llms_user_caps_edit_others_posts_post_types` to allow 3rd parties to utilize core methods for determining if a user can manage another users LMS content on the admin panel.
-
-
-v3.36.4 - 2019-11-01
---------------------
-
-+ Fixes a conflict with CartFlows introduced by a Divi theme compatibility fix added in 3.36.3. Is WordPress complicated or what?
-
-
-v3.36.3 - 2019-10-24
---------------------
-
-##### Updates
-
-+ Added new `LLMS_Membership` class methods: `get_categories()`, `get_tags()` and `toArrayAfter()` methods. Thanks [@pondermatic](https://github.com/pondermatic)!
-
-##### Compatibility
-
-+ Fixed access plan description conflicts with the Classic Editor block. This also resolves compatibility issues with Elementor which uses a hidden TinyMCE instance.
-+ Changed `pre_get_posts` callback from `10` (default) to `15`. Fixes conflict with Divi (and possibly other themes) which prevented LifterLMS catalog settings from functioning properly.
-
-##### Bugfixes
-
-+ Added translation to error message encountered when non-members attempt to purchase a members-only access plan. Thanks [@mrosati84](https://github.com/mrosati84)!
-+ Fix return of `LLMS_Generator::set_generator()`.
-+ Fixed a typo causing invalid imports from returning the expected error. Thanks [@pondermatic](https://github.com/pondermatic)!
-+ Fixed issue preventing membership post type settings from saving properly due to incorrect sanitization filters.
-+ Fixed issue where `wp_list_pluck()` would run on non arrays.
-
-
-v3.36.2 - 2019-10-01
---------------------
-
-##### Updates
-
-+ Tested to WordPress 5.3.0-beta.2
-+ Upgrade UI on student course reporting screens.
-+ Added logic to physically remove from the membership level and remove enrollments data on related products, when deleting a membership enrollment.
-+ Lesson metabox "start" drip method made available only if the parent course has a start date set.
-
-##### Bugfixes
-
-+ Fixed JS error when client-side event tracking settings aren't loaded, thanks [@wenchen](https://github.com/wenchen)!
-+ Fixed PHP warning resulting from drip the "Course Start" lesson drip settings when no course start date exists.
-+ Fixed fatal error encountered when reviewing an order placed with a payment gateway that's been deactivated.
-
-##### Files Updated
-
-+ assets/js/app/llms-tracking.js
-+ includes/admin/post-types/meta-boxes/class.llms.meta.box.lesson.php
-+ includes/models/model.llms.lesson.php
-+ includes/models/model.llms.student.php
-+ lifterlms.php
-
-##### Templates Updated
-
-+ templates/admin/post-types/order-details.php
-+ templates/admin/reporting/tabs/students/courses-course.php
-
-
-v3.36.1 - 2019-09-24
---------------------
-
-##### Updates
-
-+ Include SendWP Connector in LifterLMS Engagement Settings.
-+ Removed usage of `WP_Error::has_errors()` to support WordPress version prior to 5.1.
-+ Improve performances when checking if an event is valid in `LLMS_Events->is_event_valid()`.
-+ Remove redundant check on `is_singular()` and `is_post_type_archive()` in `LLMS_Events->should_track_client_events()`.
-
-##### Bugfixes
-
-+ Fixed a compatibility issue with FitVids.js causing excess white space displayed around videos when using the library, WP plugin, or themes that utilize the library.
-+ Fixed an issue allowing recurring charges to continue processing after the order or customer had been deleted from the site.
-+ Fixed issue causing Membership Restriction settings from properly saving.
-+ Fixed issue that allowed instructors to see all quizzes on a site when the instructor had either no courses or only empty courses (courses with no lessons).
-+ Fixed "Last Seen" column displaying wrong date when the student last login date was saved as timestamp.
-+ Fixed an issue causing popover notifications to be skipped (never displayed) as a result of redirects.
-
-
-v3.36.0 - 2019-09-16
---------------------
-
-##### User Interaction event and session Tracking
-
-+ Added user interaction tracking for the following events:
-
- + User sign in and out.
- + Page load and exit (for LMS content)
- + Page focus and blur (for LMS content)
- + And more to come
-
-+ Interaction events are grouped into sessions automatically. A session is "closed" after 30 minutes of inactivity or a log-out event.
-+ Added "Last Seen" student reporting column which reports the last recorded activity for the student.
-
-##### Enhancements
-
-+ Automatically hydrate when calling LLMS_Abstract_Database_Store::to_array().
-+ Added CSS to make course and lesson video embeds automatically responsive.
-
-##### Bug Fixes
-
-+ Correctly pass the `$remember` variable when using `llms_set_person_auth_cookie()`.
-+ Fixed undefined index error when retrieving an unset value from an unsaved database model.
-+ Fix issue causing quotes to be encoded in shortcodes used in course and membership restriction message settings fields.
-+ Fix issue preventing manual updates of order dates (next payment, trial expiration, and access expiration) from being saved properly.
-
-
-v3.35.2 - 2019-09-06
---------------------
-
-+ When sanitizing settings, don't strip tags on editor and textarea fields that allow HTML.
-+ Added JS filter `llms_lesson_rerender_change_events` to lesson editor view re-render change events.
-
-
-v3.35.1 - 2019-09-04
---------------------
-
-+ Fix instances of improper input sanitization and handling.
-+ Include scripts, styles, and images for reporting charts and datepickers
-
-
-v3.35.0 - 2019-09-04
---------------------
-
-##### Security Notice
-
-+ Fixed a security vulnerability disclosed by the WordPress plugin review team. Please upgrade immediately!
-
-##### Updates
-
-+ Explicitly setting css and js file versions for various static assets..
-+ Added data sanitization methods in various form handlers.
-+ Added nonce verification to various form handlers.
-
-##### Bug fixes
-
-+ Fixed some translation strings that had literal variables instead of placeholders.
-+ Fixed undefined index error encountered when attempting to email a voucher export.
-+ Fixed undefined index error when PHP file upload errors are encountered during a course import.
-
-##### Deprecations
-
-The following unused classes have been marked as deprecated and will be removed from LifterLMS in the next major release.
-
-+ LLMS_Analytics_Memberships
-+ LLMS_Analytics_Courses
-+ LLMS_Analytics_Sales
-+ LLMS_Meta_Box_Expiration
-+ LLMS_Meta_Box_Video
-
-##### Template Updates
-
-+ [admin/reporting/tabs/courses/overview.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/reporting/tabs/courses/overview.php)
-+ [admin/reporting/tabs/memberships/overview.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/reporting/tabs/memberships/overview.php)
-+ [admin/reporting/tabs/quizzes/attempts.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/reporting/tabs/quizzes/attempts.php)
-+ [admin/reporting/tabs/quizzes/overview.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/reporting/tabs/quizzes/overview.php)
-+ [admin/reporting/tabs/students/courses-course.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/reporting/tabs/students/courses-course.php)
-+ [admin/reporting/tabs/students/courses.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/reporting/tabs/students/courses.php)
-+ [loop/featured-image.php](https://github.com/gocodebox/lifterlms/blob/master/templates/loop/featured-image.php)
-+ [myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/view-order.php)
-+ [quiz/results.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/results.php)
-+ [single-certificate.php](https://github.com/gocodebox/lifterlms/blob/master/templates/single-certificate.php)
-+ [single-no-access.php](https://github.com/gocodebox/lifterlms/blob/master/templates/single-no-access.php)
-+ [taxonomy-course_cat.php](https://github.com/gocodebox/lifterlms/blob/master/templates/taxonomy-course_cat.php)
-+ [taxonomy-course_difficulty.php](https://github.com/gocodebox/lifterlms/blob/master/templates/taxonomy-course_difficulty.php)
-+ [taxonomy-course_tag.php](https://github.com/gocodebox/lifterlms/blob/master/templates/taxonomy-course_tag.php)
-+ [taxonomy-course_track.php](https://github.com/gocodebox/lifterlms/blob/master/templates/taxonomy-course_track.php)
-+ [taxonomy-membership_cat.php](https://github.com/gocodebox/lifterlms/blob/master/templates/taxonomy-membership_cat.php)
-+ [taxonomy-membership_tag.php](https://github.com/gocodebox/lifterlms/blob/master/templates/taxonomy-membership_tag.php)
-
-
-v3.34.5 - 2019-08-29
---------------------
-
-+ Fixed logic issues preventing pending orders from being completed.
-
-##### Templates Changed
-
-+ [checkout/form-confirm-payment.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-confirm-payment.php)
-
-v3.34.4 - 2019-08-27
---------------------
-
-+ Add a new admin settings field type, "keyval", used for displaying custom html alongside a setting.
-+ Added filter `llms_order_can_be_confirmed`.
-+ Always bind JS for the login form handler on checkout and registration screens.
-
-##### Templates Changed
-
-+ [checkout/form-confirm-payment.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-confirm-payment.php)
-
-##### LifterLMS REST API v1.0.0-beta.6
-
-+ Fix issue causing certain webhooks to not trigger as a result of action load order.
-+ Change "access_plans" to "Access Plans" for better human reading.
-
-
-v3.34.3 - 2019-08-22
---------------------
-
-+ During payment gateway order completion, use `llms_redirect_and_exit()` instead of `wp_redirect()` and `exit()`.
-
-##### LifterLMS REST API v1.0.0-beta.5
-
-+ Load all required files and functions when authentication is triggered.
-+ Access `$_SERVER` variables via `filter_var` instead of `llms_filter_input` to work around PHP bug https://bugs.php.net/bug.php?id=49184.
-
-
-v3.34.2 - 2019-08-21
---------------------
-
-##### LifterLMS REST API v1.0.0-beta.4
-
-+ Load authentication handlers as early as possible. Fixes conflicts with numerous plugins which load user information earlier than expected by the WordPress core.
-+ Harden permissions associated with viewing student enrollment information.
-+ Returns a 400 Bad Request when invalid dates are supplied.
-+ Student Enrollment objects return student and post id's as integers instead of strings.
-+ Fixed references to an undefined function.
-
-
-v3.34.1 - 2019-08-19
---------------------
-
-+ Update LifterLMS REST to v1.0.0-beta.3
-
-##### Interface and Experience improvements during API Key creation
-
-+ Better expose that API Keys are never shown again after the initial creation.
-+ Allow downloading of API Credentials as a `.txt` file.
-+ Add `required` properties to required fields.
-
-##### Updates
-
-+ Added the ability to CRUD webhooks via the REST API.
-+ Conditionally throw `_doing_it_wrong` on server controller stubs.
-+ Improve performance by returning early when errors are encountered for various methods.
-+ Utilizes a new custom property `show_in_llms_rest` to determine if taxonomies should be displayed in the LifterLMS REST API.
-+ On the webhooks table the "Delivery URL" is trimmed to 40 characters to improve table readability.
-
-##### Bug fixes
-
-+ Fixed a formatting error when creating webhooks with the default auto-generated webhook name.
-+ On the webhooks table a translatable string is output for the status instead of the database value.
-+ Fix an issue causing the "Last" page pagination link to display for lists with 0 possible results.
-+ Don't output the "Last" page pagination link on the last page.
-
-
-
-v3.34.0 - 2019-08-15
---------------------
-
-##### LifterLMS REST API v1.0.0-beta.1
-
-+ A robust REST API is now included in the LifterLMS core.
-+ Create API Keys to consume and manage LifterLMS resources and students from external applications.
-+ Create webhooks to pass LifterLMS resource data to external applications (like Zapier!).
-+ The full API specification can be found at [https://gocodebox.github.io/lifterlms-rest/](https://gocodebox.github.io/lifterlms-rest/).
-
-##### Student management capabilities
-
-+ Explicit capabilities have been added to determine which users can create, view, update, and delete students.
-+ Admins and LMS Managers have all student management capabilities.
-+ Instructors and instructors assistants are granted limited view capabilities allowing them to only view students enrolled in their own courses/memberships.
-+ Added the `list_users` capability to the "Instructor" role, allowing instructor's to better view and manage their assistant instructors.
-+ The new capabilities are: `create_students`, `view_students`, `view_others_students`, `edit_students`, `edit_others_students`, `delete_students`, & `delete_others_students`.
-
-##### Updates
-
-+ Added new actions to help differentiate enrollment creation and update events.
-+ Added methods and logic for managing user management of other users.
-+ Added a filter `llms_table_get_table_classes` to LifterLMS admin tables which allows customization of the CSS classes applied to the ` ` elements. Thanks [@pondermatic](https://github.com/pondermatic)!
-+ Added a filter `llms_install_get_schema` to the database schema to allow 3rd parties to run table installations alongside the core.
-+ Added the ability to pull "raw" (unfiltered) data from the database via classes extending the `LLMS_Post_Model` abstract.
-+ Added a `bulk_set()` method to the `LLMS_Post_Model` abstract allowing the updating of multiple properties in one command.
-+ Added `comment_status`, `ping_status`, `date_gmt`, `modified_gmt`, `menu_order`, `post_password` as gettable\settable post properties via the `LLMS_Post_Model` abstract.
-+ Links on reporting tables are now the proper color.
-+ The `editable_roles` filter which determines which roles can manage which other roles is now always loaded (instead of being loaded only on the admin panel).
-+ Updated LifterLMS Blocks to 1.5.2
-
-##### Bug Fixes
-
-+ Fixed an issue preventing the `user_url` property from being retrieved by the `get()` method of the `LLMS_Abstract_User_Data` class.
-+ Fixed an issue causing the `LLMS_Instructors::get_assistants()` method to return assistants for the currently logged in user instead of the instructor of the instantiated object.
-+ Fixed an issue which would allow LMS Managers to edit and delete site administrators.
-
-##### Deprecations
-
-**The following functions and methods have been marked as deprecated and will be removed from LifterLMS with the next major release.**
-
-+ LLMS_Course::get_children_sections() use LLMS_Course::get_sections( 'posts' )" instead
-+ LLMS_Course::get_children_lessons() use LLMS_Course::get_lessons( 'posts' )" instead
-+ LLMS_Course::get_author()
-+ LLMS_Course::get_author_id() use LLMS_Course::get( "author" ) instead
-+ LLMS_Course::get_author_name()
-+ LLMS_Course::get_sku() use LLMS_Course::get( "sku" ) instead
-+ LLMS_Course::get_id() use LLMS_Course::get( "id" ) instead
-+ LLMS_Course::get_title() use get_the_title() instead
-+ LLMS_Course::get_permalink() use get_permalink() instead
-+ LLMS_Course::get_user_postmeta_data()
-+ LLMS_Course::get_user_postmetas_by_key()
-+ LLMS_Course::get_checkout_url()
-+ LLMS_Course::get_start_date() use LLMS_Course::get_date( "start_date" ) instead
-+ LLMS_Course::get_end_date() use LLMS_Course::get_date( "end_date" ) instead
-+ LLMS_Course::get_next_uncompleted_lesson()
-+ LLMS_Course::get_lesson_ids() use LLMS_Course::get_lessons( "ids" ) instead
-+ LLMS_Course::get_syllabus_sections() use LLMS_Course::get_sections() instead
-+ LLMS_Course::get_short_description() use LLMS_Course::get( "excerpt" ) instead
-+ LLMS_Course::get_syllabus() use LLMS_Course::get_sections() instead
-+ LLMS_Course::get_user_enroll_date()
-+ LLMS_Course::get_user_post_data()
-+ LLMS_Course::check_enrollment()
-+ LLMS_Course::is_user_enrolled() use llms_is_user_enrolled() instead
-+ LLMS_Course::get_student_progress() use LLMS_Student::get_progress() instead
-+ LLMS_Course::get_membership_link()
-
-
-v3.33.2 - 2019-06-26
---------------------
-
-+ It is now possible to send test copies of the "Student Welcome" email to yourself.
-+ Improved information logged when an error is encountered during an email send.
-+ Add backwards compatibility for legacy add-on integrations priority loading method.
-+ Fixed undefined index notice when viewing log files on the admin status screen.
-
-
-v3.33.1 - 2019-06-25
---------------------
-
-##### Updates
-
-+ Added method to retrieve the load priority of integrations.
-+ The capabilities used to determine if uses can clone and export courses now check `edit_course` instead of `edit_post`.
-
-##### Bug Fixes
-
-+ Fixed an issue which would cause the "Net Sales" line to sometimes display as a bar on the sales revenue reporting chart.
-+ Fixed an issue causing a PHP notice to be logged when viewing the sales reporting screen.
-+ Fixed an issue causing backslashes to be added before quotation marks in access plan descriptions.
-+ Integration classes are now loaded in the order defined by the integration class.
-+ Fixed an issue causing a PHP error when viewing the admin logs screen when no logs exist.
-
-
-v3.33.0 - 2019-05-21
---------------------
-
-##### Updates
-
-+ Added the ability for site administrators to delete (completely remove) enrollment records from the database.
-+ Catalogs sorted by Order (`menu_order`) now have an additional sort (by post title) to improve ordering consistency for items with the same order, thanks [@pondermatic](https://github.com/pondermatic)!
-+ Hooks in the dashboard order review template now pass the `LLMS_Order`.
-
-##### LifterLMS Blocks
-
-+ Updated to version 1.5.1
-+ All blocks are now registered only for post types where they can actually be used.
-+ Only register block visibility settings on static blocks. Fixes an issue causing core (or 3rd party) dynamic blocks from being managed within the block editor.
-
-##### Bug Fixes
-
-+ If an enrolled student accesses checkout for a course/membership they're already enrolled in they will be shown a message stating as much.
-+ Removed a redundant check for the existence of an order on the dashboard order review template.
-+ When an order is deleted, student enrollment records for that order will be removed. This fixes an issue causing admins to not be able to manage the enrollment status of a student enrolled via a deleted order.
-+ Fix issue causing errors when using the `[lifterlms_lesson_mark_complete]` shortcode on course post types.
-+ Fixed an issue causing quiz questions to generate publicly accessible permalinks which could be indexed by search engines.
-
-##### Templates Changed
-
-+ [course/complete-lesson-link.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/complete-lesson-link.php)
-+ [templates/myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/master/templates/templates/myaccount/view-order.php)
-
-
-v3.32.0 - 2019-05-13
---------------------
-
-##### Updates
-
-+ Added Membership reporting
-+ Added the ability to restrict coupons to courses and memberships which are in draft or scheduled status.
-+ When recurring payments are disabled, output a "Staging" bubble on the "Orders" menu item.
-+ Recurring recharges now add order notes and trigger actions when gateway or recurring payment status errors are encountered.
-+ When managing recurring payment status through the warning notice, stay on the same page and clear nonces instead of redirecting to the LifterLMS Settings screen.
-+ Updated the Action Scheduler library to the latest version (2.2.5)
-+ Exposed the Action Scheduler's scheduled actions interface as a tab on the LifterLMS Status page.
-
-##### LifterLMS Blocks
-
-+ Updated to version 1.4.1.
-+ Fixed issue causing asset paths to have invalid double slashes.
-+ Fixed issue causing frontend css assets to look for an unresolvable dependency.
-
-##### Bug Fixes
-
-+ Fixed an issue allowing instructors to view a list of students from courses and memberships they don't have access to.
-+ WooCommerce compatibility filters added in 3.31.0 are now scheduled at `init` instead of `plugins_loaded`, resolves conflicts with several WooCommerce add-ons which utilize core WC functions before LifterLMS functions are loaded.
-
-
-v3.31.0 - 2019-05-06
---------------------
-
-##### Updates
-
-+ Tested to WordPress 5.2
-+ Adds explicit support for the twentynineteen default theme.
-+ The main students reporting table can now be filtered to show only students enrolled in a specific course or membership.
-+ Resolve conflict with WooCommerce (3.6 and later) resulting in 404s on the dashboard endpoints "lost password", "order history", and "edit account".
-+ Adds a dynamic filter (`llms_notification_view{$trigger_id}_basic_options`) to basic (pop-over) notifications to allow configuration of their settings.
-+ The filter `llms_plan_get_checkout_url` now passes a 3rd parameter: `$check_availability`
-+ Improves `LLMS_Course_Data` and `LLMS_Quiz_Data` classes by adding shared functionality to a shared abstract, `LLMS_Abstract_Post_Data`
-+ Changed access on class methods in `LLMS_Shortcode_Courses` from private to protected, thanks [@andrewvaughan](https://github.com/andrewvaughan)!
-
-##### Bug fixes
-
-+ Treats `post_excerpt` data as HTML instead of plain text. Fixes an issue resulting in HTML tags being stripped from lesson excerpts when duplicating a lesson in the course builder or importing lessons via the course importer.
-+ Fix an issue allowing access plan sales prices to be set as negative values.
-
-##### LifterLMS Blocks
-
-+ Updated to LifterLMS Blocks 1.4.0.
-+ Adds an "unmigration" utility to LifterLMS -> Status -> Tools & Utilities which can be used to remove LifterLMS blocks from courses and lessons which were migrated to the block editor structure.
-+ This tool is only available when the Classic Editor plugin is installed and enabled and it will remove blocks from ALL courses and lessons regardless of whether or not the block editor is being utilized on that post.
-
-##### Deprecations
-
-+ `LLMS_Query::add_query_vars()` use `LLMS_Query::set_query_vars()` instead.
-
-
-v3.30.3 - 2019-04-22
---------------------
-
-##### Updates
-
-+ Fixed typos and spelling errors in various strings.
-+ Corrected a typo in the `content-disposition` header used when exporting voucher CSVs, thanks [@pondermatic](https://github.com/pondermatic)!
-+ Improved the quiz attempt grading experience by automatically focusing the remarks field and only toggling the first answer if it's not visible, thanks [@eri-trabiccolo](https://github.com/eri-trabiccolo)!
-+ Removed commented out code on the Student Dashboard Notifications Tab template, thanks [@tnorthcutt](https://github.com/tnorthcutt)!
-
-##### Bug Fixes
-
-+ Renamed "descrpition" key to "description" found in the return of `LLMS_Instructor()->toArray()`.
-+ Fixed an issue causing slashes to be stripped from course content when cloning a course.
-+ Fixed an issue causing JS warnings to be thrown in the Javascript console on Course and Membership edit pages on the admin panel due to variables being defined too late, thanks [@eri-trabiccolo](https://github.com/eri-trabiccolo)!
-+ Fixed an undefined variable notice encountered when filtering quiz attempts on the quiz attempts reporting screen, thanks [@eri-trabiccolo](https://github.com/eri-trabiccolo)!
-+ Fixed an issue causing slashes to appear before quotation marks when saving remarks on a quiz attempt, thanks [@eri-trabiccolo](https://github.com/eri-trabiccolo)!
-+ [@pondermatic](https://github.com/pondermatic) fixed typos and misspellings in comment and docs in over 200 files and while that doesn't concern most users it's worthy of a mention.
-
-##### Deprecations
-
-The following unused classes have been marked as deprecated and will be removed from LifterLMS in the next major release.
-
-+ `LLMS\Users\User`
-+ `LLMS_Analytics_Page`
-+ `LLMS_Course_Basic`
-+ `LLMS_Lesson_Basic`
-+ `LLMS_Quiz_Legacy`
-
-##### Template Updates
-
-+ [templates/myaccount/my-notifications.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/my-notifications.php)
-
-
-v3.30.2 - 2019-04-09
---------------------
-
-+ Added new filter to allow 3rd parties to determine if a `LLMS_Post_Model` field should be added to the `custom` array when converting the post to an array.
-+ Added hooks and filters to the `LLMS_Generator` class to allow 3rd parties to easily generate content during course clone and import operations.
-+ Fixed an issue causing all available courses to display when the [lifterlms_courses] shortcode is used with the "mine" parameter and the current user viewing the shortcode is not enrolled in any courses.
-+ Fixed a PHP undefined variable warning present on the payment confirmation screen.
-
-##### Template Updates
-
-+ [templates/checkout/form-confirm-payment.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-confirm-payment.php)
-
-
-v3.30.1 - 2019-04-04
---------------------
-
-##### Updates
-
-+ Added handler to automatically resume pending (incomplete or abandoned) orders.
-+ Classes extending the `LLMS_Abstract_API_Handler` can now prevent a request body from being sent.
-+ Added dynamic filter `'llms_' . $action . '_more'` to allow customization of the "More" button text and url for student dashboard sections. Thanks @[pondermatic](https://github.com/pondermatic).
-+ Remove unused CSS code on the admin panel.
-
-##### Bug Fixes
-
-+ Fixed a bug preventing course imports as a result of action priority ordering issues.
-+ Function `llms_get_order_by_key()` correctly returns `null` instead of false when no order is found and will return an `int` instead of a numeric string when an order is found.
-+ Changed the method used to sort question choices to accommodate numeric choice markers. This fixes an issue in the Advanced Quizzes add-on causing reorder questions with 10+ choices to sort display in the incorrect order.
-+ Increased the specificity of LifterLMS element tooltip hovers. Resolves a conflict causing issues on the WooCommerce tax rate management screen.
-+ Fixed an issue causing certain fields in the Customizer from displaying a blue background as a result of very unspecific CSS rules, thanks [@Swapnildhanrale](https://github.com/Swapnildhanrale)!
-+ Fixed builder deep links to quizzes freezing due to dependencies not being available during initialization.
-+ Fixed builder issue causing duplicate copies of questions to be added when adding existing questions multiple times.
-
-##### Template Updates
-
-+ [templates/myaccount/dashboard-section.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/dashboard-section.php)
-
-
-v3.30.0 - 2019-03-21
---------------------
-
-##### Updates
-
-+ **Create custom thank you pages with new access plan checkout redirect options.**
-+ Added the ability to sort items on the membership auto enrollment table (drag and drop to sort and reorder).
-+ Improved the interface and interactions with the membership auto enrollment table settings.
-
-##### LifterLMS Blocks
-
-+ Updated LifterLMS Blocks to 1.3.8.
-+ Fixed an issue causing some installations to be unable to use certain blocks due to jQuery dependencies being declared improperly.
-
-##### Bug Fixes
-
-+ Fixed issue preventing courses with the same title from properly displayed on the membership automatic enrollment courses table on the admin panel.
-+ Fixed an issue preventing builder custom fields from being able to specify a custom sanitization callback.
-+ Fixed an issue preventing builder custom fields from being able to properly save and render multi-select data.
-
-##### Template Updates
-
-+ [templates/product/access-plan-restrictions.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-restrictions.php)
-+ [templates/product/free-enroll-form.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/free-enroll-form.php)
-
-
-v3.29.4 - 2019-03-08
---------------------
-
-+ Fixed an issue preventing users with email addresses containing an apostrophe from being able to login.
-
-
-v3.29.3 - 2019-03-01
---------------------
-
-##### Bug Fixes
-
-+ Removed attempts to validate & save access plan data when the Classic Editor "post" form is submitted.
-+ Fix issue causing 1-click free-enrollment for logged in users to refresh the screen without actually performing an enrollment.
-
-##### Template Updates
-
-+ [product/free-enroll-form.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/free-enroll-form.php)
-
-
-v3.29.2 - 2019-02-28
---------------------
-
-+ Fix issue causing blank "period" values on access plans from being updated.
-+ Fix an issue preventing paid access plans from being switched to "Free".
-
-
-v3.29.1 - 2019-02-27
---------------------
-
-+ Automatically reorder access plans when a plan is deleted.
-+ Skip (don't create) empty plans passed to the access plan save method as a result of deleted access plans.
-
-
-v3.29.0 - 2019-02-27
---------------------
-
-##### Improved Access Plan Management
-
-+ Added a set of methods for creating access plans programmatically.
-+ Updated the Access Plan metabox on courses and lessons with improved data validation.
-+ When using the block editor, the "Pricing Table" block will automatically update when access plan changes are saved to the database (from LifterLMS Blocks 1.3.5).
-+ Access plans are now created and updated via AJAX requests, resolves a 5.0 editor issue causing duplicated access plans to be created.
-
-##### Student Management Improvements
-
-+ Added the ability for instructors and admins to mark lessons complete and incomplete for students via the student course reporting table.
-
-##### Admin Panel Settings and Reporting Design Changes
-
-+ Replaced LifterLMS logos and icons on the admin panel with our new logo LifterLMS Logo and Icons.
-+ Revamped the design and layout of settings and reporting screens.
-
-##### Checkout Improvements
-
-+ Updated checkout javascript to expose an error addition functions
-+ Abstracted the checkout form submission functionality into a callable function not directly tied to `$_POST` data
-+ Removed display order field from payment gateway settings in favor of using the gateway table sortable list
-
-##### Other Updates
-
-+ Removed code related to an incompatibility between Yoast SEO Premium and LifterLMS resulting from former access plan save methods.
-+ Reduced application logic in the `course/complete-lesson-link.php` template file by refactoring button display filters into functions.
-+ Added function for checking if request is a REST request
-+ Updated LifterLMS Blocks to version 1.3.7
-
-##### Bug Fixes
-
-+ Fixed an issue preventing "Pricing Table" blocks from displaying on the admin panel when the current user was enrolled in the course or no payment gateways were enabled on the site.
-+ Fixed the checkout nonce to have a unique ID & name
-+ Fixed an issue with deleted quizzes causing quiz notification's to throw fatal errors.
-+ Fixed an issue preventing notification timestamps from displaying on the notifications dashboard page.
-+ Fix an issue causing `GET` requests with no query string variables from causing issues via incorrect JSON encoding via the API Handler abstract.
-+ Fix an issue causing access plan sale end dates from using the default WordPress date format settings.
-+ `LLMS_Lesson::has_quiz()` will now properly return a boolean instead of the ID of the associated quiz (or 0 when none found)
-
-##### Template Updates
-
-+ [checkout/form-checkout.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-checkout.php)
-+ [course/complete-lesson-link.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/complete-lesson-link.php)
-+ [product/access-plan-pricing.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-pricing.php)
-+ [notifications/basic.php](https://github.com/gocodebox/lifterlms/blob/master/templates/notifications/basic.php)
-
-##### Templates Removed
-
-Admin panel templates replaced with view files which cannot be overridden from a theme or custom plugin.
-
-+ `admin/post-types/product-access-plan.php`
-+ `admin/post-types/product.php`
-
-
-v3.28.3 - 2019-02-14
---------------------
-
-+ ❤❤❤ Happy Valentines Day or whatever ❤❤❤
-+ Tested to WordPress 5.1
-+ Fixed an issue causing JSON data saved by 3rd party plugins in course or lesson postmeta fields to be not duplicate properly during course duplications and imports.
-
-
-v3.28.2 - 2019-02-11
---------------------
-
-##### Updates
-
-+ Updated default country list to remove non-existent countries and resolve capitalization issues, thanks [nrherron92](https://github.com/nrherron92)!
-
-##### Bug fixes
-
-+ Fixed an issue causing the email notification content getter to use the same filter as popover notifications.
-+ Fixed an issue preventing default blog date & time settings from being used when displaying an access plan's access expiration date on course and membership pricing tables.
-+ Fixed an issue causing 404s on paginated dashboard endpoints when the permalink structure is set to anything other than `%postname%`.
-
-##### Deprecations
-
-+ `LLMS_Query->set_dashboard_pagination()`
-
-
-v3.28.1 - 2019-02-01
---------------------
-
-+ Fixed an issues preventing exports to be accessible on Apache servers.
-+ Fixed an issue causing servers with certain nginx rules to open CSV exports directly instead of downloading them.
-
-
-v3.28.0 - 2019-01-29
---------------------
-
-##### Updates
-
-+ Updated reporting table export functions to provide immediate download prompts of the files. Exports are generated in real time and you *must* remain on the page while it generates. The good news is if your site had issues with email or cronjobs it'll no longer be an issue for you.
-+ Updated lesson metabox to use icons for attached quizzes
-+ Added an orange highlight to the admin "Add-Ons & More" menu item
-+ Removed unused cron event.
-
-##### LifterLMS Blocks
-
-+ Updated LifterLMS Blocks to 1.3.4
-+ Adds support for handling courses & lessons in "Classic Editor" mode as defined by the Divi page builder
-+ Skips course and lesson migration when "Classic" mode is enabled.
-+ Adds conditions to identify "Classic" mode when the Classic Editor plugin settings are configured to enforce classic (or block) mode for *all* posts.
-
-##### Database Updates
-
-+ Unschedules the aforementioned unused cron event.
-
-##### Bug fixes
-
-+ Fixed an issue preventing the temp directory old file cleanup cron from firing on schedule.
-+ During plugin uninstallation the tmp cleanup cron will now be properly unscheduled.
-+ Fixed an issue causing notifications on the student dashboard to appear on top of static headers or the WP Admin Bar when scrolling.
-+ Fixed an issue preventing manual updating of customer and source information on orders resulting from unfocusable hidden form fields.
-+ Fixed mismatched HTML tags on the Admin Add-Ons screen
-
-##### Deprecations
-
-+ Class method: `LLMS_Admin_Table::queue_export()`
-+ Class: `LLMS_Processor_Table_To_Csv`
-
-
-v3.27.0 - 2019-01-22
---------------------
-
-###### Updates
-
-+ Added the ability to add existing questions to a quiz in the course builder. This allows cloning of existing questions as well as attaching "orphaned" questions currently attached to no quizzes.
-+ Added the ability to detach questions from quizzes. Coupled with adding existing questions, questions can now be easily moved between quizzes.
-+ Added permalink capabilities to the builder to allow linking to specific items within the builder (a lesson, quiz, etc...).
-+ Quizzes with 0 possible points will no longer show a Pass/Fail chart with a 0% (failing) grade on quiz results screens.
-+ Replaced option `lifterlms_lock_down` which cannot be set via any setting with a filter to reduce database calls. This will have no effect on anyone unless you manually set this option to "no" via a database query. Having done this would allow the admin bar to be shown to students.
-
-##### Bug Fixes
-
-+ Fixed an issue causing the default "Redeem Voucher" and "My Orders" student dashboard endpoint slugs from not having the correct default values. Thanks [@tnorthcutt](https://github.com/tnorthcutt)!
-+ Fixed an issue causing quotation marks in quiz question answers to show escaping slashes on results screens.
-+ Fixed a bug preventing viewing quiz results for quizzes with questions that have been deleted.
-+ Fixed a bug causing a PHP Notice to be output when registering a new user with a valid voucher.
-
-##### Templates Changed
-
-+ [quiz/results-attempt.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/results-attempt.php)
-
-
-v3.26.4 - 2019-01-16
---------------------
-
-+ Update to [LifterLMS Blocks 1.3.2](https://make.lifterlms.com/2019/01/15/lifterlms-blocks-version-1-3-1/), fixing an issue preventing template actions from being removed from migrated courses & lessons.
-
-
-v3.26.3 - 2019-01-15
---------------------
-
-##### Updates
-
-+ Fix issue preventing course difficulty and course length from being edited when using the classic editor plugin.
-+ Improved pagination methods on Student Dashboard Endpoints
-+ "My Notifications" dashboard tab now consistently paginated like other dashboard endpoints
-+ Update to [LifterLMS Blocks 1.3.1](https://make.lifterlms.com/2019/01/15/lifterlms-blocks-version-1-3-1/).
-
-##### Bug Fixes
-
-+ Fixed an issue preventing course difficulty and course length from being edited when using various page builders.
-+ Fixed issues causing errors on quiz reporting screens for quiz attempts made by deleted users.
-
-##### Deprecated Functions
-
-+ `LLMS_Student_Dashboard::output_notifications_content()` replaced with `lifterlms_template_student_dashboard_my_notifications()`
-
-##### Templates Changed
-
-+ [myaccount/my-notifications.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/my-notifications.php)
-+ [admin/reporting/tabs/quizzes/attempt.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/reporting/tabs/quizzes/attempt.php)
-
-
-v3.26.2 - 2019-01-09
---------------------
-
-+ Fast follow to fix incorrect version number pushed to the readme files for 3.26.1 which prevents upgrading to 3.26.1
-
-
-v3.26.1 - 2019-01-09
---------------------
-
-##### Updates
-
-+ Tested to WordPress 5.0.3
-+ Student CSV reports will now bypass cached data during report generation.
-+ Add course and membership catalog visibility settings into the block editor.
-+ Includes LifterLMS Blocks 1.3.0.
-
-##### Bug Fixes
-
-+ Fixed issue preventing the course instructors metabox from displaying when using the classic editor plugin.
-+ Fixed an issue causing membership background enrollment from processing when the course background processor is disabled via filters.
-+ Fixed an issue causing errors when reviewing orders on the admin panel which were placed via a payment gateway which is no longer active.
-+ Fixed an issue preventing course difficulty and course length from being edited when using the classic editor plugin.
-+ Fixed a very convoluted conflict between LifterLMS, WooCommerce, and Elementor explained at https://github.com/gocodebox/lifterlms/issues/730.
-
-
-v3.26.0 - 2018-12-27
---------------------
-
-+ Adds conditional support for page builders: Beaver Builder, Divi Builder, and Elementor.
-+ Fixed issue causing LifterLMS core sales pages from outputting automatic content (like pricing tables) on migrated posts.
-+ Student unenrollment calls always bypass cache during enrollment precheck.
-+ Membership post type "name" label is now plural (as it is supposed to be).
-
-
-v3.25.4 - 2018-12-17
---------------------
-
-+ Adds a filter (`llms_blocks_is_post_migrated`) to allow determining if a course or lesson has been migrated to the WP 5.0 block editor.
-+ Added a filter (`llms_dashboard_courses_wp_query_args`) to the WP_Query used to display courses on the student dashboard.
-+ Fixed issue on course builder causing prerequisites to not be saved when the first lesson in a course was selected as the prereq.
-+ Fixed issue on course builder causing lesson settings to be inaccessible without first saving the lesson to the database.
-
-
-v3.25.3 - 2018-12-14
---------------------
-
-+ Fixed compatibility issue with the Classic Editor plugin when it was added after a post was migrated to the new editor structure.
-
-
-v3.25.2 - 2018-12-13
---------------------
-
-+ Added new filters to the `LLMS_Product` model.
-+ Fix issue with student dashboard login redirect causing a white screen on initial login.
-
-
-v3.25.1 - 2018-12-12
---------------------
-
-##### Updates
-
-+ Editor blocks now display a lock icon when hovering/selecting a block which corresponds to the enrollment visibility settings of the block.
-+ Removal of core actions is now handled by a general migrator function instead of by individual blocks.
-
-##### Bug fixes
-
-+ Fixed issue preventing strings from the lifterlms-blocks package from being translatable.
-+ Fix issue causing block visibility options to not be properly set when enrollment visibility is first enabled for a block.
-+ Fixed compatibility issue with Yoast SEO Premium redirect manager settings, thanks [@moorscode](https://github.com/moorscode)!
-+ Fixed typo preventing tag size options (or filters) of course information block from functioning properly. Thanks [@tnorthcutt](https://github.com/tnorthcutt)!
-
-##### Templates Changed
-
-+ [templates/course/meta-wrapper-start.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/meta-wrapper-start.php)
-
-
-v3.25.0 - 2018-12-05
---------------------
-
-##### WordPress 5.0 Ready!
-
-+ **Tested with WordPress core 5.0 (Gutenberg)!**
-+ Editor Blocks: Course and Lesson layouts are now (preferably) powered by various editor blocks.
-+ When a block is added to a course or lesson, the template hook that automatically outputs that element is removed automatically (preventing duplicates).
-+ If you use the LifterLMS Labs: Action Manager you may no longer need it!
-+ Course & Membership instructors are now managed through an editor "plugin". Check out the rocket icon near the "Publish/Update" button.
-+ Instructor metabox will load conditionally based on presence of the block editor
-+ New courses and lessons will automatically have a preloaded block editor template
-+ Courses and lessons will automatically be "migrated" to these templates when edited on the admin panel
-+ Various course settings conditionally load based on the presence of the block editor
-+ Added filter to the headline size in the `course/meta-wrapper-start.php` template. Allows customization of headline via the "Course Information" block settings.
-+ If you're not ready for WordPress 5.0 you can still upgrade LifterLMS. This release is fully functional without the block editor.
-
-##### Bug Fixes
-
-+ Fixed typo in `quiz/start-button.php` template.
-+ Fixed error occurring during activation of LaunchPad via the Add-Ons & More screen.
-+ Fixed issue causing quiz reporting screens to be blank for users without `view_others_lifterlms_reports` capabilities.
-
-##### Templates Changed
-
-+ [templates/course/author.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/author.php)
-+ [course/meta-wrapper-start.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/meta-wrapper-start.php)
-+ [quiz/start-button.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/start-button.php)
-
-
-v3.24.3 - 2018-11-13
---------------------
-
-##### Updates
-
-+ Added user email, login, url, nicename, display name, first name, and last name as fields searched when searching orders. Thanks Thanks [@yojance](https://github.com/yojance)!
-
-##### Bug Fixes
-
-+ Fixed issue causing fatal errors encountered during certificate downloading caused by CSS ` ` tags existing outside of the `` element.
-+ Certificates downloaded by users who can see the WP Admin Bar will no longer show the admin bar on the downloaded certificate
-+ Fixed issue on iOS Safari causing multiple choice quiz questions to require a "long press" to be properly selected
-+ Fixed issue causing access plan sales to end 36m and 1s prior to end of the day on the desired sale end date. Thanks [@eri-trabiccolo](https://github.com/eri-trabiccolo)!
-+ Ensure that fallback url slugs for course & membership archives are translatable.
-
-
-v3.24.2 - 2018-10-30
---------------------
-
-+ Fix issue causing newline characters to be malformed on course builder description fields, resulting in `n` characters being output in strange places.
-
-
-v3.24.1 - 2018-10-29
---------------------
-
-##### Updates
-
-+ The shortcode `[lifterlms_hide_content]` now accepts multiple IDs and can specify whether the user must belong to either *all* or *any one* of the specified memberships. Thanks [@yojance](https://github.com/yojance)!
-+ The action `llms_voucher_used`, called when a voucher code is used, will now pass the voucher code as a 3rd parameter. Thanks [@yojance](https://github.com/yojance)!
-
-##### Bug Fixes
-
-+ Fixed a typo in engagement drop creation dropdown. Thanks [README1ST](https://github.com/README1ST)!
-+ Fixed issue causing backslash characters (`\`) to be removed from course elements (sections, lessons, quizzes, and assignments) constructed in the course builder.
-+ Fixed an issue in the 3.16.0 database migration script that would cause migrations to get stuck as a result of malformed data saved in an invalid format.
-+ Added processing handlers to payment confirmation form. Fixes an issue which would allow multiple payment confirmation requests to be made (if the form was submitted multiple times before the page reloaded) resulting in duplicate charges.
-
-##### Templates Changed
-
-+ templates/checkout/form-confirm-payment.php
-
-
-v3.24.0 - 2018-10-23
---------------------
-
-##### "My Grades" Student Dashboard Endpoint
-
-+ A new student dashboard endpoint, "My Grades", has been added
-+ The main screen displays a paginated and sortable list of all courses a student is enrolled in and outputs their progress and grade in the courses
-+ Students can drill into individual reporting screens for each course where specific details for each course are available for review
-
-##### Grading Enhancements
-
-+ Each lesson can now be assigned an individual "points" value
-+ When a course is graded the points assigned to each lesson will be used to calculate the value of the lesson's grade within the overall course grade
-+ Lessons can also be assigned a value of "0" to allow a lesson to not count towards the overall grade of the course.
-+ Email notifications are now sent to a student when an instructor reviews, grades, or leaves remarks on a quiz attempt.
-
-##### Test Email Notifications
-
-+ An interface and API for sending test email notifications has been added, the following notifications can now be tested:
-
- + Purchase Receipt
- + Quizzes: Failed (Thanks [@philwp](https://github.com/philwp)!)
- + Quizzes: Graded
- + Quizzes: Passed (Thanks [@philwp](https://github.com/philwp)!)
-
-##### Updates and Enhancements
-
-+ Quiz Passed & Quiz Failed notifications have new names on the admin panel ("Quizzes: Quiz Passed" & "Quizzes: Quiz Failed")
-+ The default content for Quiz Passed and Quiz Failed notifications have been enhanced. If you've modified these you can delete your modified content to have your notifications "restored" to the improved defaults.
-+ Change the page title of the Student Dashboard page installed via the Setup Wizard to be "Dashboard" instead of "My Courses." Thanks [@philwp](https://github.com/philwp)!
-+ In the course builder when a lesson is duplicated, the attached quiz will be duplicated as well
-+ Minor increase to performance in the `LLMS_Course->get_lessons()` method
-+ Added `student_id` as a parameter passed to the `llms_student_get_progress` filter
-+ Updated all access plan templates added in 3.23.0 to ensure `ABSPATH` is defined to prevent direct template access
-+ Remove use of deprecated `LLMS_Lesson->get_children_lessons()` in the `LLMS_Course` and `LLMS_Lesson` models as well as in the `course/syllabus.php` template
-+ Refactored the `LLMS_Section->get_percent_complete()` method to utilize methods from the `LLMS_Student` model
-+ Added the ability for admin table classes to define `` element CSS classes
-+ Admin settings pages with no settings to save (like the Notifications list) no longer display a "Save" button
-+ Added actions when creating, updating, and deleting records managed by `LLMS_Abstract_Database_Store` classes
-+ Updated system report to include URLs to settings with URLs, adds a small speed boost to support request turn around time.
-
-##### Please Rate & Review LifterLMS on WordPress.org
-
-+ Added a WordPress.org review request link to the footer of LifterLMS admin pages.
-+ Added a WordPress.org review request notice which displays a week after installation if the site has 50+ active students.
-
-##### Bug fixes
-
-+ Fixed issue causing HTML entity codes to display in email subject lines. Thanks [@philwp](https://github.com/philwp)!
-+ Fixed issue causing post cleanup functions to run queries against unsupported post types.
-+ Fixed typos in a handful of i18n functions so that the proper textdomain is now being used
-+ Removed `get_option()` call to unused option `lifterlms_logout_endpoint` which ran on WordPress initialization unnecessarily.
-+ Removed 3.21.0 fixes for iOS touch issues that are now causing iOS touch issues on quizzes.
-+ When an order is deleted, all order transactions will also be deleted. This does not happen until the order is deleted (transactions will remain while the order is in the trash)
-+ Fixed an issue causing duplicated quizzes to initially show images for question images & image choices (reorder pictures & picture choice) but the image data would not be properly saved so when returning to the builder or viewing a quiz on the frontend the images would be lost
-
-##### Deprecated Functions & Methods
-
-+ Deprecated `LLMS_Section->get_children_lessons()`, use `LLMS_Section->get_lessons( 'posts' )` instead
-
-##### Template Updates
-
-+ [course/syllabus.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/syllabus.php)
-+ [product/access-plan-button.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-button.php)
-+ [product/access-plan-description.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-description.php)
-+ [product/access-plan-feature.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-feature.php)
-+ [product/access-plan-pricing.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-pricing.php)
-+ [product/access-plan-restrictions.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-restrictions.php)
-+ [product/access-plan-title.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-title.php)
-+ [product/access-plan-trial.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-trial.php)
-+ [product/free-enroll-form.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/free-enroll-form.php)
-
-
-v3.23.0 - 2018-08-27
---------------------
-
-##### Access Plan & Pricing Table Template Improvements
-
-+ The pricing table template has been split into multiple templates which are now rendered via action hooks. No visual changes have been made but if you've customized the template using a template override you'll want to review the template changes before updating!
-+ New action hooks are available to modify the rendering of access plans in course / membership pricing tables.
-
- + `llms_access_plan`: Main hook for outputting an entire access plan within the pricing table
- + `llms_before_access_plan`: Called before main content of access plan. Outputs the "Featured" area of plans
- + `llms_acces_plan_content`: Main access plan content. Outputs title, pricing info, restrictions, and description
- + `llms_acces_plan_footer`: Called after main content. Outputs trial info and the checkout / enrollment button
-
-+ Added filters to the returns of many of the functions in the `LLMS_Acces_Plan` model.
-+ Minor improvements made to `LLMS_Access_Plan` model
-
-##### Updates and Enhancements
-
-+ Improved handling of empty blank / empty data when adding instructors to courses and memberships
-+ Added filters to the "Sales Page Content" type options & functions for courses and memberships to allow 3rd parties to define their own type of sales page functionality
-+ Added filters to the saving of access plan data
-+ Improved the HTML and added CSS classes to the access plan admin panel html view
-
-##### Bug Fixes
-
-+ Fixes issue causing the "Preview Changes" button on courses to lock the "Update" publishing button which prevents changes from being properly saved.gi
-+ Fixed issue causing PHP errors when viewing courses / memberships on the admin panel when an instructor user was deleted
-+ Fixed issue causing PHP notices when viewing course / membership post lists on the admin panel when an instructor user was deleted
-+ Fixed issue causing PHP warnings to be generated when viewing the user add / edit screen on the admin panel
-+ Fixed an issue which would cause access plans to never be available to users. *This bug didn't affect any existing installations except if you wrote custom code that called the `LLMS_Access_Plan::is_available_to_user()` method.*
-
-##### Template Updates
-
-+ [templates/admin/post-types/product-access-plan.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/post-types/product-access-plan.php)
-+ [templates/product/pricing-table.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/pricing-table.php)
-
-
-v3.22.2 - 2018-08-13
---------------------
-
-+ Fixed issue causing banners on general settings screen to cause a fatal error when api connection errors occurred
-+ Improved CSS on setup wizard
-
-
-v3.22.1 - 2018-08-06
---------------------
-
-+ Fix issue causing themes to appear as requiring updates when using the LifterLMS Helper
-
-
-v3.22.0 - 2018-07-31
---------------------
-
-+ Frontend notifications are no longer powered by AJAX requests. This change will significantly reduce the number of requests made but will remove the ability for students to receive asynchronous notifications. This means that notifications will only be displayed on page load as notification polling will no longer occur while a student is on a page (while reading the content a lesson, for example).
-+ Course and membership catalogs items in navigation menus will now have expected CSS classes to identify current item and current item parents
-+ The admin panel add-ons screen has been reworked to be powered by the lifterlms.com REST api
-+ Some visual changes have been made to the add-ons screen
-+ The colors on the voucher screen on the admin panel have been updated to match the rest of the interfaces in LifterLMS
-
-
-v3.21.1 - 2018-07-24
---------------------
-
-+ Fixed issue causing visual issues on checkout summary when using coupons which apply discounts to a plan trial
-+ Fixed issue causing `.mo` files stored in the `languages/lifterlms` safe directory from being loaded before files stored in the default location `languages/plugins`
-+ Added methods to integration abstract to allow integration developers to automatically describe missing integration dependencies
-+ Tested to WordPress 4.9.8
-
-##### Template Updates
-
-+ [templates/checkout/form-summary.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-summary.php)
-
-
-v3.21.0 - 2018-07-18
---------------------
-
-##### Updates and Enhancements
-
-+ Added new actions before and after global login form HTML: `llms_before_person_login_form` & `llms_after_person_login_form`
-+ Settings API can now create disabled fields
-+ Added new actions to the checkout form: `lifterlms_pre_checkout_form` && `lifterlms_post_checkout_form`
-+ Added CRUD functions for interacting with data located in the `wp_lifterlms_user_postmeta` table
-+ Replaced various database queries for CRUD user postmeta data with new CRUD functions
-+ Added new utility function to allow splicing data into associative arrays
-
-##### Bug Fixes
-
-+ If all user information fields are disabled, the "Student Information" are will now be hidden during checkout for logged in users instead of displaying an empty information box
-+ Fixed plugin compatibility issue with Advanced Custom Fields
-+ Fixed issue causing multiple choice quiz questions to require a double tap on some iOS devices
-+ Fixed incorrectly named filter causing section titles to not display on student course reporting screens
-+ We do not advocate using PHP 5.5 or lower but if you were using 5.5 or lower and encountered an error during bulk enrollment we've fixed that for. Please upgrade to 7.2 though. We all want faster more secure websites.
-
-##### Template Updates
-
-+ [templates/checkout/form-checkout.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-checkout.php)
-+ [templates/global/form-login.php](https://github.com/gocodebox/lifterlms/blob/master/templates/global/form-login.php)
-
-
-v3.20.0 - 2018-07-12
---------------------
-
-+ Updated user interfaces on admin panel for courses and memberships with relation to "Enrolled" and "Non-Enrolled" student descriptions
-+ "Enrolled Student Description" is now the default WordPress editor
-+ "Non-Enrolled Student Description" is now the "Sales Page"
-+ Additional options for sales pages (the content displayed to visitors and non-enrolled students) have been added:
- + Do nothing (show course description)
- + Show custom content (use a WYSIWYG editor to define content)
- + Redirect to a WordPress page (use custom templates and enhance page builder compatibility and capabilities)
- + Redirect to a custom URL (use a sales page hosted on another domain!)
-+ Tested to WordPress 4.9.7
-
-v3.19.6 - 2018-07-06
---------------------
-
-+ Fix file load paths in OptimizePress plugin compatibility function
-
-
-v3.19.5 - 2018-07-05
---------------------
-
-+ Fixed bug causing `select2` multi-selects from functioning as multi-selects
-+ Fixed visual issue with `select2` elements being set without a width causing them to be both too small and too large in various scenarios.
-+ Fixed duplicate action on dashboard section template
-
-##### Template Updates
-
-+ [templates/myaccount/dashboard-section.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/dashboard-section.php)
-
-
-v3.19.4 - 2018-07-02
---------------------
-
-##### Updates and enhancements
-
-+ Bulk enroll multiple users into a course or membership from the Users table on your admin panel. See how at [https://lifterlms.com/docs/student-bulk-enrollment/](https://lifterlms.com/docs/student-bulk-enrollment/)
-+ Added event on builder to allow integrations to run trigger events when course elements are saved
-+ Added general redirect method `llms_redirect_and_exit()` which is a wrapper for `wp_redirect()` and `wp_safe_redirect()` which can be plugged (and tested via phpunit)
-+ Added new action called before validation occurs for a user account update form submission: `llms_before_user_account_update_submit`
-+ Removed placeholders from form fields. Fixes a UX issue causing registration forms to appear cluttered due to having both placeholders and labels.
-
-##### Bug fixes
-
-+ Fixed issue allowing nonce checks to be bypassed on login and registration forms
-+ Fixed issue causing a PHP notice if the registration form is submitted without an email address and automatic username generation is enabled
-+ Fixed issue preventing email addresses with the "'" character from being able to register, login, or update account information
-+ Fixed typo in automatic username generation filter `lifterlms_generated_username` (previously was `lifterlms_gnerated_username`)
-+ Fixed issue causing admin panel static assets to have a double slash (//) in the asset URI path
-+ Fixed issue allowing users with `view_lifterlms_reports` capability (Instructors) to access sales & enrollment reporting screens. The `view_others_lifterlms_reports` capability (Admins & LMS Managers) is now required to view these reporting tabs.
-+ Updated IDs of login and registration nonces to be unique. Fixes an issue causing Chrome to throw non-unique ID warnings in the developer console. Also, IDs are supposed to be unique _anyway_ but thanks for helping us out Google.
-
-
-v3.19.3 - 2018-06-14
---------------------
-
-+ Fix issue causing new quizzes to be unable to load questions list without reloading the builder
-
-
-v3.19.2 - 2018-06-14
---------------------
-
-##### Updates and enhancements
-
-+ The course builder will now load quiz question data when the quiz is opened instead of loading all quizzes on builder page load. Improves builder load times and addresses an issue which could cause timeouts in certain environments when attempting to edit very large courses.
-+ The currently viewed lesson will now be bold in the lesson outline widget.
-+ Added a CSS class `.llms-widget-syllabus .llms-lesson.current-lesson` which can be used to customize the display of the current lesson in the widget.
-+ Added the ability to filter quiz attempt reports by quiz status
-+ Updated language for access plans on with a limited number of payments to reflect the total number of payments due as opposed to the length (for example in years) that the plan will run.
-
-##### Bug fixes
-
-+ Fixed issue preventing oEmbed media from being used in quiz question descriptions
-+ Fixed issue preventing `` from being used in quiz question descriptions
-+ Quiz results will now exclude questions with 0 points value when displaying the number of questions in the quiz.
-+ Fixed error occurring when sorting was applied to quiz attempt reports which would cause quiz attempts from other quizzes to be included in the new sorted report
-+ Fixed filter `lifterlms_reviews_section_title` which was unusable due to the incorrect usage of `_e()` within the filter. Now using `__()` as expected.
-+ Fixed issue causing course featured image to display in place of lesson feature images
-
-##### Template Updates
-
-+ [templates/course/lesson-preview.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/lesson-preview.php)
-+ [templates/course/outline-list-small.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/outline-list-small.php)
-+ [templates/quiz/results-attempt.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/results-attempt.php)
-
-
-v3.19.1 - 2018-06-07
---------------------
-
-+ Fixed CSS specificity issue on admin panel causing white text on white background on system status pages
-
-
-v3.19.0 - 2018-06-07
---------------------
-
-##### Updates and enhancements
-
-+ Added a "My Memberships" tab to the student dashboard
-+ "My Memberships" preview area
-+ Updated admin panel order status badges to match frontend order status badges
-+ Added a new recurring order status "Pending Cancel." Orders in this state will allow students to access course / membership content until the next payment is due, on this date, instead of a recurring charge being made the order will move to "Cancelled" and the student's enrollment status will change to "Cancelled" removing their access to the course or membership.
-+ When a student cancels an active recurring order from the student dashboard, the order will move to "Pending Cancellation" instead of "Cancelled"
-+ Students can re-activate an order that's Pending Cancellation moving the expiration date to the next payment due date
-+ Added the ability to edit the access expiration date for orders with limited access settings and for orders in the "pending-cancel" state
-+ Added a filter to allow customization of the URL used to generate certificate downloads from
-+ When viewing taxonomy archives for any course or membership taxonomy (categories, tags, and tracks), if a term description exists, it will be used instead of the default catalog description content defined on the catalog page.
-+ Added a filter (`llms_archive_description`) to allow filtering of the archive description
-+ When `WP_DEBUG` is disabled the scheduled-actions posttype interface is now available via direct link. Useful for debugging but don't want to expose a menu-item link to clients. Access via wp-admin/edit.php?post_type=scheduled-action. Be warned: you shouldn't be modifying scheduled actions manually and that's why we're not exposing this directly, this should be used for debugging only!
-+ Updated the function used to check if lessons have featured images to improve performance and resolve an incompatibility issue with WP Overlays plugin.
-
-##### Bug fixes
-
-+ Fixed issue causing "My Courses" title to be duplicated on the student dashboard when viewing the endpoint
-+ Fixed issue causing the trial price to be displayed with a strike-through during a sale
-+ Fixed coupon issue causing coupons to expire at the beginning of the day on the expiration date instead of at the end of the day
-+ Fixed issue causing CSS rules to lose their declared order during exports causing export rendering issues with certain themes and plugin combinations
-
-##### Template Updates
-
-+ [templates/checkout/form-summary.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-summary.php)
-+ [templates/checkout/form-switch-source.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-switch-source.php)
-+ [templates/course/lesson-preview.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/lesson-preview.php)
-+ [templates/myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/view-order.php)
-
-
-v3.18.2 - 2018-05-24
---------------------
-
-+ Improved integrations settings screen to allow each integration to have it's own settings tab (page) with only its own settings
-+ Allow programmatic access to notification content when notification views are accessed via filters
-+ Fixed issue causing subscription cancellation notifications to be sent to admins when new orders were created
-+ Fixed warning message displayed prior to membership bulk enrollment
-+ Fixed multibyte character encoding issue encountered during certificate exports
-
-
-v3.18.1 - 2018-05-18
---------------------
-
-+ Attached `llms_privacy_policy_form_field()` and `llms_agree_to_terms_form_field()` to an action hook `llms_registration_privacy`
-+ Define minimum WordPress version requirement as 4.8.
-
-##### Template Updates
-
-+ [templates/checkout/form-checkout.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-checkout.php)
-+ [templates/global/form-registration.php](https://github.com/gocodebox/lifterlms/blob/master/templates/global/form-registration.php)
-
-
-v3.18.0 - 2018-05-16
---------------------
-
-##### Privacy & GDPR Compliance Tools
-
-+ Added privacy policy notice on checkout, enrollment, and registration that integrates with the WP Core 4.9.6 Privacy Policy Page setting
-+ Added settings to allow customization of the privacy policy and terms & conditions notices during checkout, enrollment, and registration
-+ Added suggested Privacy Policy language outlining information gathered by a default LifterLMS site
-
-+ During a WordPress Personal Data Export request the following LifterLMS information will be added to the export
-
- + All personal information gathered from registration, checkout, and enrollment forms
- + Course and membership enrollments, progress, and grades
- + Earned achievements and certificates
- + All order data
-
-+ During a WordPress Personal Data Erasure request the following LifterLMS information will be erased
-
- + All personal information gathered from registration, checkout, and enrollment forms
- + Earned achievements and certificates
- + All notifications for or about the user
- + If the "Remove Order Data" setting is enabled, the order will be anonymized by removing student personal information from the order and, if the order is a recurring order, it will be cancelled.
- + If the "Remove Student LMS Data" setting is enabled, all student data related to course and membership activity will be removed
-
-+ All of the above relies on features available in WordPress core 4.9.6
-
-##### Updates and Enhancements
-
-+ Tested up to WordPress 4.9.6
-+ Improved pricing table UX for members-only access plans. An access plan button for a plan belonging to only one membership will click directly to the membership as opposed to opening a popover. Plan's with access via multiple memberships will continue to open a popover listing all availability options.
-+ Added a "My Certificates" tab to the Student Dashboard
-+ Certificates can be downloaded as HTML files (available when viewing a certificate or from the certificate reporting screen on the admin panel)
-+ Admins can now delete certificates and achievements from reporting screens on the admin panel
-+ Added additional information to certificate and achievement reporting tables
-+ Expanded widths of admin settings page setting names to be a bit wider and more readable
-+ Now conditionally hiding some settings when they are no longer relevant
-+ Added daily cron automatically remove files from the `LLMS_TMP_DIR` which are more that 24 hours old
-+ Removed unused template `content-llms_membership.php`
-+ Added initialization actions for use by integration classes
-
-##### Bug Fixes
-
-+ Fixed issue causing coupon reports to always display "1" regardless of actual number of coupons used
-+ Fixed issue causing new posts created via the Course Builder to always be created for user_id #1
-+ Fixed issue causing "My Achievements" to display twice on the My Achievements student dashboard tab
-+ Fixed issue preventing lessons from being completed when a quiz in draft mode was attached to the lesson
-+ Fixed issue causing minified RTL stylesheets to 404
-
-##### Template Updates
-
-+ [templates/admin/post-types/order-details.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/post-types/order-details.php)
-+ [templates/checkout/form-checkout.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-checkout.php)
-+ [templates/content-certificate.php](https://github.com/gocodebox/lifterlms/blob/master/templates/content-certificate.php)
-+ [templates/global/form-registration.php](https://github.com/gocodebox/lifterlms/blob/master/templates/global/form-registration.php)
-+ [templates/myaccount/dashboard-section.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/dashboard-section.php)
-
-
-v3.17.8 - 2018-05-04
---------------------
-
-##### Updates and Enhancements
-
-+ Added admin email notification when student cancels a subscription
-+ Quiz results will now display the question's description when reviewing results as a student and on the admin panel during grading
-+ Add action hook fired when a student cancels a subscription (`llms_subscription_cancelled_by_student`)
-+ Reduce unnecessary DB queries for integrations by checking for dependencies and then calling querying the options table to see if the integration has been enabled.
-+ Updated the notifications settings table to be more friendly to the human eye
-
-##### Bug Fixes
-
-+ Fix admin scripts enqueue order. Fixes issue preventing manual student enrollment selection from functioning properly in certain scenarios.
-+ Shift + Enter when in a question choice field now adds a return as expected instead of exiting the field
-+ When pasting into question choice fields HTML from RTF documents will be automatically stripped
-+ Ensure certificates print with a white background regardless of theme CSS
-+ Fix issue causing themes with `overflow:hidden` on divs from cutting certificate background images
-+ Upon export completion unlock tables regardless of mail success / failure
-+ Resolve issue causing incorrect number of access plans to be returned on systems that have custom defaults set for `WP_Query` `post_per_page` parameter
-+ Fix error occurring when all 3rd party integrations are disabled by filter, credit to [@Mte90](https://github.com/Mte90)!
-+ Ensure `LLMS()->integrations()->integrations()` returns all integrations regardless of availability.
-+ Updated `LLMS_Abstract_Options_Data` to have an option set method
-
-##### Template Updates
-
-+ [templates/quiz/results-attempt-questions-list.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/results-attempt-questions-list.php)
-
-
-v3.17.7 - 2018-04-27
---------------------
-
-+ Fix issue preventing assignments passing grade requirement from saving properly
-+ Fix issue preventing builder toggle switches from properly saving some switch field data
-+ Fix with "Launch Builder" button causing it to extend outside the bounds of its container
-+ Fix issue with builder radio select fields during view rerenders
-+ Course Outline shortcode (and widget) now retrieve parent course of the current page more consistently with other shortcodes
-+ Added ability to filter which custom post types which can be children of a course (allows course shortcodes & widgets to be used in assignment sidebars of custom content areas)
-
-
-v3.17.6 - 2018-04-26
---------------------
-
-+ Updated language on recurring orders with no expiration settings. Orders no longer say "Lifetime Access" and instead output no expiration information
-+ Quiz editor on builder updated to be consistent visually and functionally to the lesson settings editor
-+ Improved the builder field API to allow for radio element fields
-+ Fix issue causing JS error on admin settings pages
-+ Updated CSS for Certificates to be more generally compatible with theme styles when printed
-+ Allow system print settings to control print layout for certificates by removing explicit landscape declarations
-+ Now passing additional data to filters used to create custom columns on reporting screens
-+ Remove unused JS files & Chosen JS library
-+ Added filter to allow opting into alternate student dashboard order layout. Use `add_filter( 'llms_sd_stacked_order_layout', '__return_true' )` to stack the payment update sidebar below the main order information. This is disabled by default.
-+ Achievement and Certificate basic notifications now auto-dismiss after 10 seconds like all other basic notifications
-+ Deprecated Filter `llms_get_quiz_theme_settings` and added backwards compatible methods to transition themes using this filter to the new custom field api. For more information see new methods at https://lifterlms.com/docs/course-builder-custom-fields-for-developers/
-+ Increased default z-index on notifications to prevent notifications from being hidden behind floating / static navigation menus
-
-
-##### Template Updates
-
-+ [templates/myaccount/my-orders.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/my-orders.php)
-+ [templates/myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/view-order.php)
-
-
-v3.17.5 - 2018-04-23
---------------------
-
-##### Admin Settings Interface Improvements
-
-+ Improved admin settings page interface to allow for section navigation
-+ Updated checkout setting pages to utilize a separate section (page) for each available payment gateway
-+ Added a table of payment gateways to see at a glance which gateways are enabled and allows drag and drop reordering of gateway display order
-+ Moved dashboard endpoints to a separate section on the accounts settings area
-+ Updated CSS on settings page to have more regular spacing between subtitles and settings fields
-+ Added a "View" button next to any admin setting post/page selection field to allow quick viewing of the selected post
-+ Purchase page setting field is now ajax powered like all other page selection settings
-+ Renamed dashboard settings section titles to be more consistent with language in other areas of LifterLMS
-+ All dashboard endpoints now automatically sanitized to be URL safe
-
-##### Updates and Enhancements
-
-+ Dashboard endpoints can now be deregistered by setting the endpoint slug to be blank on account settings
-
-##### Bug Fixes
-
-+ Fix issue causing 404s for various script files when SCRIPT_DEBUG is enabled
-+ Fix issue with audio & video embeds to prevent fallback to default post attachments
-+ Fix issue causing student selection boxes to malfunction due to missing dependencies when loaded over slow connections
-
-##### Template Updates
-
-+ [templates/myaccount/navigation.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/navigation.php)
-
-
-v3.17.4 - 2018-04-17
---------------------
-
-+ Added core RTL language support
-+ Fixed fatal error on student management tables resulting from deleted admin users who manually enrolled students
-+ Added filter to allow 3rd parties to disable achievement dupchecking (`llms_achievement_has_user_earned`)
-+ Added {student_id} merge code which can be utilized on certificates
-+ Added merge code insert button to certificates editor
-+ Added filter to allow 3rd parties to disable certificate dupchecking (`llms_certificate_has_user_earned`)
-+ Added filter to allow 3rd parties to add custom merge codes to certificates (`llms_certificate_merge_codes`)
-+ Fix restriction check issue for lessons with drip or prerequisites on course outline widget / shortcode
-+ Bumped WP tested to version to 4.9.5
-
-##### Template Updates
-
-+ [templates/course/complete-lesson-link.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/complete-lesson-link.php)
-+ [templates/course/outline-list-small.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/outline-list-small.php)
-
-
-v3.17.3 - 2018-04-11
---------------------
-
-+ Course and Membership instructor metabox search field now correctly states "Select an Instructor" instead of previous "Select a Student"
-+ Added missing translation for "Select a Student" on admin panel student selection search fields
-+ Fix issue causing reporting export CSVs to throw a SYLK interpretation error when opened in Excel
-+ Fix issue causing drafted courses and memberships to be published when the "Update" button is clicked to save changes
-+ Remove use of PHP 7.2 deprecated `create_function`
-+ Fix errors resulting from quiz questions which have been deleted
-+ Fix issue causing current date / time to display as the End Date for incomplete quiz attempts on quiz reporting screens
-
-##### Template Updates
-
-+ [templates/admin/reporting/tabs/quizzes/attempt.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/reporting/tabs/quizzes/attempt.php)
-+ [templates/quiz/results-attempt-questions-list.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/results-attempt-questions-list.php)
-
-
-v3.17.2 - 2018-04-09
---------------------
-
-+ Fixed issue preventing lesson video and audio embeds from being *removed* when using the course builder settings editor
-+ Fixed issue causing question images to lose the image source
-+ Updated student management table for courses and memberships to show the name (and a link to the user profile) of the site user who manually enrolled the student.
-+ Add "All Time" reporting to various reporting filters
-+ Added API for builder fields to enable multiple select fields
-+ Fix memory leak related to assignments rendering on course builder
-+ Fix issue causing course progress and enrollment checks to incorrectly display progress data cached for other users
-+ Lesson progression actions (Mark Complete & Take Quiz buttons) will now always display to users with edit capabilities regardless of enrollment status
-
-##### Template Updates
-
-+ [templates/course/complete-lesson-link.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/complete-lesson-link.php)
-+ [templates/course/outline-list-small.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/outline-list-small.php)
-
-
-v3.17.1 - 2018-03-30
---------------------
-
-+ Refactored lesson completion methods to allow 3rd party customization of lesson completion behavior via filters and hooks.
-+ Remove duplicate lesson completion notice implemented. Only popover notifications will display now instead of popovers and inline messages.
-+ Object completion will now automatically prevent multiple records of completion from being recorded for a single object.
-+ Lesson Mark Complete button and lessons completed by quiz now utilizes a generic trigger to mark lessons as complete: `llms_trigger_lesson_completion`.
-+ Removed several unused functions from frontend forms class
-+ Moved lesson completion form controllers to their own class
-
-##### Templates updates
-
-+ [templates/course/complete-lesson-link.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/complete-lesson-link.php)
-
-
-v3.17.0 - 2018-03-27
---------------------
-
-##### Builder Updates
-
-+ Moved action buttons for each lesson (for opening quiz and lesson editor) to be static below the lesson title as opposed to only being visible on hover
-+ Added new audio and video status indicator icons for each lesson
-+ Various status indicator icons will now have different icons in addition to different colors depending on their state
-+ Replaced "pencil" icons that open the WordPress post editor with a small "WP" icon
-+ Added several actions and filters to backend functions so that 3rd parties can hook into builder saves
-+ Added lesson settings editing to the builder. Lesson settings can now be updated from settings metaboxes on the lesson post edit screen AND on the builder.
-+ Added prerequisite validation for lessons to prevent accidental impossible prerequisite creating (eg: Lesson 5 can never be a prerequisite for Lesson 4)
-+ Added functions and filters to allow 3rd parties to add custom fields to the builder. For more details see [an example](https://lifterlms.com/docs/course-builder-custom-fields-for-developers/).
-+ Fixed issue causing changes made in "Text" mode on content editors wouldn't trigger save events
-+ Fixed issue causing lesson prerequisites to not properly display on the course builder
-+ Fixed CSS z-index issues related to builder field tooltip displays
-+ Removed unused Javascript dependencies
-
-##### Bug Fixes
-
-+ Fixed typo on filter on quiz question image getter function
-
-##### Updates
-
-+ Performance improvements made to database queries and functions related to student enrollment status and student course progress queries. Thanks to [@mte90](https://github.com/Mte90) for raising issues and testing solutions related to these updates and changes!
-+ Added PHP Requires plugin header (5.6 minimum)
-+ Added HTTP User Agent data to the system report
-+ [LifterLMS Assignments Beta](https://lifterlms.com/product/lifterlms-assignments?utm_source=LifterLMS%20Plugin&utm_medium=CHANGELOG&utm_campaign=assignments%20preorder) is imminent and this release adds functionality to the Builder which will be extended by Assignments upon when availability
-
-
-v3.16.16 - 2018-03-19
----------------------
-
-+ Fixed builder issue causing multiple question choices to be incorrectly selected
-+ Fixed builder issue with media library uploads causing an error message to prevent new uploads before the quiz or question has been persisted to the database
-+ Fixed builder issue preventing quizzes from being deleted before they were persisted to the database
-+ Fixed builder issue causing autosaves to interrupt typing and reset lesson and section titles
-+ Fixed JS console error related to LifterLMS JS dependency checks
-
-
-v3.16.15 - 2018-03-13
----------------------
-
-##### Quiz Results Improvements and fixes
-
-+ Improved quiz result user and correct answer handling functions for more consistent HTML output
-+ Result answers (correct and user) will display as lists
-+ image question types will display without bullets and will "float" next to each other
-+ Fixed issue causing quiz results with multiple answers from outputting all HTMLS with no spaces between them
-
-##### Quiz Grading
-
-+ Fixed issue causing advanced reorder and reorder question types from being graded incorrectly in some scenarios
-+ Advanced fill in the blank questions are now case insensitive. Case sensitivity can be enabled with a filter: `add_filter( 'llms_quiz_grading_case_sensitive', '__return_true' )`
-
-##### Fixes
-
-+ Updated spacing and returns found in the email header and footer templates to prevent line breaks from occurring in undesirable places on previews of HTML emails in mobile email clients
-+ Added options for themes to add layout support to quizzes where the custom field utilizes an underscore at the beginning of the field key
-+ Fixed CSS issue causing blanks of fill in the blanks to not be visible on the course builder when using Chrome on Windows
-+ Removed unnecessary `get_option()` call to unused option `lifterlms_permalinks`
-+ Updated permissions required to see various LifterLMS post types to rely on `manage_lifterlms` capabilities as opposed to `manage_options`
- + This will only affect the LMS Manager core role or any custom role which was provided with the `manage_options` capability. Manages will now be able to access all LMS content and custom roles would now not be able to access LMS content
- + Affected content types are: Orders, Coupons, Vouchers, Engagements, Achievements, Certificates, and Emails
-+ Several references to an option removed in LifterLMS 3.0 still existed in the codebase and have now been removed.
- + Option `lifterlms_course_display_banner` is no longer called or referenced
- + Template function `lifterlms_template_single_featured_image()` has been removed
- + Actions referencing `lifterlms_template_single_featured_image()` have been removed
- + Template function `lifterlms_get_featured_image_banner()` has been removed
- + Template `templates/course/featured-image.php` has been removed
-
-##### Templates updates
-
-+ [quiz/results-attempt-questions-list.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/results-attempt-questions-list.php)
-
-
-v3.16.14 - 2018-03-07
----------------------
-
-+ Courses reporting table now includes courses with the "Private" status
-+ Fixed issue causing some achievement notifications to be blank
-+ Added tooltips to question choice add / delete icon buttons
-+ Quiz results meta information elements now have unique CSS classes
-+ Removed reliance PHP 7.2 deprecated function `create_function()`
-+ Fixed invalid PHP 7.2 syntax creating a warning found on the setup wizard
-+ Fixed undefined index error related to admin notices
-+ Fixed untranslatable string on Users table ("No Memberships")
-+ Fixed discrepancy between membership restrictions as presented to logged out users and logged in users who cannot access membership
-+ Fixed FireFox and Edge issue causing changes to number inputs made via HTML5 input arrows from properly triggering save events
-
-
-v3.16.13 - 2018-02-28
----------------------
-
-+ Hotfix: Only create quizzes on the builder if quizzes exist on the lesson
-
-
-v3.16.12 - 2018-02-27
----------------------
-
-+ Quizzes can now be detached (removed from a lesson) or deleted (deleted from the lesson and the database) via the Course Builder
-+ Improved question choice randomization to ensure randomized choices never display in their original order.
-+ When a lesson is deleted, any quiz attached to the lesson will become an orphan
-+ When a lesson is deleted, any lesson with this lesson as a prerequisite will have it's prerequisite data removed
-+ When a quiz is deleted, all questions attached to the quiz will also be deleted
-+ When a quiz is deleted, the lesson associated with the quiz will have those associations removed
-+ Fixed grammar issue on restricted lesson tooltips when no custom message is stored on the course.
-+ Updated functions causing issues in PHP 5.4 to work on PHP 5.4. This has been done to reduce frustration for users still using PHP 5.4 and lower; [This does not mean we advocate using software past the end of its life or that we support PHP 5.4 and lower](https://lifterlms.com/docs/minimum-system-requirements-lifterlms/).
-
-
-v3.16.11 - 2018-02-22
----------------------
-
-+ Course import/exports and lesson duplication now carry custom meta data from 3rd party plugins and themes
-+ Added course completion date column to Course reporting students list
-+ Restriction checks made against a quiz will now properly cascade to the quiz's parent lesson
-+ Fixed issue preventing featured images from being exported with courses and lessons
-+ Fixed duplicate lesson issue causing quizzes to be double assigned to the old and new lesson
-+ Fixed issue allowing blog archive to be viewed by non-members when sitewide membership is enabled
-+ Fixed builder issue causing data to be lost during autosaves if data was edited during an autosave
-+ Fixed builder issue preventing lessons from moving between sections when clicking the "Prev" and "Next" section buttons
-+ Added actions to `LLMS_Generator` to allow 3rd parties to extend core generator functionality
-
-
-v3.16.10 - 2018-02-19
----------------------
-
-+ Content added to the editor of course & membership catalog pages will now be output *above* the catalog loop
-+ Fix issue preventing iframes and some shortcodes from working when added to a Quiz question description
-+ Added new columns to the Quizzes reporting table to display Course and Lesson relationships
-+ Improved the task handler of background updater to ensure upgrade functions that need to run multiple times can do so
-+ Fixed JS Backup confirmation dialog on the background updater.
-+ Add support for 32-bit systems in the `LLMS_Hasher` class
-+ Fix issue causing HTML template content to be added to lessons when duplicating an existing lesson within the course builder
-
-##### 3.16.0 migration improvements
-
-+ Accommodates questions imported by 3rd party Excel to LifterLMS Quiz plugin. Fixes an issue where choices would have no correct answer designated after migration.
-+ All migration functions now run on a loop. This improves progress reporting of the migration and prevents timeouts on mature databases with lots of quizzes, questions, and/or attempts.
-+ Fix an issue that caused duplicate quizzes or questions to be created when the "Taking too long?" link was clicked
-
-
-v3.16.9 - 2018-02-15
---------------------
-
-+ Fix issue causing error on student dashboard when reviewing an order with an access plan that was deleted.
-+ Fixed spelling error on course metabox
-+ Fixed spelling error on frontend quiz interface
-+ Fixed issues with 0 point questions:
- + Will no longer prevent quizzes from being automatically graded when a 0 point question is in an otherwise automatically gradable quiz
- + Point value not editable during review
- + Visual display on results displays with grey background not as an orange "pending" question
-+ Table schema uses default database charset. Fixes an issue with databases that don't support `utf8mb4` charsets.
-+ Updated `LLMS_Hasher` class for better compatibility with older versions of PHP
-
-
-v3.16.8 - 2018-02-13
---------------------
-
-##### Updates
-
-+ Added theme compatibility API so theme developers can add layout options to the quiz settings on the course builder. For details on adding theme compatibility see: [https://lifterlms.com/docs/quiz-theme-compatibility-developers/](https://lifterlms.com/docs/quiz-theme-compatibility-developers/).
-+ Quiz results "donut" chart had alternate styles for quizzes pending review (Dark grey text rather than red). You can target with the `.llms-donut.pending` CSS class to customize appearance.
-+ Allow filtering when retrieving student answer for a quiz attempt question via `llms_quiz_attempt_question_get_answer` filter
-
-##### Bug Fixes
-
-+ Fix issues causing conditionally gradable question types (fill in the blank and scale) from displaying without a status icon or possible points when awaiting admin review / grading.
-+ Fix issue preventing conditionally gradable question types (fill in the blank and scale) from being reviewable on the admin panel when the question is configured as requiring manual grading.
-+ Fix analytics widget undefined index warning during admin-ajax calls. Thanks [@Mte90](https://github.com/Mte90)!
-+ Fix issue causing `is_search()` to be called incorrectly. Thanks [@Mte90](https://github.com/Mte90)!
-+ Fix issue preventing text / html formatting from saving properly for access plan description fields
-+ Fix html character encoding issue on reporting widgets causing currency symbols to display as a character code instead of the symbol glyph.
-
-##### Templates changed
-
-+ templates/quiz/results-attempt-questions-list.php
-+ templates/quiz/results-attempt.php
-
-
-v3.16.7 - 2018-02-08
---------------------
-
-+ Added manual saving methods for the course builder that passes data via standard ajax calls. Allows users (hosts) to disable the Heartbeat API but still save builder data.
-+ Added an "Exit" button to the builder sidebar to allow exiting the builder back to the WP Edit Post screen for the current course
-+ Added dashboard links to the WP Admin Bar to allow existing the course builder to various areas of the dashboard
-+ Added data attribute to progress bars so JS (or CSS) can read the progress of a progress bar. Thanks [@dineshchouhan](https://github.com/dineshchouhan)!
-+ Fixed issue causing newly created lessons to lose their assigned quiz
-+ Fixed php `max_input_vars` issue causing a 400 Bad Request error when trying to save large courses in the course builder
-+ Removed reliance on PHP bcmath functions
-
-
-v3.16.6 - 2018-02-07
---------------------
-
-+ Removed reliance on PHP Hashids Library in favor of a simpler solution with no PHP module dependencies
-+ Added interfaces to allow customization of quiz url / slug
-+ Fixed [audio] shortcodes added to quiz question descriptions
-+ Fixed untranslatable strings on frontend of quizzes
-+ Fix issue causing certificate notifications to display as empty
-+ Fix issue preventing quiz pass/fail notifications from triggering properly for manually graded quizzes
-+ Fix undefined index warning on quiz pass/fail notifications
-
-
-v3.16.5 - 2018-02-06
---------------------
-
-+ Fix issue preventing manually graded quiz review points from saving properly
-+ Improved background updater to ensure scripts don't timeout during upgrades
-+ Admin builder JS now minified for increased performance
-+ Made frontend quiz and quiz-builder strings output via Javascript translatable
-
-
-v3.16.4 - 2018-02-05
---------------------
-
-+ Fix issue causing newly created quizzes to not be properly related to their parent lesson
-+ Fix issue preventing quiz time limits from starting unless an attempt limit is also set
-+ Fixes a WP Engine issue that prevented the builder from loading due to a blocked dependency
-
-
-v3.16.3 - 2018-02-02
---------------------
-
-+ When switching a quiz to "Published" it will now update the parent lesson to ensure it's recorded as having an enabled quiz.
-+ Declared the WordPress heartbeat API script as a dependency for the Course Builder JS. It seems that some servers and hosts dequeue the heartbeat when not explicitly required. This resolves a saving issue on those hosts.
-+ Added a Quiz Description content editor under quiz settings. This is the "Editor" from pre 3.16.0 quizzes and any content saved in these fields is now available in this description field
-+ Fixed issue causing points percentage calculation tooltip on quiz builder to show the incorrect percentage value
-+ Fix issue preventing lessons with no drip settings from being updated on the WP post editor
-+ Fix issue causing 500 error on lesson settings metabox for lessons not attached to sections
-+ Add a "Quiz Description" field to allow quiz post content to be edited on the quiz builder
-+ Added a database migration script to ensure quizzes migrated from 3.16 and lower that had quiz post content to automatically have the optional quiz description to be enabled
-
-
-v3.16.2 - 2018-02-02
---------------------
-
-+ Add an update notice to 3.16.0 migration scripts to provide more information about the major update.
-+ Removed quiz assignment fields on the lesson metabox to reduce confusion as quizzes are now managed exclusively on the quiz builder.
-+ Ensure questions migrated during 3.16 updates retain their initial points value from the quiz.
-
-
-v3.16.1 - 2018-02-01
---------------------
-
-+ Ensure quizzes in draft mode are only accessible by those with edit access (instructors, admins, etc...)
-+ Restore pre 3.16 actions and filters related to quiz start buttons
-+ Remove legacy error message for quiz accessibility issues by site admins
-+ Students who cannot access a quiz are redirected to the parent lesson if they attempt to access a quiz directly
-+ Fix undefined index warning on wp-login.php related to LifterLMS js assets. Thanks [Mte90](https://github.com/Mte90)!
-+ Update checkout error message to provide user with direction when they already have access to a course. Thanks [@andreasblumberg](https://github.com/andreasblumberg)!
-
-
-v3.16.0 - 2018-02-01
---------------------
-
-##### Quizzes
-
-+ New question types: True/False, Picture Choice, and Non-question content
-+ Picture & Multiple choice have options for multiple correct answers (checkbox-like questions)
-+ You can now create questions with NO POINTS (maybe for surveys?)
-+ Upgraded student quiz review interface
-+ Upgraded instructor quiz attempt review interface
-+ Admins may now leave remarks on questions directly
-+ Improved data available related to quizzes and quiz attempts on reporting screens
-+ Improved quiz user interface
-+ Added a progress bar to the quiz interface
-+ Shrunk the quiz timer
-+ Added a question # counter on the quiz interface
-+ Fixed issue causing randomized questions to get "lost" when navigating back through a quiz attempt
-+ Improved error handling on quizzes
-+ Overhauled quiz data structure for improved performance and scalability
-+ Requires database migration and update: [3.16.0](https://lifterlms.com/docs/lifterlms-database-updates/#3160)
-
-##### Course Builder Improvements
-
-+ Quiz-building is now available on the course builder
-+ Quiz and Question WordPress editors no longer available. Quizzes and Questions HAVE NOT DISAPPEARED, they've been improved and relocated
-+ All hooks & filters attached to `the_content` and `the_title` are now being removed when loading the course builder. This should prevent infinite spinners on builder loading and builder AJAX calls due to third-parties accidentally outputting html during these events.
-
-##### Updates
-
-+ Added space between arrows and "Next" and "Previous" text on pagination lists. Thanks [sujaypawar](https://github.com/sujaypawar)!
-+ Updated Quiz post type slug from "llms_quiz" to "quiz".
-+ Updated default return of `llms_get_post()` to be `false` rather than a `WP_Post` object when a LifterLMS post cannot be located
-
-##### Bug Fixes
-
-+ Fixed a potential database read error related to database store abstract
-+ Now passing Post ID as second parameter to the `the_title` filter called on post model getters
-
-
-##### Removed templates
-
-The following quiz templates have been removed. Customization of these templates causes quiz application functionality to break and they should not have been available for customization but were due to oversights. This has been corrected.
-
-+ templates/content-single-question-after.php
-+ templates/content-single-question-before.php
-+ templates/quiz/next-question.php
-+ templates/quiz/previous-question.php
-+ templates/quiz/question-count.php
-+ templates/quiz/quiz-question.php
-+ templates/quiz/single-choice.php
-+ templates/quiz/single-choice_ajax.php
-+ templates/quiz/summary.php
-+ templates/quiz/timer.php
-+ templates/quiz/wrapper-end.php
-+ templates/quiz/wrapper-start.php
-
-##### Removed Functions
-
-Various template functions related to quizzes were removed due to the deprecation of their related templates
-
-+ `lifterlms_template_quiz_timer()`
-+ `lifterlms_template_single_next_question()`
-+ `lifterlms_template_single_prev_question()`
-+ `lifterlms_template_single_single_choice()`
-+ `lifterlms_template_single_single_choice_ajax()`
-+ `lifterlms_template_single_question_count()`
-
-
-v3.15.1 - 2017-12-05
---------------------
-
-+ Ensure course & membership titles with HTML characters are decoded during reporting exports
-+ Fix issue causing some courses to display in membership columns on reporting exports
-
-
-v3.15.0 - 2017-12-04
---------------------
-
-##### Reporting Updates (and CSV exports!)
-
-+ Added course-level reporting table (see "Courses" tab of Reporting screen)
-+ Updated the interface on reporting screen when reviewing a single student
-+ Added reporting exports: students list, courses list, and list of students per course
-
-##### Bug fixes
-
-+ Fix error when `[lifterlms_course_continue_button]` shortcode is displayed to logged out or students not enrolled in the chosen course
-
-##### Minor updates
-
-+ Tested up to WordPress 4.9.1
-+ Added background data processors to ensure reporting data stays up to date in close to real time
-+ Add nocache constants and headers on student dashboard & checkout page to increase compatibility with caching plugins
-+ Added filter to student dashboard courses query
-
-
-v3.14.9 - 2017-11-27
---------------------
-
-+ Tested up to WordPress 4.9
-+ Fix error during uninstall related to missing file
-+ Fix issue with rewinding quiz using "Previous Question" button
-+ On final question of a quiz the "Next Lesson" button now says "Complete Quiz"
-+ When completing a quiz, the loading message will now say "Grading Quiz" the entire time instead of "Loading Question" and then "Grading Quiz"
-+ Fix issue causing the `` element on course builder pages from being partially empty
-
-
-v3.14.8 - 2017-11-06
---------------------
-
-+ Lessons can be cloned via the "Clone" action from the lessons post table
-
-##### Builder Improvements & Fixes
-
-+ Add "Existing Lesson" functionality can now clone and attach the clone (when adding a lesson currently attached to a course) OR attach orphans
-+ Lessons created via Course builder will have their slugs renamed the first time the lesson title is updated via the builder
-+ No longer display notices on the course builder
-+ Add extra space to the scrollable area on course builder
-+ Removed logging and debugging functions from admin builder class
-+ JS-generated error messages on the course builder are now translatable
-
-##### Bug Fixes
-
-+ Fix: Show all memberships on dashboard
-
-
-v3.14.7 - 2017-10-25
---------------------
-
-##### Navigation Menu Items
-
-+ Add LifterLMS endpoints to your nav menu
-+ Add Sign In and Sign Out links which display conditionally based on whether or not the visitor is logged in
-+ Checkout the docs at [https://lifterlms.com/docs/lifterlms-navigation-menu-items/](https://lifterlms.com/docs/lifterlms-navigation-menu-items/)
-
-##### Bug Fixes
-
-+ Fix SQL query issue with orphaned lesson query on course builder
-+ Fix undefined index warning occurring during theme switches
-+ Fix issue causing duplicate error messages to display on certain servers
-
-
-v3.14.6 - 2017-10-21
---------------------
-
-+ Fix: `` are no longer stripped when exporting or duplicating courses (this applies to lessons within the courses as well)
-+ Fix: Achievements on student dashboard now output the correct achievement title
-+ Fix: Courses on student dashboard ordered by Order attributes will obey settings correctly
-
-
-v3.14.5 - 2017-10-14
---------------------
-
-+ Course builder will persist open/collapsed state of sections when they are re-ordered
-+ Course builder lessons in a section are draggable after reordering a section
-
-
-v3.14.4 - 2017-10-13
---------------------
-
-+ You were right and we were wrong & we are sorry. This update returns the ability to add existing lessons to a course via the course builder.
-+ Lessons added to a section will no longer visually disappear when editing a section title on the course builder
-+ BuddyPress integration BP template fixes
-
-
-v3.14.3 - 2017-10-12
---------------------
-
-+ Fix [lifterlms_my_account] shortcode issue affecting Divi theme users
-
-
-v3.14.2 - 2017-10-11
---------------------
-
-+ Instructor query utilizes correct `$wpdb->prefix` for filtering by role instead of `wp_` which will not work when the `$table_prefix` in wp-config.php is customized
-+ include the admin notices class when running database update functions
-
-
-v3.14.1 - 2017-10-10
---------------------
-
-+ Fix `[lifterlms_my_achievements]` shortcode
-+ Fix reference to deprecated core function related to checking the permissions of content restricted to a membership
-+ Builder titles will be saved on all field focusout/blur events, not just tab & enter key presses
-+ LifterLMS custom meta save metaboxes will not trigger actions during ajax requests
-+ Fix issue displaying certificates on admin panel reporting screens
-
-
-v3.14.0 - 2017-10-10
---------------------
-
-+ Updated JS for 3.13 course builder to address issues on PHP 5.6 servers with asp_tags enabled
-+ Normalized date returns with various dates related to enrollments, achievements, and certificates. These dates now utilize the WP Core `date_format` option.
-+ Fixed strict comparison issue related to database query abstract (affected checks for last page & first page on admin reporting screens)
-+ Added a new capability `llms_instructor` for admins, lms managers, instructors, and instructor's assistant to easily differentiate "instructors" from "students"
-+ Fix `$wpdb->prepare` issue related to notification queries. Fixes WP 4.9-beta issue.
-
-##### Student Dashboard Updates
-
-+ Achievements on student dashboard now viewable in popover modal.
-+ Achievements tab added to student dashboard
-+ Courses, Memberships, Achievements, and Certificates have been updated to have a unified style
-+ Courses & Memberships extend the default catalog tiles
-+ Courses shortcode has new parameters useful for displaying a list of a specific users courses only. [More info](https://lifterlms.com/docs/shortcodes/#lifterlms_courses)
-
-##### Deprecated functions
-
-+ `LLMS_Student_Dashboard::output_courses_content()` replaced with `lifterlms_template_student_dashboard_my_courses( false )`
-+ `LLMS_Student_Dashboard::output_dashboard_content` replaced with `lifterlms_template_student_dashboard_home()`
-
-##### Template Updates
-
-+ [achievements/loop.php](https://github.com/gocodebox/lifterlms/blob/master/templates/achievements/loop.php)
-+ [achievements/template.php](https://github.com/gocodebox/lifterlms/blob/master/templates/achievements/template.php)
-+ [certificates/loop.php](https://github.com/gocodebox/lifterlms/blob/master/templates/certificates/loop.php)
-+ [certificates/preview.php](https://github.com/gocodebox/lifterlms/blob/master/templates/certificates/preview.php)
-+ [loop.php](https://github.com/gocodebox/lifterlms/blob/master/templates/loop.php)
-+ [loop/content.php](https://github.com/gocodebox/lifterlms/blob/master/templates/loop/content.php)
-+ [loop/enroll-date.php](https://github.com/gocodebox/lifterlms/blob/master/templates/loop/enroll-date.php)
-+ [loop/enroll-status.php](https://github.com/gocodebox/lifterlms/blob/master/templates/loop/enroll-status.php)
-+ [loop/pagination.php](https://github.com/gocodebox/lifterlms/blob/master/templates/loop/pagination.php)
-+ [myaccount/dashboard-section.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/dashboard-section.php)
-+ [myaccount/dashboard.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/dashboard.php)
-+ [myaccount/header.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/header.php)
-
-##### Deleted Templates
-
-+ /myaccount/my-achievements.php
-+ /myaccount/my-courses.php
-+ /myaccount/my-memberships.php
-
-
-v3.13.1 - 2017-10-04
---------------------
-
-+ Fix caching issue preventing quiz pass & fail engagements from triggering.
-+ Fix issue causing the "Builder" link to display on the lesson post table screen.
-+ Fix issue preventing new courses & memberships from being moved from draft -> published.
-+ Fix `wpdb->prepare()` empty placeholder issue related to engagement queries. Fixes warning added in WP 4.9.
-+ Add better version numbering to static assets to prevent caching issues during plugin updates
-
-
-v3.13.0 - 2017-10-02
---------------------
-
-##### An All New Course Builder
-
-+ The "Course Outline" metabox found on the admin panel when editing any LifterLMS course has been savagely beaten. We stole its lunch money and we put it towards the construction of an all interface
-+ Asynchronous loading: fixes issues where very large courses would drastically slow and possibly even time out the loading of the course edit screen
-+ Course outline is now collapsible and expandable. This Fixes issues where it was very hard to move lessons and sections around on very large courses
-+ In addition to the familiar (and now improved) drag and drop functionality, you may now also move sections and lessons up and down with button clicks. You can also move lessons between sections with button clicks
-+ Add new lessons and sections with a click or drag a new lesson or section into the existing course
-+ Edit section and lesson titles faster with inline title editing. No more modals with a potentially slow ajax load to update a title. Click the title, change it, and exit the field to automatically save!
-+ Delete sections and lessons with the click of a button
-+ Quick links to view (frontend) and edit (backend) lessons
-+ Completely internationalized. Thanks for you patience translators!
-+ Want to know more? Check out the [docs](https://lifterlms.com/docs/using-course-builder/).
-
-##### New User Roles
-
-+ Added new roles to enable you to provide access to LifterLMS (settings, courses building, etc...) without having to make an admin or mess with complicated code snippets.
-+ New Roles:
-
- + LMS Manager: Do everything in LifterLMS and nothing with plugins, themes, core settings, and so on
- + Instructor: Create, update, and delete courses and memberships
- + Instructor's Assistant: Edit courses and memberships
-
-+ More details and a full list of new LifterLMS capabilities are available [here](https://lifterlms.com/docs/roles-and-capabilities/).
-
-##### Updates & Fixes
-
-+ Tested up to WordPress 4.8.2
-+ The "Lesson Tree" metabox has been replaced with a simplified version of the lesson tree and a link to the launch the Course Builder.
-+ Course and membership categories and tags will now display on their respective post tables for sorting and filtering. They can be disabled on a per-user basis via the screen options.
-+ Removed `var_dump()` from bbPress integration restriction check
-
-##### Uninstall Script
-
-+ Uninstall script now removes all the things LifterLMS creates in your database if a constant is defined. Read more [here](https://lifterlms.com/docs/remove-lifterlms-data-plugin-uninstallation/).
-
-##### Database Update
-
-+ Adds default Instructor data for all LifterLMS Courses & Memberships based off of the post author of the course or membership
-+ [More information](https://lifterlms.com/docs/lifterlms-database-updates/#3130)
-
-##### Template Updates
-
-+ [admin/post-types/students.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/post-types/students.php)
-+ [admin/reporting/tabs/students/courses.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/reporting/tabs/students/courses.php)
-
-##### Deprecated Functions
-
-+ The following AJAX functions are no longer utilized by LifterLMS core. If you are utilizing them find alternatives (they all exist). These will be remove in the next **major** release:
-
- + `LLMS_AJAX::get_achievements()`
- + `LLMS_AJAX::get_all_posts()`
- + `LLMS_AJAX::get_associated_lessons()`
- + `LLMS_AJAX::get_certificates()`
- + `LLMS_AJAX::get_courses()`
- + `LLMS_AJAX::get_course_tracks()`
- + `LLMS_AJAX::get_emails()`
- + `LLMS_AJAX::get_enrolled_students()`
- + `LLMS_AJAX::get_enrolled_students_ids()`
- + `LLMS_AJAX::get_lesson()`
- + `LLMS_AJAX::get_lessons()`
- + `LLMS_AJAX::get_lessons_alt()`
- + `LLMS_AJAX::get_memberships()`
- + `LLMS_AJAX::get_question()`
- + `LLMS_AJAX::get_sections()`
- + `LLMS_AJAX::get_sections_alt()`
- + `LLMS_AJAX::get_students()`
- + `LLMS_AJAX::update_syllabus()`
-
-##### Removed Filters
-
-+ The following filters have been removed and are no longer in use.
-
- + `lifterlms_admin_courses_access`: replaced with user capability `edit_courses`
- + `lifterlms_admin_membership_access`: replaced with user capability `edit_memberships`
- + `lifterlms_admin_reporting_access`: replaced with user capability `manage_lifterlms`
- + `lifterlms_admin_settings_access`: replaced with user capability `manage_lifterlms`
- + `lifterlms_admin_import_access`: replaced with user capability `manage_lifterlms`
- + `lifterlms_admin_system_report_access`: replaced with user capability `manage_lifterlms`
-
-
-v3.12.2 - 2017-09-18
---------------------
-
-##### Bug fixes
-
-+ Fix issue with LifterLMS bbPress integration preventing course-restricted topics from being accessible by enrolled students
-+ Fix an issue preventing students expired from courses via access expiration settings from being manually re-enrolled by admins
-
-##### Deprecations
-
-+ `LLMS_Student` class function `has_access` is scheduled for deprecation in next major release. Developers should switch to `LLMS_Student->is_enrolled()`
-
-
-v3.12.1 - 2017-08-25
---------------------
-
-+ Prevent duplicate loading of repeater metabox fields
-+ Fix undefined warning related to quiz completion
-+ Ensure that the bbPress course forums shortcode & widget properly cascade up when used on a lesson or quiz
-
-
-v3.12.0 - 2017-08-17
---------------------
-
-+ New quiz feature: randomize the order of quiz questions each attempt! Props to [Larry Groebe](https://github.com/larrygroebe)
-+ Fixed logic error related to access checks when bubbling from quiz->lesson->course
-+ Fixed JS loader check for tinyMCE editors in repeater fields
-+ Fixed CSS issue related to tinyMCE editors in repeater fields
-+ Fixed issue causing tinyMCE editors in repeater fields to stop working after reordering rows
-+ LifterLMS alert box notices are now cleared during shutdown instead of immediately after rendering. Fixes some plugin compatibility issues.
-+ Fix reference to invalid meta key on order notes admin screen.
-+ Record order note when orders with a defined length complete
-+ When a payment is scheduled for an order with a defined length, calculate end date if no end date is saved
-+ Minor updates to the `LLMS_Abstract_Integration` class
-+ Fix undefined reference error on 404 pages resulting from the preview manager.
-
-##### bbPress Integration Updates
-
-+ Add "Private" Course Forums which allows forums to be made available only to students enrolled in the associated course
-+ Adds a shortcode and widget for outputting a list of forums associated with a course
-+ Adds the ability to restrict the page set as the bbPress forum index (via bbPress settings) to be restricted to LifterLMS memberships
-+ Adds engagement triggers to allow engagements to be fired when a student posts a reply or creates a new topic
-+ Improves integration membership restriction check performance
-+ Migrated to the `LLMS_Abstract_Integration` class. Visually changes the settings display but has no other impact
-+ [More information](https://lifterlms.com/docs/lifterlms-and-bbpress/)
-
-##### BuddyPress Integration Updates
-
-+ Add the ability to restrict activity, group, and member directory pages to LifterLMS memberships.
-+ Migrated to the `LLMS_Abstract_Integration` class. Visually changes the settings display but has no other impact
-+ [More information](https://lifterlms.com/docs/lifterlms-and-bbpress/)
-
-##### Database update
-
-+ calculate and store end dates for orders created prior to version 3.11.0 which have a defined length and do not have a stored end date.
-+ migrate bbPress and BuddyPress options to `LLMS_Abstract_Integration` naming convention
-+ [More information](https://lifterlms.com/docs/lifterlms-database-updates/#3120)
-
-##### Admin Post Table Upgrades
-
-+ Lessons
- + Fix section titles which formerly were a dead link. Now they're just text
- + Add filtering the table by associated course
-+ Quizzes
- + Display associated course and lesson columns with links
- + Add filtering by associated course and/or lesson
-+ Quiz Questions
- + Display associated Quizzes with links
- + Add filtering by associated quiz
-
-##### Template Updates
-
-+ [admin/post-types/order-details.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/post-types/order-details.php)
-
-
-v3.11.2 - 2017-08-14
---------------------
-
-+ Tested up to WP Core 3.8.1
-
-##### System Status and Reporting updates
-
-+ System Report renamed to "Status"
-+ Added information of template overrides to the system report
-+ Added "Get Help" button linking to LifterLMS Ticketing submission page
-+ Added "Logs" tab which allows for easy viewing & management of LifterLMS logs
-+ Added "Tools and Utilities" tab and moved tools from the General Settings screen to this tab
-+ Improved Session Reset tool
-
-
-v3.11.1 - 2017-08-03
---------------------
-
-+ New shortcode: `[lifterlms_course_continue_button]`. See [shortcode docs](https://lifterlms.com/docs/shortcodes/#lifterlms_course_continue_button) for more information.
-+ New shortcode: `[lifterlms_lesson_mark_complete]`. See [shortcode docs](https://lifterlms.com/docs/shortcodes/#lifterlms_lesson_mark_complete) for more information.
-+ Added filter `llms_product_pricing_table_enrollment_status` to allow forceful display of course/membership pricing tables regardless of user enrollment status.
-+ Fix course author shortcode to allow usage outside of a course via the `course_id` parameter.
-
-##### Template Updates
-
-+ [product/pricing-table.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/pricing-table.php)
-+ [product/course/progress.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/course/progress.php)
-
-
-v3.11.0 - 2017-07-31
---------------------
-
-+ New engagement trigger "Student purchases access plan" allows engagements to be triggered from a specific access plan!
-+ Minor performance improvements to notification-related database queries
-+ Fix issue causing payment gateways to always use test mode links from Orders on the admin panel
-+ Added default email notification merge code for outputting an HTML divider
-+ Added new actions to Dashboard template to allow adding custom content to course tiles on the dashboard
-
-##### Template Updates
-
-+ [myaccount/my-courses.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/my-courses.php)
-
-
-v3.10.2 - 2017-07-14
---------------------
-
-+ Fix fatal error related to purchase receipts for trashed or deleted orders
-+ l10n "Reviews" tab title on course settings
-+ Remove commented out sample preheader text from email header template which was displaying in some email clients.
-
-##### Template Updates
-
-+ [emails/header.php](https://github.com/gocodebox/lifterlms/blob/master/templates/emails/header.php)
-
-
-v3.10.1 - 2017-07-12
---------------------
-
-##### Bugfixes
-
-+ Prevent errors related to attempting to display notification data related to deleted students
-+ Fix errors related to displaying notifications for deleted post (courses, sections, lessons, quizzes, etc...)
-+ Fix error causing email notifications being sent after related user has been deleted
-+ Fix typo preventing `llms_form_field()` from outputting textareas
-
-##### Updates
-
-+ Add new filter `llms_allow_subscription_cancellation` useful for preventing students from self-cancelling their subscriptions on the student dashboard. [More info](https://lifterlms.com/docs/lifterlms-filters/#llms_allow_subscription_cancellation).
-+ Add new API for querying students via AJAX select2 elements
-+ Select2 Post Query elements can now query multiple post types simultaneously
-+ Select2 Post Query elements can now support ``
-
-###### i18n
-
-+ Course option metabox for reviews is not translatable
-
-
-v3.10.0 - 2017-07-05
---------------------
-
-##### Recurring Order Management (for Admins)
-
-+ Admins can now edit various pieces of data related to a recurring order from the order screen on the admin panel
- + Allow editing of the Next Payment Date
- + Allow editing of the Trial End Date (when a trial is active for the order)
- + Edit Payment Gateway and related gateway fields (Customer ID, Source ID, and Subscription ID)
-+ If you're using LifterLMS Stripe or LifterLMS PayPal please update to the latest version of these add-ons to take advantage of these new features!
-
-##### Recurring Order Management (for Students)
-
-+ Students can now switch the payment method (source) for their recurring subscriptions from the student dashboard
-+ Students can now cancel their recurring orders to prevent future payments on recurring orders
-+ If you're using LifterLMS Stripe or LifterLMS PayPal please update to the latest version of these add-ons to take advantage of these new features!
-
-##### Automatic Payment Retries (for supporting gateways)
-
-+ LifterLMS Stripe and LifterLMS PayPal can now automatically retry failed payments to help recover lost revenue as a result of temporary declines to payment sources. Please see our documentation on this new feature [here](https://lifterlms.com/docs/automatic-retry-failed-payments/).
-+ If you're using LifterLMS Stripe or LifterLMS PayPal please update to the latest version of these add-ons to take advantage of these new features!
-
-##### Manual Payment Gateway Enhancements
-
-+ The Manual Payment Gateway (bundled with LifterLMS Core) can now handle recurring payments. For more information on utilizing recurring payments with the Manual Gateway please see the [gateway documentation](https://lifterlms.com/docs/using-lifterlms-manual-payment-gateway/).
-
-##### Updates and Fixes
-
-+ Force SSL setting now applies to Student Dashboard screens. This is useful as Google now recommends any page where a password is submitted should be encrypted and allows gateway communication from student dashboard screen with APIs that require an SSL connection.
-+ Fixed spelling error related to quizzes
-
-##### Templates changed
-
-**NEW**
-
-+ [checkout/form-switch-source.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-switch-source.php)
-+ [myaccount/view-order-transactions.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/view-order-transactions.php)
-
-**UPDATED**
-
-+ [admin/post-types/order-details.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/post-types/order-details.php)
-+ [myaccount/my-orders.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/my-orders.php)
-+ [myaccount/navigation.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/navigation.php)
-+ [myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/view-order.php)
-+ [quiz/summary.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/summary.php)
-
-
-v3.9.5 - 2017-06-13
--------------------
-
-+ Increased css z-index of basic notifications to prevent issues with themes that have high z-index on menus and other elements
-+ Increased the frequency of basic notification heartbeat check from 10 to 20 seconds
-+ Added filter to allow for customization of the notifications heartbeat interval, example [here](https://lifterlms.com/docs/lifterlms-filters/#llms_notifications_settings).
-+ Fixed error related to password reset when the "Disable Usernames" account setting is disabled
-
-
-v3.9.4 - 2017-06-12
--------------------
-
-+ Fix hardcoded db reference to `wp_posts` table
-
-
-v3.9.3 - 2017-06-09
--------------------
-
-+ Fix typo in notifications query
-
-
-v3.9.2 - 2017-06-07
--------------------
-
-+ Tested up to WordPress 4.8
-+ Fixed issue with merge codes on WP Editors for notifications, emails, etc...
-+ Update notifications query to only return results related to posts which actually exist. Prevents errors occurring when reviewing achievements on the student dashboard for courses, lessons, etc which have been deleted/trashed.
-+ Only display quiz time limit meta information when a time limit exists
-+ Fix display of quiz question order (question x of x)
-+ Improved logic powering quiz attempt grading for increased consistency, especially with regards to floats and rounding
-
-##### Templates Changed
-
-+ [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
-+ [quiz/question-count.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/question-count.php)
-
-
-v3.9.1 - 2017-06-02
--------------------
-
-+ Fix engagement triggers with relation to quizzes to properly receive 3.9 api updates
-+ Fix quiz attempt counting issue resulting in the total attempts by a student always being one more than the actual value
-+ Fix membership access plan restrictions tooltip
-
-
-v3.9.0 - 2017-06-02
--------------------
-
-##### Quizzes
-
-+ All new quiz results interface for students
- + Donut charts are now animated
- + Donuts will be green for passing attempt and red for failing
- + Students can now review previous quiz attempts and summaries
- + Removed the juxtaposition of the current and best attempts to reduce confusion on the interface
- + Improved the consistency of the quiz meta information markup
- + Adjusted various pieces of language for an improved student experience
-+ Improvements to the quiz taking experience
- + Added the LLMS_Spinner (seen on checkout screens and various places on the admin panel) and various loading messages when starting quiz, transitioning between questions, and completing a quiz
- + Better error handling and management should issues arise during a quiz
- + Better unload & beforeunload JS management to warn students when they attempt to leave a quiz in progress
-+ Improved quiz data handling and management
- + Improved API calls and handlers related to taking quizzes for increased performance and consistency
- + quiz data can now be programmatically queried via consistent apis and data classes, see `LLMS_Student->quizzes()` and `LLMS_Quiz_Attempt`
-+ Quizzes no longer rely on session and cookie data. All quiz data will always be saved directly to the database and related to the student. Fixes an issue on certain servers preventing student from starting quizzes.
-+ Deprecated `LLMS_Quiz::start_quiz()`, `LLMS_Quiz::answer_question()`, and, `LLMS_Quiz::complete_quiz()`
- + Ajax handler functions of the same names should be used instead.
- + To programmatically "take" quizzes use related functions of similar names from the `LLMS_Quiz_Attempt` class
-
-##### Templates changed
-
-+ New
- + [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
-
-+ Updated
- + [admin/reporting/tabs/students/courses.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/reporting/tabs/students/courses.php)
- + [content-certificate.php](https://github.com/gocodebox/lifterlms/blob/master/templates/content-certificate.php)
- + [course/complete-lesson-link.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/complete-lesson-link.php)
- + [myaccount/my-notifications.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/my-notifications.php)
- + [quiz/next-question.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/next-question.php)
- + [quiz/previous-question.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/previous-question.php)
- + [quiz/question-count.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/question-count.php)
- + [quiz/quiz-question.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/quiz-question.php)
- + [quiz/quiz-wrapper-end.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/quiz-wrapper-end.php)
- + [quiz/quiz-wrapper-start.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/quiz-wrapper-start.php)
- + [quiz/results.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/results.php)
- + [quiz/return-to-lesson.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/return-to-lesson.php)
- + [quiz/single-choice_ajax.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/single-choice_ajax.php)
- + [quiz/start-button.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/start-button.php)
- + [quiz/summary.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/summary.php)
-
-+ Removed
- + quiz/attempts.php - replaced by [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
- + quiz/passing-percent.php - replaced by [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
- + quiz/time-limit.php - replaced by [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
-
-##### Fixes
-
-+ Student Dashboard notifications page will not display pagination links unless there's results to page through
-+ Student Dashboard notifications page will now display a message when no notifications are found
-+ Certificate previewing now takes into consideration the preview setting roles to allow admins (or other roles) to preview certificates
-+ Made student name self fallback (you) i18n friendly
-
-
-v3.8.1 - 2017-05-21
--------------------
-
-+ Fix merge code issue related to course title on quiz notifications
-
-
-v3.8.0 - 2017-05-20
--------------------
-
-+ Automatic email and basic (on-screen) notifications for various events within LifterLMS
- + All notifications can be customized
- + Email notifications can be optionally sent to custom email address, course authors, and more
-+ Students will automatically receive email receipts when making purchases and when recurring access plans rebill
-+ Hidden Access Plans
-+ Add a "Purchase Link" view button to access plans so admins can quickly grab the direct URL to an access plan
-+ Notifications history screen on Student Dashboard to review past notifications that have been received
-+ Updated LLMS_Email class and functionality
-+ Email templates have been completely rewritten and styled
-+ Updated and rewritten password reset flow
-+ Earned certificates are only accessible by the student who earned the certificate
-+ Added the functionality for image upload via options & settings api
-+ Removed a handful of unused templates related to LifterLMS certificates that were replaced a long time ago but still existed in the codebase for unknown reasons.
-+ Fixed filter on engagements settings page
-+ Minor adjustments to language and settings order on Engagements settings screen for email settings
-+ Email Header Image field is now an upload field as opposed to a "paste a url here" setting
-+ Phone number recorded to order and displayed on order for admin panel during purchases
-+ Order details now display full country name as opposed to the country code
-+ Fix installation script to ensure admin can preview by default
-
-
-v3.7.7 - 2017-05-16
--------------------
-
-+ Updated a few strings on the admin panel to be translatable
-+ Fix PHP warning output during plugin activation
-+ Fix reporting issue related to outputting quiz question answers where the correct answer is the first available answer
-+ Fix PHP 7.1 issue on the checkout screen
-+ Removed some unnecessary files from vendor libraries
-
-
-v3.7.6 - 2017-05-05
--------------------
-
-+ New translations for new categories on Add-ons screen
-+ Update to general settings which utilizes featured items from the general settings screen
-+ Update readme & related meta files
-+ Removed advert image files
-
-
-v3.7.5 - 2017-05-02
--------------------
-
-+ Upgrade WP Session Manager to latest version
-+ Code style updates across most files in codebase to bring to most recent styling guidelines put forth by [WP Coding Standards](https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards)
-
-
-v3.7.4 - 2017-04-26
--------------------
-
-+ When cloned site detected automatically disable recurring_payments feature & trigger an action 3rd parties can hook into for custom 3rd party features
-+ Add better JS dependency management to prevent issues where assets loaded in the wrong order
-+ Fix issue where dismiss icon on LifterLMS admin notices was positioned poorly on non-LifterLMS admin screens
-+ Fix issue preventing edit account form submission on student dashboard when password strength meter is disabled
-
-
-v3.7.3 - 2017-04-21
--------------------
-
-+ Fixed issues where Course Track checks were not functioning properly with relation to prerequisite associations
-+ `LLMS_Generator` can now be used to generate course(s) from a raw array of course data using the SingleCourseGenerator and BulkCourseGenerator
-+ `LLMS_Generator` default post status can be set at runtime using `set_default_post_status()`
-+ Fixed an issue causing JS errors on the `wp-login.php` screen
-+ Tested up to WordPress 4.7.4
-
-### Template Updates
-
-+ `course/prerequisites.php` - Prerequisite checks check for 'course_track' rather than 'track'
-
-
-v3.7.2 - 2017-04-17
--------------------
-
-+ Resolved a JS errors on admin panel resulting from overly strict asset loading added in 3.7.0
-
-
-v3.7.1 - 2017-04-14
--------------------
-
-+ Fix php notice when no roles are selected for preview management feature
-
-
-v3.7.0 - 2017-04-13
--------------------
-
-**Preview Management**
-
-+ All new view management for users to make editing content easier for course builders
-+ Admins may customize the roles of users who can access view management
-+ Qualifying users can view content as an enrolled student or a non-enrolled visitor
-+ Default view allows users to bypass all restrictions (drip, membership, enrollment, and so on) for easy course navigation and management
-+ Thanks to [@fabianmarz](https://github.com/fabianmarz) and the team at and the team at [netzstrategen](https://github.com/netzstrategen) for their assistance with this feature!
-
-**Improvements**
-
-+ Edit Account Screen now utilizes updated APIs for better customization management
-+ Improve intelligence of enqueued admin js & css files
-
-**Fixes**
-
-+ Fixed coupon calculation issue related to currencies using commas as the decimal separator
-+ Properly display track related information when reviewing engagements on the admin panel
-+ fixed issue preventing course tracks from being recorded as completed
-
-
-v3.6.2 - 2017-04-10
--------------------
-
-+ Fix issue preventing export of vouchers via email
-+ added action `after_llms_mark_complete` to allow custom actions to happen after a course, lesson, etc... is marked complete
-
-
-v3.6.1 - 2017-03-28
--------------------
-
-+ Fix issue related to taking a quiz for the first time when no quiz data is available for a user
-+ Fix issue when course outline shortcode is displayed on non LifterLMS post types
-
-
-v3.6.0 - 2017-03-27
--------------------
-
-+ Courses and Memberships now have settings to control their visibility in catalogs and search results. For more information visit the [knowledge base](https://lifterlms.com/docs/course-membership-visibility-settings/).
-+ Courses are now a searchable post type. All existing courses will automatically remain excluded from search via new catalog visibility settings. New courses added after this date will be searchable unless the visibility is updated prior to publishing the course.
-+ Added options (and filters) to allow customization of the order of courses displayed on the Student Dashboard
- + Existing behavior (ordered by enrollment date, most recent to least recent) will be preserved
- + New installations will default (by popular demand) to Order (Low to High) which will obey the "Order" settings of courses
- + Customize or update the order for your site by visiting LifterLMS -> Settings -> Accounts and changing the setting for "Courses Sorting" under "Account Dashboard"
-+ New Shortcodes:
- + `[lifterlms_course_author]` - Display the Course Author's name, avatar, and (optionally) biography. [Info & Usage](https://lifterlms.com/docs/shortcodes/#lifterlms_course_author)
- + `[lifterlms_course_continue]` - Display a progress bar and continue button for enrolled students only. [Info & Usage](https://lifterlms.com/docs/shortcodes/#lifterlms_course_continue)
- + `[lifterlms_course_meta_info]` - Display all meta information for a course. [Info & Usage](https://lifterlms.com/docs/shortcodes/#lifterlms_course_meta_info)
- + `[lifterlms_course_prerequisites]` - Display a notice describing unfulfilled prerequisites for a course. [Info & Usage](https://lifterlms.com/docs/shortcodes/#lifterlms_course_prerequisites)
- + `[lifterlms_course_reviews]` - Display reviews and review form for a LifterLMS Course. [Info & Usage](https://lifterlms.com/docs/shortcodes/#lifterlms_course_reviews)
- + `[lifterlms_course_syllabus]` - Display the course syllabus. [Info & Usage](https://lifterlms.com/docs/shortcodes/#lifterlms_course_syllabus)
-+ "Back" & "Next" pagination links on Student Dashboard View Courses are now buttons instead of text links
-+ Fixed an issue preventing pagination links from displaying on the "View Courses" page of the student dashboard when the endpoint slug was customized
-+ Course and Membership taxonomy archive pages will now properly match the heights of tiles
-+ Fixed typo in `lifterlms_get_enrollment_status_name` filter
-+ Fixed typo in `lifterlms_get_order_status_name` filter
-+ Reduced complexity and redundancy of `llms_get_enrolled_students()`
-
-
-v3.5.3 - 2017-03-21
--------------------
-
-+ Ensure that access plan subscription schedule details are fully translatable
-+ Ensure "Services" title on admin add-ons screen can be translated
-+ Fix "View All My Courses" link on Student Dashboard to obey endpoint slug customizations
-+ Membership restriction checks only run on singular posts (not on archives)
-+ Ensure `[lifterlms_course_outline]` and Course Syllabus widget can be used on Quizzes.
-+ Fix reporting widgets for course & lesson completions to report the correct completion types only
-
-
-v3.5.2 - 2017-03-16
--------------------
-
-+ Fix course outline shortcode when used on a lesson
-+ Fix custom html form fields produced by `llms_form_field()`
-
-
-v3.5.1 - 2017-03-15
--------------------
-
-+ Lessons marked as incomplete will now display as incomplete in the course outline generated by the above Course Syllabus Widget and the course outline shortcode
-+ Updated course outline shortcode / course syllabus widget to utilize new APIs
-+ The template at `templates/course/outline-list-small.php` updated to reflect above changes. If you're overriding this template please review the changes and update accordingly
-+ Fix issue preventing course auto advance on lesson completion
-+ Shortcodes added within `[lifterlms_hide_content]` will now be processed
-
-
-v3.5.0 - 2017-03-13
--------------------
-
-+ New course setting **Retake Lessons** allows students to mark lessons as "incomplete" after completing lessons. Admins may enable this site-wide setting under Settings -> Courses.
-+ Course and Membership catalog per page settings will now only accept numbers
-+ "Catalogs" settings tab has been split into "Course" and "Membership" settings
-+ Settings added via filter `lifterlms_catalogs_settings` will be added to the "Course" settings tab and deprecated in the next major release
-+ Default course and membership catalog courses per page changed to 9. Previous default was 10 which results in a 4th row on catalogs with only one item.
-+ Tweaked size of LifterLMS admin tab menu items
-+ Pass API Mode Context to links generated by LifterLMS payment gateways
-+ Fixed typo on general settings screen
-+ Moved LifterLMS Add-on Banners from General Settings to an Add-Ons menu
-+ If required fields exist on checkout and are empty during free quick enrollment users will be redirected to the normal checkout page where they can enter required fields
-+ Updated action scheduler lib to latest version. Minor changes, fixes compatibility with WooMemberships.
-+ Recent activity stats widgets on general settings screen updated to be more reliable and accurate (and performant!)
-+ Added 3 new widgets to enrollments reporting tab: courses completed, lessons completed, and user registrations
-
-
-v3.4.8 - 2017-03-07
--------------------
-
-+ Tested to WordPress Version 4.7.3
-+ Fixed undefined index notice on admin panel
-+ Added a real description to new `_nx()` functions
-+ Access plan trial periods now allow proper translations
-
-
-v3.4.7 - 2017-03-03
--------------------
-
-+ Ensure run when the `lifterlms_db_version` option doesn't exist in the database
-
-
-v3.4.6 - 2017-03-03
--------------------
-
-+ Fixed a text domain typo preventing translation of "Correct Answer" on quiz results screen
-+ Ensure access plan "periods" are translatable
-+ Now using `date_i18n()` for certificate dates so that dates are properly localized
-+ Load plugin textdomain during `init` rather than `plugins_loaded`
-
-
-v3.4.5 - 2017-02-23
--------------------
-
-+ Ensure free access plans are available to logged out users
-
-
-v3.4.4 - 2017-02-22
--------------------
-
-+ Added a popup to warn students when leaving a quiz they've already started
-+ Enable removal of student quiz attempts by admins from student reporting screens
-+ Fix an undefined error on quiz reporting screens for incomplete quizzes
-+ Display incomplete (abandoned) quizzes as incomplete (instead of as still running) on the quiz reporting screen
-+ Prevent logged in users from bypassing membership restrictions for free members-only access plans
-
-
-v3.4.3 - 2017-02-20
--------------------
-
-+ Fix issue with bbPress integration so that forums restricted to multiple memberships allow users of at least one membership that the forum is restricted to access topics within that forum
-+ Ensure that the correct ajax url is used for quizzes, resolves issue for sites utilizing `FORCE_SSL_ADMIN`
-+ Refactored database background update scripts for increased reliability & performance
-+ Database update 3.3.0 moved to 3.4.3 in order to accommodate users who were unable to run the 3.3.0 update, please read the [3.4.3 database update notes](https://lifterlms.com/docs/lifterlms-database-updates/#343) for more information.
-+ WIP: refactoring shortcodes to a more sane set of functions and classes
-
-
-v3.4.2 - 2017-02-14
--------------------
-
-+ Backwards compatible css for tooltips
-
-
-v3.4.1 - 2017-02-14
--------------------
-
-+ Password strength meter now functions correctly when using the [lifterlms_registration] shortcode
-+ Ensure open registration with required voucher prevents registration with invalid vouchers
-+ Lesson completion via quiz completion only recorded the first time the quiz is completed
-+ Fix issue preventing membership catalog from obeying the catalog's ordering settings
-+ Prevent duplicate engagements from being triggered
-+ Admin tables can display percentages as a progress bar!
-+ Students reporting table displays overall progress as a progress bar
-+ Refactored frontend assets class to allow better management of inline scripts
-
-
-v3.4.0 - 2017-02-10
--------------------
-
-+ Enrollment for free access plans has improved based on your feedback. For more information see [https://lifterlms.com/docs/checkout-free-access-plans/](https://lifterlms.com/docs/checkout-free-access-plans/)
-+ Upgraded Student Management Table for courses and memberships:
- + Allow searching students by name / email
- + Allow filtering of students by current status
- + Allow sorting of students by name, user id, status, and enrollment updated date
- + Added student's grade to the table (courses only)
- + Table pagination allows skipping to the first and last pages
- + Student names link to full student reporting screen
- + Student IDs added to the table. ID links to the WP User Edit screen which was previously accessible by clicking the student's name
- + Utilizing improved database queries for displaying data on the table
-+ One-click bulk enrollment of all current members of a membership into an auto-enrollment course. More info [here](https://lifterlms.com/docs/membership-auto-enrollment/#bulk-enrollment)
-+ Students reporting table pagination can now jump to first and last page
-+ Students reporting table pagination now displays current page and total number of pages
-+ Added new class `LLMS_Student_Query` which is modeled, loosely, off of the `WP_User_Query` and allows for querying student data in relation to courses
-+ `LLMS_Admin_Table` abstract now supports filtering and jump to first and last page pagination options
-+ `llms_get_enrolled_students` now utilizes `LLMS_Student_Query` and resolves a bug where some users returned by this query would be returned with the incorrect status.
-+ Ensure `LLMS_Course::has_prerequisite( 'course' )` & `LLMS_Course::has_prerequisite( 'track' )` always return booleans
-+ Made a small performance tweak for courses without audio / video embeds
-+ Fix coupon expiration dates check to be more i18n friendly
-+ Update `LLMS_Coupon` class to utilize 3.3.0 class property enhancements
-+ added `llms_current_time`, a pluggable wrapper for `current_time()` to enable easier unit testing of date-related functions
-+ Shortcodes within course restriction messages are now handled properly to output their intend content rather than the raw shortcode
-+ Ensure the Page Attributes area is available on lessons so WordPress 4.7 custom post type page templates can be utilized
-
-
-v3.3.1 - 2017-01-31
--------------------
-
-+ Tested up to WordPress core 4.7.2
-+ Added new engagement triggers for Quiz completion, quiz failure, and quiz passed.
-+ Refactored Lesson Completion for sanity
-+ Added function `llms_mark_complete()` for simple programmatic completion of courses, sections, lessons, and tracks. See [usage docs](https://github.com/gocodebox/lifterlms/blob/master/includes/functions/llms.functions.person.php#L146-L162) for more information.
-+ Class function `LLMS_Lesson::mark_complete()` has been staged for deprecation. It will still function but developers should update code to use above function.
-+ LifterLMS background updaters will now display a progress report on the admin panel to add some transparency to how the update is doing.
-+ Added `author` support to `llms_membership` post type
-+ Added a way to remove all LifterLMS-generated data during plugin uninstallation.
-+ `llms_get_post()` will now work with any LifterLMS Post Model post types
-+ Removed references to `LLMS_Activate` class which was removed back in 2.0.
-+ Changed include method to session related classes for better handling via phpunit
-+ Refactored some of the `LLMS_Install` class for reliability and test coverage
- + Changed order of table and option creation during installation. Prevents a database warning from being thrown during installation.
- + Added function for retrieving default difficulty categories added during installation
- + Added function for removing default categories added during installation
-+ `llms_are_terms_and_conditions_required()` ensure the page id used in this function is an absint
-+ Removed redundant function `LLMS_Lesson::single_mark_complete_text()`
-+ Add css classes for buttons to be auto-width rather than the width of their containers
-+ Fix ID of engagement email class. Allows some filters and actions to actually be used.
-+ Properly display quiz failures as failures on the quiz results screen
-+ `loop/feature-image.php` now works for unsupported PHP 5.5 and down
-+ Fix issue with modifying section titles from within the course builder
-+ Fix undefined warning resulting from admin notice "flash" being undefined on pre-existing saved notices
-+ Updated template at `templates/course/complete-lesson-link.php` to include a few new CSS classes and utilize `llms_form_field()` to standardize buttons
-
-
-v3.3.0 - 2017-01-23
--------------------
-
-+ New course option allows displaying the video embed in place of the featured image on course tiles displayed on the course catalog screen
-+ Courses can now be exported individually or in bulk. Export of a course includes all course content, sections, lessons, and quizzes.
-+ Courses can now be duplicated. Duplication duplicates all course content, sections, lessons, and quizzes.
-+ Upon completion of the Setup Wizard a sample course can be automatically installed.
-+ Postmeta keys for Lessons and Sections which denote their relationship to their parents have been renamed for consistency, database upgrade 330 included in this release will rename the keys automatically. [Read more here](https://lifterlms.com/docs/lifterlms-database-updates/#330)
-+ Update to `LLMS_Post_Model` to allow easier programmatic definition and handling of extending class properties
-+ classes extending `LLMS_Post_Model` can now be serialized to json and converted to arrays programmatically
-+ new function `llms_get_post()` allows easier instantiation of an `LLMS_Post_Model` instance
-+ Added LifterLMS Database Version to the system report
-
-
-v3.2.7 - 2017-01-16
--------------------
-
-+ Fix float conversion of large numbers with relation to coupon price adjustments
-
-
-v3.2.6 - 2017-01-16
--------------------
-
-+ Tested up to WordPress Core 4.7.1
-+ Fix the display of track-related engagements on the engagement admin screen
-+ Fix float conversion of large numbers with relation to prices
-
-
-v3.2.5 - 2017-01-10
--------------------
-
-+ New shortcode: `[lifterlms_pricing_table]` allows pricing table display outside of a course or membership. See [https://lifterlms.com/docs/shortcodes/#lifterlms_pricing_table](https://lifterlms.com/docs/shortcodes/#lifterlms_pricing_table) for usage information.
-+ New shortcode: `[lifterlms_access_plan_button]` allows custom buttons for individual access plans to be created outside of a pricing table. See [https://lifterlms.com/docs/shortcodes/#lifterlms_access_plan_button](https://lifterlms.com/docs/shortcodes/#lifterlms_access_plan_button) for usage information.
-+ ensure every return from `llms_page_restricted` is filtered. Thanks to @matthalliday
-+ Ensure purchase page can only load for valid access plans
-+ Course / Membership taxonomy archives now obey orders defined by their respective catalog settings
-+ Fix language of automatic validation error message for numeric field types
-+ Fix translation function error causing course syllabus to display incorrect "x of x" text
-+ Added correct text domain to an i18n string displayed on the checkout confirmation screen, thanks @ymashev
-+ Ensure search result pages are viewable by members and non members regardless of result membership restrictions (unless site is restricted to sitewide membership)
-
-
-v3.2.4 - 2017-01-03
--------------------
-
-+ Fixed tooltips on lesson preview tiles (in course syllabus and on next/prev tiles inside lessons) to show the actual reason the lesson is inaccessible rather than always showing a generic enrollment message
-+ Removed the language "You must enroll in this course to unlock this lesson" in favor of "You do not have permission to access to this content" as a restriction message fallback when no better message is available
-+ "Quiz Results" title is now translatable
-+ Removed deprecated JS file "llms-metabox-data.js" which controlled UI/X for 2.x subscription data on courses and memberships
-+ Non LMS Content (pages, posts, forums, etc...) restricted to multiple memberships will now correctly allow users access to the content as long as they have access to at least one of the memberships
-+ Fixed a redirect loop encountered if direct access to a lesson with an incomplete prerequisite was attempted
-
-
-v3.2.3 - 2016-12-29
--------------------
-
-+ Progress and Grade are now sortable columns on the student reporting table
-+ Make enrollment statuses translatable for courses and memberships on the Student Dashboard
-+ "Sign Out" text on student dashboard is now translatable, thanks @yumashev
-+ Fixed prerequisite lesson display on lesson post tables
-+ Ensure post archive (blog) is visible regardless of post membership restrictions
-+ Moved lesson post table management functions to their own class
-+ Unused section post table management functions removed
-
-
-v3.2.2 - 2016-12-21
--------------------
-
-+ Adds filter `llms_student_dashboard_login_redirect` allowing customization of the redirect upon login via the Student Dashboard
-+ Adds a shortcode parameter, `login_redirect` to `[lifterlms_my_account]` allowing customization of the redirect upon login via the Student Dashboard
-+ Adds a new tool under "Tools and Utilities" on the LifterLMS Settings screen which allows users to clear the cached student overall progress and overall grade data
-+ Fixes a compatibility issue with the OptimizePress live editor
-+ Adds a text domain to a translation function where none was present, rendering the string untranslatable
-
-
-v3.2.1 - 2016-12-14
--------------------
-
-+ Fix operator position on `is_complete` check
-
-
-v3.2.0 - 2016-12-13
--------------------
-
-##### LifterLMS Reporting Beta
-
-+ Students overview displays broad information about your students in a searchable and sortable table
-+ Review data about individual students including:
- + Membership enrollments and statuses
- + Course enrollments, status, and progress
- + Quiz attempts and and their submitted answers
- + Earned achievements and certificates
-+ Sales and Enrollments analytics are now found under the "Reporting" screen
-+ Feedback on the beta? Let us know at [https://lifterlms.com/docs/lifterlms-reporting-beta/](https://lifterlms.com/docs/lifterlms-reporting-beta/)
-
-##### Other Updates & Fixes
-
-+ Lesson completion checks now look for at least one record of the completed lesson as opposed to looking for exactly one
-+ Fix positioning of teacher avatar on course/membership tiles
-+ Remove explicit color definition from Student Dashboard navigation links for greater theme compatibility
-
-
-v3.1.7 - 2016-12-06
--------------------
-
-+ Added support for WordPress Twenty Seventeen theme
-+ Improved the messaging and functions related to LifterLMS Sidebar support
-+ Add alternate language for a quiz requiring 100% grade to pass
-+ Added CSS class `.llms-button-primaray` to lesson "Mark as Complete" buttons
-+ Add box-sizing css rule to LifterLMS form field elements. Fixes layout issues on themes that don't border-box everything.
-+ Fix an issue that prevented the admin notice to enable/disable recurring payments from clearing when a button was pressed from screens other than the LLMS Settings screen
-+ Fix next payment date error when viewing a cancelled recurring order on the student dashboard
-+ Recurring payments now scheduled based on UTC time in accordance with the action scheduler which executes based on UTC rather than site timezone
-+ Add existing lesson to course modal now relies on async search. Improves performance and prevents timeouts on sites with a 500+ lessons
-+ Removed 2.x -> 3.x update notification message
-+ Fix an issue with comment counting on PHP7
-+ Updated action scheduler library to latest version
-
-
-v3.1.6 - 2016-11-11
--------------------
-
-+ Handle empty responses on analytics more responsibly
-+ Fix typo preventing completed orders from displaying in analytics when using course / membership filters
-+ Quiz builder now leverages llmsSelect2 rather than select2 directly. Resolves a number of theme and plugin compatibility issues.
-+ Prevent bullets and weird margins on LifterLMS notices with slightly more specific CSS
-+ Login error messages will now display regardless of whether or not open registration is enabled
-+ Attempts to access quizzes are redirected or error messages are output when student is not enrolled.
-
-
-v3.1.5 - 2016-11-10
--------------------
-
-+ Fix Month display on Analytics Screen
-
-
-v3.1.4 - 2016-11-10
--------------------
-
-+ Progress bars are slightly more intelligent to prevent a widowed "%" on themes with larger base font sizes
-+ LifterLMS Merge code button only displays where it's supposed to now
-+ Fix issue where users removed from a membership were not properly removed from courses they were auto-enrolled into because of that membership
-+ Fix analytics screen JS parsing error
-
-
-v3.1.3 - 2016-11-04
--------------------
-
-+ Added new action hooks to the course syllabus widget/shortcode template
-+ Added a small text link on the student dashboard which links to the full courses list of the dashboard
-+ Display order revenue for legacy orders instead of 0
-+ Make the Order History table on the Student Dashboard responsive
-+ Only display _published_ courses on the student dashboard
-+ Fixes a conflict with WP Seo Premium's redirect manager which was creating access plan redirects
-+ Reenable course review options on the admin panel
-+ Updates review output method so reviews are now output via a removeable action
-
-
-v3.1.2 - 2016-10-31
--------------------
-
-+ Update all course and lesson templates to rely only on `global $post` rather than on `$course` and `$lesson` globals which are working inconsistently across environments
-+ Fix typo related to the line-height of LifterLMS order notes on the admin panel. Thanks [@edent](https://github.com/edent)!
-
-
-v3.1.1 - 2016-10-28
--------------------
-
-+ Shortcode `[lifterlms_hide_content]` has some new functionality. See [documentation](https://lifterlms.com/docs/shortcodes/#lifterlms_hide_content) for usage and more information!
-+ Fix logic when determining if terms and condition checkboxes should be displayed on checkout & open registration.
-+ Define a placeholder on the Terms & Conditions page selection so it can be removed
-+ Explicitly declare `LLMS_Lesson` on lesson audio/video embed templates instead of relying the global `$lesson`. Some environments appear to be losing the global.
-+ Removed unused lesson template "full-description"
-
-
-v3.1.0 - 2016-10-27
--------------------
-
-+ New engagement triggers available to allow engagements to be fired when a student enrolls into a course or membership!
-+ Add custom email addresses for to, cc, and bcc when sending email engagements
-+ New Merge Code button for easy merging of custom merge codes when creating emails
-+ Added post table data for LifterLMS Engagements
-+ Added new filter `llms_email_engagement_date_format` which allows customization of the format of the `{current_date}` merge code available in LifterLMS Emails
-+ Added explicit max width declaration to images within LLMS Catalogs to prevent image overflow. Fixes some theme compatibility issues.
-+ Optimize course and lesson audio video templates for faster loads
-+ Fix course & lesson video to load videos instead of duplicating audio embeds
-+ Fix coupon usage query so that coupons cannot be used more than the maximum number of times. Also now displays the correct number of coupons used on the coupons post table.
-+ Fix LLMS Engagement Email merge codes to work in subject line
-
-
-v3.0.4 - 2016-10-20
--------------------
-
-+ Added shortcode `[lifterlms_login]` so the login form can be displayed. Information usage at [https://lifterlms.com/docs/shortcodes/#lifterlms_login](https://lifterlms.com/docs/shortcodes/#lifterlms_login)
-+ Added internal function `LLMS_Student->get_name()`
-+ Three basic course difficulties will be automatically created on installation and upgrades
-+ Updated course difficulty save methods to rely only on the taxonomy rather than the taxonomy and postmeta table
-+ Updated admin settings screens to only flush rewrite rules on screens where it is necessary to update rewrites
-+ Fix issue with customization of LifterLMS account endpoint URLs
-+ Fix a conflict with [Redirection](https://wordpress.org/plugins/redirection/) url monitoring that was causing redirects to be created from Courses and Memberships to the site home page automatically whenever updating the post
-+ Fix an undefined index warning on courses / memberships when updating post data
-+ Remove confusing and invalid warning message from Membership post screen on admin panel
-
-
-v3.0.3 - 2016-10-17
--------------------
-
-+ Added filter `llms_show_preview_excerpt` which can be used to hide the excerpt on course syllabus or next/back preview tiles in lesson navigation
-+ Fix logic so that only free lessons are marked as free lessons post 3.0 upgrade
-+ Fix incorrect display of the "restricted" and "non-restricted" content areas for memberships
-+ Fix undefined index warning output by membership metaboxes
-+ Fix dead like under "Force SSL" checkout setting
-+ Course & Membership tiles output by course or membership shortcodes now automatically match column heights like the default catalogs do.
-+ Correctly register students as the "Student" Role
-+ Database Upgrade script converts users with the role "studnet" to "student"
-
-
-v3.0.2 - 2016-10-14
--------------------
-
-+ Added action `lifterlms_before_student_dashboard_tab`
-+ Added action `lifterlms_after_student_dashboard_greeting`
-+ Added action `lifterlms_after_student_dashboard_tab`
-+ Added action `lifterlms_sd_before_membership`
-+ Added action `lifterlms_sd_after_membership`
-+ Fix membership shortcode
-+ Fix issue that prevented "Student Dashboard" from rendering if the page was set as the child of another page
-+ Fix undefined function error in admin notices
-+ Fix nonce errors resulting from admin notice html being served from the database rather than being dynamically generated
-+ Fix db upgrade script which was enabling course time period for restrictions for all courses regardless of their pre 3.0 restriction settings
-+ Fix db upgrade script that was causing empty sale dates to show start of unix epoch b/c they were empty strings
-+ Fix Javascript parse error preventing section & lesson editing from within the course outline on the admin panel
-+ Fix lesson icons from highlighting lesson settings like drip delay & quiz association
-+ Updated course outline color scheme to match the 3.0 admin color scheme overhaul
-+ `LLMS_Lesson::get_assigned_quiz()` will output deprecation warnings for those using debug mode. LLMS core no longer uses this function and will be deprecated in the next major release.
-+ Handle enrollment status of legacy orders based on enrollment rather than enrollment AND order status
-
-
-v3.0.1 - 2016-10-13
--------------------
-
-+ Properly prefix `llms_is_ajax()` to prevent 500 errors when leaving HTTPS forced checkout screen
-+ Fix student unenrollment from memberships which was leaving a trace of enrollment in the user_meta table
-+ Update student dashboard nav list items to have more specific no styles to prevent "double discs" on various themes
-+ Return course progress bar and "continue" button which was accidentally removed
-+ Added core support for "Divi" theme sidebars
-
-
-v3.0.0 - 2016-10-10
--------------------
-
-**This is a massive update which _breaks_ backwards compatibility for many LifterLMS features. A database migration is also necessary for upgrading users to reformat certain pieces of information which are being accessed differently in 3.0.0**
-
-**We strongly recommend that you backup your website before upgrading and, if possible, test LifterLMS 3.0.0 in a non-public-facing testing environment to ensure compatibility with your theme and other plugins and to ensure that 3.0.0 changes do not adversely affect your existing website.**
-
-**Please thoroughly read the following changelog and, if necessary, submit support tickets or post in the forums with any questions _prior_ to upgrading. LifterLMS Support _cannot_ and _will not_ manually resolve migration issues which may arise from upgrading to 3.0.0.**
-
-+ New shortcodes to be documented later, checkout "includes/class.llms.shortcodes.php" if you're feeling anxious
-+ All kinds of CSS changes to make LifterLMS, in general, be a little less old looking
-+ Added a number of CSS classes to various areas in the Checkout template at "templates/checkout/form-checkout.php"
-+ Added a "Cancel" button that allows you to hide the coupon form if the user decides not to add a coupon
-+ Removed jQuery animations from the coupon form toggle in favor of a CSS class toggle. If you decide you want some animations on the form add some CSS transitions to the `.llms-coupon-entry` element (and children) to change when the class `.active` is added or removed from the element.
-+ Refactored JavaScript related to LifterLMS Checkout. Improvements are minimal (if any) but the file is now smaller and more readable! Yay code stuff.
-+ Fixed some redundant text on single payment confirmation screen. ("Single payment of single payment of")
-+ Added a link to memberships listed under "My Memberships" on the LifterLMS Account Screen
-+ LifterLMS Order posts have been renamed in the database from "order" to "llms_order" to prevent any potential conflicts with other plugins. Automated database migration will handle the renaming of old orders.
-+ Fixed undefined variable notice generated by Sections without any lessons inside of them
-+ renamed function `add_query_var_product_id()` to `llms_add_query_var_product_id()`
-+ added a class for interacting with a course TRACK, instantiated by a track term or term_id (`LLMS_Track`)
-+ password strength meter and related settings / options via utilizing WordPress password strength functions available
-+ cleaned up the lesson locked tooltips to be a bit more sane and also utilized in course navigation on individual lessons.
-+ Updated admin menus for LifterLMS content to be more sane and organized and intuitive and so on and so forth
-
-##### Payment Gateways
-
-**NOTE: at this release, LifterLMS PayPal is the only payment gateway that will work with this release. We haven't started working on Stripe 4.0.0 which will work with LifterLMS 3.0.0**
-
-+ Payment gateways powered by a new abstract gateway class
-+ PayPal has been removed from LifterLMS and is available as premium extension
-
-##### Frontend Notices
-
-+ LifterLMS "Notices" have been rewritten, slightly.
-+ Most templates have been updated
-+ associated CSS has been updated
-+ Some sanity has been added to the related functions
-
-##### Post "Model" Concept / Overhaul
-
-Updated classes for programmatically accessing all sorts of data related to custom post types registered by LifterLMS.
-
-These post types currently include:
-
-+ Access Plans -- a non-public post type associated with courses and memberships which store payment related information
-+ Coupons (replaces includes/class.llms.coupon.php)
-+ Courses (replaces includes/class.llms.course.php)
-+ Lessons (replaces includes/class.llms.lesson.php)
-+ Memberships
-+ Orders (replaces includes/class.llms.order.php
-+ Products -- can be instantiated from courses or memberships (replaces includes/class.llms.product.php)
-+ Transaction -- a non-public post type associated with orders which store completed/attempted transaction data
-
-##### Improved admin metabox methods (and related)
-
-+ Updated custom LifterLMS Admin Metaboxes to have a more sane programmatic interface. This affects nearly all admin metabox classes in the plugin.
-+ A set of methods and classes have been added to improve the programmatic interface around custom post type post tables. These can be found in "includes/admin/post-types/post-tables"
-
-##### Coupons
-
-+ New class `LLMS_Coupon` allows for easy getting & setting of coupon data.
-+ Updated coupon post table to include relevant coupon information for all coupons at a glance
-+ Refactored admin panel coupon metabox generation to utilize new model for saving data
-+ Added translation functions to all strings in coupon settings screen
-+ Added new coupon settings
- + _Expiration Date_ -- coupons cannot be applied to a purchase after the expiration date
- + _Payment Type_ -- coupons can only be applied to either single or recurring payment plans. Existing coupons will be treated as single payment coupons until updated by the Admin.
- + _First Payment Discount_ -- Applies only to recurring payment coupons. Determines the discount applied to the first payment of a recurring payment transaction.
- + _Recurring Payments Discount_ -- Applies only to recurring payment coupons. Determines the discount applied all payments (other than the first) of a recurring payment transaction.
- + _Description_ -- Record internal notes for a coupon visible only by admins on the admin panel
-+ The "Coupon Code" field has been removed in favor of the WordPress Coupon Post Title being utilized as the code. After upgrading, an automated database migration will move all coupon code fields to the title. The title previously functioned as the coupon description. During the migration the existing title will be moved to the new description field.
-
-##### Orders
-
-+ Added Order Statuses
- + Completed - Single payment only. Denotes a successful transaction
- + Active - Recurring only. Denotes the subscription is active with no issues
- + Expired - Recurring only. Denotes the subscription has ended and is no longer active
- + Refunded - Denotes the order has been refunded.
- + Cancelled - Denotes the order has been cancelled manually by an admin.
- + Failed - Denotes payment has failed. For subscriptions a failed payment will switch from "active" to "failed"
- + Pending - Denotes that the order has been created but payment has not been completed yet
-+ Admin panel order table new features:
- + The following columns are now sortable in ascending and descending orders: Order, Product, and Date
- + Added totals based on order type (single or recurring) to the "Total" column
- + Added an order status column for quick status review
-+ Order notes available for internal and system notes. powered by WP comments. lots of inspiration (and code) from WooCommerce, thank you <3
-+ Added a bunch of currency settings (as well as right-side currency and decimal-less currency support!)
-
-##### New Templates
-
-+ __Pricing Table__ at "templates/product/pricing-table.php" utilized by courses and memberships for displaying access plan information. Replaces "templates/membership/purchase-link.php" and "templates/course/purchase-link.php"
-+ __Course Taxonomy Templates__ at "templates/course/categories.php", "templates/course/tags.php", and "templates/course/tracks.php" display comma separated lists for course custom taxonomy terms
-+ __Course Prerequisite Template__ at "templates/course/prerequisites.php" displays prerequisite information (course and tracks) for a given course.
-+ __Meta Wrapper__ templates at "templates/course/meta-wrapper-end.php" and "templates/course/meta-wrapper-start.php" wrap some HTML around various meta data output about a course
-+ Significantly updated checkout process with all kinds of new templates including:
- + templates/checkout/form-gateways.php
- + templates/checkout/form-summary.php
-+ __Unified "Lesson Preview"__ at "templates/course/lesson-preview.php" displays "buttons" in course syllabus (on course page) and in course navigation (on lesson pages)
-+ Various template hook priority changes in order to make adding content between default LifterLMS areas easier
-
-##### Deleted Templates
-
-+ templates/checkout/form-checkout-cc.php
-+ templates/checkout/form-pricing.php
-
-##### New & Updated Admin Interfaces & Templates
-
-+ Significantly improved, changed, or brand new templates for metaboxes for various post types:
- + templates/admin/post-types/order-details.php
- + templates/admin/post-types/order-transactions.php
- + templates/admin/post-types/product-access-plan.php
- + templates/admin/post-types/product.php
-
-##### New Functions
-
-+ `llms_confirm_payment_url()` - Retrieve the URL used for confirming LifterLMS Payments
-+ `llms_cancel_payment_url()` - Retrieve the URL users are directed to when cancelling a payment
-
-##### Install Script
-
-+ Removed some legacy default options that were being created and are no longer required for new installations.
-+ Removed unused `update_courses_archive()` function & related hook
-
-##### Select2
-
-Now utilizing a forked version of Select2 to prevent 3.5.x conflicts we've been plagued with
-
-##### Deprecated
-
-+ Removed filter `lifterlms_get_price_html`, use `lifterlms_get_single_price_html` instead
-+ Removed unused `LLMS_Product->get_price_suffix_html()` function
-+ Removed `LLMS_Product->set_price_html_as_value()` because we didn't like it anymore, don't use anything instead.
-+ Removed `add_query_var_course_id()` function
-+ Removed `displaying_sidebar_in_post_types()` function with the `LLMS_Sidebars::replace_default_sidebars()` function
-+ Filter `lifterlms_order_process_pending_redirect` has been replaced with `lifterlms_order_process_payment_redirect`
-+ Action `lifterlms_order_process_begin` has been deprecated
-+ Removed `lifterlms_order_process_complete` action
-+ Replaced `LLMS_Course::check_enrollment()` with various new utilities. See `llms_is_user_enrolled()` for fastest use.
-+ Officially removed the `LLMS_Language` class
-+ Officially removed the `PluginUpdateChecker` class stubs we created to prevent updating issues with LifterLMS extensions during our transition to 2.0.0. This library has caused nothing but pain for everyone on our team and many of our users. It's gone now, forever.
-+ Removed function `lifterlms_template_single_price()` and replaced with `lifterlms_template_pricing_table()`
-+ Removed templates at "includes/course/price.php" and "includes/membership/price.php" in favor of "includes/product/pricing-table.php"
-+ Removed `LLMS_Person::create_new_person()` in favor of `LLMS_Person_Handler::register()` or `llms_create_new_person()`
-+ Removed `LLMS_Person->set_user_login_timestamp_on_register()` and are simply adding the metadata during registration
-+ Removed `lifterlms_register_post` action hook which fired after new user registration validation, this has been replaced with `lifterlms_user_registration_after_validation`
-+ Removed `lifterlms_new_person_data` and `lifterlms_new_person_address` filters, replaced with `lifterlms_user_registration_data`
-+ Removed `LLMS_Person::login_user()` in favor of `LLMS_Person_Handler::login()`
-+ background updater
-+ system report facelift + inclusion of all new settings via `LLMS_Data` class
-+ Fix setup wizard styles to follow update admin panel styles
-+ add links to last step of setup wizard for documentation and demo
-+ removed a bunch of deprecated coupon-related functions
-+ added a "force ssl" option to ensure checkout is secured
-+ added settings and options around recurring payments and staging sites to prevent duplicate charges when testing on a cloned site
-+ Check course restrictions automatically when checking lesson
-+ Added user_id to all access function checks to allow for checks for non current user
-+ course restriction messages display regardless of enrollment status
-+ check memberships and lock purchase of members only access plans
-+ Fixed titles of course closed and open messages on the course restrictions options
-+ record a start date for access plans based off when order moves to complete or active for the first time
-+ automatically expire limited access plans
-+ gave a quick facelift & unification to a lot of admin panel elements
-+ Color consistency updated according to LLMS brand guide
-+ Unified front and backend button classes
-+ Updated all frontend buttons to have consistent classes
-+ Removed the "FREE" lesson SVG in favor of simple text which allows translating
-+ Install & activation overhauls. Resolves [#179](https://github.com/gocodebox/lifterlms/issues/179)
-+ jQuery MatchHeight lib unignored
-+ A bunch of settings pages updated and a bunch of settings deprecated
-+ Gateways setting page removed
-+ Memberships & Courses page combined into "Catalogs" settings
-+ Added a data getting class used by the tracker class
-+ added a new page creation function with better intelligence that (hopefully) prevents duplicate pages from being created during core page installation
-+ new default country setting
-+ all order status changes recorded as order notes
-+ pending orders can be completed after failed payments
-+ better handling for gateways with fields
-+ JS spinners support multiples via start & stop!
-+ Updated (and semi-finished) analytics
-+ achievement metabox converted
-+ minor updates to voucher class
-+ Added a "post state" visible on the Pages posts table identifying if the page is saved as a LifterLMS page (EG: Checkout Page)
-+ Fixed copy/paste error of duplicate enrollment closed message on course restrictions tab
-+ Removed WC integration in favor of WC
-+ Upgrade "back to course" template to new lesson API
-+ Renamed `course/parent_course.php` to `course/parent-course.php` for template naming consistency
-+ use `strict` when auto generating usernames when creating from email addresses, resolves [#182](https://github.com/gocodebox/lifterlms/issues/182)
-
-##### 3.0.0 Auto Upgrader
-
-+ lots of postmeta data rekeyed
-+ intelligently generated defaults for various pieces of new meta data on courses, lessons, and memberships
-+ automatically generate access plans from existing course and membership data
-+ update existing orders to pull semi-accurate data into analytics based on new database structure
-+ cleans database of a ton of deprecated options and postmeta data
-
-##### Deprecated
-
-+ function `llms_is_user_member()`, use `llms_is_user_enrolled()` instead
-+ function `llms_check_course_date_restrictions()`
-+ function `quiz_restricted()`
-+ function `membership_page_restricted()`
-+ function `is_topic_restricted()`
-+ function `llms_get_post_memberships()`
-+ function `llms_get_parent_post_memberships()`
-+ function `parent_page_restricted_by_membership()`
-+ function `outstanding_prerequisite_exists()`
-+ function `find_prerequisite()`
-+ function `llms_get_course_enrolled_date()`
-+ function `llms_get_lesson_start_date()`
-+ function `lesson_start_date_in_future()`
-+ function `page_restricted_by_membership_alert()`
-+ function `llms_does_user_memberships_contain_course()`
-+ class `LLMS_Checkout`
-+ function `LLMS()->checkout()`
-
-##### Auto Enrollment
-
-+ Course auto enrollment for Memberships has been restored
-+ Works exactly the same as previously except auto-enrollment is not dependent on a course "belonging to" the membership via membership restrictions. This is because membership restrictions no longer apply to courses
-
-##### Analytics
-
-+ Charts! I'm really excited about this. I know we still need more data but please say nice things to me, I worked really hard on these little charts.
-+ Updated styles & interface
-
-##### bbPress
-
-+ Restrict individual forums (and their topics) to LifterLMS Membership levels
-
-##### BuddyPress
-
-+ Fixes broken course display on bp profile
-+ Adds memberships subpage to bp profile
-
-##### notices
-
-+ Admin notices class for managing admin notices, it's pretty neat!
-
-##### Student Management on Courses and Memberships
-
-+ All new and improved student management interface for managing student enrollments from courses and memberships
-
-##### Deprecated
-
-+ filter: `llms_meta_fields_course_main`, replace with `llms_metabox_fields_lifterlms_course_options`
-
-##### Manual Payments
-
-+ Manual Payment Gateway can now be enabled on the frontend!
-+ When a manual payment is recorded the user will be redirected to a view order page where they will be prompted to make a manual payment
-+ Define the payment instructions on the admin panel "Checkout Settings"
-+ Once you verify payment, head to the pending order and hit the "Record a Manual Payment" button to record the transaction
-+ Upon recording the order status will be upgraded to "Complete" and the user will be enrolled automatically
-
-##### Student Dashboard Upgrades
-
-+ More sane template hooks and functions
-+ Pagination on Courses endpoint (view only a preview on the main dashboard)
-+ Orders history & view orders screens!
-
-Deprecated options (and related functions where applicable) for the following course & membership options:
-
- + `lifterlms_button_purchase_membership_custom_text`
- + `lifterlms_course_display_outline_lesson_thumbnails`
- + `lifterlms_course_display_author`
- + `lifterlms_course_display_banner`
- + `lifterlms_course_display_difficulty`
- + `lifterlms_course_display_length`
- + `lifterlms_course_display_categories`
- + `lifterlms_course_display_tags`
- + `lifterlms_course_display_tracks`
- + `lifterlms_lesson_nav_display_excerpt`
- + `lifterlms_course_display_outline`
- + `lifterlms_course_display_outline_titles`
- + `lifterlms_course_display_outline_lesson_thumbnails`
- + `lifterlms_display_lesson_complete_placeholders`
- + `redirect_to_checkout`
-
-In all scenarios either a `add_filter` (returning false) or a `remove_action()` can be used to replicate the option.
-
-
-v3.0.0-beta.4 - 2016-09-01
---------------------------
-
-+ fix issue with course prereq checks
-+ next payment due date visible on order admin view
-+ trial end date visible on order admin view
-
-##### Free Access Plans
-
-+ "Free" access plans now defined as such based on a checkbox rather than by entering 0 into the price
-+ Only single payment access plans can be free (a free recurring payment makes no sense but we can certainly discuss this if you disagree with me)
-+ trials are disabled with free plans (because trials only apply to recurring plans)
-+ sales are disabled for free access plans
-
-##### Checkout Form JS API
-
-+ unified JS checkout handler
-+ allows extensions to enqueue validation or pre-submission JS functions that should run prior to checkout form submission
-
-##### Manual Payment Gateway
-
-+ handles purchase of access plans marked ar FREE & orders that are discounted to 100% via coupons
-
-##### Open Enrollment
-
-+ Open Enrollment allows users to register on the account dashboard without purchasing a course
-+ Voucher settings are available to customize whether vouchers should be optional or required during open registration
-+ Better error reporting around voucher usage during enrollment
-
-##### Deprecated Functions
-
-+ `llms_get_coupon()`
-+ `get_section_id()`
-+ `check_course_capacity()`
-
-##### Quizzes
-
-+ Updated admin metaboxes to use new metabox abstract class
-+ display 0 instead of negative attempts on quiz summary
-+ updated logic in start button template
-
-##### Emails (for engagements)
-
-+ Admin metabox updated to new API
-+ Postmeta data migration:
- + `_email_subject` renamed to `_llms_email_subject`
- + `_email_heading` renamed to `_llms_email_heading`
-
-
-v2.7.12 - 2016-09-22
---------------------
-
-+ Added a new filter on content returned after port permission checks
-+ Added additional information to plugin update message in preparation for major 3.0 release
-+ Updated plugin contributor metadata
-
-
-v2.7.11 - 2016-07-22
---------------------
-
-+ Removed a duplicate action hook on course archive loop.
-+ Switched registration template include to use a more sane function
-+ Added updated banner adds with prettier ones. Wooooooo.
-
-
-v2.7.10 - 2016-07-19
---------------------
-
-+ Fix undefined noticed related to LifterLMS custom post type archive filtering
-+ Fix filter which was supposed to allow custom engagement types to be queried & triggered by engagements automatically but was passing data incorrectly
-
-
-v2.7.9 - 2016-07-11
--------------------
-
-+ We are now properly storing delayed engagement trigger data.
-+ Fixed an issue with our engagement query functions that caused, in very rare circumstances, the extra engagements to be triggered during an engagement trigger due to a lack of specificity in our query
-+ Fixed an undefined property notice related to email engagements when the email had no subject or header
-+ Fixed a typo in the description of a translation function.
-+ Added an engagement debug logging function. You can log all sorts of data related to engagements by adding `define( 'LLMS_ENGAGEMENT_DEBUG', true );` to your `wp-config.php` file.
-+ Allow course title shortcode to be used on course pages (and quizzes too). Documentation incorrectly said it was available on courses so we've fixed the function to allow for use on courses.
-
-
-v2.7.8 - 2016-07-05
--------------------
-
-+ Bugfix: Restore access to quiz results on quiz completion
-
-
-v2.7.7 - 2016-07-01
--------------------
-
-##### Russian
-
-+ LifterLMS is now 100% Translated into Russian thanks to our new Russian Translation Editor [@kellerpt](https://profiles.wordpress.org/kellerpt/)
-
-##### l18n
-
-+ All transition messages between questions during a Quiz are now translatable.
-+ LifterLMS subpages below the LifterLMS icon on the admin panel will now always display regardless of how you've chosen to translate the menu items. Hopefully puts to rest a long-standing i18n issue.
-
-###### Bug fixes
-
-+ Attempting to access a quiz when not enrolled in the associated course and having not properly started the quiz now results in a useful error message rather than a PHP warning.
-+ We've adjusted the way we're adding a admin panel "separator" to reduce conflicts with other plugins that have menu items with the same position as our separator (51).
-+ Added new logic to display an error message (instead of nothing) if there's an error during question loading.
-+ Resolve issue with course progress bar when added to a quiz sidebar (assuming your theme has sidebar support on your quizzes).
-+ Updated version number in the changelog for last version (it was supposed to be 2.7.6)
-
-
-v2.7.6 - 2016-06-28
--------------------
-
-+ Students manually removed by Memberships by using the "Students" tab of a LifterLMS Membership will now be fully removed from the membership.
-+ Updated a few time-related strings to be l18n friendly. These items were all around Quiz time reporting and quiz time limits.
-+ Updated testing information, tested up to WP 4.5.3
-+ Fixed date of last release on changelog. It had the wrong date. Does that really matter?
-+ Updated readme.txt description area, we have a new youtube video! Yassss.
-
-
-v2.7.5 - 2016-06-13
--------------------
-
-##### New features
-+ Added an "id" parameter to both LifterLMS Courses and LifterLMS Memberships shortcodes
-
-##### i18n
-+ Allow date translation on quiz results screen by using `date_i18n()` instead of `date()`
-+ Allow date translation on my courses screen by using `date_i18n()` instead of `date()`
-+ Ensure course status "Enrolled" is translatable on my courses screen
-
-##### Fixes
-+ Thanks to [@kjohnson](https://github.com/kjohnson) who fixed undefined index warnings & errors which occurred when viewing the last lesson in a section when the next section contained no lessons.
-+ Resolved an issue where formatting for "Restricted Access Description" course content would not display proper formatting.
-+ Fixed an issue with the "FREE" stamp for a free lesson caused layout issues.
-+ Removed the "is-complete" css class from incorrectly being added to lesson preview tiles for free lessons
-+ Fix an escaping issue when rendering Course titles inside LifterLMS notices. Prevents "\'s" from displaying when "'s" should be displaying (and similar issues).
-
-
-v2.7.4 - 2016-05-26
--------------------
-
-+ Fixed a bug with the new localization methods from 2.7.3
-+ Removed bundled it_IT translation files in favor of official language pack available at [https://translate.wordpress.org/projects/wp-plugins/lifterlms/language-packs](https://translate.wordpress.org/projects/wp-plugins/lifterlms/language-packs).
-+ Removed bundled en_US translation files because LifterLMS is in English so the files are unnecessary.
-+ Fixed a few mis-labeled filters applied when registering LifterLMS Custom Post Types
-+ Adjusted the default supported features of LifterLMS Quizzes and Questions
- + Quizzes now support custom fields as per user request
- + Commenting, thumbnails, and excerpts are no longer "supported" as they were never intended to be and were never correctly implemented.
- + If you are relying on any of these features for your quizzes or questions please use the following filters to re-implement these features: `lifterlms_register_post_type_quiz` or `lifterlms_register_post_type_question`. These will allow you filter the default arguments LifterLMS passes to the WordPress function `register_post_type()`
-
-
-v2.7.3 - 2016-05-23
--------------------
-
-+ Added a separate filter for login redirects `lifterlms_login_redirect` and added the user_id as a second parameter available to the filter.
-+ Added second parameter to `lifterlms_registration_redirect` to allow access to the registered user's user_id.
-+ Fixed a timestamp conversion issue on Course sale price checks that caused indefinite sales (those with no date restrictions) to appear not on sale during certain periods of time. The period would differ depending on the server's timezone settings and the time of visit.
-+ Added a "Pointer" when hovering quiz summary accordion to allow for a slightly more obvious user experience that the elements are expandable.
-+ Added some new localization methods to ensure strings that only appear in Javascript files will be translator friendly. This initially fixes a few issues on the Quiz Summary page and during quiz taking where strings only appeared in Javascript and were, therefore, completely inaccessible to translators.
-
-
-v2.7.2 - 2016-05-19
--------------------
-
-+ In course syllabus widget & shortcodes free lessons will now be clickable links.
-+ Record `llms_last_login` timestamp in usermeta when a user registers.
-
-
-v2.7.1 - 2016-05-09
--------------------
-
-##### Enrollment & Voucher Checks
-
-+ Enrollment functions will now automatically check to ensure that users are not already enrolled in a course or membership before enrolling. This addresses an issue which would create double enrollment for user redeeming a voucher for a product they were already enrolled in.
-+ Vouchers will now automatically check to see if the user has already redeemed this voucher before allowing the user to redeem it. This would have caused multiple enrollments and would allow one user to eat up an entire voucher by using it over and over again for funsies. A voucher can now *only* be redeemed once by a user as intended.
-+ `llms_is_user_enrolled()` now allows developers to check membership enrollment. Previously this function would only check enrollment of Courses despite what the documentation stated.
-
-##### Translation
-
-+ 3 strings have had translation functions added to them. This makes LifterLMS voucher redemptions translatable!
-
-##### Bugs & Fixes
-
-+ Fix javascript dependency & enqueueing issue on admin panel which prevented LifterLMS settings from saving correctly in various places
-+ Removed inline CSS from "next lesson button" on quiz completion / summary screen. This was overriding some default styles and making the button very thin and gross.
-
-
-v2.7.0 - 2016-05-05
--------------------
-
-##### LifterLMS Custom User Fields Exposed
-
-+ Custom fields added during registration via LifterLMS account settings are now exposed on the admin panel via the student's WordPress user profile
-+ All custom fields that are available (billing and phone) are editable on the WordPress user profile by anyone with profile edit access regardless of LifterLMS settings. If the settings are disabled (eg not required for registration) you can still add this information manually to a user's profile. This is useful if you require the information and then disable it later, you would still be able to access the information on the admin panel but would no longer be required for user's during registration.
-+ A few new filters added to help developers customize the experience here. Check out the documentation at [https://lifterlms.com/docs/lifterlms-filters/#admin-user-custom-fields](https://lifterlms.com/docs/lifterlms-filters/#admin-user-custom-fields)
-
-##### Membership Manual Add & Remove Student Functions
-
-+ Duplicated "Students" tab from the Course admin screen to Memberships
- + Students can be manually added to a membership by an admin
- + Students can be removed manually from a membership by an admin
-
-##### Updates
-
-+ Added the ability for students to edit their phone number via their account settings page if the phone number registration option is enabled on the site.
-
-##### Fixes
-
-+ Fixed a few spelling errors on LifterLMS admin panel order screens
-+ Fixed a typo on meta data for LifterLMS admin created (manual) orders
-
-
-v2.6.3 - 2016-05-02
--------------------
-
-+ Removed redirecting action from WooCommerce integration that was causing issues on multiple product purchase checkouts with larger databases.
-+ Added a new payment action `lifterlms_order_complete` which runs at the same time as some previous actions during payment processing but servers a different purpose. This is mostly in preparation for a forthcoming AffiliateWP integration.
-+ Fixed an issue with LifterLMS certificate background image that caused the wrong dimensions to be returned when outputting a LifterLMS certificate background image
-
-
-v2.6.2 - 2016-04-27
--------------------
-
-+ Fix class conflict in collapsible course outline widget template which caused some UX issues.
-+ Added new filters run during course & lesson sidebar registration to allow customization of LifterLMS sidebars
- + `lifterlms_register_course_sidebar`
- + `lifterlms_register_lesson_sidebar`
-+ Removed a stray logging function.
-+ Cleaned up some undefined variable warnings & notices on the quiz summary template
-+ Fixed an issue appearing when registering users did not submit the optional phone number which caused a PHP notice
-+ LifterLMS Orders generated by WooCommerce will now have a payment method of "WooCommerce". This also addresses an undefined notice produced during WooCommerce order completion because a LifterLMS Payment Method wasn't being defined.
-
-
-v2.6.1 - 2016-04-26
--------------------
-
-+ Fix class conflict in collapsible course outline widget template which caused some UX issues.
-
-
-v2.6.0 - 2016-04-25
--------------------
-
-##### Collapsible Course Outline Widget
-
-+ By request we've added an option to make your course outline widgets collapsible!
-+ View feature [Documentation](https://lifterlms.com/docs/course-syllabus-widget/)
-+ New translations available related to feature. I think it's 4 strings.
-
-##### Bug Fixes
-
-+ Removed an unused CSS selector that caused some issues on the admin panel. This resolves an issue identified with the Page Builder by SiteOrigin plugin. The selector was very generic (`.title`) and may have caused issues with other themes or plugins using that class.
-+ Resolved an issue that prevented post update, save, and publishing messages for core post types (posts, pages) from displaying properly.
-
-
-v2.5.1 - 2016-04-22
--------------------
-
-+ Fixed session handler initialization as it was being initialized prior to user data availability.
-+ Staged `LLMS_Language` class for deprecation in favor of WordPress translation functions `__()`, `_e()`, etc... **If you're a developer you'll start seeing warning's on screen or in your logs if you're using this function, it will be completely removed in the next MAJOR release (3.0.0)**
-+ Added a new function to handle the deprecation warning above (`llms_deprecated_function`) and now that we have this function we'll start deprecating all the things. Just kidding, or am I?
-+ This gives translators access to 69 new strings that were previously untranslatable! However, this number might be inaccurate +/- 5 strings. I only counted it once and I don't feel like the exact number is important enough for a recount to ensure accuracy. /shrug
-
-
-v2.5.0 - 2016-04-15
--------------------
-
-**Admin Panel Order Table Updates**
-
-+ Several visual improvements to the table
-+ Exposed the following fields on the table
- + Order number
- + Customer name (with a link to their WP profile)
- + Customer email (mailto link)
- + Payment gateway used (this is filterable per gateway as well so gateways can improve the functionality here in the future)
-+ Added a link to the product edit page from the product column
-+ Free orders will now display as "Free" as opposed to {currency}0.00
-+ Removed the not-so-useful "Order" column which was a long ugly string of data that was displayed in other columns already
-+ Removed the "Password Protected" flag since *all* orders are always automatically password protected for added security. This flag distracts from the interface so we've removed it. Orders _are_ still password protected though.
-+ Numerous strings that were previously not translatable have been made translatable on this screen
-+ A few new strings that previously didn't exist are now available for translation
-
-**Fixes and other small changes**
-
-+ Fixed a translation issue on the LifterLMS menu that we thought we fixed in the last release but have now really fixed (probably).
-+ Fixed a few small issues with engagements as they related to external engagements triggered by other plugins and LifterLMS extensions.
-+ Tired of seeing a banner for a plugin you've already installed? We have your back! The general settings area will now only display banners for plugins that aren't installed.
-+ Fixed various javascript issues, mostly removed `console.log()` statements.
-+ Fixed a spelling error on the membership admin panel settings screen
-
-
-v2.4.1 - 2016-04-07
--------------------
-
-+ Tested and compatible with WordPress 4.5 Release Candidate.
-+ Fixed a pagination issue related to updates to the quiz builder from 2.4.0 which would cause results to return incorrect results on the last page of paginated results in the "Add Question" dropdown.
-+ Added translation functions to LifterLMS Menu Items. Resolves an issue where translated LifterLMS installations might not see all the menu items under the LifterLMS Icon.
-+ Italian translation updates courtesy of [@AndreaBarghigiani](https://github.com/AndreaBarghigiani)
-+ On some themes the "Next Lesson" button was displayed while quizzes were being taken. We now *always* hide the next lesson button when a quiz is being taken.
-+ Adjusted some static functions to be non static in `class.llms.post-types.php`
-+ Added a function to ensure support for post thumbnails on LifterLMS custom post types
-+ If a user views a course that is available to them because it belongs to a membership level they are a member of, course pricing information will no longer be visible. This addresses a confusing user experience issue. Previously it _appeared_ like payment for a course was still required even though it really wasn't.
-+ Fixed undefined variable warning on quiz summary screen
-+ Resolve an issue with quiz timer that caused issues on time display if the time limit was set to a fraction of a minute (eg 1.5 minutes)
-+ resolved an undefined variable warning resulting from courses still holding a reference to a membership after the membership has been deleted or trashed
-
-
-v2.4.0 - 2016-03-29
--------------------
-
-##### Performance Improvements on the LifterLMS Quiz Builder
-
-+ Completely rewrote Javascript associated with building a LifterLMS Quiz. Our users have been identifying some performance issues and slowness when working with larger databases. We've refactored the Javascript and our related database queries to allow faster quiz building and fewer timeouts when working in the quiz builder.
-+ Fixed a bunch of undefined variables that would produce PHP warnings in various quiz templates
-+ Added validation to quiz questions on the admin panel to prevent the same question from being added to a quiz multiple times.
-+ Fixed an issue that prevented quizzes from correctly marking the lesson as completed when the quiz was passed.
-+ Added three new actions now available for developers to hook into.
- + `lifterlms_quiz_completed` called upon completion of a quiz (regardless of grade)
- + `lifterlms_quiz_passed` called when a quiz is completed with a passing grade
- + `lifterlms_quiz_failed` called when a quiz is completed with a failing grade
-+ Course Progress and Course Syllabus shortcodes (and widgets) now work on Quiz pages
-+ Completed Metabox refactor for the LifterLMS Quiz post type and removed `LLMS_Meta_Box_Quiz_General` class. All functions now exist in `LLMS_Meta_Box_Quiz`
-+ Added validation to the Quiz general settings
- + Cannot only enter numbers in attempts, percentage, and time limit fields
- + Cannot enter a negative number or a number greater than 100 in the percentage field
-+ Removed the membership restriction metabox from quiz admin and question admin screens
-
-##### Other fixes
-
-+ Fixed an issue that caused multiple certificates awarded for the same Course or Lesson to not properly display on the My Account page.
-+ Removed an event bound to the publishing of a LifterLMS Question that called a function that didn't exist and caused a Javascript error on the console (but didn't actually cause any problems)
-+ Removed a warning message that would display on sidebars when a shortcode was being displayed in a place that it couldn't function. We now simply don't display any content if the shortcode can't function.
-+ Resolved an issue that prevent users from "purchasing" products when using a 100% coupon and the Stripe payment gateway. Users experiencing this issue should also update to Stripe 3.0.1.
-+ Fixed an AJAX related issue that was incompatible with PHP7
-+ Added the ability to have a "max" value on LifterLMS Admin Metabox number fields
-
-
-v2.3.0 - 2016-03-24
--------------------
-
-##### Engagements Refactoring (lots of bugfixes, performance improvements, more hook & filter friendly)
-
-+ We've completely rewritten the LifterLMS Engagement Handler methods (`class LLMS_Engagements`) and added some new engagement actions.
-+ The rewrite unifies engagement handling into one function that can be easily hooked into by plugin and theme developers.
-+ We've moved any engagement related data out of the main `LifterLMS` class
-+ Fixed the broken engagement delay functionality which now runs of `wp_schedule_single_event`. This makes the function more reliable and also keeps it within the traditional WordPress architecture.
-+ Added an additional check before sending emails or triggering any engagements that will prevent the achievement from being awarded or the email from being sent if the post is in not published. This fixes an issue that caused emails in the trash from still being emailed.
-+ Removed the unused `LLMS_Engagements` class and file
-+ Added two new engagement trigger events "Membership Purchased" and "Course Purchased"
-+ Deprecated actions -- Removes some redundancy because the triggering actions (`lifterlms_course_completed` triggered the notification action, instead `lifterlms_course_completed` simply triggers the engagement now).
- + `lifterlms_lesson_completed_notification`
- + `lifterlms_section_completed_notification`
- + `lifterlms_course_completed_notification`
- + `lifterlms_course_track_completed_notification`
- + `lifterlms_course_completed_notification`
- + `lifterlms_user_purchased_product_notification`
- + `lifterlms_created_person_notification`
-
-##### Bug and Issue fixes
-
-+ Adjusted the size of the LifterLMS Admin Menu Icon. It was super big because of, perhaps, some overcompensation. It caused an issue on Gravity Forms admin pages for some reason (we didn't ever determine why) but we've resolved it by using an appropriately sized icon.
-+ Fixed a CSS issue that caused some weirdness on the course archive page on mobile devices
-+ Fixed an issue with automated membership expirations
-+ Fixed a function that should have been called statically in `LLMS_Ajax` class
-+ Fixed a ton of issues related to the triggering of engagements and cleaned up a lot of classes and functions associated with them.
-+ Properly instantiate `LifterLMS` singleton via LLMS() function and prevent direct instantiation of the class via `new LifterLMS()`.
-+ Removed the deprecated 'class.llms.email.person.new.php' file as it was rendered useless a long time ago and caused some duplicate emails.
-
-
-v2.2.3 - 2016-03-15
--------------------
-
-##### Translations
-
-+ Added translation functions around quite a few untranslated strings. Thanks to the team at [Netzstrategen](http://netzstrategen.com)
-+ Added German translation .mo and .po files again thanks to the team at [Netzstrategen](http://netzstrategen.com)
-
-##### Student Enrollment Functions
-
-We've refactored a bit of our code related to how to programmatically enroll a student in a course or membership during registration and purchase.
-
-A new class `LLMS_Student` makes working with a LifterLMS student (user) a bit easier. We'll begin exposing user meta data through this class as we continue to improve the usability of the codebase for other developers.
-
-We've also created a simple enrollment function `llms_enroll_student()` which enables programmatic enrollment to LifterLMS courses or memberships. This was previously handled in a pretty schizophrenic manner and this unifies various ways of enrollment into one clean function. All enrollment moving forward will use this functions.
-
-The enrollment function calls a new action as well as calling existing enrollment-related actions:
-
-+ `before_llms_user_enrollment` - called immediately prior to beginning the user enrollment function
-+ `llms_user_enrolled_in_course` (previously existing)
-+ `llms_user_added_to_membership_level` (previously existing)
-
-This also addresses an issue that prevented the `llms_user_enrolled_in_course` action from being called when a user was auto-enrolled in a course because they joined a membership level that included auto-enrollment in one or more courses.
-
-##### Bug and Issue fixes
-
-+ Fixed an inconsistency in the way membership IDs were being saved to the postmeta table that would cause courses to not *appear* restricted on the Membership Enrollment tab, even though they were actually restricted and functioning correctly.
-+ New lines are now preserved in the quiz question clarification text areas, thanks to @atimmer
-+ Escape HTML in the quiz question description fields on the admin panel to allow outputting html without rendering it, thanks @atimmer
-+ Fixed an issue related to the outputting of restricted course and membership content which caused errors on certain themes
-+ added a clearfix to the `.llms-lesson-preview` element on the course syllabus template
-+ Removed the `class.llms.person.handler.php` file as it wasn't actually being used by anything anywhere and contained no functions
-+ Removed some unused and deprecated class functions from the LLMS Student Metabox class
-+ Fixed an undefined javascript error resulting from code cleanup in 2.2.2. This issue prevented Vouchers from being published. The code has been further cleaned.
-
-
-v2.2.2 - 2016-03-15
--------------------
-
-##### One step closer to a public GitHub repository
-
-We've made a massive syntactical update to almost every file in the codebase for a (finally) unified and clearly defined coding standard. This puts us one step closer to beginning to open our GitHub repo publicly and accepting pull requests and contributions from developers everywhere.
-
-Okay, we haven't exactly _clearly_ defined it yet. We're working off a modified version of the [WordPress Coding Standards](https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/).
-
-Notable exceptions are related to file names because Thomas Levy didn't have the energy to rename a bunch of files as well as ignoring the Yoda Conditions standards. We'll be fixing these deviations in the future.
-
-##### Quizzes
-
-+ Created new time calculation and humanizing functions related to the display of quiz time on quiz results pages
-+ Quizzes will now display hours, minutes, and seconds depending on the time it took to take the quiz
-+ Timing calculations are more accurate and quizzes that are completed in less than 60 seconds will not bug out and display incredibly long lengths
-+ Resolved an issue that occasionally prevented quiz data from saving during the last question causing the quiz to hang in an uncompletable state
-+ Quiz questions now have a default point value of 1, thanks @atimmer
-+ Quiz question answers now accept valid HTML as per `wp_kses_post`, thanks again to @atimmer
-
-##### Translations
-
-+ Thanks to @AndreaBarghigiani and the team at [codeat](http://codeat.co/) LifterLMS now ships with Italian language files!
-
-##### Issue and bug resolutions
-
-+ Fixed a restriction issue that would happen when individual lessons were restricted to a membership level
-+ Fixed an issue with the `[lifterlms_my_account]` shortcode that was preventing the shortcode from working on the Divi theme.
-+ Engagements will now only be triggered if they are "Published". Resolves an issue where draft or trashed engagements were still firing.
-+ Fixed CSS overflow on LifterLMS Meta boxes. Fixes an issue where select boxes would be hidden inside a metabox.
-+ Changed the ConvertKit extension banner image on the LifterLMS general settings page and replaced added a link to the extension now that it's available.
-+ Added a link to the new ConvertKit extension to the .org readme
-+ When restricting an entire site to a membership level the page selected as the "Terms and Conditions" page in LifterLMS settings will automatically bypass Membership restriction settings. This will allow your unregistered users to actually read the T&C that they're confirming during registration.
-+ CSS fix for `has-icon` class on course syllabus
-+ Fixed a PHP warning that displayed when purchasing a membership with no auto-enrollment courses
-+ Fixed an undefined variable warning in the WooCommerce integration class
-+ Fixed a few templating issues related to certificates
-+ Added a few new CSS rules that should make certificates more compatible across various themes
-+ Added a css class to LifterLMS Next Lesson buttons, `llms-next-lesson`
-+ Updated the scheduled event name for cleaning up LifterLMS session data from the WP database. It had a conflicting name with the scheduled event for expiring LifterLMS memberships.
-
-
-v2.2.1 - 2016-03-07
--------------------
-
-+ Added a few actions to the `class.llms.voucher.php` class.
-
-
-v2.2.0 - 2016-03-04
--------------------
-
-##### Translations
-
-+ We've updated our .pot file for the first time in quite a while. We're really sorry for de-emphasizing translation. An updated .pot file will now accompany each version of LifterLMS whenever a translatable string is adjusted or when a new string is added.
-+ We've also made it easier to include custom translations. Read our [Translation Guide](https://lifterlms.readme.io/docs/getting-started-with-translation).
-
-##### Certificate Background Images
-
-_We've completely rewritten the certificates template (but it's all backwards compatible)._
-
-+ New filters are available to make customizing the certificate template easier for developers. All new filters are documented at [https://lifterlms.readme.io/docs/functions-certificates](https://lifterlms.readme.io/docs/functions-certificates).
-+ A new WordPress Image Size is now available and will be used for generating the image used by default when uploading certificates to the media library. Fore more information on these new settings visit [https://lifterlms.com/docs/certificate-background-image-sizes/](https://lifterlms.com/docs/certificate-background-image-sizes/).
-
-##### Course and Membership Pricing & Sales
-
-+ Sale price start and end date are now completely optional.
- + Provide neither a start date nor an end date to have a sale run indefinitely
- + Provide a start date with no end date to have a sale start at a pre-determined time with no pre-determined ending
- + Provide an end date with no start date to have a sale end a a pre-determined date but start immediately
- + Provide a start date and an end date to have a sale run for a pre-determined period of time
-+ Optimized the `LLMS_Product` class to provide more reliable and extendable use of the class
-+ The templates related to pricing functions have been refactored. Affected templates include: "templates/course/price.php", "templates/loop/price.php", "templates/membership/price.php"
-+ Many people complained about the size of the `.llms-price` element on course and membership tiles on loop pages. We removed the inflated size and will now default to your theme for sizing. You selector remains the same if you wish to customize the size of the price text.
-
-##### Coupon Updates
-
-+ Coupons can (finally) be removed after being applied!
-+ Coupons can now be restricted to specific courses and/or memberships
-+ Percentage based coupons can no longer be created with a value larger than 100%
-+ Added numeric restrictions to usage and coupon amount fields on the admin panel
-+ Fixed a programmatic error that prevented product restrictions from being entirely removed
-+ Fixed a few instances where hardcoded a US Dollar symbol ($) where a dynamic currency symbol should have been displayed.
-
-##### Wow Bad Syntax, Very Typo, Such Grammar, So Undefined
-
-+ Fixed a typo in filter associated with modifying the registration of the lesson post type (`lifterlms_register_post_type_lesson`)
-+ Fixed a grammatical error in a Membership restriction message
-+ Fixed a syntax error in "/templates/course/outline-list-small.php" that prevented the `done` CSS class from being properly applied to completed lessons
-+ Fixed a few typos and grammatical errors on the Course and Membership settings metaboxes
-+ Fixed an undefined variable in "templates/course/syllabus.php"
-+ Fixed an issue on the system report that prevented the "Courses Page" from being reported properly
-+ Fixed an issue that caused PHP warnings on the admin panel for students or WP users with no LifterLMS menu permissions
-+ Fixed an installation warning caused by a reference to an undefined class variable
-+ Fixed an HTML character encoding issue that caused `–` to display on the admin panel when viewing LifterLMS Orders
-+ Fixed an undefined variable found during engagement triggering for non-email engagements.
-
-##### Additional, less exciting updates
-
-+ Added input type restrictions to course & membership price fields.
-+ The "Emails" LifterLMS Settings Tab has been renamed "Engagements." All Email settings are found under this tab as well as some new settings related to other kinds of LifterLMS engagements.
-+ Added `the_content` filter to the content of emails sent by LifterLMS
-+ Fixed some CSS issues on Voucher screens
-+ Updated Courses settings retrieval function to retrieve the correct "shop" page id
-+ Added translation functions to voucher export meta box class
-+ Vouchers Export metabox will only allow export after a voucher has been published. This prevents an issue caused by attempting to export voucher codes before they were saved in the database via the publish / save action.
-+ Vouchers can no longer be saved with a use of "0"
-+ added a CSS class for various syllabus outputs that notes that the lesson has an icon. Previously CSS relied on "is-complete" to output styles for having an icon but with the addition of placeholders the "is-complete" is used only to note that the lesson is completed and "has-icon" is a more semantic class that applies to both complete and incomplete lessons with an icon.
-+ Removed the membership restriction metabox from some post types where it shouldn't have been displaying.
-+ admin select fields now have an option `allow_null` (default to "true") which can be set to `false` in order to prevent the output of the default "None" option
-
-
-v2.1.1 - 2016-02-15
--------------------
-
-##### System Report
-
-+ A new LifterLMS Admin Page is available which reports information about various server, WordPress, and LifterLMS settings that will help expedite support requests.
-+ More information about the system report is available at [https://lifterlms.com/docs/how-to-use-the-lifterlms-system-report/](https://lifterlms.com/docs/how-to-use-the-lifterlms-system-report/)
-
-##### Additional Updates
-
-+ Fixed a javascript issue which prevented users from saving vouchers
-+ Cleaned up formatting in a large number of included PHP files
-
-
-v2.0.5 - 2016-02-15
--------------------
-
-+ PayPal requests now using HTTP Version 1.1 in preparation for June 2016 [TLS 1.2 and HTTP/1.1 Updates](https://www.paypal-knowledge.com/infocenter/index?page=content&widgetview=true&id=FAQ1914&viewlocale=en_US). This resolves user's inability to begin PayPal checkout when using Sandbox mode.
-+ Updated deprecated function opt out to run off a constant that can be defined in `wp-config.php` instead of using a filter that is hard to use in the way that it is intended.
-
-
-v2.0.4 - 2016-02-15
--------------------
-
-+ Fixed a typo on the `class_exists` check in the deprecated functions file
-+ added a filter so that progressive users can opt out of loading the deprecated functions file
-
-
-v2.0.3 - 2016-02-12
--------------------
-
-+ Removed an unused quiz stub
-
-
-v2.0.2 - 2016-02-11
--------------------
-
-+ Bugfix: removed a progressive syntax array that caused fatal errors on older versions of PHP
-
-
-v2.0.1 - 2016-02-11
--------------------
-
-##### Updated General Settings Screen
-
-+ Improved the general settings interface to be more visually appealing and to provide some ad space to alert customers to other LifterLMS products and information.
-+ Moved Currency options to the Checkout settings screen
-
-##### Bug Fixes
-
-+ Properly initialized jQuery on the vouchers metabox admin scripts
-+ removed some php shortcut echos (`= $var; ?>`)
-+ Resolve issue where courses that are available with a membership or on it's own outside of the membership would prevent users from accessing content if they were not a member.
-+ Fixed a few files where undefined variables were being referenced and generating php notices
-+ removed an call to a WordPress core function that has never existed. Not sure what we were thinking there...
-
-###### Enhancements
-
-+ Updated CSS to provide better course syllabus layout on smaller screens
-+ Added validation to prevent against duplicate voucher code creation
-
-
-v2.0.0 - 2016-02-04
--------------------
-
-##### Auto-advancing lessons
-
-+ We've heard your feedback and added a new global course option which will auto-advance a student to the next lesson upon lesson completion.
-
-##### Bug Fixes
-
-+ Added spaces between numbers and "of" on the counter for course syllabus templates
-+ Removed a template hook that was creating duplicate lesson thumbnails on quite a few themes
-
-##### Membership Admin Improvements
-
-Visit the "Enrollment" tab on any membership to see some new additions to make managing your memberships easier.
-
-+ You can now add courses to and remove courses from a Membership from the Membership itself
-+ You can now opt to automatically enroll students in a course (or multiple courses) when they sign up for a membership by checking "Auto Enroll" next to the course on the Membership enrollment tab
-
-##### Student Enrollment & Removal on Courses Admin Screen
-
-We've updated the Students tab interface for performance and usability!
-
-+ AJAX enabled searching by student name and or email
-+ Increased performance for course page load by only calling student information when needed. This resolves a bug identified by users with large user databases and/or low-powered servers.
-+ Allow for addition or removal of several students at a time.
-
-##### Syllabus Template
-
-+ Added a Course setting to optionally enable Lesson Thumbnails on the Course Syllabus
-+ Added a Course setting Display greyed out lesson completion checkmark icons on lessons not competed in the course syllabus
-+ Reworded CSS on the course syllabus to rely on floats rather than absolute positioning, should allow for more robust customization with less frustration
-+ Refactored the syllabus template at "templates/course/syllabus.php" for better performance and readability
-
-##### Updates and enhancements
-
-+ User email is now displayed on the "Students" table on student analytics screens
-+ Membership now has it's own admin menu
-+ Reordered the LifterLMS admin menu and submenu items
-+ Removed membership specific taxonomies from courses
-+ Removed course specific taxonomies from memberships
-+ Coupon code is now a required field when creating a coupon
-+ "Humbled" the metabox on all post types that restricts the post to a membership. The metabox would previously gain priority over the WordPress publishing actions metabox. The priority has been reduced to "default" and will to fall into line with all other metaboxes on the screen and appear based on registration priority. If you can't find the metabox, SCROLL DOWN! If you want to put it back up on the top, you can simply drag it up there and WordPress will save your preference.
-
-##### Deprecated Classes
-
-We've added a "deprecated" file which holds a few stubs for classes and functions deprecated below as to prevent fatal errors. The functions and classes in the deprecated class are classes which we know are being utilized by approved LifterLMS extensions and will allow users to upgrade LifterLMS without upgrade extensions without breaking their websites!
-
-+ `LLMS_Activate` which as previously used to activate the plugin for updates via the LifterLMS Update Server and is no longer required.
-+ PUC (plugin update checker) Library has been completely removed as it is no longer required for plugin updates.
-+ `LLMS_Analytics_Dashboard` was removed as it was a stub that was never used and shouldn't have ever been released as a part of the LifterLMS codebase. I can't believe no one reported this bug!
-
-##### Deprecated Functions
-
-+ `lifterlms_template_section_syllabus()`
-
-**The following are officially deprecated and removed to prevent WooCommerce compatibility conflicts**
-
-+ `is_shop()` replaced by `is_llms_shop()`
-+ `is_account_page()` replaced by `is_llms_account_page()`
-+ `is_checkout()` replaced by `is_llms_checkot()`
-
-##### Deprecated Templates
-
-+ templates/course/section_syllabus.php
-
-##### New Account Dashboard Filters
-
-*[View documentation for more information](https://lifterlms.readme.io/docs/filters-account)*
-
-+ `lifterlms_account_greeting`
-+ `lifterlms_my_courses_title`
-+ `lifterlms_my_courses_enrollment_status_html`
-+ `lifterlms_my_courses_start_date_html`
-+ `lifterlms_my_courses_course_button_text`
-+ `lifterlms_my_certificates_title`
-
-##### New Checkout Page Filters:
-
-*[View documentation for more information](https://lifterlms.readme.io/docs/filters-checkout)*
-
-+ `lifterlms_checkout_user_logged_in_output`
-+ `lifterlms_checkout_user_not_logged_in_output`
-
-##### New Course Filters:
-
-*[View documentation for more information](https://lifterlms.readme.io/docs/filters-course)*
-
-+ `lifterlms_product_purchase_account_redirect`
-+ `lifterlms_product_purchase_redirect_membership_required`
-+ `lifterlms_product_purchase_checkout_redirect`
-+ `lifterlms_product_purchase_membership_redirect`
-+ `lifterlms_lesson_complete_icon`
-
-
-v1.5.0 - 2016-01-22
--------------------
-
-##### WooCommerce Integration Enhancements
-
-__NOTE: The following enhancements only apply when the WooCommerce Integration is enabled__
-
-**Always redirect to the WooCommerce Cart when a SKU Matched Product can be found**
-
-+ LifterLMS Products (courses and memberships) which are SKU matched to a WooCommerce product will now automatically add the related WooCommerce product to the WooCommerce shopping cart and then automatically redirect the visitor to the WooCommerce cart when the visitor attempts to enroll in a course or membership from the LifterLMS course or membership page.
-+ If no WooCommerce product is found via a SKU match, the user will proceed to the LifterLMS checkout.
-+ This will enable you to determine which Cart you want a user to use on a product by product basis. You may sell certain courses via WooCommerce and others via LifterLMS (should you choose to do so).
-
-**Multiple Item Checkout**
-
-+ When a WooCommerce order is complete user's will now be automatically enrolled in **all** courses and/or memberships in the WooCommerce order. This improves upon a previously limitation that would only allow WooCommerce checkout with one LifterLMS product at a time.
-+ The products in the order will be intelligently SKU matched to LifterLMS Courses or Memberships.
-+ You may also mix and match between WooCommerce products matched to LifterLMS products and those which are not matched to LifterLMS products. For example, your customers may now buy a Course via SKU matching as well as a T-Shirt that is not matched to a LifterLMS course via a SKU.
-
-##### Other Fixes and improvements
-
-+ Fixed a bug that caused quiz results to display for users who had never taken the quiz.
-+ Added Wistia as an oEmbed provider to fix an issue related to default oembed handling in WordPress 4.4.
-+ added a `.cc_cvv` class that mimics the existing `#cc_cvv` styles to allow gateway extensions to change the ID of the field in their credit card forms
-+ Added support for new 1.4.5 capability fixes to be also be reflected under the "+New" menu item in the WP Admin Bar. There are no changes to the filters, the capability filters will simply also remove restricted post types from the admin bar now (as they should).
-+ Tested and compatible up to WordPress 4.4.1
-
-##### Deprecations
-
-**The following functions have been staged for deprecation in LifterLMS 2.0!**
-
-+ Setup the `is_account_page()` function to be replaced by `is_llms_account_page()` function. The original causes conflicts when WooCommerce is installed as WooCommerce includes a core function by the same name. All references to `is_account_page()` in LifterLMS have been removed and the original has been left to prevent issues with developers currently relying on the LifterLMS version of the function.
-+ Setup the `is_checkout()` function to be replaced by `is_llms_checkout()` function. The original causes conflicts when WooCommerce is installed as WooCommerce includes a core function by the same name. All references to `is_checkout()` in LifterLMS have been removed and the original has been left to prevent issues with developers currently relying on the LifterLMS version of the function.
-
-
-v1.4.5 - 2016-01-13
--------------------
-
-+ Significant improvements to LifterLMS admin permissions as well as a hardening of permissions. Previously LifterLMS admin screens and menus were available to any users with `edit_posts` capabilities. This has been changed to `manage_options`. Filters for all screens and menus have been added with this release. If you're site currently relies on users with `edit_posts` to be able to access LifterLMS settings and analytics screens you must utilize these new filters in order to maintain their access. Please see full documentation on the new filters at [https://lifterlms.readme.io/docs/filters-admin-menu-and-screen-permissions](https://lifterlms.readme.io/docs/filters-admin-menu-and-screen-permissions). **Please consider testing your changes outside of production before updating to LifterLMS 1.4.5 in production.**
-+ Allow "Payment Method" to be translated on the "Confirm Payment" screen
-+ Allow the name of the payment gateway to be filtered on the "Confirm Payment" screen
-+ Added pagination support to lifterlms membership archive pages
-+ Fixed a bug related to some required global variables for quizzes and lessons being incorrectly set on certain hosts
-+ updated readme file to remove incomplete documentation
-+ Added Chosen multi-select options to admin panel metaboxes (settings and posts)
-+ Added two new actions that developers can hook into:
- + `llms_user_enrolled_in_course`, called when users are enrolled in a course. Usage details available [here](https://lifterlms.readme.io/docs/actions-user#llms_user_enrolled_in_course).
- + `llms_user_added_to_membership_level`, called when users are added to a membership level. Usage details available [here](https://lifterlms.readme.io/docs/actions-user#llms_user_added_to_membership_level).
-
-
-v1.4.4 - 2015-12-21
--------------------
-
-##### Updates
-
-+ My account page can now (optionally) display a list of memberships a student is currently enrolled in
-+ Student analytics on the admin panel display student's Memberships
-+ Student analytics on the admin panel will now display student's progress through courses in addition to their current enrollment status.
-+ Custom taxonomy archive templates for Course tags, categories, tracks, and difficulties now exist and properly function.
-+ Custom taxonomy archive templates for Membership categories and tags now exist and properly function.
-+ Added the `[lifterlms_memberships]` shortcode which was documented but never implemented. Details on usage available at [https://lifterlms.readme.io/docs/short-codes#memberships-lifterlms_memberships](https://lifterlms.readme.io/docs/short-codes#memberships-lifterlms_memberships)
-+ Added basic styles to LifterLMS pagination HTML elements (elements with class `.llms-pagination`) which formerly had no associated CSS.
-
-##### Deprecations
-
-+ Setup the `is_shop()` function to be replaced by `is_llms_shop()` function. The original causes conflicts when WooCommerce is installed as WooCommerce includes a core function by the same name. All references to `is_shop()` in LifterLMS have been removed and the original has been left to prevent issues with developers currently relying on the LifterLMS version of the function. It *will* be removed in the next major update (2.0) and will be noted as an officially deprecated feature at that time.
-
-##### Bug fixes
-
-+ Fixed pagination issues when using the `[lifterlms_courses]` shortcode
-+ Fixed an issue with the `is_shop()` function that prevented courses per page option from functioning properly on the default course archive page
-+ Student analytics profile on admin panel will display the correct number of memberships the student is enrolled in.
-+ Fixed a small CSS issue that caused extra white space to be displayed above Course or Membership tiles on archive pages when using the WordPress Twentyfifteen default theme
-
-##### Miscellaneous
-
-+ Account settings screen displays the correct title ("Account Settings" it previously said "Archive Settings")
-+ Made language changes to the LifterLMS settings intro screen copy
-+ Added link to CourseClinic on settings intro screen
-+ Added link to LifterLMS documentation on the settings intro screen
-
-
-v1.4.3 - 2015-12-11
--------------------
-
-+ Fixed an issue that could prevent some older servers from being able to run LifterLMS
-
-
-v1.4.2 - 2015-12-10
--------------------
-
-+ Tested and compatible with WordPress version 4.4
-+ BugFixes: fixed issue in `llms_featured_img()` that was preventing the `$size` variable from being passed to the WP core function being utilized.
-+ BugFixes: correctly handling conflicts with Plugin Update library
-
-
-v1.4.1 - 2015-12-02
--------------------
-+ Feature: Custom single price text - Display custom text for the single price on the courses and course page. Custom field does not require a single payment price be set. IE: Free!
-+ Feature: Custom Purchase Course Button Text Option. Change the text of the Take This Course button in Settings->Courses.
-+ Feature: New Become A Member button on courses that are restricted to memberships.
-+ Feature: Custom Become A Member Text Option. Change the text of the become a member button in Settings->Courses.
-+ Feature: Paypal Debug Mode. Enable debug mode in Settings->Gateways to view responses from Paypal API when errors occur.
-+ Updates: Updated support links in Settings->General.
-+ Updates: added minor styling to course page to increase margin and padding for some themes.
-+ Updates: Achievement content now available to pull into custom templates. The Achievement content is not by default displayed but can now be used in custom templates.
-+ BugFixes: Resolved issue with no default price selected at checkout when only recurring option existed.
-+ BugFixes: Lesson prerequisite now alert the user and provide a link to redirect the user to the next required lesson in the course.
-+ BugFixes: Paypal errors now return error message instead of white screen when Paypal API fails.
-+ BugFixes: Corrected JavaScript error with modals on course edit page in Internet Explorer 11.
-
-
-v1.4.0 - 2015-10-29
--------------------
-+ Feature: Free lessons - demo lessons that can be taken at any time by any user
-+ Feature: Guest lessons - demo lessons that can be taken by a non-logged in user
-+ Feature: Random quiz question - quiz questions can now be set to be in user set order or random order
-+ Updates: Automatically registers appropriate sidebars for Genesis theme
-+ Updates: Backend file cleanup
-+ Updates: Text cleanup
-+ Updates: Adds greater localization support (more strings to translate! yay!)
-+ Updates: Cleans up some unnecessary console.log() calls
-+ Updates: Removes mass of commented out code (cleaner reading)
-+ Updates: 'Next Lesson' button added after successful completion of quiz
-+ Updates: 'Next Lesson' button at bottom of lesson properly gets starting lesson of next section at the end of the previous section
-+ Updates: 'Previous Lesson' button at bottom of lesson will now properly get last lesson of previous section (if applicable)
-+ Updates: Move Registration Form to global templates to allow users to disable registration on login page but use registration form on custom page.
-+ BugFixes: WordPress pages are now properly restricted by memberships
-+ BugFixes: Fixes bug that caused order screen to act up if user was deleted
-+ BugFixes: Resolves nasty little bug that caused syllabus numbers to be out of whack
-+ BugFixes: Resolved error with WooCommerce integration where courses would not always register the user
-+ BugFixes: Corrected CSS conflict with Bridge theme settings page
-
-
-v1.3.10 - 2015-10-15
---------------------
-+ Updates: Clarifies some prerequisite text
-+ Updates: Quiz questions are now randomized!
-+ Updates: Fixes small CSS issue
-+ BugFixes: Resolves fatal errors with a small subset of premium themes
-
-
-v1.3.9 - 2015-10-5
-------------------
-+ BugFixes: Removes conflict with Yoast SEO
-+ BugFixes: Fixes CSS issues with box-sizing takeover
-+ Feature: New Settings Tile: Session Management. Found at LifterLMS->Settings->General.
-+ Feature: Clear User Session Tool. You can now clear all LifterLMS user session data from your site in LifterLMS->Settings->General
-+ Updates: Backend code cleanup
-
-
-v1.3.8 - 2015-10-02
--------------------
-+ BugFixes: Fixes Random error notices
-+ Updates: Updates email template handler
-
-
-v1.3.7 - 2015-09-25
--------------------
-+ Updates: Adds Spanish translation
-+ Updates: Adds new filter 'lifterlms_single_payment_text' to customize single payment string on checkout
-+ Updates: Student analytics now indicate which courses a student has completed
-+ BugFixes: Resolved security issue with WordPress searches and lessons
-+ BugFixes: Fixes analytics bug that potentially arises after a course is deleted
-
-
-v1.3.6 - 2015-09-18
--------------------
-+ BugFixes: Fixes pesky Zend Error that plagued some unfortunate victims
-+ BugFixes: Students can now be properly deleted from the course
-+ BugFixes: Fixes random class redeclaration error messages
-+ Updates: Adds new filter 'lifterlms_quiz_passed' to customize 'Passed' text after quiz
-+ Updates: Adds new filter 'lifterlms_quiz_failed' to customize 'Failed' text after quiz
-
-
-v1.3.5 - 2015-09-11
--------------------
-+ Revisions: Fixes typos
-+ Updates: Adds sidebar functionality to various themes
-
-
-v1.3.4 - 2015-09-04
--------------------
-+ BugFixes: Fixes bug with featured image on course page
-+ BugFixes: Fixes issue with lesson completed percentage on analytics page
-
-
-v1.3.3 - 2015-09-01
--------------------
-+ Updates: Removes deprecated plugin updater
-+ Updates: Adds Course Track prerequisite
-+ Updates: Various text fixes
-+ BugFixes: Fixes lesson name on prerequisite notification
-+ BugFixes: Fixes critical error with WordPress customizer
-
-
-v1.3.2 - 2015-08-30
--------------------
-+ Hotfix: resolves issues with sidebar shortcodes
-+ Updates: Text clarifications
-
-
-v1.3.1 - 2015-08-28
--------------------
-+ Hotfix: resolves issue with ajax url
-
-
-v1.3.0 - 2015-08-28
--------------------
-+ Improved popover behavior in course creation.
-+ BugFixing. Prevent multiple lesson and section form submission
-+ Fixed typos at backend quiz page
-+ Fixed check for update bug when plugin isn't properly activated.
-+ BugFixing, quiz post type should show author metabox
-+ Added course category filter to lifter_lms shortcode
-+ BugFixing, typo in [lifterlms_course_progress shortcode]
-+ BugFixing, Analytics shouldn't fetch students meta info from users were deleted.
-+ Adds in basic review functionality
-+ Updates plugin-updater to remedy PHP conflicts
-+ Fixes date bug in Analytics
-+ Cleans up jQuery console messages
-+ Adds in course tracks
-
-
-v1.2.8 - 2015-07-17
--------------------
-+ Updated Portuguese translation file
-+ Fixed issue where quiz score could not be equal to required grade.
-+ New Feature: Quiz Results Summary. Display the quiz results to the user on quiz completion.
-+ New feature: Clarification. Display information about correct and incorrect answers to users
-+ New Feature: Display correct answers to user on quiz completion
-+ Removed ability to add negative time limit to quiz
-+ New Membership feature: Make membership archive links go directly to checkout. Setting allows you to skip membership sales page and send users directly to registration and checkout.
-+ Sidebar support for prototype theme
-+ Sidebar support for X theme
-+ Sidebar support for WooCanvas
-+ New Shortcode: [lifterlms_hide_content]: Use to restrict content on a page, course or lesson to a specific membership. Pass the post id of the membership you want to restrict the content to. Example: [lifterlms_hide_content membership="5"]
-+ New updates to gulp build process
-+ Class autoloading and LLMS namespace introduced for more efficient coding.
-
-
-v1.2.7 - 2015-06-05
--------------------
-+ Minor bug fix with lesson redirect to quiz
-+ Minor change to global Course object instantiation.
-+ Bug Fix: Remove student from course
-+ Bug Fix: Appearance Menus missing select field (THANKS ANDREA!)
-+ New Course Setting: Hide Course Outline on course page
-+ New Shortcode: [lifterlms_course_outline] - displays course outline with settings (see documentation)
-+ Membership metabox design update
-+ Certificate metabox design update
-+ Achievement metabox design update
-+ Lesson metabox design update
-+ Emails metabox design update
-+ Coupons metabox design update
-+ Update to certificate design (better alignment and theme functionality)
-+ Better theme sidebar support
-+ More awesome control for developers building new settings for LifterLMS
-+ Advanced filter system for metabox fields with finite control for 3rd party developers.
-+ Woocommerce conflict correction to archive templates
-+ Style updates to allow themes better control on design
-
-
-v1.2.6 - 2015-04-28
--------------------
-+ Corrected issue with lesson re-order on save
-+ corrected html formatting issue on purchase page
-+ corrected html formatting issue on course page
-
-
-v1.2.5 - 2015-04-23
--------------------
-+ Corrected excerpt to not pull in lesson navigation
-+ Modified metabox api for better extension integration
-+ Corrected issue with order not displaying all information if coupon was not applied to order
-
-
-v1.2.4 - 2015-04-22
--------------------
-+ Moved All Course metaboxes to global Course Options Metabox
-+ Move Enrolled and Non-Enrolled user wysiwyg post editors to Options Metabox
-+ Removed Course Syllabus metabox, Added Course Outline Metabox
-+ Set priority of Course Outline and Course Options Metabox to top
-+ Added ability to Create new section to Course Outline
-+ Added ability to Create new lesson to Course Outline
-+ Added ability to add existing Lesson to Course Outline
-+ Added Lesson duplicate functionality when adding lesson previously assigned to another course.
-+ Added ability to drag lessons between sections in Course Outline
-+ Added ability to edit Section Title in Course Outline
-+ Added ability to edit lesson title and excerpt in Course Outline
-+ Added New Style and Design for better usability to Course Outline
-+ Added Lesson Icon with tooltip to Course Outline: Prerequisite - shows if prerequisite exists and displays name of prerequisite
-+ Added Lesson Icon with tooltip to Course Outline: Quiz - shows if quiz is assigned to course and displays name of quiz
-+ Added Lesson Icon with tooltip to Course Outline: Drip Content - shows if drip days are set and # of days
-+ Added Lesson Icon with tooltip to Course Outline: Content - displays if lesson has content added.
-+ Added Course Outline Metabox to Lesson Post Editor: Allows you to assign lesson to section and view entire course tree. Links to Course and all other lessons in course.
-+ Style Update: backgrounds on frontend. Removed all references to white background on front end elements
-+ Corrected Restriction for course in past. Updated course in past message to display as Course ended instead of Course not available until.
-+ Added restriction message when user attempts to visit a restricted lesson.
-+ Updated course syllabus sidebar widget to not display lessons as links if user is not enrolled in course.
-+ Added ability to use Attribute Order for sorting Courses and Memberships on Archive pages.
-+ Added support for selling memberships with Woocommerce. LifterLMS now checks memberships for SKU matches in addition to Courses when products are purchased using WooCommerce.
-+ Added gulp for scss, js and svg management
-+ Added svg sprite and svg class for managing svg elements on front and backend.
-+ Added better language translation support for strings
-+ Refactored Ajax Classes for cleaner, faster development
-+ Refactored metabox build class for cleaner, faster development
-+ Refactored Course syllabus to reduce query size for larger, complex courses
-+ Added Handler classes for Lessons, Sections, Courses and Posts
-+ Refactored Course get / set methods to reduce database queries
-
-
-v1.2.3 - 2015-03-12
--------------------
-+ Achievement design and functionality updates
-+ Achievement shortcode added
-+ Better searching added to engagement screen
-+ Achievement bug fixes
-+ On screen error reporting added to activation for trouble shooting
-+ Custom engagement methods added to certificate, achievement and sections
-+ Corrected new user registration engagement bug
-+ LifterLMS access reduced from manage_options to edit_posts
-+ Filters added to analytics to allow custom development
-+ Engagement bug fix: Section and Lesson bug select
-+ Syllabus bug corrected: No longer displays lessons in section box if no sections exist.
-+ Removed depreciated achievement template
-+ Membership Bug fix: Membership restriction will now only display on single posts.
-
-
-v1.2.2 - 2015-02-23
--------------------
-+ Corrected drip content bug
-+ Added Ajax functionality to quiz
-+ rounded quiz grades
-+ Added quiz time limit setting to Quiz
-+ Added quiz timer to quiz, front end
-+ Quiz allowed attempts field now allows unlimited attempts
-+ Set Ajax lesson delete method to not return empty lesson value
-+ Set next and previous questions to display below quiz question
-+ Decoupled Single option select question type from quiz to allow for more question types
-+ Added Quiz time limit to display on Quiz page
-+ Added functionality to automatically complete quiz when quiz timer reaches 0
-+ Moved Quiz functionality methods from front end forms class to Quiz class
-
-v1.2.1 - 2015-02-19
--------------------
-+ Updated settings page theming
-+ Added Set up Quick Start Guide
-+ Added Plugin Deactivation Option
-+ Updated language POT file
-+ Added Portuguese language support. Thank you Fernando Cassino for the translation :)
-
-
-v1.2.0 - 2015-02-17
--------------------
-+ Admin Course Analytics Dashboard Page. View at LifterLMS->Analytics->Course
-+ Admin Sales Analytics Dashboard Page. View at LifterLMS->Analytics->Sales
-+ Admin Memberships Analytics Dashboard Page. View at LifterLMS->Analytics->Memberships
-+ Admin Students Search Page. View at LifterLMS->Students
-+ Admin Student Profile Page ( View user information related to courses and memberships )
-+ Lesson and Course Sidebar Widgets ( Syllabus, Course Progress )
-+ Course Syllabus: Lesson blocks greyed out. Clicking lesson displays message to take course.
-+ Misc. Front end bug fixes
-+ Misc. Admin bug fixes
-+ Course and Lesson prerequisites: Can no longer select a prerequisite without marking "Has Prerequisite"
-+ Admin CSS updates
-+ Better Session Management
-+ Number and Date formatting handled by separate classes to provide consistent date formats across system
-+ Zero dollar coupon management: Coupons that set total to 0 will bypass payment gateway, generate order and enroll users.
-+ Better coupon verification.
-+ Better third party payment gateway support. Third party gateway plugins are now easier to develop and integrate.
-+ User Registration: Phone Number Registration field option now available in Accounts settings page.
-
-
-v1.1.2 - 2014-12-18
--------------------
-+ Moved Sidebar registration from plugin install to init
-
-
-v1.1.1 - 2014-12-16
--------------------
-+ Added user registration settings to require users to agree to Terms and Conditions on user registration
-+ Added comments to all classes methods and functions
-+ Removed unused and depreciated methods
-+ Added Lesson and Course Sidebar Widget Areas
-+ Fixed bug with course capacity option
-+ Fixed bug with endpoint rewrite
-+ Added localization POT file and us_EN.po translation file
-
-
-v1.1.0 - 2014-12-08
--------------------
-+ Updated HTML / CSS on Registration form
-+ Added Coupon Creation
-+ Added Coupon support for checkout processing
-+ Added Credit Card Support processing support
-+ Added Form filters for external integration
-+ Added Form templates for external integration
-+ Added Account Setting: Require First and Last Name on registration
-+ Added Account Setting: Require Billing Address on registration
-+ Added Account Setting: Require users to validate email address (double entry)
-+ Added password validation (double entry) on user registration / account creation
-+ Added Quiz Question post type and associated metaboxes
-+ Added Quiz post type and associated metaboxes
-+ Added ability to assign a quiz to a lesson
-+ Added front end quiz functionality
-+ Added Course capacity (limit # of students)
-
-### User Admin Table
-+ Added Membership Custom Column that displays user's membership information
-+ Added "Last Login" custom column that displays user's last login date/time
-
-### User Roles
-+ Updated user role from "person" to "student"
-+ Added temporary migration function to transition any register users with "person" role to "student" role
-+ Added "Student" role install function
-
-
-### BUDDYPRESS
-+ BuddyPress Screen Permission Fix
-+ Added two additional screens to BuddyPress: Certificates and Achievements
-
-### MISC
-+ Added llms options for course archive pagination and added course archive page pagination template
-+ Added user statistics shortcode
-
-
-v1.0.5 - 2014-11-12
--------------------
-
-+ Fixed a mis-placed parenthesis in templates/course/lesson-navigation.php related to outputting excerpt in navigation option
-+ Changed theme override template directory from /llms to /lifterlms
-+ Update the position & name of the "My Courses" Menu in BuddyPress Compatibility file
-+ New meta_key _parent_section added for easier connection and quicker queries.
-+ Section sorting on course syllabus
-+ Edit links added to course syllabus
-+ Assign section to course and view associated lessons metabox added to sections
-+ Assign lesson to section and view associated lessons metabox added to lessons
-+ Assigned Course, Assigned Section, Prerequisite and Membership Required added to lesson edit grid
-+ Assigned Course added to section edit grid'
-+ New membership setting: Restrict Entire Site by Membership Level (allows site restriction to everything but membership purchase and account).
-+ Updated template overriding to check child & parent themes
-+ Updated template overriding to apply filters to directories to check for overrides to allow themes and plugins to add their own directories
-
-
-v1.0.4 - 2014-11-04
--------------------
-
-+ Templating bug fix
-+ Added shortcode and autop support to course and lesson content / excerpt
-
-
-v1.0.3 - 2014-11-04
--------------------
-
-+ Major Templating Update!
-+ Removed Course, Lesson and Membership single lesson templates.
-+ Course and Section content templates now filter through WP content
-
-
-v1.0.2 - 2014-10-31
--------------------
-
-+ Added lesson short description to previous lesson preview links -- it was rendering on "Next" but not "Previous"
-+ Added a class to course shop links wrapper to signify the course has been completed
-+ Removed an unnecessary CSS rule related to the progress bar
-
-
-v1.0.2 - 2014-10-30
--------------------
-
-+ Fixed SSL certificate issues when retrieving data from https://lifterlms.com
-+ Added rocket settings icon back into repo
-
-
-v1.0.1 - 2014-10-30
--------------------
-
-+ Updated activation endpoint url to point towards live server rather than dev
-
-
-v1.0.0 - 2014-10-30
--------------------
-
-+ Initial public release.
diff --git a/README.md b/README.md
deleted file mode 100644
index b70e9d36be..0000000000
--- a/README.md
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-
-
-LifterLMS is a powerful WordPress learning management system plugin that makes it easy to create, sell, and protect engaging online courses and training based membership websites.
-
-
-
-
-
-[![WordPress Plugin Version][img-wp-plugin]][link-wp-repo]
-[![WordPress Plugin Tested WP Version][img-wp-tested]][link-wp-repo]
-[![PHP Supported Version][img-php]][link-php]
-
-[![WordPress Plugin Rating][img-wp-rating]][link-wp-reviews]
-[![WordPress Plugin Downloads][img-wp-downloads]][link-wp-advanced]
-[![WordPress Plugin Active Installs][img-wp-installs]][link-wp-advanced]
-
-[![PHPUnit Tests][img-phpunit-tests]][link-phpunit-tests]
-[![PHPCS Coding Standards][img-phpcs-checks]][link-phpcs-checks]
-[![Code Climate maintainability][img-cc-maintainability]][link-cc]
-[![Code Climate test coverage][img-cc-coverage]][link-cc-coverage]
-
-[![Contributions Welcome][img-contributions-welcome]](.github/CONTRIBUTING.md)
-[![Contributors][img-contributors]](#contributors)
-[![Slack community][img-slack]][link-slack]
-
-
-
-
-
-Welcome to the LifterLMS GitHub repository. This repository serves as the core project's central location for issue tracking and feature development.
-
-If you're not a developer or contributor, please use [LifterLMS plugin page][link-wp-repo] at WordPress.org.
-
-
-### Getting Help and Support
-
-GitHub is for bug reports and contributions only! If you have a support question or a request for a customization this is not the right place to post it. Please refer to [LifterLMS Support][link-support] or the [community forums][link-support-forums]. If you're looking for help customizing LifterLMS, please consider hiring a [LifterLMS Expert][link-experts].
-
-
-### Resources and Documentation
-
-+ [Changelog](./CHANGELOG.md)
-+ User documentation and knowledge base: https://lifterlms.com/docs/
-+ Contributor's blog: https://make.lifterlms.com/
-+ Developer portal: https://developer.lifterlms.com/
-
-
-### Included Core Packages
-
-The LifterLMS core includes several additional packages which are included in releases through composer. These core projects are installable as standalone plugins for development and testing purposes. The stable versions are automatically included in LifterLMS core releases.
-
-These packages have their own GitHub repositories:
-
-+ [LifterLMS Blocks](https://github.com/gocodebox/lifterlms-blocks)
-+ [LifterLMS REST API](https://github.com/gocodebox/lifterlms-rest)
-
-
-### Reporting a Bug
-
-Bugs can be reported at https://github.com/gocodebox/lifterlms/issues/new.
-
-Before reporting a bug, [search existing issues](https://github.com/gocodebox/lifterlms/issues) and ensure you're not creating a duplicate. If the issue already exists you can add your information to the existing report.
-
-Also check our [known issues and conflicts](https://lifterlms.com/doc-category/lifterlms/known-conflicts/) for possible resolutions.
-
-
-### Reporting a Security Vulnerability
-
-Security issues and vulnerabilities should be responsibly disclosed directly to the LifterLMS core developers via email. Please see our [Security Policy](.github/SECURITY.md) for details on disclosing a security vulnerability.
-
-
-### Installing
-
-If you clone or download this repo directly it will not run as a plugin inside WordPress!
-
-Installable production releases are available in on the [Releases tab](https://github.com/gocodebox/lifterlms/releases). You can get the latest stable release from [WordPress.org](https://downloads.wordpress.org/plugin/lifterlms.zip)
-
-If you're interested in installing development versions, see [Installing for Development](docs/installing.md)
-
-
-### Contributing
-
-[![Contributions Welcome][img-contributions-welcome]](.github/CONTRIBUTING.md)
-
-Interested in contributing to LifterLMS? We'd love to have your contributions. Read our contributor's guidelines [here](.github/CONTRIBUTING.md).
-
-
-### Contributors
-
-[![Contributors][img-contributors]](#contributors)
-
-Endless thanks to all our incredible contributors!
-
-[//]: contributor-faces
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[//]: contributor-faces
-
-
-### Partners and Sponsors
-
-[ ](https://www.browserstack.com/)
-
-[BrowserStack](https://www.browserstack.com/) helps us ensure LifterLMS looks great and works on every imaginable browser and device.
-
-
-[link-cc]: https://codeclimate.com/github/gocodebox/lifterlms "LifterLMS on Code Climate"
-[link-cc-coverage]: https://codeclimate.com/github/gocodebox/lifterlms/coverage "Code coverage reports on Code Climate"
-[link-experts]: https://lifterlms.com/docs/do-you-have-any-recommended-developers-who-can-modifycustomize-lifterlms/ "Hire a LifterLMS Expert"
-[link-php]: https://www.php.net/supported-versions "PHP Support Versions"
-[link-phpunit-tests]: https://github.com/gocodebox/lifterlms/actions/workflows/test-phpunit.yml "PHPUnit Tests Status"
-[link-phpcs-checks]: https://github.com/gocodebox/lifterlms/actions/workflows/coding-standards.yml "PHPCS Coding Standards Checks"
-[link-slack]: https://lifterlms.com/slack "Chat with the community on Slack"
-[link-support]: https://lifterlms.com/my-account/my-tickets "LifterLMS customer support"
-[link-support-forums]: https://wordpress.org/support/plugin/lifterlms "LifterLMS user support forums"
-[link-wp-advanced]:https://wordpress.org/plugins/lifterlms/advanced/ "Advanced plugin details on the WordPress plugin repository"
-[link-wp-repo]:https://wordpress.org/plugins/lifterlms/ "LifterLMS on the WordPress plugin repository"
-[link-wp-reviews]:https://wordpress.org/support/plugin/lifterlms/reviews/ "Leave a review on the WordPress plugin repository"
-
-[img-cc-coverage]:https://img.shields.io/codeclimate/coverage/gocodebox/lifterlms?style=for-the-badge&logo=code-climate
-[img-cc-maintainability]:https://img.shields.io/codeclimate/maintainability/gocodebox/lifterlms?logo=code-climate&style=for-the-badge
-[img-contributors]: https://img.shields.io/github/contributors/gocodebox/lifterlms?color=blue&style=for-the-badge&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJzdmcyIiB3aWR0aD0iNjQ1IiBoZWlnaHQ9IjU4NSIgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPiA8ZyBpZD0ibGF5ZXIxIj4gIDxwYXRoIGlkPSJwYXRoMjQxNyIgZD0ibTI5Ny4zIDU1MC44N2MtMTMuNzc1LTE1LjQzNi00OC4xNzEtNDUuNTMtNzYuNDM1LTY2Ljg3NC04My43NDQtNjMuMjQyLTk1LjE0Mi03Mi4zOTQtMTI5LjE0LTEwMy43LTYyLjY4NS01Ny43Mi04OS4zMDYtMTE1LjcxLTg5LjIxNC0xOTQuMzQgMC4wNDQ1MTItMzguMzg0IDIuNjYwOC01My4xNzIgMTMuNDEtNzUuNzk3IDE4LjIzNy0zOC4zODYgNDUuMS02Ni45MDkgNzkuNDQ1LTg0LjM1NSAyNC4zMjUtMTIuMzU2IDM2LjMyMy0xNy44NDUgNzYuOTQ0LTE4LjA3IDQyLjQ5My0wLjIzNDgzIDUxLjQzOSA0LjcxOTcgNzYuNDM1IDE4LjQ1MiAzMC40MjUgMTYuNzE0IDYxLjc0IDUyLjQzNiA2OC4yMTMgNzcuODExbDMuOTk4MSAxNS42NzIgOS44NTk2LTIxLjU4NWM1NS43MTYtMTIxLjk3IDIzMy42LTEyMC4xNSAyOTUuNSAzLjAzMTYgMTkuNjM4IDM5LjA3NiAyMS43OTQgMTIyLjUxIDQuMzgwMSAxNjkuNTEtMjIuNzE1IDYxLjMwOS02NS4zOCAxMDguMDUtMTY0LjAxIDE3OS42OC02NC42ODEgNDYuOTc0LTEzNy44OCAxMTguMDUtMTQyLjk4IDEyOC4wMy01LjkxNTUgMTEuNTg4LTAuMjgyMTYgMS44MTU5LTI2LjQwOC0yNy40NjF6IiBmaWxsPSIjZGQ1MDRmIi8%2BIDwvZz48L3N2Zz4%3D
-[img-contributions-welcome]: https://img.shields.io/badge/contributions-welcome-blue.svg?style=for-the-badge&logo=data:image/svg%2bxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik02NzIgMTQ3MnEwLTQwLTI4LTY4dC02OC0yOC02OCAyOC0yOCA2OCAyOCA2OCA2OCAyOCA2OC0yOCAyOC02OHptMC0xMTUycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em02NDAgMTI4cTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em05NiAwcTAgNTItMjYgOTYuNXQtNzAgNjkuNXEtMiAyODctMjI2IDQxNC02NyAzOC0yMDMgODEtMTI4IDQwLTE2OS41IDcxdC00MS41IDEwMHYyNnE0NCAyNSA3MCA2OS41dDI2IDk2LjVxMCA4MC01NiAxMzZ0LTEzNiA1Ni0xMzYtNTYtNTYtMTM2cTAtNTIgMjYtOTYuNXQ3MC02OS41di04MjBxLTQ0LTI1LTcwLTY5LjV0LTI2LTk2LjVxMC04MCA1Ni0xMzZ0MTM2LTU2IDEzNiA1NiA1NiAxMzZxMCA1Mi0yNiA5Ni41dC03MCA2OS41djQ5N3E1NC0yNiAxNTQtNTcgNTUtMTcgODcuNS0yOS41dDcwLjUtMzEgNTktMzkuNSA0MC41LTUxIDI4LTY5LjUgOC41LTkxLjVxLTQ0LTI1LTcwLTY5LjV0LTI2LTk2LjVxMC04MCA1Ni0xMzZ0MTM2LTU2IDEzNiA1NiA1NiAxMzZ6IiBmaWxsPSIjZmZmIi8+PC9zdmc+
-[img-php]: https://img.shields.io/badge/PHP-7.2%2B-brightgreen?style=for-the-badge&logoColor=white&logo=php
-[img-phpunit-tests]: https://img.shields.io/github/workflow/status/gocodebox/lifterlms/Test%20PHPUnit?label=PHPUnit&logo=github&style=for-the-badge
-[img-phpcs-checks]: https://img.shields.io/github/workflow/status/gocodebox/lifterlms/Coding%20Standards?label=PHPCS&logo=github&style=for-the-badge
-[img-slack]: https://img.shields.io/badge/chat-on%20slack-blueviolet?style=for-the-badge&logo=slack
-[img-wp-downloads]: https://img.shields.io/wordpress/plugin/dt/lifterlms.svg?style=for-the-badge&logo=wordpress
-[img-wp-installs]: https://img.shields.io/wordpress/plugin/installs/lifterlms.svg?style=for-the-badge&logo=wordpress
-[img-wp-plugin]:https://img.shields.io/wordpress/plugin/v/lifterlms.svg?style=for-the-badge&logo=wordpress
-[img-wp-rating]:https://img.shields.io/wordpress/plugin/r/lifterlms.svg?style=for-the-badge&logo=wordpress
-[img-wp-tested]:https://img.shields.io/wordpress/v/lifterlms.svg?style=for-the-badge&logo=wordpress
diff --git a/_private/svg/llms-icon-calendar.svg b/_private/svg/llms-icon-calendar.svg
deleted file mode 100644
index 4e02ca4d61..0000000000
--- a/_private/svg/llms-icon-calendar.svg
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-checkmark.svg b/_private/svg/llms-icon-checkmark.svg
deleted file mode 100644
index c8bdd2eb0c..0000000000
--- a/_private/svg/llms-icon-checkmark.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-circle-empty.svg b/_private/svg/llms-icon-circle-empty.svg
deleted file mode 100644
index cff0485a3a..0000000000
--- a/_private/svg/llms-icon-circle-empty.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-circle.svg b/_private/svg/llms-icon-circle.svg
deleted file mode 100644
index 37eafb0f77..0000000000
--- a/_private/svg/llms-icon-circle.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-close.svg b/_private/svg/llms-icon-close.svg
deleted file mode 100644
index 08ede2e8ea..0000000000
--- a/_private/svg/llms-icon-close.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-course-section.svg b/_private/svg/llms-icon-course-section.svg
deleted file mode 100644
index c4fa2f9590..0000000000
--- a/_private/svg/llms-icon-course-section.svg
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/_private/svg/llms-icon-existing-lesson.svg b/_private/svg/llms-icon-existing-lesson.svg
deleted file mode 100644
index c81a2e1444..0000000000
--- a/_private/svg/llms-icon-existing-lesson.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-facebook.svg b/_private/svg/llms-icon-facebook.svg
deleted file mode 100644
index 052d7607ae..0000000000
--- a/_private/svg/llms-icon-facebook.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-folder.svg b/_private/svg/llms-icon-folder.svg
deleted file mode 100644
index 78a73d7c3a..0000000000
--- a/_private/svg/llms-icon-folder.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-free.svg b/_private/svg/llms-icon-free.svg
deleted file mode 100644
index 97f8e04613..0000000000
--- a/_private/svg/llms-icon-free.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-gear.svg b/_private/svg/llms-icon-gear.svg
deleted file mode 100644
index f5e213cc24..0000000000
--- a/_private/svg/llms-icon-gear.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-google.svg b/_private/svg/llms-icon-google.svg
deleted file mode 100644
index e5ae714900..0000000000
--- a/_private/svg/llms-icon-google.svg
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-graph.svg b/_private/svg/llms-icon-graph.svg
deleted file mode 100644
index d44b4b3562..0000000000
--- a/_private/svg/llms-icon-graph.svg
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-instagram.svg b/_private/svg/llms-icon-instagram.svg
deleted file mode 100644
index 2ded6d4aca..0000000000
--- a/_private/svg/llms-icon-instagram.svg
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-lightbulb.svg b/_private/svg/llms-icon-lightbulb.svg
deleted file mode 100644
index ac4d827f84..0000000000
--- a/_private/svg/llms-icon-lightbulb.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-linkedin.svg b/_private/svg/llms-icon-linkedin.svg
deleted file mode 100644
index eb2b4d370a..0000000000
--- a/_private/svg/llms-icon-linkedin.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-lock.svg b/_private/svg/llms-icon-lock.svg
deleted file mode 100644
index 0e6e321254..0000000000
--- a/_private/svg/llms-icon-lock.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-media.svg b/_private/svg/llms-icon-media.svg
deleted file mode 100644
index 8642eaecbb..0000000000
--- a/_private/svg/llms-icon-media.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-member.svg b/_private/svg/llms-icon-member.svg
deleted file mode 100644
index 29296c5204..0000000000
--- a/_private/svg/llms-icon-member.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-new-lesson.svg b/_private/svg/llms-icon-new-lesson.svg
deleted file mode 100644
index 5c77d519fd..0000000000
--- a/_private/svg/llms-icon-new-lesson.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-paper.svg b/_private/svg/llms-icon-paper.svg
deleted file mode 100644
index 33d0ee01d8..0000000000
--- a/_private/svg/llms-icon-paper.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-papers.svg b/_private/svg/llms-icon-papers.svg
deleted file mode 100644
index 971fbb8a3f..0000000000
--- a/_private/svg/llms-icon-papers.svg
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-play.svg b/_private/svg/llms-icon-play.svg
deleted file mode 100644
index 84f24e06af..0000000000
--- a/_private/svg/llms-icon-play.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-plus.svg b/_private/svg/llms-icon-plus.svg
deleted file mode 100644
index 68e72da1aa..0000000000
--- a/_private/svg/llms-icon-plus.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-question.svg b/_private/svg/llms-icon-question.svg
deleted file mode 100644
index 96a968e830..0000000000
--- a/_private/svg/llms-icon-question.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-rightarrow.svg b/_private/svg/llms-icon-rightarrow.svg
deleted file mode 100644
index b41f94050f..0000000000
--- a/_private/svg/llms-icon-rightarrow.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-search.svg b/_private/svg/llms-icon-search.svg
deleted file mode 100644
index b6c659b26a..0000000000
--- a/_private/svg/llms-icon-search.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-target.svg b/_private/svg/llms-icon-target.svg
deleted file mode 100644
index 0df9f3ea7c..0000000000
--- a/_private/svg/llms-icon-target.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-twitter.svg b/_private/svg/llms-icon-twitter.svg
deleted file mode 100644
index c1d3cebb54..0000000000
--- a/_private/svg/llms-icon-twitter.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-users.svg b/_private/svg/llms-icon-users.svg
deleted file mode 100644
index e7abbd1aa6..0000000000
--- a/_private/svg/llms-icon-users.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-view.svg b/_private/svg/llms-icon-view.svg
deleted file mode 100644
index 730ef22729..0000000000
--- a/_private/svg/llms-icon-view.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_private/svg/llms-icon-youtube.svg b/_private/svg/llms-icon-youtube.svg
deleted file mode 100644
index 543bc31e90..0000000000
--- a/_private/svg/llms-icon-youtube.svg
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/assets/css/admin-importer-rtl.css b/assets/css/admin-importer-rtl.css
new file mode 100644
index 0000000000..e146a4810c
--- /dev/null
+++ b/assets/css/admin-importer-rtl.css
@@ -0,0 +1,112 @@
+.llms-import-file-wrap {
+ background: #fafafa;
+ border: 1px solid #ccd0d4;
+ padding: 10px;
+ margin: 20px auto;
+ display: -webkit-inline-box;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+}
+
+.llms-cloud-import-help.button-link {
+ color: inherit;
+ vertical-align: top;
+ text-decoration: none;
+}
+
+.wrap.llms-import-export ul.llms-importable-courses {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ gap: 20px;
+}
+@media only screen and (min-width: 680px) {
+ .wrap.llms-import-export ul.llms-importable-courses {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ }
+}
+.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course {
+ background-color: #FFF;
+ border: 1px solid #dedede;
+ border-radius: 12px;
+ -webkit-box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
+ box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
+ list-style: none;
+ margin: 20px 0;
+ overflow: hidden;
+}
+@media only screen and (min-width: 680px) {
+ .wrap.llms-import-export ul.llms-importable-courses .llms-importable-course {
+ -webkit-box-flex: 0;
+ -ms-flex-positive: 0;
+ flex-grow: 0;
+ -ms-flex-negative: 1;
+ flex-shrink: 1;
+ -ms-flex-preferred-size: 31%;
+ flex-basis: 31%;
+ }
+}
+.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course img {
+ display: block;
+ max-width: 100%;
+}
+.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course h3 {
+ color: #1d2327;
+ font-size: 20px;
+ line-height: 1.5;
+ margin: 30px 20px 15px;
+}
+.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course p {
+ font-size: 15px;
+ line-height: 1.5;
+ margin: 0 20px 15px;
+}
+.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course.has-action-button {
+ padding-bottom: 10px;
+ position: relative;
+}
+.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course.has-action-button .button {
+ bottom: 20px;
+ left: 20px;
+ position: absolute;
+}
+@media only screen and (min-width: 600px) {
+ .wrap.llms-import-export ul.llms-importable-courses {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ }
+}
+@media only screen and (min-width: 600px) and (max-width: 767px) {
+ .wrap.llms-import-export ul.llms-importable-courses li.llms-importable-course {
+ -webkit-box-flex: 1;
+ -ms-flex: 1 0 calc(50% - 20px);
+ flex: 1 0 calc(50% - 20px);
+ max-width: calc(50% - 20px);
+ }
+}
+@media only screen and (min-width: 768px) {
+ .wrap.llms-import-export ul.llms-importable-courses li.llms-importable-course {
+ -webkit-box-flex: 1;
+ -ms-flex: 1 0 calc(33% - 20px);
+ flex: 1 0 calc(33% - 20px);
+ max-width: calc(33% - 20px);
+ }
+}
diff --git a/assets/css/admin-importer-rtl.min.css b/assets/css/admin-importer-rtl.min.css
new file mode 100644
index 0000000000..7d0a7db2be
--- /dev/null
+++ b/assets/css/admin-importer-rtl.min.css
@@ -0,0 +1 @@
+.llms-import-file-wrap{background:#fafafa;border:1px solid #ccd0d4;padding:10px;margin:20px auto;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.llms-cloud-import-help.button-link{color:inherit;vertical-align:top;text-decoration:none}.wrap.llms-import-export ul.llms-importable-courses{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:20px}@media only screen and (min-width: 680px){.wrap.llms-import-export ul.llms-importable-courses{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course{background-color:#fff;border:1px solid #dedede;border-radius:12px;-webkit-box-shadow:0px 0px 1px rgba(48,49,51,.05),0px 2px 4px rgba(48,49,51,.1);box-shadow:0px 0px 1px rgba(48,49,51,.05),0px 2px 4px rgba(48,49,51,.1);list-style:none;margin:20px 0;overflow:hidden}@media only screen and (min-width: 680px){.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:1;flex-shrink:1;-ms-flex-preferred-size:31%;flex-basis:31%}}.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course img{display:block;max-width:100%}.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course h3{color:#1d2327;font-size:20px;line-height:1.5;margin:30px 20px 15px}.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course p{font-size:15px;line-height:1.5;margin:0 20px 15px}.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course.has-action-button{padding-bottom:10px;position:relative}.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course.has-action-button .button{bottom:20px;left:20px;position:absolute}@media only screen and (min-width: 600px){.wrap.llms-import-export ul.llms-importable-courses{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}}@media only screen and (min-width: 600px)and (max-width: 767px){.wrap.llms-import-export ul.llms-importable-courses li.llms-importable-course{-webkit-box-flex:1;-ms-flex:1 0 calc(50% - 20px);flex:1 0 calc(50% - 20px);max-width:calc(50% - 20px)}}@media only screen and (min-width: 768px){.wrap.llms-import-export ul.llms-importable-courses li.llms-importable-course{-webkit-box-flex:1;-ms-flex:1 0 calc(33% - 20px);flex:1 0 calc(33% - 20px);max-width:calc(33% - 20px)}}
diff --git a/assets/css/admin-importer.css b/assets/css/admin-importer.css
new file mode 100644
index 0000000000..fc4b724e8b
--- /dev/null
+++ b/assets/css/admin-importer.css
@@ -0,0 +1,113 @@
+.llms-import-file-wrap {
+ background: #fafafa;
+ border: 1px solid #ccd0d4;
+ padding: 10px;
+ margin: 20px auto;
+ display: -webkit-inline-box;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+}
+
+.llms-cloud-import-help.button-link {
+ color: inherit;
+ vertical-align: top;
+ text-decoration: none;
+}
+
+.wrap.llms-import-export ul.llms-importable-courses {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ gap: 20px;
+}
+@media only screen and (min-width: 680px) {
+ .wrap.llms-import-export ul.llms-importable-courses {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ }
+}
+.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course {
+ background-color: #FFF;
+ border: 1px solid #dedede;
+ border-radius: 12px;
+ -webkit-box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
+ box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
+ list-style: none;
+ margin: 20px 0;
+ overflow: hidden;
+}
+@media only screen and (min-width: 680px) {
+ .wrap.llms-import-export ul.llms-importable-courses .llms-importable-course {
+ -webkit-box-flex: 0;
+ -ms-flex-positive: 0;
+ flex-grow: 0;
+ -ms-flex-negative: 1;
+ flex-shrink: 1;
+ -ms-flex-preferred-size: 31%;
+ flex-basis: 31%;
+ }
+}
+.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course img {
+ display: block;
+ max-width: 100%;
+}
+.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course h3 {
+ color: #1d2327;
+ font-size: 20px;
+ line-height: 1.5;
+ margin: 30px 20px 15px;
+}
+.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course p {
+ font-size: 15px;
+ line-height: 1.5;
+ margin: 0 20px 15px;
+}
+.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course.has-action-button {
+ padding-bottom: 10px;
+ position: relative;
+}
+.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course.has-action-button .button {
+ bottom: 20px;
+ right: 20px;
+ position: absolute;
+}
+@media only screen and (min-width: 600px) {
+ .wrap.llms-import-export ul.llms-importable-courses {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ }
+}
+@media only screen and (min-width: 600px) and (max-width: 767px) {
+ .wrap.llms-import-export ul.llms-importable-courses li.llms-importable-course {
+ -webkit-box-flex: 1;
+ -ms-flex: 1 0 calc(50% - 20px);
+ flex: 1 0 calc(50% - 20px);
+ max-width: calc(50% - 20px);
+ }
+}
+@media only screen and (min-width: 768px) {
+ .wrap.llms-import-export ul.llms-importable-courses li.llms-importable-course {
+ -webkit-box-flex: 1;
+ -ms-flex: 1 0 calc(33% - 20px);
+ flex: 1 0 calc(33% - 20px);
+ max-width: calc(33% - 20px);
+ }
+}
+/*# sourceMappingURL=../maps/css/admin-importer.css.map */
diff --git a/assets/css/admin-importer.min.css b/assets/css/admin-importer.min.css
new file mode 100644
index 0000000000..cb5d70981f
--- /dev/null
+++ b/assets/css/admin-importer.min.css
@@ -0,0 +1,2 @@
+.llms-import-file-wrap{background:#fafafa;border:1px solid #ccd0d4;padding:10px;margin:20px auto;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.llms-cloud-import-help.button-link{color:inherit;vertical-align:top;text-decoration:none}.wrap.llms-import-export ul.llms-importable-courses{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:20px}@media only screen and (min-width: 680px){.wrap.llms-import-export ul.llms-importable-courses{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course{background-color:#fff;border:1px solid #dedede;border-radius:12px;-webkit-box-shadow:0px 0px 1px rgba(48,49,51,.05),0px 2px 4px rgba(48,49,51,.1);box-shadow:0px 0px 1px rgba(48,49,51,.05),0px 2px 4px rgba(48,49,51,.1);list-style:none;margin:20px 0;overflow:hidden}@media only screen and (min-width: 680px){.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:1;flex-shrink:1;-ms-flex-preferred-size:31%;flex-basis:31%}}.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course img{display:block;max-width:100%}.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course h3{color:#1d2327;font-size:20px;line-height:1.5;margin:30px 20px 15px}.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course p{font-size:15px;line-height:1.5;margin:0 20px 15px}.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course.has-action-button{padding-bottom:10px;position:relative}.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course.has-action-button .button{bottom:20px;right:20px;position:absolute}@media only screen and (min-width: 600px){.wrap.llms-import-export ul.llms-importable-courses{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}}@media only screen and (min-width: 600px)and (max-width: 767px){.wrap.llms-import-export ul.llms-importable-courses li.llms-importable-course{-webkit-box-flex:1;-ms-flex:1 0 calc(50% - 20px);flex:1 0 calc(50% - 20px);max-width:calc(50% - 20px)}}@media only screen and (min-width: 768px){.wrap.llms-import-export ul.llms-importable-courses li.llms-importable-course{-webkit-box-flex:1;-ms-flex:1 0 calc(33% - 20px);flex:1 0 calc(33% - 20px);max-width:calc(33% - 20px)}}
+/*# sourceMappingURL=../maps/css/admin-importer.min.css.map */
diff --git a/assets/css/admin-rtl.css b/assets/css/admin-rtl.css
new file mode 100644
index 0000000000..92e6b91479
--- /dev/null
+++ b/assets/css/admin-rtl.css
@@ -0,0 +1,7749 @@
+@charset "UTF-8";
+#poststuff .llms-metabox:before, #poststuff .llms-metabox:after,
+.llms-form-fields:before,
+.llms-metabox .llms-access-plans:before,
+.llms-collapsible .llms-collapsible-body:before,
+.llms-collapsible .llms-collapsible-header:before,
+.llms-collapsible:before,
+.llms-form-fields:after,
+.llms-metabox .llms-access-plans:after,
+.llms-collapsible .llms-collapsible-body:after,
+.llms-collapsible .llms-collapsible-header:after,
+.llms-collapsible:after {
+ content: " ";
+ display: table;
+}
+#poststuff .llms-metabox:after,
+.llms-form-fields:after,
+.llms-metabox .llms-access-plans:after,
+.llms-collapsible .llms-collapsible-body:after,
+.llms-collapsible .llms-collapsible-header:after,
+.llms-collapsible:after {
+ clear: both;
+}
+
+.llms-button-action,
+.llms-button-danger,
+.llms-button-primary,
+.llms-button-secondary {
+ border: none;
+ border-radius: 8px;
+ color: #fefefe;
+ cursor: pointer;
+ display: inline-block;
+ font-size: 18px;
+ font-weight: 700;
+ text-decoration: none;
+ text-shadow: none;
+ line-height: 1;
+ margin: 0;
+ max-width: 100%;
+ padding: 12px 24px;
+ position: relative;
+ -webkit-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+}
+.llms-button-action:disabled,
+.llms-button-danger:disabled,
+.llms-button-primary:disabled,
+.llms-button-secondary:disabled {
+ opacity: 0.5;
+}
+.llms-button-action:hover, .llms-button-action:active,
+.llms-button-danger:hover,
+.llms-button-danger:active,
+.llms-button-primary:hover,
+.llms-button-primary:active,
+.llms-button-secondary:hover,
+.llms-button-secondary:active {
+ color: #fefefe;
+}
+.llms-button-action:focus,
+.llms-button-danger:focus,
+.llms-button-primary:focus,
+.llms-button-secondary:focus {
+ color: #fefefe;
+}
+.llms-button-action.auto,
+.llms-button-danger.auto,
+.llms-button-primary.auto,
+.llms-button-secondary.auto {
+ width: auto;
+}
+.llms-button-action.full,
+.llms-button-danger.full,
+.llms-button-primary.full,
+.llms-button-secondary.full {
+ display: block;
+ text-align: center;
+ width: 100%;
+}
+.llms-button-action.square,
+.llms-button-danger.square,
+.llms-button-primary.square,
+.llms-button-secondary.square {
+ padding: 12px;
+}
+.llms-button-action.small,
+.llms-button-danger.small,
+.llms-button-primary.small,
+.llms-button-secondary.small {
+ font-size: 13px;
+ padding: 8px 14px;
+}
+.llms-button-action.small.square,
+.llms-button-danger.small.square,
+.llms-button-primary.small.square,
+.llms-button-secondary.small.square {
+ padding: 8px;
+}
+.llms-button-action.large,
+.llms-button-danger.large,
+.llms-button-primary.large,
+.llms-button-secondary.large {
+ font-size: 18px;
+ line-height: 1.2;
+ padding: 16px 32px;
+}
+.llms-button-action.large.square,
+.llms-button-danger.large.square,
+.llms-button-primary.large.square,
+.llms-button-secondary.large.square {
+ padding: 16px;
+}
+.llms-button-action.large .fa,
+.llms-button-danger.large .fa,
+.llms-button-primary.large .fa,
+.llms-button-secondary.large .fa {
+ right: -7px;
+ position: relative;
+}
+
+/* Fix for cases where link color overrides the button color */
+a.llms-button-action,
+a.llms-button-danger,
+a.llms-button-primary {
+ color: #fefefe;
+}
+
+.llms-button-primary {
+ background: #466dd8;
+}
+.llms-button-primary:hover, .llms-button-primary.clicked {
+ background: #2b55cb;
+}
+.llms-button-primary:focus, .llms-button-primary:active {
+ background: #6888df;
+}
+
+.llms-button-secondary {
+ background: #e1e1e1;
+ color: #444;
+}
+.llms-button-secondary:hover {
+ color: #414141;
+ background: #cdcdcd;
+}
+.llms-button-secondary:focus, .llms-button-secondary:active {
+ color: #414141;
+ background: #ebebeb;
+}
+
+/* Fix for cases where link color overrides the button color */
+a.llms-button-secondary {
+ color: #444;
+}
+
+.llms-button-action {
+ background: #c05621;
+}
+.llms-button-action:hover, .llms-button-action.clicked {
+ background: #f67d28;
+}
+.llms-button-action:focus, .llms-button-action:active {
+ background: #faad76;
+}
+
+.llms-button-danger {
+ background: #bb231c;
+}
+.llms-button-danger:hover {
+ background: #981c17;
+}
+.llms-button-danger:focus, .llms-button-danger:active {
+ background: #cd261f;
+}
+
+.llms-button-outline {
+ background: transparent;
+ border: 3px solid #1D2327;
+ border-radius: 8px;
+ color: #1D2327;
+ cursor: pointer;
+ font-size: 16px;
+ font-weight: 700;
+ text-decoration: none;
+ text-shadow: none;
+ line-height: 1;
+ margin: 0;
+ max-width: 100%;
+ padding: 12px 24px;
+ position: relative;
+ -webkit-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+}
+.llms-button-outline:disabled {
+ opacity: 0.5;
+}
+.llms-button-outline:hover, .llms-button-outline:active {
+ color: #1D2327;
+}
+.llms-button-outline:focus {
+ color: #1D2327;
+}
+.llms-button-outline.auto {
+ width: auto;
+}
+.llms-button-outline.full {
+ display: block;
+ text-align: center;
+ width: 100%;
+}
+.llms-button-outline.square {
+ padding: 12px;
+}
+
+.llms-course-continue-button {
+ display: inline-block;
+}
+
+.lifterlms [data-tip],
+.lifterlms [data-title-default],
+.lifterlms [data-title-active],
+.llms-metabox [data-tip],
+.llms-metabox [data-title-default],
+.llms-metabox [data-title-active],
+.llms-mb-container [data-tip],
+.llms-mb-container [data-title-default],
+.llms-mb-container [data-title-active],
+.llms-quiz-wrapper [data-tip],
+.llms-quiz-wrapper [data-title-default],
+.llms-quiz-wrapper [data-title-active] {
+ position: relative;
+}
+.lifterlms [data-tip].tip--top-right:before,
+.lifterlms [data-title-default].tip--top-right:before,
+.lifterlms [data-title-active].tip--top-right:before,
+.llms-metabox [data-tip].tip--top-right:before,
+.llms-metabox [data-title-default].tip--top-right:before,
+.llms-metabox [data-title-active].tip--top-right:before,
+.llms-mb-container [data-tip].tip--top-right:before,
+.llms-mb-container [data-title-default].tip--top-right:before,
+.llms-mb-container [data-title-active].tip--top-right:before,
+.llms-quiz-wrapper [data-tip].tip--top-right:before,
+.llms-quiz-wrapper [data-title-default].tip--top-right:before,
+.llms-quiz-wrapper [data-title-active].tip--top-right:before {
+ bottom: 100%;
+ right: -10px;
+}
+.lifterlms [data-tip].tip--top-right:hover:before,
+.lifterlms [data-title-default].tip--top-right:hover:before,
+.lifterlms [data-title-active].tip--top-right:hover:before,
+.llms-metabox [data-tip].tip--top-right:hover:before,
+.llms-metabox [data-title-default].tip--top-right:hover:before,
+.llms-metabox [data-title-active].tip--top-right:hover:before,
+.llms-mb-container [data-tip].tip--top-right:hover:before,
+.llms-mb-container [data-title-default].tip--top-right:hover:before,
+.llms-mb-container [data-title-active].tip--top-right:hover:before,
+.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before {
+ bottom: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--top-right:after,
+.lifterlms [data-title-default].tip--top-right:after,
+.lifterlms [data-title-active].tip--top-right:after,
+.llms-metabox [data-tip].tip--top-right:after,
+.llms-metabox [data-title-default].tip--top-right:after,
+.llms-metabox [data-title-active].tip--top-right:after,
+.llms-mb-container [data-tip].tip--top-right:after,
+.llms-mb-container [data-title-default].tip--top-right:after,
+.llms-mb-container [data-title-active].tip--top-right:after,
+.llms-quiz-wrapper [data-tip].tip--top-right:after,
+.llms-quiz-wrapper [data-title-default].tip--top-right:after,
+.llms-quiz-wrapper [data-title-active].tip--top-right:after {
+ border-top-color: #444;
+ right: 6px;
+ top: 0;
+}
+.lifterlms [data-tip].tip--top-right:hover:after,
+.lifterlms [data-title-default].tip--top-right:hover:after,
+.lifterlms [data-title-active].tip--top-right:hover:after,
+.llms-metabox [data-tip].tip--top-right:hover:after,
+.llms-metabox [data-title-default].tip--top-right:hover:after,
+.llms-metabox [data-title-active].tip--top-right:hover:after,
+.llms-mb-container [data-tip].tip--top-right:hover:after,
+.llms-mb-container [data-title-default].tip--top-right:hover:after,
+.llms-mb-container [data-title-active].tip--top-right:hover:after,
+.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after {
+ top: -6px;
+}
+.lifterlms [data-tip].tip--top-left:before,
+.lifterlms [data-title-default].tip--top-left:before,
+.lifterlms [data-title-active].tip--top-left:before,
+.llms-metabox [data-tip].tip--top-left:before,
+.llms-metabox [data-title-default].tip--top-left:before,
+.llms-metabox [data-title-active].tip--top-left:before,
+.llms-mb-container [data-tip].tip--top-left:before,
+.llms-mb-container [data-title-default].tip--top-left:before,
+.llms-mb-container [data-title-active].tip--top-left:before,
+.llms-quiz-wrapper [data-tip].tip--top-left:before,
+.llms-quiz-wrapper [data-title-default].tip--top-left:before,
+.llms-quiz-wrapper [data-title-active].tip--top-left:before {
+ bottom: 100%;
+ left: -10px;
+}
+.lifterlms [data-tip].tip--top-left:hover:before,
+.lifterlms [data-title-default].tip--top-left:hover:before,
+.lifterlms [data-title-active].tip--top-left:hover:before,
+.llms-metabox [data-tip].tip--top-left:hover:before,
+.llms-metabox [data-title-default].tip--top-left:hover:before,
+.llms-metabox [data-title-active].tip--top-left:hover:before,
+.llms-mb-container [data-tip].tip--top-left:hover:before,
+.llms-mb-container [data-title-default].tip--top-left:hover:before,
+.llms-mb-container [data-title-active].tip--top-left:hover:before,
+.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before {
+ bottom: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--top-left:after,
+.lifterlms [data-title-default].tip--top-left:after,
+.lifterlms [data-title-active].tip--top-left:after,
+.llms-metabox [data-tip].tip--top-left:after,
+.llms-metabox [data-title-default].tip--top-left:after,
+.llms-metabox [data-title-active].tip--top-left:after,
+.llms-mb-container [data-tip].tip--top-left:after,
+.llms-mb-container [data-title-default].tip--top-left:after,
+.llms-mb-container [data-title-active].tip--top-left:after,
+.llms-quiz-wrapper [data-tip].tip--top-left:after,
+.llms-quiz-wrapper [data-title-default].tip--top-left:after,
+.llms-quiz-wrapper [data-title-active].tip--top-left:after {
+ border-top-color: #444;
+ left: 6px;
+ top: 0;
+}
+.lifterlms [data-tip].tip--top-left:hover:after,
+.lifterlms [data-title-default].tip--top-left:hover:after,
+.lifterlms [data-title-active].tip--top-left:hover:after,
+.llms-metabox [data-tip].tip--top-left:hover:after,
+.llms-metabox [data-title-default].tip--top-left:hover:after,
+.llms-metabox [data-title-active].tip--top-left:hover:after,
+.llms-mb-container [data-tip].tip--top-left:hover:after,
+.llms-mb-container [data-title-default].tip--top-left:hover:after,
+.llms-mb-container [data-title-active].tip--top-left:hover:after,
+.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after {
+ top: -6px;
+}
+.lifterlms [data-tip].tip--bottom-left:before,
+.lifterlms [data-title-default].tip--bottom-left:before,
+.lifterlms [data-title-active].tip--bottom-left:before,
+.llms-metabox [data-tip].tip--bottom-left:before,
+.llms-metabox [data-title-default].tip--bottom-left:before,
+.llms-metabox [data-title-active].tip--bottom-left:before,
+.llms-mb-container [data-tip].tip--bottom-left:before,
+.llms-mb-container [data-title-default].tip--bottom-left:before,
+.llms-mb-container [data-title-active].tip--bottom-left:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:before {
+ top: 100%;
+ left: -10px;
+}
+.lifterlms [data-tip].tip--bottom-left:hover:before,
+.lifterlms [data-title-default].tip--bottom-left:hover:before,
+.lifterlms [data-title-active].tip--bottom-left:hover:before,
+.llms-metabox [data-tip].tip--bottom-left:hover:before,
+.llms-metabox [data-title-default].tip--bottom-left:hover:before,
+.llms-metabox [data-title-active].tip--bottom-left:hover:before,
+.llms-mb-container [data-tip].tip--bottom-left:hover:before,
+.llms-mb-container [data-title-default].tip--bottom-left:hover:before,
+.llms-mb-container [data-title-active].tip--bottom-left:hover:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before {
+ top: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--bottom-left:after,
+.lifterlms [data-title-default].tip--bottom-left:after,
+.lifterlms [data-title-active].tip--bottom-left:after,
+.llms-metabox [data-tip].tip--bottom-left:after,
+.llms-metabox [data-title-default].tip--bottom-left:after,
+.llms-metabox [data-title-active].tip--bottom-left:after,
+.llms-mb-container [data-tip].tip--bottom-left:after,
+.llms-mb-container [data-title-default].tip--bottom-left:after,
+.llms-mb-container [data-title-active].tip--bottom-left:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:after {
+ border-bottom-color: #444;
+ left: 6px;
+ bottom: 0;
+}
+.lifterlms [data-tip].tip--bottom-left:hover:after,
+.lifterlms [data-title-default].tip--bottom-left:hover:after,
+.lifterlms [data-title-active].tip--bottom-left:hover:after,
+.llms-metabox [data-tip].tip--bottom-left:hover:after,
+.llms-metabox [data-title-default].tip--bottom-left:hover:after,
+.llms-metabox [data-title-active].tip--bottom-left:hover:after,
+.llms-mb-container [data-tip].tip--bottom-left:hover:after,
+.llms-mb-container [data-title-default].tip--bottom-left:hover:after,
+.llms-mb-container [data-title-active].tip--bottom-left:hover:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after {
+ bottom: -6px;
+}
+.lifterlms [data-tip].tip--bottom-right:before,
+.lifterlms [data-title-default].tip--bottom-right:before,
+.lifterlms [data-title-active].tip--bottom-right:before,
+.llms-metabox [data-tip].tip--bottom-right:before,
+.llms-metabox [data-title-default].tip--bottom-right:before,
+.llms-metabox [data-title-active].tip--bottom-right:before,
+.llms-mb-container [data-tip].tip--bottom-right:before,
+.llms-mb-container [data-title-default].tip--bottom-right:before,
+.llms-mb-container [data-title-active].tip--bottom-right:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:before {
+ top: 100%;
+ right: -10px;
+}
+.lifterlms [data-tip].tip--bottom-right:hover:before,
+.lifterlms [data-title-default].tip--bottom-right:hover:before,
+.lifterlms [data-title-active].tip--bottom-right:hover:before,
+.llms-metabox [data-tip].tip--bottom-right:hover:before,
+.llms-metabox [data-title-default].tip--bottom-right:hover:before,
+.llms-metabox [data-title-active].tip--bottom-right:hover:before,
+.llms-mb-container [data-tip].tip--bottom-right:hover:before,
+.llms-mb-container [data-title-default].tip--bottom-right:hover:before,
+.llms-mb-container [data-title-active].tip--bottom-right:hover:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before {
+ top: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--bottom-right:after,
+.lifterlms [data-title-default].tip--bottom-right:after,
+.lifterlms [data-title-active].tip--bottom-right:after,
+.llms-metabox [data-tip].tip--bottom-right:after,
+.llms-metabox [data-title-default].tip--bottom-right:after,
+.llms-metabox [data-title-active].tip--bottom-right:after,
+.llms-mb-container [data-tip].tip--bottom-right:after,
+.llms-mb-container [data-title-default].tip--bottom-right:after,
+.llms-mb-container [data-title-active].tip--bottom-right:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:after {
+ border-bottom-color: #444;
+ right: 6px;
+ bottom: 0;
+}
+.lifterlms [data-tip].tip--bottom-right:hover:after,
+.lifterlms [data-title-default].tip--bottom-right:hover:after,
+.lifterlms [data-title-active].tip--bottom-right:hover:after,
+.llms-metabox [data-tip].tip--bottom-right:hover:after,
+.llms-metabox [data-title-default].tip--bottom-right:hover:after,
+.llms-metabox [data-title-active].tip--bottom-right:hover:after,
+.llms-mb-container [data-tip].tip--bottom-right:hover:after,
+.llms-mb-container [data-title-default].tip--bottom-right:hover:after,
+.llms-mb-container [data-title-active].tip--bottom-right:hover:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after {
+ bottom: -6px;
+}
+.lifterlms [data-tip]:before,
+.lifterlms [data-title-default]:before,
+.lifterlms [data-title-active]:before,
+.llms-metabox [data-tip]:before,
+.llms-metabox [data-title-default]:before,
+.llms-metabox [data-title-active]:before,
+.llms-mb-container [data-tip]:before,
+.llms-mb-container [data-title-default]:before,
+.llms-mb-container [data-title-active]:before,
+.llms-quiz-wrapper [data-tip]:before,
+.llms-quiz-wrapper [data-title-default]:before,
+.llms-quiz-wrapper [data-title-active]:before {
+ background: #444;
+ border-radius: 4px;
+ color: #fff;
+ font-size: 13px;
+ line-height: 1.2;
+ padding: 8px;
+ max-width: 300px;
+ width: -webkit-max-content;
+ width: -moz-max-content;
+ width: max-content;
+}
+.lifterlms [data-tip]:after,
+.lifterlms [data-title-default]:after,
+.lifterlms [data-title-active]:after,
+.llms-metabox [data-tip]:after,
+.llms-metabox [data-title-default]:after,
+.llms-metabox [data-title-active]:after,
+.llms-mb-container [data-tip]:after,
+.llms-mb-container [data-title-default]:after,
+.llms-mb-container [data-title-active]:after,
+.llms-quiz-wrapper [data-tip]:after,
+.llms-quiz-wrapper [data-title-default]:after,
+.llms-quiz-wrapper [data-title-active]:after {
+ content: "";
+ border: 6px solid transparent;
+ height: 0;
+ width: 0;
+}
+.lifterlms [data-tip]:before, .lifterlms [data-tip]:after,
+.lifterlms [data-title-default]:before,
+.lifterlms [data-title-default]:after,
+.lifterlms [data-title-active]:before,
+.lifterlms [data-title-active]:after,
+.llms-metabox [data-tip]:before,
+.llms-metabox [data-tip]:after,
+.llms-metabox [data-title-default]:before,
+.llms-metabox [data-title-default]:after,
+.llms-metabox [data-title-active]:before,
+.llms-metabox [data-title-active]:after,
+.llms-mb-container [data-tip]:before,
+.llms-mb-container [data-tip]:after,
+.llms-mb-container [data-title-default]:before,
+.llms-mb-container [data-title-default]:after,
+.llms-mb-container [data-title-active]:before,
+.llms-mb-container [data-title-active]:after,
+.llms-quiz-wrapper [data-tip]:before,
+.llms-quiz-wrapper [data-tip]:after,
+.llms-quiz-wrapper [data-title-default]:before,
+.llms-quiz-wrapper [data-title-default]:after,
+.llms-quiz-wrapper [data-title-active]:before,
+.llms-quiz-wrapper [data-title-active]:after {
+ opacity: 0;
+ -webkit-transition: all 0.2s 0.1s ease;
+ transition: all 0.2s 0.1s ease;
+ position: absolute;
+ pointer-events: none;
+ visibility: hidden;
+}
+.lifterlms [data-tip]:hover:before, .lifterlms [data-tip]:hover:after,
+.lifterlms [data-title-default]:hover:before,
+.lifterlms [data-title-default]:hover:after,
+.lifterlms [data-title-active]:hover:before,
+.lifterlms [data-title-active]:hover:after,
+.llms-metabox [data-tip]:hover:before,
+.llms-metabox [data-tip]:hover:after,
+.llms-metabox [data-title-default]:hover:before,
+.llms-metabox [data-title-default]:hover:after,
+.llms-metabox [data-title-active]:hover:before,
+.llms-metabox [data-title-active]:hover:after,
+.llms-mb-container [data-tip]:hover:before,
+.llms-mb-container [data-tip]:hover:after,
+.llms-mb-container [data-title-default]:hover:before,
+.llms-mb-container [data-title-default]:hover:after,
+.llms-mb-container [data-title-active]:hover:before,
+.llms-mb-container [data-title-active]:hover:after,
+.llms-quiz-wrapper [data-tip]:hover:before,
+.llms-quiz-wrapper [data-tip]:hover:after,
+.llms-quiz-wrapper [data-title-default]:hover:before,
+.llms-quiz-wrapper [data-title-default]:hover:after,
+.llms-quiz-wrapper [data-title-active]:hover:before,
+.llms-quiz-wrapper [data-title-active]:hover:after {
+ opacity: 1;
+ -webkit-transition: all 0 0.1s ease;
+ transition: all 0 0.1s ease;
+ visibility: visible;
+ z-index: 99999999;
+}
+.lifterlms [data-tip]:before,
+.llms-metabox [data-tip]:before,
+.llms-mb-container [data-tip]:before,
+.llms-quiz-wrapper [data-tip]:before {
+ content: attr(data-tip);
+}
+.lifterlms [data-tip].active:before,
+.llms-metabox [data-tip].active:before,
+.llms-mb-container [data-tip].active:before,
+.llms-quiz-wrapper [data-tip].active:before {
+ content: attr(data-tip-active);
+}
+
+#adminmenu .toplevel_page_lifterlms .wp-menu-image img {
+ padding-top: 6px;
+ width: 20px;
+}
+#adminmenu .toplevel_page_lifterlms a[href*="page=llms-add-ons"],
+#adminmenu .opensub .wp-submenu li.current a[href*="page=llms-add-ons"],
+#adminmenu .wp-submenu li.current a[href*="page=llms-add-ons"],
+#adminmenu .wp-submenu li.current a[href*="page=llms-add-ons"],
+#adminmenu .wp-submenu li.current a[href*="page=llms-add-ons"],
+#adminmenu a.wp-has-current-submenu:focus + .wp-submenu li.current a[href*="page=llms-add-ons"] {
+ color: #f8954f;
+}
+
+/******************************************************************
+
+Grids for Breakpoints
+
+******************************************************************/
+.last-col {
+ float: left;
+ padding-left: 0 !important;
+}
+
+.last-col:after {
+ clear: both;
+}
+
+/*
+Mobile Grid Styles
+These are the widths for the mobile grid.
+There are four types, but you can add or customize
+them however you see fit.
+*/
+@media (max-width: 767px) {
+ .m-all {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ padding-left: 0;
+ }
+ .m-1of2 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 50%;
+ }
+ .m-1of3 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 33.33%;
+ }
+ .m-2of3 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 66.66%;
+ }
+ .m-1of4 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 25%;
+ }
+ .m-3of4 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 75%;
+ }
+ .m-right {
+ text-align: center;
+ }
+ .m-center {
+ text-align: center;
+ }
+ .m-left {
+ text-align: center;
+ }
+ .d-right {
+ text-align: left;
+ }
+ .d-center {
+ text-align: center;
+ }
+ .d-left {
+ text-align: right;
+ }
+}
+/* Portrait tablet to landscape */
+@media (min-width: 768px) and (max-width: 1029px) {
+ .t-all {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ padding-left: 0;
+ }
+ .t-1of2 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 50%;
+ }
+ .t-1of3 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 33.33%;
+ }
+ .t-2of3 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 66.66%;
+ }
+ .t-1of4 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 25%;
+ }
+ .t-3of4 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 75%;
+ }
+ .t-1of5 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 20%;
+ }
+ .t-2of5 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 40%;
+ }
+ .t-3of5 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 60%;
+ }
+ .t-4of5 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 80%;
+ }
+ .d-right {
+ text-align: left;
+ }
+ .d-center {
+ text-align: center;
+ }
+ .d-left {
+ text-align: right;
+ }
+}
+/* Landscape to small desktop */
+@media (min-width: 1030px) {
+ .d-all {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ padding-left: 0;
+ }
+ .d-1of2 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 50%;
+ }
+ .d-1of3 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 33.33%;
+ }
+ .d-2of3 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 66.66%;
+ }
+ .d-1of4 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 25%;
+ }
+ .d-3of4 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 75%;
+ }
+ .d-1of5 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 20%;
+ }
+ .d-2of5 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 40%;
+ }
+ .d-3of5 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 60%;
+ }
+ .d-4of5 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 80%;
+ }
+ .d-1of6 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 16.6666666667%;
+ }
+ .d-1of7 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 14.2857142857%;
+ }
+ .d-2of7 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 28.5714286%;
+ }
+ .d-3of7 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 42.8571429%;
+ }
+ .d-4of7 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 57.1428572%;
+ }
+ .d-5of7 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 71.4285715%;
+ }
+ .d-6of7 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 85.7142857%;
+ }
+ .d-1of8 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 12.5%;
+ }
+ .d-1of9 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 11.1111111111%;
+ }
+ .d-1of10 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 10%;
+ }
+ .d-1of11 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 9.0909090909%;
+ }
+ .d-1of12 {
+ float: right;
+ padding-left: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 8.33%;
+ }
+ .d-right {
+ text-align: left;
+ }
+ .d-center {
+ text-align: center;
+ }
+ .d-left {
+ text-align: right;
+ }
+}
+/******************************************************************
+
+Form Styles
+
+******************************************************************/
+#llms-form-wrapper .llms-search-form-wrapper {
+ border-bottom: 1px solid #999;
+ margin: 20px 0;
+}
+#llms-form-wrapper #llms_analytics_search {
+ border: none !important;
+ text-shadow: none !important;
+ border: none !important;
+ outline: none !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ margin: 0 !important;
+ color: #fefefe !important;
+ background: #466dd8 !important;
+ border-radius: 0;
+ -webkit-transition: 0.5s;
+ transition: 0.5s;
+}
+#llms-form-wrapper #llms_analytics_search:hover {
+ background: #0185a3 !important;
+}
+#llms-form-wrapper #llms_analytics_search:active {
+ background: #33b1cb !important;
+}
+
+#llms-skip-setup-form .llms-admin-link {
+ background: none !important;
+ border: none;
+ padding: 0 !important;
+ color: #0074a2;
+ cursor: pointer;
+}
+#llms-skip-setup-form .llms-admin-link:hover {
+ color: #2ea2cc;
+}
+#llms-skip-setup-form .llms-admin-link:focus {
+ color: #124964;
+}
+
+/**
+ * Toggle Switch ( replaces checkbox on admin panels )
+ */
+.llms-switch {
+ position: relative;
+}
+.llms-switch .llms-toggle {
+ position: absolute;
+ margin-right: -9999px;
+ visibility: hidden;
+}
+.llms-switch .llms-toggle + label {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ display: block;
+ position: relative;
+ cursor: pointer;
+ outline: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.llms-switch input.llms-toggle-round + label {
+ border: 2px solid #6c7781;
+ border-radius: 10px;
+ height: 20px;
+ width: 36px;
+}
+.llms-switch input.llms-toggle-round + label:before,
+.llms-switch input.llms-toggle-round + label:after {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ content: "";
+ display: block;
+ position: absolute;
+ -webkit-transition: background 0.4s;
+ transition: background 0.4s;
+}
+.llms-switch input.llms-toggle-round:checked + label {
+ border-color: #11a0d2;
+ background-color: #11a0d2;
+}
+.llms-switch input.llms-toggle-round + label:after {
+ height: 12px;
+ right: 2px;
+ top: 2px;
+ background-color: #6c7781;
+ border-radius: 50%;
+ -webkit-transition: margin 0.4s;
+ transition: margin 0.4s;
+ width: 12px;
+ z-index: 3;
+}
+.llms-switch input.llms-toggle-round:checked + label:after {
+ background-color: #fefefe;
+ margin-right: 16px;
+}
+.llms-switch input.llms-toggle-round + label:before {
+ height: 8px;
+ top: 4px;
+ border: 1px solid #6c7781;
+ border-radius: 50%;
+ left: 4px;
+ width: 8px;
+ z-index: 2;
+}
+.llms-switch input.llms-toggle-round:checked + label:before {
+ border-color: #fefefe;
+ border-radius: 0;
+ right: 6px;
+ left: auto;
+ width: 2px;
+}
+
+#llms-profile-fields {
+ margin: 50px 0;
+}
+#llms-profile-fields .llms-form-field {
+ padding-right: 0;
+}
+#llms-profile-fields label {
+ display: block;
+ font-weight: bold;
+ padding: 8px 0 2px;
+}
+#llms-profile-fields .type-checkbox .type-checkbox label {
+ display: initial;
+ font-weight: initial;
+ padding: 0;
+}
+#llms-profile-fields .type-checkbox .type-checkbox input {
+ display: inline-block;
+ margin-bottom: 0;
+ width: 1rem;
+}
+#llms-profile-fields select {
+ max-width: 100%;
+}
+
+a.llms-voucher-delete {
+ background: #bb231c;
+ color: #fefefe;
+ display: block;
+ padding: 4px 2px;
+ text-decoration: none;
+ -webkit-transition: ease 0.3s all;
+ transition: ease 0.3s all;
+}
+a.llms-voucher-delete:hover {
+ background: #af3a26;
+}
+
+.llms-voucher-codes-wrapper table,
+.llms-voucher-redemption-wrapper table {
+ width: 100%;
+ border-collapse: collapse;
+}
+.llms-voucher-codes-wrapper table th, .llms-voucher-codes-wrapper table td,
+.llms-voucher-redemption-wrapper table th,
+.llms-voucher-redemption-wrapper table td {
+ border: none;
+}
+.llms-voucher-codes-wrapper table thead,
+.llms-voucher-redemption-wrapper table thead {
+ background-color: #466dd8;
+ color: #fff;
+}
+.llms-voucher-codes-wrapper table thead th,
+.llms-voucher-redemption-wrapper table thead th {
+ padding: 10px 10px;
+}
+.llms-voucher-codes-wrapper table tr,
+.llms-voucher-redemption-wrapper table tr {
+ counter-increment: row-counter;
+}
+.llms-voucher-codes-wrapper table tr:nth-child(even),
+.llms-voucher-redemption-wrapper table tr:nth-child(even) {
+ background-color: #F1F1F1;
+}
+.llms-voucher-codes-wrapper table tr td,
+.llms-voucher-redemption-wrapper table tr td {
+ padding: 5px;
+}
+.llms-voucher-codes-wrapper table tr td:first-child:before,
+.llms-voucher-redemption-wrapper table tr td:first-child:before {
+ content: counter(row-counter);
+}
+
+.llms-voucher-codes-wrapper table {
+ width: 100%;
+ border-collapse: collapse;
+}
+.llms-voucher-codes-wrapper table th, .llms-voucher-codes-wrapper table td {
+ border: none;
+}
+.llms-voucher-codes-wrapper table thead {
+ background-color: #466dd8;
+ color: #fff;
+}
+.llms-voucher-codes-wrapper table tr:nth-child(even) {
+ background-color: #F1F1F1;
+}
+.llms-voucher-codes-wrapper table tr td span {
+ display: inline-block;
+ min-width: 30px;
+}
+.llms-voucher-codes-wrapper button {
+ cursor: pointer;
+}
+.llms-voucher-codes-wrapper .llms-voucher-delete {
+ float: left;
+ margin-left: 15px;
+}
+.llms-voucher-codes-wrapper .llms-voucher-uses {
+ width: 50px;
+}
+.llms-voucher-codes-wrapper .llms-voucher-add-codes {
+ float: left;
+}
+.llms-voucher-codes-wrapper .llms-voucher-add-codes input[type=text] {
+ width: 30px;
+}
+
+.llms-voucher-export-wrapper .llms-voucher-export-type {
+ width: 100%;
+}
+.llms-voucher-export-wrapper .llms-voucher-export-type p {
+ margin: 0 15px 0 0;
+}
+.llms-voucher-export-wrapper .llms-voucher-email-wrapper {
+ width: 100%;
+ margin: 25px 0;
+}
+.llms-voucher-export-wrapper .llms-voucher-email-wrapper input[type=text] {
+ width: 100%;
+}
+.llms-voucher-export-wrapper .llms-voucher-email-wrapper p {
+ margin: 0;
+}
+.llms-voucher-export-wrapper > button {
+ float: left;
+}
+
+.postbox .inside {
+ overflow: auto;
+}
+
+.llms-widget {
+ background-color: #FFF;
+ border: 1px solid #dedede;
+ border-radius: 12px;
+ -webkit-box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
+ box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin-bottom: 20px;
+ padding: 20px;
+ position: relative;
+ width: 100%;
+}
+.llms-widget.alt {
+ border: 1px solid #ccc;
+ background-color: #efefef;
+ margin-bottom: 10px;
+}
+.llms-widget.alt .llms-label {
+ color: #777;
+ font-size: 14px;
+ margin-bottom: 10px;
+ padding-bottom: 5px;
+}
+.llms-widget.alt h2 {
+ color: #444;
+ font-weight: 300;
+}
+.llms-widget a {
+ border-bottom: 1px dotted #466dd8;
+ display: inline-block;
+ text-decoration: none;
+}
+.llms-widget a:hover {
+ border-bottom: 1px dotted #2b55cb;
+}
+.llms-widget .llms-widget-content {
+ margin: 0.67em 0;
+ color: #466dd8;
+ font-size: 2.4em;
+ font-weight: 700;
+ line-height: 1;
+ word-break: break-all;
+}
+.llms-widget h2 {
+ font-size: 1.8em;
+}
+.llms-widget .llms-label {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ font-size: 18px;
+ font-weight: 400;
+ margin: 0 0 10px 0;
+ text-align: center;
+}
+.llms-widget .llms-chart {
+ width: 100%;
+ padding: 10px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.llms-widget mark.yes {
+ background-color: #7ad03a;
+}
+.llms-widget .llms-subtitle {
+ margin-bottom: 0;
+}
+.llms-widget .spinner {
+ float: none;
+ right: 50%;
+ margin: -10px -10px 0 0;
+ position: absolute;
+ top: 50%;
+ z-index: 2;
+}
+.llms-widget.is-loading:before {
+ background: #fefefe;
+ bottom: 0;
+ content: "";
+ right: 0;
+ opacity: 0.9;
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 1;
+}
+.llms-widget.is-loading .spinner {
+ visibility: visible;
+}
+.llms-widget td[colspan="2"] {
+ padding-right: 0;
+}
+.llms-widget tr.llms-disabled-field {
+ opacity: 0.5;
+ pointer-events: none;
+}
+
+.llms-widget-1-3,
+.llms-widget-1-4,
+.llms-widget-1-5 {
+ text-align: center;
+}
+
+.llms-widget .llms-widget-info-toggle {
+ color: #AAA;
+ cursor: pointer;
+ font-size: 16px;
+ position: absolute;
+ left: 20px;
+ top: 20px;
+}
+.llms-widget.info-showing .llms-widget-info {
+ display: block;
+}
+
+.llms-widget-info {
+ background: #444;
+ color: #fefefe;
+ bottom: -50px;
+ display: none;
+ padding: 15px;
+ position: absolute;
+ text-align: center;
+ right: 10px;
+ left: 15px;
+ z-index: 3;
+}
+.llms-widget-info:before {
+ content: "";
+ border: 12px solid transparent;
+ border-bottom-color: #444;
+ right: 50%;
+ margin-right: -12px;
+ position: absolute;
+ top: -24px;
+}
+.llms-widget-info p {
+ margin: 0;
+}
+
+.llms-widget-row:before, .llms-widget-row:after {
+ content: " ";
+ display: table;
+}
+.llms-widget-row:after {
+ clear: both;
+}
+
+.llms-widget-row .no-padding {
+ padding: 0 !important;
+}
+
+/******************************************************************
+
+SVG Styles
+
+******************************************************************/
+svg.icon {
+ height: 24px;
+ width: 24px;
+ display: inline-block;
+ fill: currentColor;
+ vertical-align: baseline;
+}
+button svg.icon {
+ height: 18px;
+ width: 18px;
+ margin: 4px 4px 0 -4px;
+ -webkit-filter: drop-shadow(0 1px #eee);
+ filter: drop-shadow(0 1px #eee);
+ float: left;
+}
+svg.icon.menu-icon {
+ height: 20px;
+ width: 20px;
+ display: inline-block;
+ fill: currentColor;
+ vertical-align: text-bottom;
+ margin-left: 10px;
+}
+svg.icon.tree-icon {
+ height: 13px;
+ width: 13px;
+ vertical-align: middle;
+}
+svg.icon.section-icon {
+ height: 16px;
+ width: 16px;
+ vertical-align: text-bottom;
+}
+svg.icon.button-icon {
+ height: 16px;
+ width: 16px;
+ vertical-align: text-bottom;
+}
+svg.icon.button-icon-attr {
+ height: 10px;
+ width: 10px;
+ vertical-align: middle;
+}
+svg.icon.list-icon {
+ height: 12px;
+ width: 12px;
+ vertical-align: middle;
+}
+svg.icon.list-icon.on {
+ color: #466dd8;
+}
+svg.icon.list-icon.off {
+ color: #444;
+}
+svg.icon.detail-icon {
+ height: 16px;
+ width: 16px;
+ vertical-align: text-bottom;
+ cursor: default;
+}
+svg.icon.detail-icon.on {
+ color: #466dd8;
+}
+svg.icon.detail-icon.off {
+ color: #ccc;
+}
+svg.icon-ion-arrow-up {
+ -webkit-transform: rotate(-90deg);
+ transform: rotate(-90deg);
+}
+svg use {
+ pointer-events: none;
+}
+
+/******************************************************************
+
+Metabox Tabs
+
+******************************************************************/
+#side-sortables .tab-content {
+ padding: 0;
+}
+
+.llms-mb-container .tab-content {
+ display: none;
+ background-color: #FFF;
+ padding: 0 20px;
+}
+.llms-mb-container .tab-content ul:not(.select2-selection__rendered) {
+ margin: 0 0 15px 0;
+}
+.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li {
+ padding: 20px 0;
+ margin: 0;
+}
+.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li.select:not([class*=d-]) {
+ width: 100%;
+}
+.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li:last-child {
+ border: 0;
+ padding-bottom: 0;
+}
+.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li.top {
+ border-bottom: 0;
+ padding-bottom: 0;
+}
+.llms-mb-container .tab-content .full-width {
+ width: 100%;
+}
+.llms-mb-container .tab-content #wp-content-editor-tools {
+ background: none;
+}
+
+.llms-mb-container .tab-content.llms-active {
+ display: inherit;
+}
+
+.llms-mb-container .tab-content .no-border {
+ border-bottom: 0px;
+}
+
+/******************************************************************
+
+Styles for topModal modal
+
+******************************************************************/
+/**
+ * Base modal styles
+ */
+.topModal {
+ display: none;
+ position: relative;
+ border: 4px solid #808080;
+ background: #fff;
+ z-index: 1000001;
+ padding: 2px;
+ max-width: 500px;
+ margin: 34px auto 0;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ background-color: #ffffff;
+ border-radius: 2px;
+ border: 1px solid #dddddd;
+}
+
+.topModalClose {
+ float: left;
+ cursor: pointer;
+ margin-left: 10px;
+ margin-top: 10px;
+}
+
+.topModalContainer {
+ display: none;
+ overflow: auto;
+ overflow-y: hidden;
+ position: fixed;
+ top: 0 !important;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ -webkit-overflow-scrolling: touch;
+ width: auto !important;
+ margin-right: 0 !important;
+ background-color: transparent !important;
+ z-index: 100002 !important;
+}
+
+.topModalBackground {
+ display: none;
+ background: #000;
+ position: fixed;
+ height: 100%;
+ width: 100%;
+ top: 0 !important;
+ right: 0;
+ margin-right: 0 !important;
+ z-index: 100002 !important;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ overflow: auto;
+ overflow-y: hidden;
+}
+
+body.modal-open {
+ overflow: hidden;
+}
+
+.llms-modal-header {
+ border-top-left-radius: 1px;
+ border-top-right-radius: 1px;
+ background: #466dd8;
+ color: #eeeeee;
+ padding: 10px 15px;
+ font-size: 18px;
+}
+
+#llms-icon-modal-close {
+ width: 16px;
+ height: 16px;
+ fill: #fefefe;
+}
+
+.llms-modal-content {
+ padding: 20px;
+}
+.llms-modal-content h3 {
+ margin-top: 0;
+}
+
+/**
+ * Custom Modal Styles for LifterLMS
+ */
+.llms-modal-form h1 {
+ margin-top: 0;
+}
+.llms-modal-form input[type=text] {
+ width: 100%;
+}
+.llms-modal-form textarea,
+.llms-modal-form input[type=text],
+.llms-modal-form input[type=password],
+.llms-modal-form input[type=file],
+.llms-modal-form input[type=datetime],
+.llms-modal-form input[type=datetime-local],
+.llms-modal-form input[type=date],
+.llms-modal-form input[type=month],
+.llms-modal-form input[type=time],
+.llms-modal-form input[type=week],
+.llms-modal-form input[type=number],
+.llms-modal-form input[type=email],
+.llms-modal-form input[type=url],
+.llms-modal-form input[type=search],
+.llms-modal-form input[type=tel],
+.llms-modal-form input[type=color] {
+ padding: 0 0.4em 0 0.4em;
+ margin-bottom: 2em;
+ vertical-align: middle;
+ border-radius: 3px;
+ min-width: 50px;
+ max-width: 635px;
+ width: 100%;
+ min-height: 32px;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ margin: 0 0 24px 0;
+ outline: none;
+ -webkit-transition: border 0.3s ease-in-out 0s;
+ transition: border 0.3s ease-in-out 0s;
+}
+.llms-modal-form textarea:focus,
+.llms-modal-form input[type=text]:focus,
+.llms-modal-form input[type=password]:focus,
+.llms-modal-form input[type=file]:focus,
+.llms-modal-form input[type=datetime]:focus,
+.llms-modal-form input[type=datetime-local]:focus,
+.llms-modal-form input[type=date]:focus,
+.llms-modal-form input[type=month]:focus,
+.llms-modal-form input[type=time]:focus,
+.llms-modal-form input[type=week]:focus,
+.llms-modal-form input[type=number]:focus,
+.llms-modal-form input[type=email]:focus,
+.llms-modal-form input[type=url]:focus,
+.llms-modal-form input[type=search]:focus,
+.llms-modal-form input[type=tel]:focus,
+.llms-modal-form input[type=color]:focus {
+ background: #fefefe;
+ border: 1px solid #466dd8;
+}
+.llms-modal-form textarea {
+ padding: 0.4em !important;
+ height: 100px !important;
+ border-radius: 3px;
+ vertical-align: middle;
+ min-height: 32px;
+ outline: none;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.llms-modal-form textarea:focus {
+ background: #fefefe;
+ border: 1px solid #466dd8;
+}
+.llms-modal-form .chosen-container-single .chosen-single {
+ border-radius: 3px;
+ vertical-align: middle;
+ min-height: 32px;
+ border: 1px solid #ccc;
+ width: 100%;
+ background: #fefefe !important;
+ outline: none;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-box-shadow: 0 0 0 #fff;
+ box-shadow: 0 0 0 #fff;
+ line-height: 32px;
+ margin: 0 0 24px 0;
+}
+.llms-modal-form .chosen-container-single .chosen-single:focus {
+ background: #fefefe;
+ border: 1px solid #466dd8;
+}
+.llms-modal-form .chosen-container-single .chosen-single div b {
+ margin-top: 4px;
+}
+.llms-modal-form .chosen-search input[type=text] {
+ border: 1px solid #ccc;
+}
+.llms-modal-form .chosen-search input[type=text]:focus {
+ background-color: #fefefe;
+ border: 1px solid #466dd8;
+}
+.llms-modal-form .chosen-container-single .chosen-drop {
+ margin-top: -28px;
+}
+.llms-modal-form .llms-button-primary, .llms-modal-form .llms-button-secondary {
+ padding: 10px 10px;
+ border-radius: 0;
+ -webkit-transition: 0.5s;
+ transition: 0.5s;
+ -webkit-box-shadow: 0 1px 1px #ccc;
+ box-shadow: 0 1px 1px #ccc;
+}
+.llms-modal-form .llms-button-primary.full, .llms-modal-form .llms-button-secondary.full {
+ width: 100%;
+}
+
+.modal-open .select2-dropdown {
+ z-index: 1000005;
+}
+
+.button.llms-merge-code-button {
+ vertical-align: middle;
+}
+.button.llms-merge-code-button svg {
+ margin-left: 2px;
+ position: relative;
+ top: 4px;
+ width: 16px;
+}
+.button.llms-merge-code-button svg g {
+ fill: currentColor;
+}
+
+.llms-mb-container .llms-merge-code-wrapper {
+ float: left;
+ top: -5px;
+}
+
+.llms-merge-code-wrapper {
+ display: inline;
+ position: relative;
+}
+
+.llms-merge-codes {
+ background: #f7f7f7;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ -webkit-box-shadow: 0 1px 0 #ccc;
+ box-shadow: 0 1px 0 #ccc;
+ color: #555;
+ display: none;
+ right: 1px;
+ overflow: hidden;
+ position: absolute;
+ top: 30px;
+ width: 200px;
+}
+.llms-merge-codes ul {
+ margin: 0;
+ padding: 0;
+}
+.llms-merge-codes li {
+ cursor: pointer;
+ margin: 0;
+ padding: 4px 8px !important;
+ border-bottom: 1px solid #ccc;
+}
+.llms-merge-codes li:hover {
+ color: #23282d;
+ background: #fefefe;
+}
+.llms-merge-codes.active {
+ display: block;
+ z-index: 777;
+}
+
+/******************************************************************
+
+Base Mobile
+
+******************************************************************/
+.llms-nav-tab,
+.llms-nav-tab-filters {
+ display: block;
+ width: 100%;
+}
+
+form.llms-nav-tab-filters.full-width {
+ width: 100%;
+}
+form.llms-nav-tab-filters.full-width label {
+ display: inline-block;
+ width: 10%;
+ text-align: right;
+}
+form.llms-nav-tab-filters.full-width .select2-container {
+ width: 85% !important;
+}
+
+.llms-nav-tab-settings {
+ display: block;
+ width: 100%;
+}
+
+#llms-form-wrapper .llms-select {
+ width: 100%;
+ margin-bottom: 20px;
+}
+#llms-form-wrapper .llms-checkbox {
+ display: inline-block;
+ width: 100%;
+ text-align: right;
+}
+#llms-form-wrapper .llms-filter-options {
+ width: 100%;
+}
+#llms-form-wrapper .llms-date-select {
+ width: 100%;
+ display: inline-block;
+ margin-bottom: 20px;
+}
+#llms-form-wrapper .llms-date-select input[type=text] {
+ width: 100%;
+}
+ul.tabs li {
+ display: block;
+}
+
+@media only screen and (min-width: 481px) {
+ /******************************************************************
+
+ Larger Phones
+
+ ******************************************************************/
+ #llms-form-wrapper .llms-checkbox {
+ width: 33%;
+ }
+}
+@media only screen and (min-width: 768px) {
+ /******************************************************************
+
+ Tablets and small computers
+
+ ******************************************************************/
+ ul.tabs li {
+ display: inline-block;
+ }
+ .llms-nav-tab {
+ display: inline-block;
+ width: 33%;
+ }
+ .llms-nav-tab-settings {
+ display: inline-block;
+ width: 25%;
+ }
+ #llms-form-wrapper .llms-select {
+ width: 50%;
+ max-width: 500px;
+ }
+ #llms-form-wrapper .llms-filter-options {
+ width: 50%;
+ max-width: 500px;
+ }
+ #llms-form-wrapper .llms-date-select {
+ width: 47.5%;
+ }
+ #llms-form-wrapper .llms-date-select:first-child {
+ margin-left: 5%;
+ }
+ .llms-widget input[type=text],
+.llms-widget input[type=password],
+.llms-widget input[type=datetime],
+.llms-widget input[type=datetime-local],
+.llms-widget input[type=date],
+.llms-widget input[type=month],
+.llms-widget input[type=time],
+.llms-widget input[type=week],
+.llms-widget input[type=number],
+.llms-widget input[type=email],
+.llms-widget input[type=url],
+.llms-widget input[type=search],
+.llms-widget input[type=tel],
+.llms-widget input[type=color],
+.llms-widget select,
+.llms-widget textarea {
+ width: 50%;
+ }
+ .llms-widget input[type=text].medium,
+.llms-widget input[type=password].medium,
+.llms-widget input[type=datetime].medium,
+.llms-widget input[type=datetime-local].medium,
+.llms-widget input[type=date].medium,
+.llms-widget input[type=month].medium,
+.llms-widget input[type=time].medium,
+.llms-widget input[type=week].medium,
+.llms-widget input[type=number].medium,
+.llms-widget input[type=email].medium,
+.llms-widget input[type=url].medium,
+.llms-widget input[type=search].medium,
+.llms-widget input[type=tel].medium,
+.llms-widget input[type=color].medium,
+.llms-widget select.medium,
+.llms-widget textarea.medium {
+ width: 30%;
+ }
+ .llms-widget input[type=text].small,
+.llms-widget input[type=password].small,
+.llms-widget input[type=datetime].small,
+.llms-widget input[type=datetime-local].small,
+.llms-widget input[type=date].small,
+.llms-widget input[type=month].small,
+.llms-widget input[type=time].small,
+.llms-widget input[type=week].small,
+.llms-widget input[type=number].small,
+.llms-widget input[type=email].small,
+.llms-widget input[type=url].small,
+.llms-widget input[type=search].small,
+.llms-widget input[type=tel].small,
+.llms-widget input[type=color].small,
+.llms-widget select.small,
+.llms-widget textarea.small {
+ width: 20%;
+ }
+ .llms-widget input[type=text].tiny,
+.llms-widget input[type=password].tiny,
+.llms-widget input[type=datetime].tiny,
+.llms-widget input[type=datetime-local].tiny,
+.llms-widget input[type=date].tiny,
+.llms-widget input[type=month].tiny,
+.llms-widget input[type=time].tiny,
+.llms-widget input[type=week].tiny,
+.llms-widget input[type=number].tiny,
+.llms-widget input[type=email].tiny,
+.llms-widget input[type=url].tiny,
+.llms-widget input[type=search].tiny,
+.llms-widget input[type=tel].tiny,
+.llms-widget input[type=color].tiny,
+.llms-widget select.tiny,
+.llms-widget textarea.tiny {
+ width: 10%;
+ }
+}
+@media only screen and (min-width: 1030px) {
+ /******************************************************************
+
+ Desktop Stylesheet
+
+ ******************************************************************/
+ .llms-nav-tab {
+ display: inline-block;
+ width: 33.333%;
+ }
+ .llms-nav-tab-settings {
+ display: inline-block;
+ width: 25%;
+ }
+ #llms-form-wrapper .llms-select {
+ display: inline-block;
+ width: 47.5%;
+ }
+ #llms-form-wrapper .llms-select:first-child {
+ margin-left: 5%;
+ }
+ #llms-form-wrapper .llms-filter-options {
+ display: inline-block;
+ width: 47.5%;
+ }
+ #llms-form-wrapper .llms-filter-options.date-filter {
+ margin-left: 5%;
+ }
+ #llms-form-wrapper .llms-filter-options .llms-date-select {
+ margin-bottom: 0;
+ }
+ #llms-form-wrapper .llms-date-select {
+ width: 47.5%;
+ }
+ #llms-form-wrapper .llms-date-select:first-child {
+ margin-left: 5%;
+ }
+ .llms-widget-row:before, .llms-widget-row:after {
+ content: " ";
+ display: table;
+ }
+ .llms-widget-row:after {
+ clear: both;
+ }
+ .llms-widget-row .llms-widget-1-5 {
+ vertical-align: top;
+ width: 20%;
+ float: right;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0 5px;
+ }
+ .llms-widget-row .llms-widget-1-4 {
+ vertical-align: top;
+ width: 25%;
+ float: right;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0 5px;
+ }
+ .llms-widget-row .llms-widget-1-3 {
+ width: 33.3%;
+ float: right;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0 5px;
+ }
+ .llms-widget-row .llms-widget-1-2 {
+ width: 50%;
+ float: right;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0 5px;
+ vertical-align: top;
+ }
+}
+@media only screen and (min-width: 1240px) {
+ /******************************************************************
+
+ large Monitor Stylesheet
+
+ ******************************************************************/
+ .llms-nav-tab-filters,
+.llms-nav-tab-settings {
+ float: right;
+ width: 12.5%;
+ }
+}
+.wrap.lifterlms {
+ margin-top: 0;
+}
+
+.llms-header {
+ background-color: #FFF;
+ margin: 0 -20px 0 0;
+ padding: 20px 10px;
+ position: relative;
+ z-index: 1;
+}
+.llms-header .llms-inside-wrap {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ padding: 0 10px;
+}
+.llms-header .lifterlms-logo {
+ -webkit-box-flex: 0;
+ -ms-flex: 0 0 190px;
+ flex: 0 0 190px;
+ max-height: 52px;
+ margin-left: 10px;
+}
+.llms-header .llms-meta {
+ -ms-flex-item-align: center;
+ align-self: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ font-size: 16px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ line-height: 1.5;
+}
+.llms-header .llms-meta .llms-version {
+ background-color: #1d2327;
+ color: #FFF;
+ border-radius: 999px;
+ font-size: 13px;
+ font-weight: 700;
+ padding: 6px 12px;
+}
+.llms-header .llms-meta a {
+ display: inline-block;
+}
+.llms-header .llms-meta .llms-license {
+ border-left: 1px solid #CCC;
+ font-weight: 700;
+ margin-left: 12px;
+ padding-left: 12px;
+}
+.llms-header .llms-meta .llms-license a {
+ text-decoration: none;
+}
+.llms-header .llms-meta .llms-license a:before {
+ content: "\f534";
+ display: inline-block;
+ font: 400 16px/1 dashicons;
+ right: 0;
+ padding-left: 3px;
+ position: relative;
+ text-decoration: none;
+ vertical-align: text-bottom;
+}
+.llms-header .llms-meta .llms-license a.llms-license-none {
+ color: #888;
+}
+.llms-header .llms-meta .llms-license a.llms-license-none:before {
+ content: "\f335";
+}
+.llms-header .llms-meta .llms-license a.llms-license-active {
+ color: #008a20;
+}
+.llms-header .llms-meta .llms-license a.llms-license-active:before {
+ content: "\f112";
+}
+.llms-header .llms-meta .llms-support {
+ font-weight: 700;
+}
+.llms-header .llms-meta .llms-support a {
+ color: #1d2327;
+ text-decoration: none;
+}
+
+.llms-subheader {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ margin-right: -20px;
+ padding: 10px 20px;
+ width: 100%;
+ z-index: 1;
+}
+.llms-subheader h1 {
+ font-weight: 700;
+ padding: 0;
+}
+.llms-subheader h1 a {
+ color: inherit;
+ text-decoration: none;
+}
+
+#post_course_difficulty {
+ min-width: 200px;
+}
+
+#_video-embed, #_audio-embed {
+ width: 100%;
+}
+
+hr {
+ background-color: #CCC;
+ border: none;
+ height: 1px;
+ margin: 30px 0;
+ padding: 0;
+}
+
+.llms_certificate_default_image, .llms_certificate_image {
+ width: 300px;
+}
+
+.llms_achievement_default_image, .llms_achievement_image {
+ width: 120px;
+}
+
+div[id^=lifterlms-] .inside {
+ overflow: visible;
+}
+
+.notice.llms-admin-notice {
+ background-color: #FFF;
+ border: 1px solid #ccd0d4;
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ padding: 0 !important;
+ position: relative;
+}
+.notice.llms-admin-notice .notice-dismiss {
+ text-decoration: none;
+}
+.notice.llms-admin-notice.notice-warning {
+ border-right: 4px solid #F8954F;
+}
+.notice.llms-admin-notice.notice-warning .llms-admin-notice-icon {
+ background-color: #FEF4ED;
+}
+.notice.llms-admin-notice.notice-info {
+ border-right: 4px solid #466DD8;
+}
+.notice.llms-admin-notice.notice-info h3 {
+ color: #466DD8;
+}
+.notice.llms-admin-notice.notice-info .llms-admin-notice-icon {
+ background-color: #EDF0FB;
+}
+.notice.llms-admin-notice.notice-success {
+ border-right: 4px solid #18A957;
+}
+.notice.llms-admin-notice.notice-success h3 {
+ color: #18A957;
+}
+.notice.llms-admin-notice.notice-success .llms-admin-notice-icon {
+ background-color: #E8F6EE;
+}
+.notice.llms-admin-notice.notice-error {
+ border-right: 4px solid #DF1642;
+}
+.notice.llms-admin-notice.notice-error h3 {
+ color: #9C0F2E;
+}
+.notice.llms-admin-notice.notice-error .llms-admin-notice-icon {
+ background-color: #FCE8EC;
+}
+.notice.llms-admin-notice .llms-admin-notice-icon {
+ background-image: url(../../assets/images/lifterlms-icon-color.png);
+ background-position: center center;
+ background-repeat: no-repeat;
+ background-size: 30px;
+ min-width: 70px;
+}
+.notice.llms-admin-notice .llms-admin-notice-content {
+ color: #111;
+ padding: 20px;
+}
+.notice.llms-admin-notice h3 {
+ font-size: 18px;
+ font-weight: 700;
+ line-height: 25px;
+ margin: 0 0 15px 0;
+}
+.notice.llms-admin-notice button,
+.notice.llms-admin-notice .llms-button-primary {
+ display: inline-block;
+}
+.notice.llms-admin-notice p {
+ font-size: 14px;
+ line-height: 22px;
+ margin: 0 0 15px 0;
+ max-width: 65em;
+ padding: 0;
+}
+.notice.llms-admin-notice p:last-of-type {
+ margin-bottom: 0;
+}
+
+.llms-button-action.small .dashicons,
+.llms-button-danger.small .dashicons,
+.llms-button-primary.small .dashicons,
+.llms-button-secondary.small .dashicons {
+ font-size: 13px;
+ height: 13px;
+ width: 13px;
+}
+.llms-button-action:hover,
+.llms-button-danger:hover,
+.llms-button-primary:hover,
+.llms-button-secondary:hover {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+a.llms-view-as {
+ line-height: 2;
+ margin-left: 8px;
+}
+
+.llms-image-field-preview {
+ max-height: 80px;
+ vertical-align: middle;
+ width: auto;
+}
+
+.llms-image-field-remove.hidden {
+ display: none;
+}
+
+.llms-log-viewer {
+ background: #fff;
+ border: 1px solid #e5e5e5;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
+ margin: 20px 0;
+ padding: 25px;
+}
+.llms-log-viewer pre {
+ font-family: monospace;
+ margin: 0;
+ padding: 0;
+ white-space: pre-wrap;
+}
+
+.llms-status--tools .llms-table {
+ background: #fff;
+ border: 1px solid #e5e5e5;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
+}
+.llms-status--tools .llms-table td, .llms-status--tools .llms-table th {
+ padding: 10px;
+ vertical-align: top;
+}
+.llms-status--tools .llms-table th {
+ width: 28%;
+}
+.llms-status--tools .llms-table p {
+ margin: 0 0 10px;
+}
+
+.llms-error {
+ color: #bb231c;
+ font-style: italic;
+}
+
+.llms-rating-stars {
+ color: #ffb900;
+ text-decoration: none;
+}
+
+@media screen and (max-width: 782px) {
+ .llms-header {
+ top: 46px;
+ }
+ .llms-header .llms-inside-wrap {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ gap: 20px;
+ }
+ .llms-header .llms-inside-wrap .lifterlms-logo {
+ -ms-flex-item-align: center;
+ align-self: center;
+ -webkit-box-flex: inherit;
+ -ms-flex: inherit;
+ flex: inherit;
+ max-height: initial;
+ max-width: 200px;
+ }
+ .llms-header .llms-inside-wrap .llms-meta {
+ -webkit-column-gap: 10px;
+ -moz-column-gap: 10px;
+ column-gap: 10px;
+ }
+}
+.llms-table-wrap {
+ position: relative;
+}
+
+.llms-table-header {
+ padding: 0;
+}
+.llms-table-header:before, .llms-table-header:after {
+ content: " ";
+ display: table;
+}
+.llms-table-header:after {
+ clear: both;
+}
+.llms-table-header h2 {
+ font-size: 20px;
+ padding: 0;
+ display: inline-block;
+ line-height: 1.5;
+ margin: 0 0 20px 0;
+ vertical-align: middle;
+}
+.llms-table-header .llms-table-search,
+.llms-table-header .llms-table-filters {
+ float: left;
+ padding-right: 10px;
+}
+.llms-table-header .llms-table-search input {
+ margin: 0;
+ padding: 0 8px;
+}
+
+.llms-table {
+ border: 1px solid #c3c4c7;
+ border-collapse: collapse;
+ width: 100%;
+}
+.llms-table a:not(.small) {
+ color: #466dd8;
+}
+.llms-table a:not(.small):hover {
+ color: #2b55cb;
+}
+.llms-table td, .llms-table th {
+ border-bottom: 1px solid #c3c4c7;
+ padding: 10px 12px;
+ text-align: center;
+}
+.llms-table td.expandable.closed, .llms-table th.expandable.closed {
+ display: none;
+}
+.llms-table td .llms-button-primary,
+.llms-table td .llms-button-secondary,
+.llms-table td .llms-button-action,
+.llms-table td .llms-button-danger, .llms-table th .llms-button-primary,
+.llms-table th .llms-button-secondary,
+.llms-table th .llms-button-action,
+.llms-table th .llms-button-danger {
+ display: inline-block;
+}
+.llms-table tr.llms-quiz-pending td {
+ font-weight: 700;
+}
+.llms-table thead th,
+.llms-table tfoot th {
+ background-color: #FFF;
+ font-weight: 700;
+}
+.llms-table thead th a.llms-sortable,
+.llms-table tfoot th a.llms-sortable {
+ padding-left: 16px;
+ position: relative;
+ text-decoration: none;
+ width: 100%;
+}
+.llms-table thead th a.llms-sortable.active[data-order=DESC] .asc,
+.llms-table tfoot th a.llms-sortable.active[data-order=DESC] .asc {
+ opacity: 1;
+}
+.llms-table thead th a.llms-sortable.active[data-order=ASC] .desc,
+.llms-table tfoot th a.llms-sortable.active[data-order=ASC] .desc {
+ opacity: 1;
+}
+.llms-table thead th a.llms-sortable:hover[data-order=DESC] .asc,
+.llms-table tfoot th a.llms-sortable:hover[data-order=DESC] .asc {
+ opacity: 0;
+}
+.llms-table thead th a.llms-sortable:hover[data-order=DESC] .desc,
+.llms-table tfoot th a.llms-sortable:hover[data-order=DESC] .desc {
+ opacity: 1;
+}
+.llms-table thead th a.llms-sortable:hover[data-order=ASC] .asc,
+.llms-table tfoot th a.llms-sortable:hover[data-order=ASC] .asc {
+ opacity: 1;
+}
+.llms-table thead th a.llms-sortable:hover[data-order=ASC] .desc,
+.llms-table tfoot th a.llms-sortable:hover[data-order=ASC] .desc {
+ opacity: 0;
+}
+.llms-table thead th a.llms-sortable .dashicons,
+.llms-table tfoot th a.llms-sortable .dashicons {
+ color: #444;
+ font-size: 16px;
+ height: 16px;
+ opacity: 0;
+ position: absolute;
+ width: 16px;
+}
+.llms-table tfoot th {
+ border-bottom: none;
+}
+.llms-table tfoot th .llms-table-export {
+ float: right;
+}
+.llms-table tfoot th .llms-table-export .llms-table-progress {
+ background: #efefef;
+ display: none;
+ margin-right: 8px;
+ vertical-align: middle;
+ width: 100px;
+}
+.llms-table tfoot th .llms-clear-resumable-attempts {
+ float: right;
+}
+.llms-table tfoot th .llms-table-pagination {
+ float: left;
+}
+.llms-table.zebra tbody tr:nth-child(even) th, .llms-table.zebra tbody tr:nth-child(even) td {
+ background-color: #fff;
+}
+.llms-table.zebra tbody tr:nth-child(odd) th, .llms-table.zebra tbody tr:nth-child(odd) td {
+ background-color: #f6f7f7;
+}
+.llms-table.text-left td, .llms-table.text-left th {
+ text-align: right;
+}
+.llms-table.size-large td, .llms-table.size-large th {
+ font-size: 14px;
+ padding: 10px 12px;
+}
+.llms-table .llms-drag-handle {
+ color: #777;
+ cursor: pointer;
+ -webkit-transition: color 0.4s ease;
+ transition: color 0.4s ease;
+}
+.llms-table .llms-action-icon {
+ color: #777;
+ text-decoration: none;
+}
+.llms-table .llms-action-icon .tooltip {
+ cursor: pointer;
+}
+.llms-table .llms-action-icon:hover {
+ color: #466dd8;
+}
+.llms-table .llms-action-icon.danger:hover {
+ color: #bb231c;
+}
+.llms-table .llms-table-page-count {
+ font-size: 12px;
+ padding: 0 5px;
+}
+
+.llms-table-progress {
+ text-align: center;
+}
+.llms-table-progress .llms-table-progress-bar {
+ background: #eee;
+ border-radius: 10px;
+ height: 16px;
+ overflow: hidden;
+ position: relative;
+}
+.llms-table-progress .llms-table-progress-bar .llms-table-progress-inner {
+ background: #466dd8;
+ height: 100%;
+ -webkit-transition: width 0.2s ease;
+ transition: width 0.2s ease;
+}
+.llms-table-progress .llms-table-progress-text {
+ color: #466dd8;
+ font-size: 12px;
+ font-weight: 700;
+ line-height: 16px;
+}
+
+.llms-table.llms-gateway-table .status .fa,
+.llms-table.llms-integrations-table .status .fa {
+ color: #466dd8;
+ font-size: 22px;
+}
+.llms-table.llms-gateway-table .sort,
+.llms-table.llms-integrations-table .sort {
+ cursor: move;
+ text-align: center;
+ width: 10px;
+}
+
+.llms-gb-table-notifications th, .llms-gb-table-notifications td {
+ text-align: right;
+}
+
+.llms-order-note .llms-order-note-content {
+ background: #efefef;
+ margin-bottom: 10px;
+ padding: 10px;
+ position: relative;
+}
+.llms-order-note .llms-order-note-content:after {
+ border-style: solid;
+ border-color: #efefef transparent;
+ border-width: 10px 0 0 10px;
+ bottom: -10px;
+ content: "";
+ display: block;
+ height: 0;
+ right: 20px;
+ position: absolute;
+ width: 0;
+}
+.llms-order-note .llms-order-note-content p {
+ font-size: 13px;
+ margin: 0;
+ line-height: 1.5;
+}
+.llms-order-note .llms-order-note-meta {
+ color: #999;
+ font-size: 11px;
+ margin-right: 10px;
+}
+
+.llms-mb-list label {
+ font-size: 15px;
+ font-weight: 700;
+ line-height: 1.5;
+ display: block;
+ width: 100%;
+}
+.llms-mb-list .description {
+ margin-bottom: 8px;
+}
+.llms-mb-list .input-full {
+ width: 100%;
+}
+
+#poststuff .llms-metabox h2, #poststuff .llms-metabox h3, #poststuff .llms-metabox h4, #poststuff .llms-metabox h6 {
+ margin: 0;
+ padding: 0;
+}
+#poststuff .llms-metabox h2 {
+ font-size: 18px;
+ font-weight: 700;
+}
+#poststuff .llms-metabox h3 {
+ color: #1e1e1e;
+ font-size: 16px;
+}
+#poststuff .llms-metabox h4 {
+ color: #1e1e1e;
+ font-size: 16px;
+ line-height: 1.5;
+ padding: 0;
+ margin: 0;
+}
+#poststuff .llms-metabox h4:not(.llms-collapsible-body h4:first-of-type) {
+ margin-top: 20px;
+}
+#poststuff .llms-metabox .llms-transaction-test-mode {
+ background: #ffffd7;
+ font-style: italic;
+ right: 0;
+ padding: 2px;
+ position: absolute;
+ left: 0;
+ top: 0;
+ text-align: center;
+}
+#poststuff .llms-metabox a.llms-editable,
+#poststuff .llms-metabox .llms-metabox-icon,
+#poststuff .llms-metabox button.llms-editable {
+ color: #999;
+ text-decoration: none;
+}
+#poststuff .llms-metabox a.llms-editable:hover,
+#poststuff .llms-metabox .llms-metabox-icon:hover,
+#poststuff .llms-metabox button.llms-editable:hover {
+ color: #466dd8;
+}
+#poststuff .llms-metabox button.llms-editable {
+ border: none;
+ background: none;
+ cursor: pointer;
+ padding: 0;
+ vertical-align: top;
+}
+#poststuff .llms-metabox h4 button.llms-editable {
+ float: left;
+}
+#poststuff .llms-metabox .llms-table {
+ margin-top: 10px;
+}
+#poststuff .llms-metabox button.llms-button-primary {
+ border-radius: 8px;
+ font-size: 16px;
+ font-weight: 700;
+ height: auto;
+}
+
+.llms-metabox-section {
+ background: #fff;
+ margin-top: 25px;
+ position: relative;
+ /* Fixes to tighten the space between tinymce editor and label */
+}
+.llms-metabox-section.no-top-margin {
+ margin-top: 0;
+}
+.llms-metabox-section .llms-metabox-field {
+ margin: 5px 0;
+ position: relative;
+}
+.llms-metabox-section .llms-metabox-field label {
+ color: #1e1e1e;
+ display: block;
+ margin-bottom: 5px;
+ font-size: 14px;
+ font-weight: 400;
+}
+.llms-metabox-section .llms-metabox-field select,
+.llms-metabox-section .llms-metabox-field textarea,
+.llms-metabox-section .llms-metabox-field input[type=text],
+.llms-metabox-section .llms-metabox-field input[type=number] {
+ width: 100%;
+}
+.llms-metabox-section .llms-metabox-field input.md-text {
+ width: 105px;
+}
+.llms-metabox-section .llms-metabox-field input.sm-text {
+ width: 45px;
+}
+.llms-metabox-section .llms-metabox-field .llms-datetime-field .llms-date-input {
+ width: 95px;
+}
+.llms-metabox-section .llms-metabox-field .llms-datetime-field .llms-time-input {
+ width: 45px;
+}
+.llms-metabox-section .llms-metabox-field .llms-datetime-field em {
+ font-style: normal;
+ padding: 0 3px;
+}
+.llms-metabox-section .llms-metabox-field .select2-container--default .select2-search--inline .select2-search__field {
+ min-height: auto;
+}
+.llms-metabox-section .llms-metabox-field .select2-container--default .select2-selection--multiple .select2-selection__rendered li {
+ margin-bottom: 0;
+}
+.llms-metabox-section .llms-metabox-field:has(.wp-editor-wrap) label {
+ position: relative;
+ z-index: 5;
+}
+.llms-metabox-section .llms-metabox-field .wp-editor-wrap {
+ margin-top: -30px;
+}
+
+.llms-collapsible {
+ background: #fff;
+ border: 1px solid #efefef;
+ border-radius: 6px;
+ -webkit-box-shadow: -2px 2px 8px rgba(0, 0, 0, 0.08);
+ box-shadow: -2px 2px 8px rgba(0, 0, 0, 0.08);
+ display: block;
+ margin: 0;
+ padding: 0;
+ position: relative;
+ text-align: center;
+ margin-top: 0;
+}
+.llms-collapsible:last-child {
+ margin-bottom: 0;
+}
+.llms-collapsible.opened .llms-collapsible-header .dashicons-arrow-down {
+ display: none;
+}
+.llms-collapsible.opened .llms-collapsible-header .dashicons-arrow-up {
+ display: inline;
+}
+.llms-collapsible .llms-collapsible-header {
+ padding: 15px;
+}
+.llms-collapsible .llms-collapsible-header [class^=d-] {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 5px;
+}
+.llms-collapsible .llms-collapsible-header .d-right {
+ -webkit-box-pack: end;
+ -ms-flex-pack: end;
+ justify-content: flex-end;
+ padding-left: 0;
+}
+.llms-collapsible .llms-collapsible-header h3 {
+ color: #1e1e1e;
+ display: inline;
+ margin: 0;
+ font-size: 16px;
+ font-weight: 700;
+}
+.llms-collapsible .llms-collapsible-header h3 small {
+ font-weight: 400;
+}
+.llms-collapsible .llms-collapsible-header .dashicons-arrow-up {
+ display: inline;
+}
+.llms-collapsible .llms-collapsible-header .dashicons-arrow-up {
+ display: none;
+}
+.llms-collapsible .llms-collapsible-header a {
+ text-decoration: none;
+}
+.llms-collapsible .llms-collapsible-header .dashicons {
+ color: #1e1e1e;
+ cursor: pointer;
+ -webkit-transition: color 0.4s ease;
+ transition: color 0.4s ease;
+}
+.llms-collapsible .llms-collapsible-header .dashicons:hover {
+ color: #466dd8;
+}
+.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning:hover, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-trash:hover, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-no:hover {
+ color: #bb231c;
+}
+.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning.medium-danger, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning.medium-danger:hover {
+ color: #c05621;
+}
+.llms-collapsible .llms-collapsible-body {
+ display: none;
+ padding: 15px;
+}
+
+._llms_instructors_data.repeater .llms-repeater-rows .llms-repeater-row:first-child .llms-repeater-remove {
+ display: none;
+}
+._llms_instructors_data.repeater .llms-mb-list {
+ padding: 0 5px !important;
+}
+
+.post-type-llms_order #post-body-content {
+ display: none;
+}
+
+#lifterlms-order-details .handlediv,
+#lifterlms-order-details .handlediv.button-link,
+#lifterlms-order-details .postbox-header {
+ display: none;
+}
+#lifterlms-order-details .inside {
+ padding: 20px;
+ margin-top: 0;
+}
+
+.llms-table tbody tr.llms-txn-failed td {
+ background-color: rgba(187, 35, 28, 0.5);
+ border-bottom-color: rgba(187, 35, 28, 0.5);
+}
+
+.llms-table tbody tr.llms-txn-refunded td {
+ background-color: rgba(255, 165, 0, 0.5);
+ border-bottom-color: rgba(255, 165, 0, 0.5);
+}
+
+.llms-txn-refund-form .llms-metabox-section,
+.llms-manual-txn-form .llms-metabox-section {
+ margin-top: 0;
+}
+.llms-txn-refund-form .llms-metabox-field,
+.llms-manual-txn-form .llms-metabox-field {
+ text-align: left;
+}
+.llms-txn-refund-form .llms-metabox-field input[type=number],
+.llms-manual-txn-form .llms-metabox-field input[type=number] {
+ max-width: 100px;
+}
+.llms-txn-refund-form .llms-metabox-field input[type=text],
+.llms-manual-txn-form .llms-metabox-field input[type=text] {
+ max-width: 340px;
+}
+
+.llms-manual-txn-form {
+ background-color: #eaeaea;
+}
+.llms-manual-txn-form .llms-metabox-section {
+ background-color: #eaeaea;
+}
+
+#llms-remaining-edit {
+ display: none;
+}
+
+.llms-remaining-edit--content label, .llms-remaining-edit--content span, .llms-remaining-edit--content textarea {
+ display: block;
+}
+.llms-remaining-edit--content label {
+ margin-bottom: 20px;
+}
+.llms-remaining-edit--content textarea, .llms-remaining-edit--content input {
+ width: 100%;
+}
+
+.submitbox .llms-mb-section,
+.llms-award-engagement-submitbox .llms-mb-list {
+ margin-bottom: 12px;
+}
+.submitbox .llms-mb-section:last-of-type,
+.llms-award-engagement-submitbox .llms-mb-list:last-of-type {
+ margin-bottom: 0;
+}
+.sync-action:before, .submitbox .llms-mb-section.student-info:before, .submitbox .llms-mb-section.post_author_override label:before,
+.llms-award-engagement-submitbox .llms-mb-list.student-info:before,
+.llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before {
+ font: normal 20px/1 dashicons;
+ speak: never;
+ display: inline-block;
+ margin-right: -1px;
+ padding-left: 3px;
+ vertical-align: top;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ position: relative;
+ top: -1px;
+ color: #8c8f94;
+}
+body:not(.admin-color-fresh) .sync-action:before, body:not(.admin-color-fresh) .submitbox .llms-mb-section.student-info:before, body:not(.admin-color-fresh) .submitbox .llms-mb-section.post_author_override label:before,
+body:not(.admin-color-fresh) .llms-award-engagement-submitbox .llms-mb-list.student-info:before,
+body:not(.admin-color-fresh) .llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before {
+ color: currentColor;
+}
+
+.submitbox .llms-mb-section.student-info:before, .submitbox .llms-mb-section.post_author_override label:before,
+.llms-award-engagement-submitbox .llms-mb-list.student-info:before,
+.llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before {
+ content: "\f110";
+}
+.sync-action:before {
+ content: "\f113";
+ color: white;
+}
+
+.submitbox .llms-mb-section.post_author_override label,
+.llms-award-engagement-submitbox .llms-mb-list.post_author_override label {
+ display: inline-block;
+ width: auto;
+}
+
+.llms-metabox > p:first-child {
+ margin-top: 0;
+}
+.llms-metabox #llms-new-access-plan-model {
+ display: none;
+}
+.llms-metabox .llms-access-plans {
+ color: #1e1e1e;
+}
+.llms-metabox .llms-access-plans > .llms-no-plans-msg {
+ display: none;
+}
+.llms-metabox .llms-access-plans > .llms-no-plans-msg .notice {
+ margin-left: 0;
+ margin-right: 0;
+}
+.llms-metabox .llms-access-plans > .llms-no-plans-msg:last-child {
+ display: block;
+}
+.llms-metabox .llms-access-plans.dragging {
+ background: #efefef;
+ -webkit-box-shadow: inset 0 0 0 1px #e5e5e5;
+ box-shadow: inset 0 0 0 1px #e5e5e5;
+}
+.llms-metabox .llms-access-plans .llms-spinning {
+ z-index: 1;
+}
+.llms-metabox .llms-access-plans .llms-invalid {
+ border-color: #bb231c;
+}
+.llms-metabox .llms-access-plans .llms-invalid .dashicons-warning {
+ display: inline;
+}
+.llms-metabox .llms-access-plans .llms-needs-attention .dashicons-warning.medium-danger {
+ display: inline;
+}
+.llms-metabox .llms-access-plans .dashicons-warning {
+ display: none;
+}
+.llms-metabox .llms-access-plan {
+ margin-bottom: 20px;
+ text-align: right;
+}
+.llms-metabox .llms-access-plan [data-tip]:before {
+ text-align: center;
+}
+.llms-metabox .llms-access-plan .llms-plan-link,
+.llms-metabox .llms-access-plan [data-controller] {
+ display: none;
+}
+.llms-metabox .llms-access-plan:hover .llms-plan-link, .llms-metabox .llms-access-plan.opened .llms-plan-link {
+ display: inline-block;
+}
+.llms-metabox .llms-access-plan .llms-metabox-field {
+ margin: 15px 0;
+}
+.llms-metabox .llms-access-plan .llms-required {
+ color: #bb231c;
+ margin-right: 3px;
+}
+.llms-metabox .llms-access-plan .notice {
+ margin-right: 0;
+}
+
+.llms-metabox-students .llms-table tr .name {
+ text-align: right;
+}
+.llms-metabox-students .llms-add-student:hover {
+ color: #4d8d3c;
+}
+.llms-metabox-students .llms-remove-student:hover {
+ color: #bb231c;
+}
+
+.llms-mb-container .tab-content ul:not(.select2-selection__rendered).llms-mb-repeater-fields > li.llms-mb-list {
+ border-bottom: none;
+ padding: 0 0 10px;
+}
+
+.llms-mb-list.repeater .llms-repeater-rows {
+ position: relative;
+ margin-top: 10px;
+ min-height: 10px;
+}
+.llms-mb-list.repeater .llms-repeater-rows.dragging {
+ background: #efefef;
+ -webkit-box-shadow: inset 0 0 0 1px #e5e5e5;
+ box-shadow: inset 0 0 0 1px #e5e5e5;
+}
+.llms-mb-list.repeater .llms-repeater-row {
+ background: #fff;
+}
+.llms-mb-list.repeater .llms-mb-repeater-footer {
+ text-align: left;
+ margin-top: 20px;
+}
+.llms-mb-list.repeater .tmce-active .wp-editor-area {
+ color: #32373c;
+}
+
+.llms-builder-launcher p {
+ margin-top: 0;
+}
+.llms-builder-launcher ol {
+ margin-top: -6px;
+}
+.llms-builder-launcher .llms-button-primary {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.wp-list-table .llms-status {
+ border-radius: 6px;
+ display: inline-block;
+ font-size: 13px;
+ font-weight: 700;
+ line-height: 1.4;
+ padding: 2px 6px;
+ vertical-align: middle;
+}
+.wp-list-table .llms-status.llms-size--large {
+ font-size: 105%;
+ padding: 6px 12px;
+}
+.wp-list-table .llms-status.llms-active, .wp-list-table .llms-status.llms-completed, .wp-list-table .llms-status.llms-pass, .wp-list-table .llms-status.llms-txn-succeeded {
+ color: #4d8d3c;
+ background-color: rgba(77, 141, 60, 0.15);
+}
+.wp-list-table .llms-status.llms-fail, .wp-list-table .llms-status.llms-failed, .wp-list-table .llms-status.llms-expired, .wp-list-table .llms-status.llms-cancelled, .wp-list-table .llms-status.llms-txn-failed {
+ color: #bb231c;
+ background-color: rgba(187, 35, 28, 0.15);
+}
+.wp-list-table .llms-status.llms-incomplete, .wp-list-table .llms-status.llms-on-hold, .wp-list-table .llms-status.llms-pending, .wp-list-table .llms-status.llms-pending-cancel, .wp-list-table .llms-status.llms-refunded, .wp-list-table .llms-status.llms-txn-pending, .wp-list-table .llms-status.llms-txn-refunded {
+ color: #c05621;
+ background-color: rgba(192, 86, 33, 0.15);
+}
+
+#lifterlms-order-transactions .llms-table tfoot th {
+ text-align: left;
+}
+
+.llms-post-table-post-filter {
+ display: inline-block;
+ margin-left: 6px;
+ max-width: 100%;
+ width: 220px;
+}
+
+.llms-nav-tab-wrapper {
+ background: #466dd8;
+ margin: 20px 0;
+}
+.llms-nav-tab-wrapper.llms-nav-secondary {
+ background: #e1e1e1;
+}
+.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item {
+ margin: 0;
+}
+.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover, .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {
+ background: #cdcdcd;
+}
+.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link {
+ color: #414141;
+ font-size: 15px;
+ padding: 8px 14px;
+}
+.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link .dashicons {
+ font-size: 15px;
+ height: 15px;
+ width: 15px;
+}
+.llms-nav-tab-wrapper.llms-nav-text {
+ background: inherit;
+}
+.llms-nav-tab-wrapper.llms-nav-text .llms-nav-items {
+ padding-right: 0;
+}
+.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item {
+ background: inherit;
+ color: #646970;
+}
+.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item:last-child:after {
+ display: none;
+}
+.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item:after {
+ content: "|";
+ display: inline-block;
+ margin: 0 6px 0 8px;
+}
+.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item .llms-nav-link:hover {
+ background: inherit;
+ color: #466dd8;
+}
+.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item.llms-active .llms-nav-link {
+ background: inherit;
+ color: #000;
+ font-weight: 600;
+ text-decoration: none;
+}
+.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item .llms-nav-link {
+ color: #466dd8;
+ display: inline-block;
+ letter-spacing: 0;
+ margin: 0;
+ padding: 0;
+ text-decoration: underline;
+ text-transform: none;
+}
+.llms-nav-tab-wrapper.llms-nav-style-tabs {
+ background-color: #1c3987;
+ margin: 0;
+ padding-top: 8px;
+}
+.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item {
+ margin: 0 3px;
+}
+.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item .llms-nav-link {
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+}
+.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item.llms-active .llms-nav-link {
+ background-color: #FFF;
+ color: #466dd8;
+ font-weight: 700;
+}
+.llms-nav-tab-wrapper.llms-nav-style-filters {
+ background-color: #466dd8;
+ border-radius: 12px;
+ margin: 20px 0;
+ overflow: hidden;
+ padding: 0;
+}
+.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ padding-right: 0;
+}
+@media only screen and (min-width: 782px) {
+ .llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ }
+}
+.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items .llms-nav-item {
+ float: none;
+}
+.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items .llms-nav-item .llms-nav-link {
+ padding: 14px;
+}
+.llms-nav-tab-wrapper .llms-nav-items {
+ margin: 0;
+ padding-right: 10px;
+}
+.llms-nav-tab-wrapper .llms-nav-items:before, .llms-nav-tab-wrapper .llms-nav-items:after {
+ content: " ";
+ display: table;
+}
+.llms-nav-tab-wrapper .llms-nav-items:after {
+ clear: both;
+}
+.llms-nav-tab-wrapper .llms-nav-item {
+ margin: 0;
+}
+.llms-nav-tab-wrapper .llms-nav-item .llms-nav-link:hover {
+ background: #466dd8;
+}
+.llms-nav-tab-wrapper .llms-nav-item.llms-active .llms-nav-link {
+ background: #1c3987;
+}
+.llms-nav-tab-wrapper .llms-nav-item.llms-active .llms-nav-link {
+ font-weight: 400;
+}
+@media only screen and (min-width: 768px) {
+ .llms-nav-tab-wrapper .llms-nav-item {
+ float: right;
+ }
+ .llms-nav-tab-wrapper .llms-nav-item.llms-nav-item-right {
+ float: left;
+ }
+}
+.llms-nav-tab-wrapper .llms-nav-link {
+ color: #fff;
+ cursor: pointer;
+ display: block;
+ font-weight: 400;
+ font-size: 15px;
+ padding: 9px 18px;
+ text-align: center;
+ text-decoration: none;
+ -webkit-transition: all 0.3s ease;
+ transition: all 0.3s ease;
+}
+
+#llms-options-page-contents h2 {
+ color: #999;
+ font-weight: 500;
+ letter-spacing: 2px;
+ border-bottom: 1px solid #999;
+}
+
+.llms-reporting.wrap .llms-options-page-contents .llms-nav-tab-wrapper.llms-nav-secondary {
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
+ margin: 0;
+ padding: 0;
+}
+.llms-reporting.wrap .llms-stab-title {
+ color: #1c3987;
+ font-size: 36px;
+ font-weight: 300;
+ margin-bottom: 20px;
+}
+.llms-reporting.wrap td.id a {
+ text-decoration: none;
+}
+.llms-reporting.wrap th.id, .llms-reporting.wrap td.id,
+.llms-reporting.wrap th.name, .llms-reporting.wrap td.name,
+.llms-reporting.wrap th.registered, .llms-reporting.wrap td.registered,
+.llms-reporting.wrap th.last_seen, .llms-reporting.wrap td.last_seen,
+.llms-reporting.wrap th.overall_progress, .llms-reporting.wrap td.overall_progress,
+.llms-reporting.wrap th.title, .llms-reporting.wrap td.title,
+.llms-reporting.wrap th.course, .llms-reporting.wrap td.course,
+.llms-reporting.wrap th.lesson, .llms-reporting.wrap td.lesson {
+ text-align: right;
+}
+.llms-reporting.wrap td.section-title {
+ background: #eaeaea;
+ text-align: right;
+ font-weight: 700;
+ padding: 16px 4px;
+}
+.llms-reporting.wrap td.questions-table {
+ text-align: right;
+}
+.llms-reporting.wrap td.questions-table .correct,
+.llms-reporting.wrap td.questions-table .question,
+.llms-reporting.wrap td.questions-table .selected {
+ text-align: right;
+ max-width: 300px;
+}
+.llms-reporting.wrap td.questions-table .correct img,
+.llms-reporting.wrap td.questions-table .question img,
+.llms-reporting.wrap td.questions-table .selected img {
+ height: auto;
+ max-width: 64px;
+}
+.llms-reporting.wrap table.quiz-attempts {
+ margin-bottom: 40px;
+}
+.llms-reporting.wrap.tab--students .llms-options-page-contents #llms-award-certificate-wrapper .components-button.is-secondary {
+ background: #e1e1e1;
+ border-radius: 8px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: #414141;
+ font-size: 13px;
+ font-weight: 700;
+ height: auto;
+ padding: 8px 14px;
+}
+.llms-reporting.wrap.tab--enrollments .llms-nav-tab-wrapper.llms-nav-secondary, .llms-reporting.wrap.tab--sales .llms-nav-tab-wrapper.llms-nav-secondary {
+ margin-bottom: 0;
+}
+.llms-reporting.wrap.tab--enrollments .llms-options-page-contents, .llms-reporting.wrap.tab--sales .llms-options-page-contents {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ background: none;
+ margin-top: 20px;
+ padding: 0;
+}
+.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -ms-flex-item-align: center;
+ align-self: center;
+ color: #FFF;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ font-size: 13px;
+ gap: 5px;
+}
+.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form label, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form label {
+ font-weight: 700;
+}
+.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form input, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form input {
+ border: 0;
+ font-size: 13px;
+ margin: 0;
+ padding: 0 4px;
+ vertical-align: middle;
+ width: 110px;
+}
+.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form .select2-container input, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form .select2-container input {
+ width: 100% !important;
+}
+.llms-reporting.wrap.tab--enrollments .button.small, .llms-reporting.wrap.tab--sales .button.small {
+ height: 23px;
+ line-height: 23px;
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters, .llms-reporting.wrap.tab--sales .llms-analytics-filters {
+ display: none;
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-inside-wrap, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-inside-wrap {
+ background-color: #FFF;
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ margin: -20px 10px 20px 10px;
+ padding: 20px;
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-items, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-items {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ gap: 20px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ margin: 0;
+}
+@media only screen and (min-width: 782px) {
+ .llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-items, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-items {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ }
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item label, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item label {
+ display: block;
+ font-weight: 700;
+ margin: 0 0 5px 0;
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item .select2-selection__rendered, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item .select2-selection__rendered {
+ word-wrap: break-word;
+ text-overflow: inherit;
+ white-space: normal;
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters p, .llms-reporting.wrap.tab--sales .llms-analytics-filters p {
+ margin: 0;
+ text-align: left;
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters p .llms-button-primary, .llms-reporting.wrap.tab--sales .llms-analytics-filters p .llms-button-primary {
+ display: inline-block;
+}
+.llms-reporting.wrap .llms-reporting-tab.llms-reporting-quiz .llms-table-filter-wrap {
+ width: 160px;
+}
+.llms-reporting.wrap .llms-table-header form {
+ display: inline;
+}
+.llms-reporting.wrap .llms-table-header .button {
+ margin-right: 5px;
+}
+
+.llms-charts-wrapper {
+ background-color: #FFF;
+ border: 1px solid #dedede;
+ border-radius: 12px;
+ -webkit-box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
+ box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
+ padding: 20px;
+}
+
+.llms-reporting-tab h1, .llms-reporting-tab h2, .llms-reporting-tab h3, .llms-reporting-tab h4, .llms-reporting-tab h5, .llms-reporting-tab h6 {
+ margin: 0;
+}
+.llms-reporting-tab h1 a, .llms-reporting-tab h2 a, .llms-reporting-tab h3 a, .llms-reporting-tab h4 a, .llms-reporting-tab h5 a, .llms-reporting-tab h6 a {
+ color: #466dd8;
+ text-decoration: none;
+}
+.llms-reporting-tab h1 a:hover, .llms-reporting-tab h2 a:hover, .llms-reporting-tab h3 a:hover, .llms-reporting-tab h4 a:hover, .llms-reporting-tab h5 a:hover, .llms-reporting-tab h6 a:hover {
+ color: #466dd8;
+}
+.llms-reporting-tab h2 {
+ font-size: 22px;
+ line-height: 1.5;
+}
+.llms-reporting-tab h2.llms-table-title {
+ margin-bottom: 20px;
+}
+.llms-reporting-tab h5 {
+ font-size: 15px;
+ line-height: 1.5;
+}
+.llms-reporting-tab .llms-reporting-body {
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ margin: 20px auto;
+ padding: 0;
+}
+.llms-reporting-tab .llms-reporting-body .llms-reporting-stab {
+ padding: 30px;
+}
+.llms-reporting-tab .llms-reporting-body .llms-reporting-stab .llms-table-header {
+ margin: 0;
+}
+.llms-reporting-tab .llms-reporting-body .llms-gb-tab {
+ padding: 30px;
+}
+.llms-reporting-tab .llms-reporting-body .llms-reporting-header {
+ padding: 30px;
+ margin: 0;
+}
+.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-img {
+ border-radius: 50%;
+ display: inline-block;
+ margin-left: 10px;
+ overflow: hidden;
+ vertical-align: middle;
+}
+.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-img img {
+ display: block;
+ max-height: 64px;
+ width: auto;
+}
+.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-info {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.llms-reporting-breadcrumbs {
+ margin: 0;
+ padding: 0;
+}
+.llms-reporting-breadcrumbs a {
+ color: #466dd8;
+ font-size: 15px;
+ text-decoration: none;
+}
+.llms-reporting-breadcrumbs a:hover {
+ color: #2b55cb;
+}
+.llms-reporting-breadcrumbs a:after {
+ content: " > ";
+ color: #646970;
+}
+.llms-reporting-breadcrumbs a:last-child {
+ color: #000;
+ font-weight: 700;
+}
+.llms-reporting-breadcrumbs a:last-child:after {
+ display: none;
+}
+
+#llms-students-table .name {
+ text-align: right;
+}
+
+.llms-reporting-tab-content {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+}
+.llms-reporting-tab-content > header:before, .llms-reporting-tab-content > header:after {
+ content: " ";
+ display: table;
+}
+.llms-reporting-tab-content > header:after {
+ clear: both;
+}
+.llms-reporting-tab-content h3 {
+ margin-bottom: 20px;
+}
+.llms-reporting-tab-content .llms-reporting-tab-filter {
+ float: left;
+ position: relative;
+ margin-left: 0.75em;
+ width: 180px;
+ top: -3px;
+}
+.llms-reporting-tab-content .llms-reporting-tab-main {
+ -webkit-box-flex: 3;
+ -ms-flex: 3;
+ flex: 3;
+ max-width: 75%;
+}
+.llms-reporting-tab-content .llms-reporting-tab-side {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ margin-right: 20px;
+}
+.llms-reporting-tab-content > .llms-table-wrap {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+}
+
+.llms-reporting-widgets:before, .llms-reporting-widgets:after {
+ content: " ";
+ display: table;
+}
+.llms-reporting-widgets:after {
+ clear: both;
+}
+
+.llms-reporting-widget {
+ border-top: 4px solid #466dd8;
+ background: #fafafa;
+ margin-bottom: 10px;
+ padding: 30px;
+}
+.llms-reporting-widget:before, .llms-reporting-widget:after {
+ content: " ";
+ display: table;
+}
+.llms-reporting-widget:after {
+ clear: both;
+}
+.llms-reporting-widget .fa {
+ color: #999;
+ float: right;
+ font-size: 32px;
+ margin-left: 10px;
+}
+.llms-reporting-widget strong {
+ color: #333;
+ font-size: 20px;
+ line-height: 1.2;
+}
+.llms-reporting-widget.llms-reporting-student-address strong {
+ line-height: 1.1;
+}
+.llms-reporting-widget sup,
+.llms-reporting-widget .llms-price-currency-symbol {
+ font-size: 75%;
+ position: relative;
+ top: -4px;
+ vertical-align: baseline;
+}
+.llms-reporting-widget small {
+ font-size: 13px;
+}
+.llms-reporting-widget small.compare {
+ margin-right: 5px;
+}
+.llms-reporting-widget small.compare.positive {
+ color: #4d8d3c;
+}
+.llms-reporting-widget small.compare.negative {
+ color: #bb231c;
+}
+
+.llms-reporting-event {
+ border-right: 4px solid #555;
+ background: #fafafa;
+ font-size: 11px;
+ line-height: 1.2;
+ margin-bottom: 0.75em;
+ padding: 10px;
+}
+.llms-reporting-event:before, .llms-reporting-event:after {
+ content: " ";
+ display: table;
+}
+.llms-reporting-event:after {
+ clear: both;
+}
+.llms-reporting-event.color--blue {
+ border-right-color: #466dd8;
+}
+.llms-reporting-event.color--green, .llms-reporting-event._enrollment_trigger, .llms-reporting-event._is_complete.yes {
+ border-right-color: #4d8d3c;
+}
+.llms-reporting-event.color--purple, .llms-reporting-event._status.enrolled {
+ border-right-color: #845ef7;
+}
+.llms-reporting-event.color--red, .llms-reporting-event._status.expired, .llms-reporting-event._status.cancelled {
+ border-right-color: #bb231c;
+}
+.llms-reporting-event.color--orange, .llms-reporting-event._achievement_earned, .llms-reporting-event._certificate_earned, .llms-reporting-event._email_sent {
+ border-right-color: #c05621;
+}
+.llms-reporting-event time {
+ color: #888;
+}
+.llms-reporting-event .llms-student-avatar {
+ margin-right: 10px;
+ float: left;
+}
+.llms-reporting-event a {
+ text-decoration: none;
+ color: inherit;
+}
+
+@media only screen and (min-width: 782px) {
+ .llms-reporting.wrap .llms-options-page-contents .llms-nav-tab-wrapper.llms-nav-secondary {
+ margin-right: 0;
+ margin-left: 0;
+ }
+}
+.llms-quiz-attempt-results {
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question {
+ background: #efefef;
+ border-radius: 6px;
+ margin: 0 0 15px;
+ position: relative;
+ list-style-type: none;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer {
+ color: inherit;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 10px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ padding: 15px 15px 15px 35px;
+ text-decoration: none;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct, .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect {
+ background: rgba(192, 86, 33, 0.2);
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon, .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon {
+ background-color: #c05621;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct {
+ background: rgba(77, 141, 60, 0.15);
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon {
+ background-color: #4d8d3c;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect {
+ background: rgba(187, 35, 28, 0.15);
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon {
+ background-color: #bb231c;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question pre {
+ overflow: auto;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title {
+ font-size: 22px;
+ margin: 0;
+ line-height: 1.4;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points {
+ line-height: 1.4;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip {
+ position: absolute;
+ left: -12px;
+ top: -2px;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon {
+ color: rgba(255, 255, 255, 0.65);
+ border-radius: 50%;
+ font-size: 30px;
+ height: 40px;
+ line-height: 40px;
+ text-align: center;
+ width: 40px;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main {
+ display: none;
+ padding: 0 15px 15px;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label {
+ font-weight: 700;
+ margin: 0 0 10px;
+ padding: 0;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers {
+ margin: 0;
+ padding: 0;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {
+ padding: 0;
+ margin: 0 30px 0 0;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child {
+ list-style-type: none;
+ margin-right: 0;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img {
+ height: auto;
+ max-width: 200px;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section {
+ border-top: 2px solid rgba(255, 255, 255, 0.5);
+ margin-top: 20px;
+ padding-top: 20px;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child {
+ border-top: none;
+ margin-top: 0;
+ padding-top: 0;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers, .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer, .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0;
+ padding: 5px;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed {
+ opacity: 0.5;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title {
+ font-style: italic;
+ font-weight: normal;
+}
+
+.wrap.llms-reporting .llms-inside-wrap,
+.wrap.lifterlms-settings .llms-inside-wrap,
+.wrap.llms-status .llms-inside-wrap {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0 auto;
+}
+.wrap.llms-reporting .llms-inside-wrap .llms-nav-text,
+.wrap.lifterlms-settings .llms-inside-wrap .llms-nav-text,
+.wrap.llms-status .llms-inside-wrap .llms-nav-text {
+ margin: 0 auto;
+}
+.wrap.llms-reporting .llms-subheader .llms-save,
+.wrap.lifterlms-settings .llms-subheader .llms-save,
+.wrap.llms-status .llms-subheader .llms-save {
+ -webkit-box-flex: 1;
+ -ms-flex: auto;
+ flex: auto;
+ text-align: left;
+}
+.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary,
+.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary,
+.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary {
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
+ margin: 0 -10px 20px -20px;
+}
+.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items,
+.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items,
+.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {
+ padding-right: 0;
+}
+.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover,
+.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover,
+.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover {
+ background: #f0f0f1;
+ color: #222222;
+}
+.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,
+.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,
+.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {
+ background: #fafafa;
+ color: #466dd8;
+ border-top-color: #466dd8;
+}
+.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,
+.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,
+.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {
+ font-weight: 700;
+}
+.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link,
+.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link,
+.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link {
+ border-top: 2px solid transparent;
+ padding: 14px;
+}
+.wrap.llms-reporting .llms-setting-group,
+.wrap.lifterlms-settings .llms-setting-group,
+.wrap.llms-status .llms-setting-group {
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ margin: 20px auto;
+ padding: 20px;
+}
+.wrap.llms-reporting .llms-setting-group .llms-label,
+.wrap.lifterlms-settings .llms-setting-group .llms-label,
+.wrap.llms-status .llms-setting-group .llms-label {
+ border-bottom: 1px solid #efefef;
+ font-weight: 700;
+ font-size: 20px;
+ padding: 20px;
+ margin: -20px -20px 20px;
+}
+.wrap.llms-reporting .llms-setting-group .llms-label .llms-button-primary,
+.wrap.lifterlms-settings .llms-setting-group .llms-label .llms-button-primary,
+.wrap.llms-status .llms-setting-group .llms-label .llms-button-primary {
+ margin-right: 10px;
+}
+.wrap.llms-reporting .llms-setting-group .llms-help-tooltip .dashicons,
+.wrap.lifterlms-settings .llms-setting-group .llms-help-tooltip .dashicons,
+.wrap.llms-status .llms-setting-group .llms-help-tooltip .dashicons {
+ color: #444;
+ cursor: help;
+}
+.wrap.llms-reporting .llms-setting-group .form-table,
+.wrap.lifterlms-settings .llms-setting-group .form-table,
+.wrap.llms-status .llms-setting-group .form-table {
+ margin: 0;
+}
+.wrap.llms-reporting .llms-setting-group .form-table tr:first-child .llms-subtitle,
+.wrap.lifterlms-settings .llms-setting-group .form-table tr:first-child .llms-subtitle,
+.wrap.llms-status .llms-setting-group .form-table tr:first-child .llms-subtitle {
+ margin-top: 0;
+}
+.wrap.llms-reporting .llms-setting-group td[colspan="2"],
+.wrap.lifterlms-settings .llms-setting-group td[colspan="2"],
+.wrap.llms-status .llms-setting-group td[colspan="2"] {
+ padding-top: 0;
+ padding-right: 0;
+}
+.wrap.llms-reporting .llms-setting-group tr.llms-disabled-field,
+.wrap.lifterlms-settings .llms-setting-group tr.llms-disabled-field,
+.wrap.llms-status .llms-setting-group tr.llms-disabled-field {
+ opacity: 0.5;
+ pointer-events: none;
+}
+.wrap.llms-reporting .llms-setting-group p,
+.wrap.lifterlms-settings .llms-setting-group p,
+.wrap.llms-status .llms-setting-group p {
+ font-size: 14px;
+}
+.wrap.llms-reporting .llms-setting-group input[type=text],
+.wrap.llms-reporting .llms-setting-group input[type=password],
+.wrap.llms-reporting .llms-setting-group input[type=datetime],
+.wrap.llms-reporting .llms-setting-group input[type=datetime-local],
+.wrap.llms-reporting .llms-setting-group input[type=date],
+.wrap.llms-reporting .llms-setting-group input[type=month],
+.wrap.llms-reporting .llms-setting-group input[type=time],
+.wrap.llms-reporting .llms-setting-group input[type=week],
+.wrap.llms-reporting .llms-setting-group input[type=number],
+.wrap.llms-reporting .llms-setting-group input[type=email],
+.wrap.llms-reporting .llms-setting-group input[type=url],
+.wrap.llms-reporting .llms-setting-group input[type=search],
+.wrap.llms-reporting .llms-setting-group input[type=tel],
+.wrap.llms-reporting .llms-setting-group input[type=color],
+.wrap.llms-reporting .llms-setting-group select,
+.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area),
+.wrap.lifterlms-settings .llms-setting-group input[type=text],
+.wrap.lifterlms-settings .llms-setting-group input[type=password],
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime],
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local],
+.wrap.lifterlms-settings .llms-setting-group input[type=date],
+.wrap.lifterlms-settings .llms-setting-group input[type=month],
+.wrap.lifterlms-settings .llms-setting-group input[type=time],
+.wrap.lifterlms-settings .llms-setting-group input[type=week],
+.wrap.lifterlms-settings .llms-setting-group input[type=number],
+.wrap.lifterlms-settings .llms-setting-group input[type=email],
+.wrap.lifterlms-settings .llms-setting-group input[type=url],
+.wrap.lifterlms-settings .llms-setting-group input[type=search],
+.wrap.lifterlms-settings .llms-setting-group input[type=tel],
+.wrap.lifterlms-settings .llms-setting-group input[type=color],
+.wrap.lifterlms-settings .llms-setting-group select,
+.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area),
+.wrap.llms-status .llms-setting-group input[type=text],
+.wrap.llms-status .llms-setting-group input[type=password],
+.wrap.llms-status .llms-setting-group input[type=datetime],
+.wrap.llms-status .llms-setting-group input[type=datetime-local],
+.wrap.llms-status .llms-setting-group input[type=date],
+.wrap.llms-status .llms-setting-group input[type=month],
+.wrap.llms-status .llms-setting-group input[type=time],
+.wrap.llms-status .llms-setting-group input[type=week],
+.wrap.llms-status .llms-setting-group input[type=number],
+.wrap.llms-status .llms-setting-group input[type=email],
+.wrap.llms-status .llms-setting-group input[type=url],
+.wrap.llms-status .llms-setting-group input[type=search],
+.wrap.llms-status .llms-setting-group input[type=tel],
+.wrap.llms-status .llms-setting-group input[type=color],
+.wrap.llms-status .llms-setting-group select,
+.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area) {
+ width: 50%;
+}
+.wrap.llms-reporting .llms-setting-group input[type=text].medium,
+.wrap.llms-reporting .llms-setting-group input[type=password].medium,
+.wrap.llms-reporting .llms-setting-group input[type=datetime].medium,
+.wrap.llms-reporting .llms-setting-group input[type=datetime-local].medium,
+.wrap.llms-reporting .llms-setting-group input[type=date].medium,
+.wrap.llms-reporting .llms-setting-group input[type=month].medium,
+.wrap.llms-reporting .llms-setting-group input[type=time].medium,
+.wrap.llms-reporting .llms-setting-group input[type=week].medium,
+.wrap.llms-reporting .llms-setting-group input[type=number].medium,
+.wrap.llms-reporting .llms-setting-group input[type=email].medium,
+.wrap.llms-reporting .llms-setting-group input[type=url].medium,
+.wrap.llms-reporting .llms-setting-group input[type=search].medium,
+.wrap.llms-reporting .llms-setting-group input[type=tel].medium,
+.wrap.llms-reporting .llms-setting-group input[type=color].medium,
+.wrap.llms-reporting .llms-setting-group select.medium,
+.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=text].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=password].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=date].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=month].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=time].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=week].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=number].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=email].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=url].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=search].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=tel].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=color].medium,
+.wrap.lifterlms-settings .llms-setting-group select.medium,
+.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).medium,
+.wrap.llms-status .llms-setting-group input[type=text].medium,
+.wrap.llms-status .llms-setting-group input[type=password].medium,
+.wrap.llms-status .llms-setting-group input[type=datetime].medium,
+.wrap.llms-status .llms-setting-group input[type=datetime-local].medium,
+.wrap.llms-status .llms-setting-group input[type=date].medium,
+.wrap.llms-status .llms-setting-group input[type=month].medium,
+.wrap.llms-status .llms-setting-group input[type=time].medium,
+.wrap.llms-status .llms-setting-group input[type=week].medium,
+.wrap.llms-status .llms-setting-group input[type=number].medium,
+.wrap.llms-status .llms-setting-group input[type=email].medium,
+.wrap.llms-status .llms-setting-group input[type=url].medium,
+.wrap.llms-status .llms-setting-group input[type=search].medium,
+.wrap.llms-status .llms-setting-group input[type=tel].medium,
+.wrap.llms-status .llms-setting-group input[type=color].medium,
+.wrap.llms-status .llms-setting-group select.medium,
+.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).medium {
+ width: 30%;
+}
+.wrap.llms-reporting .llms-setting-group input[type=text].small,
+.wrap.llms-reporting .llms-setting-group input[type=password].small,
+.wrap.llms-reporting .llms-setting-group input[type=datetime].small,
+.wrap.llms-reporting .llms-setting-group input[type=datetime-local].small,
+.wrap.llms-reporting .llms-setting-group input[type=date].small,
+.wrap.llms-reporting .llms-setting-group input[type=month].small,
+.wrap.llms-reporting .llms-setting-group input[type=time].small,
+.wrap.llms-reporting .llms-setting-group input[type=week].small,
+.wrap.llms-reporting .llms-setting-group input[type=number].small,
+.wrap.llms-reporting .llms-setting-group input[type=email].small,
+.wrap.llms-reporting .llms-setting-group input[type=url].small,
+.wrap.llms-reporting .llms-setting-group input[type=search].small,
+.wrap.llms-reporting .llms-setting-group input[type=tel].small,
+.wrap.llms-reporting .llms-setting-group input[type=color].small,
+.wrap.llms-reporting .llms-setting-group select.small,
+.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).small,
+.wrap.lifterlms-settings .llms-setting-group input[type=text].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=password].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=date].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=month].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=time].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=week].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=number].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=email].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=url].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=search].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=tel].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=color].small,
+.wrap.lifterlms-settings .llms-setting-group select.small,
+.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).small,
+.wrap.llms-status .llms-setting-group input[type=text].small,
+.wrap.llms-status .llms-setting-group input[type=password].small,
+.wrap.llms-status .llms-setting-group input[type=datetime].small,
+.wrap.llms-status .llms-setting-group input[type=datetime-local].small,
+.wrap.llms-status .llms-setting-group input[type=date].small,
+.wrap.llms-status .llms-setting-group input[type=month].small,
+.wrap.llms-status .llms-setting-group input[type=time].small,
+.wrap.llms-status .llms-setting-group input[type=week].small,
+.wrap.llms-status .llms-setting-group input[type=number].small,
+.wrap.llms-status .llms-setting-group input[type=email].small,
+.wrap.llms-status .llms-setting-group input[type=url].small,
+.wrap.llms-status .llms-setting-group input[type=search].small,
+.wrap.llms-status .llms-setting-group input[type=tel].small,
+.wrap.llms-status .llms-setting-group input[type=color].small,
+.wrap.llms-status .llms-setting-group select.small,
+.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).small {
+ width: 20%;
+}
+.wrap.llms-reporting .llms-setting-group input[type=text].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=password].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=datetime].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=datetime-local].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=date].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=month].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=time].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=week].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=number].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=email].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=url].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=search].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=tel].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=color].tiny,
+.wrap.llms-reporting .llms-setting-group select.tiny,
+.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=text].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=password].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=date].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=month].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=time].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=week].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=number].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=email].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=url].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=search].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=tel].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=color].tiny,
+.wrap.lifterlms-settings .llms-setting-group select.tiny,
+.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).tiny,
+.wrap.llms-status .llms-setting-group input[type=text].tiny,
+.wrap.llms-status .llms-setting-group input[type=password].tiny,
+.wrap.llms-status .llms-setting-group input[type=datetime].tiny,
+.wrap.llms-status .llms-setting-group input[type=datetime-local].tiny,
+.wrap.llms-status .llms-setting-group input[type=date].tiny,
+.wrap.llms-status .llms-setting-group input[type=month].tiny,
+.wrap.llms-status .llms-setting-group input[type=time].tiny,
+.wrap.llms-status .llms-setting-group input[type=week].tiny,
+.wrap.llms-status .llms-setting-group input[type=number].tiny,
+.wrap.llms-status .llms-setting-group input[type=email].tiny,
+.wrap.llms-status .llms-setting-group input[type=url].tiny,
+.wrap.llms-status .llms-setting-group input[type=search].tiny,
+.wrap.llms-status .llms-setting-group input[type=tel].tiny,
+.wrap.llms-status .llms-setting-group input[type=color].tiny,
+.wrap.llms-status .llms-setting-group select.tiny,
+.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).tiny {
+ width: 10%;
+}
+@media only screen and (min-width: 782px) {
+ .wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,
+.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,
+.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {
+ background: #fff;
+ }
+}
+.wrap.llms-reporting #llms-mailhawk-connect,
+.wrap.lifterlms-settings #llms-mailhawk-connect,
+.wrap.llms-status #llms-mailhawk-connect {
+ height: auto;
+ margin: 0 0 6px;
+ position: relative;
+}
+.wrap.llms-reporting #llms-mailhawk-connect .dashicons,
+.wrap.lifterlms-settings #llms-mailhawk-connect .dashicons,
+.wrap.llms-status #llms-mailhawk-connect .dashicons {
+ margin: -4px 0 0 4px;
+ vertical-align: middle;
+}
+.wrap.llms-reporting #llms-sendwp-connect,
+.wrap.lifterlms-settings #llms-sendwp-connect,
+.wrap.llms-status #llms-sendwp-connect {
+ height: auto;
+ margin: 0 0 6px;
+ position: relative;
+}
+.wrap.llms-reporting #llms-sendwp-connect .fa,
+.wrap.lifterlms-settings #llms-sendwp-connect .fa,
+.wrap.llms-status #llms-sendwp-connect .fa {
+ margin-left: 4px;
+}
+
+@media only screen and (min-width: 782px) {
+ .wrap.lifterlms-settings .llms-subheader {
+ height: 40px;
+ position: sticky;
+ top: 32px;
+ }
+ .wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary {
+ margin: 0 -22px 20px -20px;
+ }
+ .wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {
+ padding-right: 10px;
+ }
+ .wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary {
+ margin: 0 -22px 20px -20px;
+ }
+ .wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {
+ padding-right: 10px;
+ }
+ .wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary {
+ margin: 0 -22px 20px -20px;
+ }
+ .wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {
+ padding-right: 10px;
+ }
+}
+.wrap.llms-dashboard .llms-inside-wrap {
+ padding-top: 30px;
+}
+.wrap.llms-dashboard #poststuff h2 {
+ padding: 12px 20px;
+}
+.wrap.llms-dashboard .llms-dashboard-activity h2 {
+ font-size: 20px;
+ font-weight: 700;
+ line-height: 1.5;
+ margin-top: 0;
+ text-align: center;
+}
+.wrap.llms-dashboard .postbox {
+ background-color: #FFF;
+ border: none;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+}
+.wrap.llms-dashboard .postbox .postbox-header {
+ border-bottom-color: #efefef;
+}
+.wrap.llms-dashboard .postbox .inside {
+ padding: 20px;
+}
+.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap {
+ margin-top: 0;
+}
+.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item {
+ margin-top: 0;
+}
+.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item p {
+ text-align: right;
+}
+.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item footer.llms-actions {
+ padding-top: 0;
+}
+.wrap.llms-dashboard #llms_dashboard_addons p {
+ text-align: center;
+}
+.wrap.llms-dashboard #llms_dashboard_addons p .llms-button-primary {
+ display: inline-block;
+ margin-top: 15px;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links ul {
+ list-style: disc;
+ margin: 5px 20px 0 0;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links ul li {
+ font-size: 15px;
+ line-height: 1.5;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links {
+ display: grid;
+ grid-template-columns: 1fr;
+ grid-gap: 30px;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links a {
+ display: inline-block;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list h3 {
+ margin: 0 0 10px 0;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list ul {
+ margin-bottom: 20px;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list ul.llms-checklist {
+ list-style: none;
+ margin-right: 0;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa {
+ text-align: center;
+ width: 16px;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa-check {
+ color: #008a20;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa-times {
+ color: #d63638;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-primary,
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-secondary,
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-action {
+ display: block;
+ text-align: center;
+}
+@media only screen and (min-width: 782px) {
+ .wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links {
+ grid-template-columns: 1fr 1fr 1fr;
+ }
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ grid-gap: 20px;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links .llms-list h3 {
+ margin: 0;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links .llms-list h3 .dashicons {
+ color: #AAA;
+}
+@media only screen and (min-width: 782px) {
+ .wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links {
+ grid-template-columns: 1fr 1fr 1fr 1fr;
+ }
+}
+.wrap.llms-dashboard #llms_dashboard_blog ul,
+.wrap.llms-dashboard #llms_dashboard_podcast ul {
+ margin: 0;
+}
+.wrap.llms-dashboard #llms_dashboard_blog ul li,
+.wrap.llms-dashboard #llms_dashboard_podcast ul li {
+ margin: 0 0 15px 0;
+}
+.wrap.llms-dashboard #llms_dashboard_blog ul li a,
+.wrap.llms-dashboard #llms_dashboard_podcast ul li a {
+ display: block;
+}
+.wrap.llms-dashboard #llms_dashboard_blog p,
+.wrap.llms-dashboard #llms_dashboard_podcast p {
+ margin: 15px 0;
+ text-align: center;
+}
+.wrap.llms-dashboard #llms_dashboard_blog p a,
+.wrap.llms-dashboard #llms_dashboard_podcast p a {
+ display: inline-block;
+}
+
+#llms_dashboard_widget .inside {
+ margin: 0;
+ padding-bottom: 8px;
+}
+#llms_dashboard_widget .llms-dashboard-widget-wrap {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ padding-top: 12px;
+}
+#llms_dashboard_widget .activity-block {
+ padding-bottom: 8px;
+ border-color: #e8e8e8;
+}
+#llms_dashboard_widget h3 {
+ margin-bottom: 0;
+}
+#llms_dashboard_widget .llms-charts-wrapper {
+ display: none;
+}
+#llms_dashboard_widget .llms-widget-row {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ gap: 8px;
+ width: 100%;
+ -webkit-box-align: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ padding: 4px 0;
+}
+#llms_dashboard_widget .llms-widget-row:before, #llms_dashboard_widget .llms-widget-row:after {
+ display: none;
+}
+#llms_dashboard_widget .llms-widget-1-4 {
+ padding: 0;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+}
+#llms_dashboard_widget .llms-widget {
+ padding: 8px 8px 12px;
+ margin: 0;
+ border-radius: 6px;
+ border: 1px solid #e8e8e8;
+ -webkit-box-shadow: 0px 2px 4px rgb(246, 247, 247);
+ box-shadow: 0px 2px 4px rgb(246, 247, 247);
+ height: 100%;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: end;
+ -ms-flex-align: end;
+ align-items: flex-end;
+}
+#llms_dashboard_widget .llms-label {
+ font-size: 14px;
+ width: 100%;
+ -ms-flex-item-align: start;
+ align-self: flex-start;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+#llms_dashboard_widget .llms-widget-content {
+ font-size: 20px;
+ margin: 0;
+}
+#llms_dashboard_widget .llms-widget-info-toggle {
+ display: none;
+}
+#llms_dashboard_widget a {
+ border: 0;
+}
+#llms_dashboard_widget .subsubsub {
+ color: #dcdcde;
+}
+
+.llms-dashboard-widget-feed {
+ margin: 0 -12px;
+ padding: 0;
+ background-color: #f6f7f7;
+}
+.llms-dashboard-widget-feed li {
+ margin: 0;
+ padding: 8px 12px;
+ border-bottom: 1px solid #e8e8e8;
+}
+.llms-dashboard-widget-feed span {
+ display: block;
+}
+
+.wrap.llms-resources .llms-inside-wrap {
+ padding-top: 30px;
+}
+.wrap.llms-resources #poststuff #post-body.columns-2 {
+ margin-left: 350px;
+}
+.wrap.llms-resources #poststuff #post-body.columns-2 #side-sortables {
+ width: 330px;
+}
+@media only screen and (max-width: 850px) {
+ .wrap.llms-resources #poststuff #post-body.columns-2 #side-sortables {
+ width: auto;
+ }
+}
+.wrap.llms-resources #poststuff #postbox-container-1 {
+ float: left;
+ margin-left: -350px;
+ width: 330px;
+}
+.wrap.llms-resources #poststuff h2 {
+ padding: 12px 20px;
+}
+.wrap.llms-resources #poststuff .postbox {
+ background-color: #FFF;
+ border: none;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+}
+.wrap.llms-resources #poststuff .postbox .postbox-header {
+ border-bottom-color: #efefef;
+}
+.wrap.llms-resources #poststuff .postbox .inside {
+ margin: 0;
+ padding: 20px;
+}
+.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video p {
+ font-size: 15px;
+ line-height: 1.5;
+ margin: 0 0 40px 0;
+}
+.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container {
+ height: 0;
+ overflow: hidden;
+ padding-top: 30px;
+ padding-bottom: 56.25%;
+ position: relative;
+}
+.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container iframe,
+.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container object,
+.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container embed {
+ right: 0;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+.wrap.llms-resources #llms_dashboard_getting_started ul {
+ margin: 0 0 20px 0;
+}
+.wrap.llms-resources #llms_dashboard_getting_started ul li {
+ font-size: 15px;
+ line-height: 1.5;
+ margin-bottom: 15px;
+}
+.wrap.llms-resources #llms_dashboard_getting_started .llms-button-primary {
+ display: block;
+ margin-top: auto;
+ max-width: 300px;
+ text-align: center;
+}
+.wrap.llms-resources #llms_dashboard_resource_links ul {
+ list-style: disc;
+ margin: 5px 20px 0 0;
+}
+.wrap.llms-resources #llms_dashboard_resource_links ul li {
+ font-size: 15px;
+ line-height: 1.5;
+}
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links {
+ display: grid;
+ grid-template-columns: 1fr;
+ grid-gap: 60px;
+}
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links a {
+ display: inline-block;
+}
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+}
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list h3 {
+ margin: 0 0 10px 0;
+}
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list h3 .dashicons {
+ color: #AAA;
+}
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list ul {
+ margin-bottom: 20px;
+}
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-primary,
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-secondary,
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-action {
+ display: block;
+ margin-top: auto;
+ max-width: 300px;
+ text-align: center;
+}
+@media only screen and (min-width: 782px) {
+ .wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links {
+ grid-template-columns: 1fr 1fr 1fr;
+ }
+}
+
+.llms-remarks .llms-remarks-field {
+ height: 120px;
+ width: 100%;
+}
+.llms-remarks input[type=number] {
+ width: 60px;
+}
+
+button[name=llms_quiz_attempt_action] .save {
+ display: none;
+}
+button[name=llms_quiz_attempt_action].grading .default {
+ display: none;
+}
+button[name=llms_quiz_attempt_action].grading .save {
+ display: inline;
+}
+
+.llms-form-fields {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.llms-form-fields * {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.llms-form-fields.flush .llms-form-field {
+ padding: 0 0 20px;
+}
+.llms-form-fields label:not(.llms-field-html label) {
+ font-weight: 700;
+}
+.llms-form-fields .wp-block-columns, .llms-form-fields .wp-block-column {
+ margin-bottom: 0;
+}
+
+.llms-form-heading {
+ padding: 0 10px 10px;
+}
+
+.llms-form-field {
+ float: right;
+ padding: 0 10px 20px;
+ position: relative;
+ width: 100%;
+}
+.llms-form-field label:empty:after {
+ content: " ";
+}
+.llms-form-field [type=text],
+.llms-form-field [type=password],
+.llms-form-field [type=email],
+.llms-form-field [type=url],
+.llms-form-field [type=tel],
+.llms-form-field [type=number] {
+ background-color: #fefefe;
+ background-clip: padding-box;
+ border: 1px solid #999;
+ border-radius: 6px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ font-size: 16px;
+ line-height: 1;
+ padding: 8px 12px;
+ -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ width: 100%;
+}
+.llms-form-field input:focus,
+.llms-form-field input:focus-visible {
+ border-color: #6888df;
+ outline: thin solid;
+}
+.llms-form-field select {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ -ms-appearance: none;
+ appearance: none;
+ background-color: #fefefe;
+ border: 1px solid #999;
+ border-radius: 6px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #010101;
+ padding: 8px 12px;
+ margin: 0;
+ width: 100%;
+ font-family: inherit;
+ font-size: 16px;
+ cursor: inherit;
+ line-height: 1.6;
+ z-index: 1;
+ outline: none;
+ background-repeat: no-repeat;
+ background-image: linear-gradient(-45deg, transparent 50%, currentcolor 50%), linear-gradient(-135deg, currentcolor 50%, transparent 50%);
+ background-position: left 15px top 1.3rem, left 10px top 1.3rem;
+ background-size: 5px 5px, 5px 5px;
+}
+.llms-form-field select::-ms-expand {
+ display: none;
+}
+.llms-form-field select:focus {
+ border: 1px solid #6888df;
+ outline: thin solid;
+}
+.llms-form-field.valid input[type=date], .llms-form-field.valid input[type=time], .llms-form-field.valid input[type=datetime-local], .llms-form-field.valid input[type=week], .llms-form-field.valid input[type=month], .llms-form-field.valid input[type=text], .llms-form-field.valid input[type=email], .llms-form-field.valid input[type=url], .llms-form-field.valid input[type=password], .llms-form-field.valid input[type=search], .llms-form-field.valid input[type=tel], .llms-form-field.valid input[type=number], .llms-form-field.valid textarea, .llms-form-field.valid select {
+ background: rgba(131, 195, 115, 0.3);
+ border-color: #83c373;
+}
+.llms-form-field.error input[type=date], .llms-form-field.error input[type=time], .llms-form-field.error input[type=datetime-local], .llms-form-field.error input[type=week], .llms-form-field.error input[type=month], .llms-form-field.error input[type=text], .llms-form-field.error input[type=email], .llms-form-field.error input[type=url], .llms-form-field.error input[type=password], .llms-form-field.error input[type=search], .llms-form-field.error input[type=tel], .llms-form-field.error input[type=number], .llms-form-field.error textarea, .llms-form-field.error select, .llms-form-field.invalid input[type=date], .llms-form-field.invalid input[type=time], .llms-form-field.invalid input[type=datetime-local], .llms-form-field.invalid input[type=week], .llms-form-field.invalid input[type=month], .llms-form-field.invalid input[type=text], .llms-form-field.invalid input[type=email], .llms-form-field.invalid input[type=url], .llms-form-field.invalid input[type=password], .llms-form-field.invalid input[type=search], .llms-form-field.invalid input[type=tel], .llms-form-field.invalid input[type=number], .llms-form-field.invalid textarea, .llms-form-field.invalid select {
+ background: rgba(187, 35, 28, 0.3);
+ border-color: #bb231c;
+}
+.llms-form-field.llms-visually-hidden-field {
+ display: none;
+}
+.llms-form-field.align-right {
+ text-align: left;
+}
+@media screen and (min-width: 600px) {
+ .llms-form-field.llms-cols-1 {
+ width: 8.3333333333%;
+ }
+ .llms-form-field.llms-cols-2 {
+ width: 16.6666666667%;
+ }
+ .llms-form-field.llms-cols-3 {
+ width: 25%;
+ }
+ .llms-form-field.llms-cols-4 {
+ width: 33.3333333333%;
+ }
+ .llms-form-field.llms-cols-5 {
+ width: 41.6666666667%;
+ }
+ .llms-form-field.llms-cols-6 {
+ width: 50%;
+ }
+ .llms-form-field.llms-cols-7 {
+ width: 58.3333333333%;
+ }
+ .llms-form-field.llms-cols-8 {
+ width: 66.6666666667%;
+ }
+ .llms-form-field.llms-cols-9 {
+ width: 75%;
+ }
+ .llms-form-field.llms-cols-10 {
+ width: 83.3333333333%;
+ }
+ .llms-form-field.llms-cols-11 {
+ width: 91.6666666667%;
+ }
+ .llms-form-field.llms-cols-12 {
+ width: 100%;
+ }
+}
+.llms-form-field.type-hidden {
+ padding: 0;
+}
+.llms-form-field.type-radio input,
+.llms-form-field.type-radio label, .llms-form-field.type-checkbox input,
+.llms-form-field.type-checkbox label {
+ display: inline-block;
+ width: auto;
+}
+.llms-form-field.type-radio input, .llms-form-field.type-checkbox input {
+ margin-left: 10px;
+}
+.llms-form-field.type-radio label + .llms-description, .llms-form-field.type-checkbox label + .llms-description {
+ display: block;
+}
+.llms-form-field.type-radio:not(.is-group) input[type=radio] {
+ position: absolute;
+ opacity: 0;
+ visibility: none;
+}
+.llms-form-field.type-radio:not(.is-group) label:before {
+ background: #fafafa;
+ background-position: -24px 0;
+ background-repeat: no-repeat;
+ border-radius: 50%;
+ -webkit-box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.35) 0 0 0 1px;
+ box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.35) 0 0 0 1px;
+ content: "";
+ cursor: pointer;
+ display: inline-block;
+ height: 22px;
+ margin-left: 5px;
+ position: relative;
+ -webkit-transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);
+ transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);
+ top: -3px;
+ vertical-align: middle;
+ width: 22px;
+ z-index: 2;
+}
+.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked + label:before {
+ -webkit-transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);
+ transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);
+ background-position: 100% 0;
+ background-image: radial-gradient(ellipse at center, #466dd8 0%, #466dd8 40%, #fafafa 45%);
+}
+.llms-form-field .llms-input-group {
+ margin-top: 5px;
+}
+.llms-form-field .llms-input-group .llms-form-field {
+ padding: 0 5px 5px 0;
+}
+.llms-form-field.type-reset button:not(.auto), .llms-form-field.type-button button:not(.auto), .llms-form-field.type-submit button:not(.auto) {
+ width: 100%;
+}
+.llms-form-field .llms-description {
+ font-size: 14px;
+ font-style: italic;
+ line-height: 18px;
+}
+.llms-form-field .llms-required {
+ color: #bb231c;
+ margin-right: 4px;
+}
+.llms-form-field input, .llms-form-field textarea, .llms-form-field select {
+ width: 100%;
+ margin-bottom: 5px;
+}
+.llms-form-field .select2-container .select2-selection--single {
+ height: auto;
+ padding: 4px 6px;
+}
+.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow {
+ height: 100%;
+}
+
+.llms-password-strength-meter {
+ border: 1px solid #dadada;
+ display: none;
+ font-size: 10px;
+ margin-top: -10px;
+ padding: 1px;
+ position: relative;
+ text-align: center;
+}
+.llms-password-strength-meter:before {
+ bottom: 0;
+ content: "";
+ right: 0;
+ position: absolute;
+ top: 0;
+ -webkit-transition: width 0.4s ease;
+ transition: width 0.4s ease;
+}
+.llms-password-strength-meter.mismatch, .llms-password-strength-meter.too-short, .llms-password-strength-meter.very-weak {
+ border-color: #e35b5b;
+}
+.llms-password-strength-meter.mismatch:before, .llms-password-strength-meter.too-short:before, .llms-password-strength-meter.very-weak:before {
+ background: rgba(227, 91, 91, 0.25);
+ width: 25%;
+}
+.llms-password-strength-meter.too-short:before {
+ width: 0;
+}
+.llms-password-strength-meter.weak {
+ border-color: #f78b53;
+}
+.llms-password-strength-meter.weak:before {
+ background: rgba(247, 139, 83, 0.25);
+ width: 50%;
+}
+.llms-password-strength-meter.medium {
+ border-color: #ffc733;
+}
+.llms-password-strength-meter.medium:before {
+ background: rgba(255, 199, 51, 0.25);
+ width: 75%;
+}
+.llms-password-strength-meter.strong {
+ border-color: #83c373;
+}
+.llms-password-strength-meter.strong:before {
+ background: rgba(131, 195, 115, 0.25);
+ width: 100%;
+}
+.llms-password-strength-meter + .llms-description {
+ display: block;
+}
+
+/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+/* FONT PATH
+ * -------------------------- */
+@font-face {
+ font-family: "FontAwesome";
+ src: url("../fonts/fontawesome-webfont.eot?v=4.7.0");
+ src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+.fa {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+ font-size: 1.33333333em;
+ line-height: 0.75em;
+ vertical-align: -15%;
+}
+
+.fa-2x {
+ font-size: 2em;
+}
+
+.fa-3x {
+ font-size: 3em;
+}
+
+.fa-4x {
+ font-size: 4em;
+}
+
+.fa-5x {
+ font-size: 5em;
+}
+
+.fa-fw {
+ width: 1.28571429em;
+ text-align: center;
+}
+
+.fa-ul {
+ padding-right: 0;
+ margin-right: 2.14285714em;
+ list-style-type: none;
+}
+
+.fa-ul > li {
+ position: relative;
+}
+
+.fa-li {
+ position: absolute;
+ right: -2.14285714em;
+ width: 2.14285714em;
+ top: 0.14285714em;
+ text-align: center;
+}
+
+.fa-li.fa-lg {
+ right: -1.85714286em;
+}
+
+.fa-border {
+ padding: 0.2em 0.25em 0.15em;
+ border: solid 0.08em #eeeeee;
+ border-radius: 0.1em;
+}
+
+.fa-pull-left {
+ float: right;
+}
+
+.fa-pull-right {
+ float: left;
+}
+
+.fa.fa-pull-left {
+ margin-left: 0.3em;
+}
+
+.fa.fa-pull-right {
+ margin-right: 0.3em;
+}
+
+/* Deprecated as of 4.4.0 */
+.pull-right {
+ float: left;
+}
+
+.pull-left {
+ float: right;
+}
+
+.fa.pull-left {
+ margin-left: 0.3em;
+}
+
+.fa.pull-right {
+ margin-right: 0.3em;
+}
+
+.fa-spin {
+ -webkit-animation: fa-spin 2s infinite linear;
+ animation: fa-spin 2s infinite linear;
+}
+
+.fa-pulse {
+ -webkit-animation: fa-spin 1s infinite steps(8);
+ animation: fa-spin 1s infinite steps(8);
+}
+
+@-webkit-keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(-359deg);
+ transform: rotate(-359deg);
+ }
+}
+@keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(-359deg);
+ transform: rotate(-359deg);
+ }
+}
+.fa-rotate-90 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
+ -webkit-transform: rotate(-90deg);
+ transform: rotate(-90deg);
+}
+
+.fa-rotate-180 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
+ -webkit-transform: rotate(-180deg);
+ transform: rotate(-180deg);
+}
+
+.fa-rotate-270 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
+ -webkit-transform: rotate(-270deg);
+ transform: rotate(-270deg);
+}
+
+.fa-flip-horizontal {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
+ -webkit-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+.fa-flip-vertical {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
+ -webkit-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+ -webkit-filter: none;
+ filter: none;
+}
+
+.fa-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+
+.fa-stack-1x,
+.fa-stack-2x {
+ position: absolute;
+ right: 0;
+ width: 100%;
+ text-align: center;
+}
+
+.fa-stack-1x {
+ line-height: inherit;
+}
+
+.fa-stack-2x {
+ font-size: 2em;
+}
+
+.fa-inverse {
+ color: #ffffff;
+}
+
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+.fa-glass:before {
+ content: "\f000";
+}
+
+.fa-music:before {
+ content: "\f001";
+}
+
+.fa-search:before {
+ content: "\f002";
+}
+
+.fa-envelope-o:before {
+ content: "\f003";
+}
+
+.fa-heart:before {
+ content: "\f004";
+}
+
+.fa-star:before {
+ content: "\f005";
+}
+
+.fa-star-o:before {
+ content: "\f006";
+}
+
+.fa-user:before {
+ content: "\f007";
+}
+
+.fa-film:before {
+ content: "\f008";
+}
+
+.fa-th-large:before {
+ content: "\f009";
+}
+
+.fa-th:before {
+ content: "\f00a";
+}
+
+.fa-th-list:before {
+ content: "\f00b";
+}
+
+.fa-check:before {
+ content: "\f00c";
+}
+
+.fa-remove:before,
+.fa-close:before,
+.fa-times:before {
+ content: "\f00d";
+}
+
+.fa-search-plus:before {
+ content: "\f00e";
+}
+
+.fa-search-minus:before {
+ content: "\f010";
+}
+
+.fa-power-off:before {
+ content: "\f011";
+}
+
+.fa-signal:before {
+ content: "\f012";
+}
+
+.fa-gear:before,
+.fa-cog:before {
+ content: "\f013";
+}
+
+.fa-trash-o:before {
+ content: "\f014";
+}
+
+.fa-home:before {
+ content: "\f015";
+}
+
+.fa-file-o:before {
+ content: "\f016";
+}
+
+.fa-clock-o:before {
+ content: "\f017";
+}
+
+.fa-road:before {
+ content: "\f018";
+}
+
+.fa-download:before {
+ content: "\f019";
+}
+
+.fa-arrow-circle-o-down:before {
+ content: "\f01a";
+}
+
+.fa-arrow-circle-o-up:before {
+ content: "\f01b";
+}
+
+.fa-inbox:before {
+ content: "\f01c";
+}
+
+.fa-play-circle-o:before {
+ content: "\f01d";
+}
+
+.fa-rotate-right:before,
+.fa-repeat:before {
+ content: "\f01e";
+}
+
+.fa-refresh:before {
+ content: "\f021";
+}
+
+.fa-list-alt:before {
+ content: "\f022";
+}
+
+.fa-lock:before {
+ content: "\f023";
+}
+
+.fa-flag:before {
+ content: "\f024";
+}
+
+.fa-headphones:before {
+ content: "\f025";
+}
+
+.fa-volume-off:before {
+ content: "\f026";
+}
+
+.fa-volume-down:before {
+ content: "\f027";
+}
+
+.fa-volume-up:before {
+ content: "\f028";
+}
+
+.fa-qrcode:before {
+ content: "\f029";
+}
+
+.fa-barcode:before {
+ content: "\f02a";
+}
+
+.fa-tag:before {
+ content: "\f02b";
+}
+
+.fa-tags:before {
+ content: "\f02c";
+}
+
+.fa-book:before {
+ content: "\f02d";
+}
+
+.fa-bookmark:before {
+ content: "\f02e";
+}
+
+.fa-print:before {
+ content: "\f02f";
+}
+
+.fa-camera:before {
+ content: "\f030";
+}
+
+.fa-font:before {
+ content: "\f031";
+}
+
+.fa-bold:before {
+ content: "\f032";
+}
+
+.fa-italic:before {
+ content: "\f033";
+}
+
+.fa-text-height:before {
+ content: "\f034";
+}
+
+.fa-text-width:before {
+ content: "\f035";
+}
+
+.fa-align-left:before {
+ content: "\f036";
+}
+
+.fa-align-center:before {
+ content: "\f037";
+}
+
+.fa-align-right:before {
+ content: "\f038";
+}
+
+.fa-align-justify:before {
+ content: "\f039";
+}
+
+.fa-list:before {
+ content: "\f03a";
+}
+
+.fa-dedent:before,
+.fa-outdent:before {
+ content: "\f03b";
+}
+
+.fa-indent:before {
+ content: "\f03c";
+}
+
+.fa-video-camera:before {
+ content: "\f03d";
+}
+
+.fa-photo:before,
+.fa-image:before,
+.fa-picture-o:before {
+ content: "\f03e";
+}
+
+.fa-pencil:before {
+ content: "\f040";
+}
+
+.fa-map-marker:before {
+ content: "\f041";
+}
+
+.fa-adjust:before {
+ content: "\f042";
+}
+
+.fa-tint:before {
+ content: "\f043";
+}
+
+.fa-edit:before,
+.fa-pencil-square-o:before {
+ content: "\f044";
+}
+
+.fa-share-square-o:before {
+ content: "\f045";
+}
+
+.fa-check-square-o:before {
+ content: "\f046";
+}
+
+.fa-arrows:before {
+ content: "\f047";
+}
+
+.fa-step-backward:before {
+ content: "\f048";
+}
+
+.fa-fast-backward:before {
+ content: "\f049";
+}
+
+.fa-backward:before {
+ content: "\f04a";
+}
+
+.fa-play:before {
+ content: "\f04b";
+}
+
+.fa-pause:before {
+ content: "\f04c";
+}
+
+.fa-stop:before {
+ content: "\f04d";
+}
+
+.fa-forward:before {
+ content: "\f04e";
+}
+
+.fa-fast-forward:before {
+ content: "\f050";
+}
+
+.fa-step-forward:before {
+ content: "\f051";
+}
+
+.fa-eject:before {
+ content: "\f052";
+}
+
+.fa-chevron-left:before {
+ content: "\f053";
+}
+
+.fa-chevron-right:before {
+ content: "\f054";
+}
+
+.fa-plus-circle:before {
+ content: "\f055";
+}
+
+.fa-minus-circle:before {
+ content: "\f056";
+}
+
+.fa-times-circle:before {
+ content: "\f057";
+}
+
+.fa-check-circle:before {
+ content: "\f058";
+}
+
+.fa-question-circle:before {
+ content: "\f059";
+}
+
+.fa-info-circle:before {
+ content: "\f05a";
+}
+
+.fa-crosshairs:before {
+ content: "\f05b";
+}
+
+.fa-times-circle-o:before {
+ content: "\f05c";
+}
+
+.fa-check-circle-o:before {
+ content: "\f05d";
+}
+
+.fa-ban:before {
+ content: "\f05e";
+}
+
+.fa-arrow-left:before {
+ content: "\f060";
+}
+
+.fa-arrow-right:before {
+ content: "\f061";
+}
+
+.fa-arrow-up:before {
+ content: "\f062";
+}
+
+.fa-arrow-down:before {
+ content: "\f063";
+}
+
+.fa-mail-forward:before,
+.fa-share:before {
+ content: "\f064";
+}
+
+.fa-expand:before {
+ content: "\f065";
+}
+
+.fa-compress:before {
+ content: "\f066";
+}
+
+.fa-plus:before {
+ content: "\f067";
+}
+
+.fa-minus:before {
+ content: "\f068";
+}
+
+.fa-asterisk:before {
+ content: "\f069";
+}
+
+.fa-exclamation-circle:before {
+ content: "\f06a";
+}
+
+.fa-gift:before {
+ content: "\f06b";
+}
+
+.fa-leaf:before {
+ content: "\f06c";
+}
+
+.fa-fire:before {
+ content: "\f06d";
+}
+
+.fa-eye:before {
+ content: "\f06e";
+}
+
+.fa-eye-slash:before {
+ content: "\f070";
+}
+
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+ content: "\f071";
+}
+
+.fa-plane:before {
+ content: "\f072";
+}
+
+.fa-calendar:before {
+ content: "\f073";
+}
+
+.fa-random:before {
+ content: "\f074";
+}
+
+.fa-comment:before {
+ content: "\f075";
+}
+
+.fa-magnet:before {
+ content: "\f076";
+}
+
+.fa-chevron-up:before {
+ content: "\f077";
+}
+
+.fa-chevron-down:before {
+ content: "\f078";
+}
+
+.fa-retweet:before {
+ content: "\f079";
+}
+
+.fa-shopping-cart:before {
+ content: "\f07a";
+}
+
+.fa-folder:before {
+ content: "\f07b";
+}
+
+.fa-folder-open:before {
+ content: "\f07c";
+}
+
+.fa-arrows-v:before {
+ content: "\f07d";
+}
+
+.fa-arrows-h:before {
+ content: "\f07e";
+}
+
+.fa-bar-chart-o:before,
+.fa-bar-chart:before {
+ content: "\f080";
+}
+
+.fa-twitter-square:before {
+ content: "\f081";
+}
+
+.fa-facebook-square:before {
+ content: "\f082";
+}
+
+.fa-camera-retro:before {
+ content: "\f083";
+}
+
+.fa-key:before {
+ content: "\f084";
+}
+
+.fa-gears:before,
+.fa-cogs:before {
+ content: "\f085";
+}
+
+.fa-comments:before {
+ content: "\f086";
+}
+
+.fa-thumbs-o-up:before {
+ content: "\f087";
+}
+
+.fa-thumbs-o-down:before {
+ content: "\f088";
+}
+
+.fa-star-half:before {
+ content: "\f089";
+}
+
+.fa-heart-o:before {
+ content: "\f08a";
+}
+
+.fa-sign-out:before {
+ content: "\f08b";
+}
+
+.fa-linkedin-square:before {
+ content: "\f08c";
+}
+
+.fa-thumb-tack:before {
+ content: "\f08d";
+}
+
+.fa-external-link:before {
+ content: "\f08e";
+}
+
+.fa-sign-in:before {
+ content: "\f090";
+}
+
+.fa-trophy:before {
+ content: "\f091";
+}
+
+.fa-github-square:before {
+ content: "\f092";
+}
+
+.fa-upload:before {
+ content: "\f093";
+}
+
+.fa-lemon-o:before {
+ content: "\f094";
+}
+
+.fa-phone:before {
+ content: "\f095";
+}
+
+.fa-square-o:before {
+ content: "\f096";
+}
+
+.fa-bookmark-o:before {
+ content: "\f097";
+}
+
+.fa-phone-square:before {
+ content: "\f098";
+}
+
+.fa-twitter:before {
+ content: "\f099";
+}
+
+.fa-facebook-f:before,
+.fa-facebook:before {
+ content: "\f09a";
+}
+
+.fa-github:before {
+ content: "\f09b";
+}
+
+.fa-unlock:before {
+ content: "\f09c";
+}
+
+.fa-credit-card:before {
+ content: "\f09d";
+}
+
+.fa-feed:before,
+.fa-rss:before {
+ content: "\f09e";
+}
+
+.fa-hdd-o:before {
+ content: "\f0a0";
+}
+
+.fa-bullhorn:before {
+ content: "\f0a1";
+}
+
+.fa-bell:before {
+ content: "\f0f3";
+}
+
+.fa-certificate:before {
+ content: "\f0a3";
+}
+
+.fa-hand-o-right:before {
+ content: "\f0a4";
+}
+
+.fa-hand-o-left:before {
+ content: "\f0a5";
+}
+
+.fa-hand-o-up:before {
+ content: "\f0a6";
+}
+
+.fa-hand-o-down:before {
+ content: "\f0a7";
+}
+
+.fa-arrow-circle-left:before {
+ content: "\f0a8";
+}
+
+.fa-arrow-circle-right:before {
+ content: "\f0a9";
+}
+
+.fa-arrow-circle-up:before {
+ content: "\f0aa";
+}
+
+.fa-arrow-circle-down:before {
+ content: "\f0ab";
+}
+
+.fa-globe:before {
+ content: "\f0ac";
+}
+
+.fa-wrench:before {
+ content: "\f0ad";
+}
+
+.fa-tasks:before {
+ content: "\f0ae";
+}
+
+.fa-filter:before {
+ content: "\f0b0";
+}
+
+.fa-briefcase:before {
+ content: "\f0b1";
+}
+
+.fa-arrows-alt:before {
+ content: "\f0b2";
+}
+
+.fa-group:before,
+.fa-users:before {
+ content: "\f0c0";
+}
+
+.fa-chain:before,
+.fa-link:before {
+ content: "\f0c1";
+}
+
+.fa-cloud:before {
+ content: "\f0c2";
+}
+
+.fa-flask:before {
+ content: "\f0c3";
+}
+
+.fa-cut:before,
+.fa-scissors:before {
+ content: "\f0c4";
+}
+
+.fa-copy:before,
+.fa-files-o:before {
+ content: "\f0c5";
+}
+
+.fa-paperclip:before {
+ content: "\f0c6";
+}
+
+.fa-save:before,
+.fa-floppy-o:before {
+ content: "\f0c7";
+}
+
+.fa-square:before {
+ content: "\f0c8";
+}
+
+.fa-navicon:before,
+.fa-reorder:before,
+.fa-bars:before {
+ content: "\f0c9";
+}
+
+.fa-list-ul:before {
+ content: "\f0ca";
+}
+
+.fa-list-ol:before {
+ content: "\f0cb";
+}
+
+.fa-strikethrough:before {
+ content: "\f0cc";
+}
+
+.fa-underline:before {
+ content: "\f0cd";
+}
+
+.fa-table:before {
+ content: "\f0ce";
+}
+
+.fa-magic:before {
+ content: "\f0d0";
+}
+
+.fa-truck:before {
+ content: "\f0d1";
+}
+
+.fa-pinterest:before {
+ content: "\f0d2";
+}
+
+.fa-pinterest-square:before {
+ content: "\f0d3";
+}
+
+.fa-google-plus-square:before {
+ content: "\f0d4";
+}
+
+.fa-google-plus:before {
+ content: "\f0d5";
+}
+
+.fa-money:before {
+ content: "\f0d6";
+}
+
+.fa-caret-down:before {
+ content: "\f0d7";
+}
+
+.fa-caret-up:before {
+ content: "\f0d8";
+}
+
+.fa-caret-left:before {
+ content: "\f0d9";
+}
+
+.fa-caret-right:before {
+ content: "\f0da";
+}
+
+.fa-columns:before {
+ content: "\f0db";
+}
+
+.fa-unsorted:before,
+.fa-sort:before {
+ content: "\f0dc";
+}
+
+.fa-sort-down:before,
+.fa-sort-desc:before {
+ content: "\f0dd";
+}
+
+.fa-sort-up:before,
+.fa-sort-asc:before {
+ content: "\f0de";
+}
+
+.fa-envelope:before {
+ content: "\f0e0";
+}
+
+.fa-linkedin:before {
+ content: "\f0e1";
+}
+
+.fa-rotate-left:before,
+.fa-undo:before {
+ content: "\f0e2";
+}
+
+.fa-legal:before,
+.fa-gavel:before {
+ content: "\f0e3";
+}
+
+.fa-dashboard:before,
+.fa-tachometer:before {
+ content: "\f0e4";
+}
+
+.fa-comment-o:before {
+ content: "\f0e5";
+}
+
+.fa-comments-o:before {
+ content: "\f0e6";
+}
+
+.fa-flash:before,
+.fa-bolt:before {
+ content: "\f0e7";
+}
+
+.fa-sitemap:before {
+ content: "\f0e8";
+}
+
+.fa-umbrella:before {
+ content: "\f0e9";
+}
+
+.fa-paste:before,
+.fa-clipboard:before {
+ content: "\f0ea";
+}
+
+.fa-lightbulb-o:before {
+ content: "\f0eb";
+}
+
+.fa-exchange:before {
+ content: "\f0ec";
+}
+
+.fa-cloud-download:before {
+ content: "\f0ed";
+}
+
+.fa-cloud-upload:before {
+ content: "\f0ee";
+}
+
+.fa-user-md:before {
+ content: "\f0f0";
+}
+
+.fa-stethoscope:before {
+ content: "\f0f1";
+}
+
+.fa-suitcase:before {
+ content: "\f0f2";
+}
+
+.fa-bell-o:before {
+ content: "\f0a2";
+}
+
+.fa-coffee:before {
+ content: "\f0f4";
+}
+
+.fa-cutlery:before {
+ content: "\f0f5";
+}
+
+.fa-file-text-o:before {
+ content: "\f0f6";
+}
+
+.fa-building-o:before {
+ content: "\f0f7";
+}
+
+.fa-hospital-o:before {
+ content: "\f0f8";
+}
+
+.fa-ambulance:before {
+ content: "\f0f9";
+}
+
+.fa-medkit:before {
+ content: "\f0fa";
+}
+
+.fa-fighter-jet:before {
+ content: "\f0fb";
+}
+
+.fa-beer:before {
+ content: "\f0fc";
+}
+
+.fa-h-square:before {
+ content: "\f0fd";
+}
+
+.fa-plus-square:before {
+ content: "\f0fe";
+}
+
+.fa-angle-double-left:before {
+ content: "\f100";
+}
+
+.fa-angle-double-right:before {
+ content: "\f101";
+}
+
+.fa-angle-double-up:before {
+ content: "\f102";
+}
+
+.fa-angle-double-down:before {
+ content: "\f103";
+}
+
+.fa-angle-left:before {
+ content: "\f104";
+}
+
+.fa-angle-right:before {
+ content: "\f105";
+}
+
+.fa-angle-up:before {
+ content: "\f106";
+}
+
+.fa-angle-down:before {
+ content: "\f107";
+}
+
+.fa-desktop:before {
+ content: "\f108";
+}
+
+.fa-laptop:before {
+ content: "\f109";
+}
+
+.fa-tablet:before {
+ content: "\f10a";
+}
+
+.fa-mobile-phone:before,
+.fa-mobile:before {
+ content: "\f10b";
+}
+
+.fa-circle-o:before {
+ content: "\f10c";
+}
+
+.fa-quote-left:before {
+ content: "\f10d";
+}
+
+.fa-quote-right:before {
+ content: "\f10e";
+}
+
+.fa-spinner:before {
+ content: "\f110";
+}
+
+.fa-circle:before {
+ content: "\f111";
+}
+
+.fa-mail-reply:before,
+.fa-reply:before {
+ content: "\f112";
+}
+
+.fa-github-alt:before {
+ content: "\f113";
+}
+
+.fa-folder-o:before {
+ content: "\f114";
+}
+
+.fa-folder-open-o:before {
+ content: "\f115";
+}
+
+.fa-smile-o:before {
+ content: "\f118";
+}
+
+.fa-frown-o:before {
+ content: "\f119";
+}
+
+.fa-meh-o:before {
+ content: "\f11a";
+}
+
+.fa-gamepad:before {
+ content: "\f11b";
+}
+
+.fa-keyboard-o:before {
+ content: "\f11c";
+}
+
+.fa-flag-o:before {
+ content: "\f11d";
+}
+
+.fa-flag-checkered:before {
+ content: "\f11e";
+}
+
+.fa-terminal:before {
+ content: "\f120";
+}
+
+.fa-code:before {
+ content: "\f121";
+}
+
+.fa-mail-reply-all:before,
+.fa-reply-all:before {
+ content: "\f122";
+}
+
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+ content: "\f123";
+}
+
+.fa-location-arrow:before {
+ content: "\f124";
+}
+
+.fa-crop:before {
+ content: "\f125";
+}
+
+.fa-code-fork:before {
+ content: "\f126";
+}
+
+.fa-unlink:before,
+.fa-chain-broken:before {
+ content: "\f127";
+}
+
+.fa-question:before {
+ content: "\f128";
+}
+
+.fa-info:before {
+ content: "\f129";
+}
+
+.fa-exclamation:before {
+ content: "\f12a";
+}
+
+.fa-superscript:before {
+ content: "\f12b";
+}
+
+.fa-subscript:before {
+ content: "\f12c";
+}
+
+.fa-eraser:before {
+ content: "\f12d";
+}
+
+.fa-puzzle-piece:before {
+ content: "\f12e";
+}
+
+.fa-microphone:before {
+ content: "\f130";
+}
+
+.fa-microphone-slash:before {
+ content: "\f131";
+}
+
+.fa-shield:before {
+ content: "\f132";
+}
+
+.fa-calendar-o:before {
+ content: "\f133";
+}
+
+.fa-fire-extinguisher:before {
+ content: "\f134";
+}
+
+.fa-rocket:before {
+ content: "\f135";
+}
+
+.fa-maxcdn:before {
+ content: "\f136";
+}
+
+.fa-chevron-circle-left:before {
+ content: "\f137";
+}
+
+.fa-chevron-circle-right:before {
+ content: "\f138";
+}
+
+.fa-chevron-circle-up:before {
+ content: "\f139";
+}
+
+.fa-chevron-circle-down:before {
+ content: "\f13a";
+}
+
+.fa-html5:before {
+ content: "\f13b";
+}
+
+.fa-css3:before {
+ content: "\f13c";
+}
+
+.fa-anchor:before {
+ content: "\f13d";
+}
+
+.fa-unlock-alt:before {
+ content: "\f13e";
+}
+
+.fa-bullseye:before {
+ content: "\f140";
+}
+
+.fa-ellipsis-h:before {
+ content: "\f141";
+}
+
+.fa-ellipsis-v:before {
+ content: "\f142";
+}
+
+.fa-rss-square:before {
+ content: "\f143";
+}
+
+.fa-play-circle:before {
+ content: "\f144";
+}
+
+.fa-ticket:before {
+ content: "\f145";
+}
+
+.fa-minus-square:before {
+ content: "\f146";
+}
+
+.fa-minus-square-o:before {
+ content: "\f147";
+}
+
+.fa-level-up:before {
+ content: "\f148";
+}
+
+.fa-level-down:before {
+ content: "\f149";
+}
+
+.fa-check-square:before {
+ content: "\f14a";
+}
+
+.fa-pencil-square:before {
+ content: "\f14b";
+}
+
+.fa-external-link-square:before {
+ content: "\f14c";
+}
+
+.fa-share-square:before {
+ content: "\f14d";
+}
+
+.fa-compass:before {
+ content: "\f14e";
+}
+
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+ content: "\f150";
+}
+
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+ content: "\f151";
+}
+
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+ content: "\f152";
+}
+
+.fa-euro:before,
+.fa-eur:before {
+ content: "\f153";
+}
+
+.fa-gbp:before {
+ content: "\f154";
+}
+
+.fa-dollar:before,
+.fa-usd:before {
+ content: "\f155";
+}
+
+.fa-rupee:before,
+.fa-inr:before {
+ content: "\f156";
+}
+
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+ content: "\f157";
+}
+
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+ content: "\f158";
+}
+
+.fa-won:before,
+.fa-krw:before {
+ content: "\f159";
+}
+
+.fa-bitcoin:before,
+.fa-btc:before {
+ content: "\f15a";
+}
+
+.fa-file:before {
+ content: "\f15b";
+}
+
+.fa-file-text:before {
+ content: "\f15c";
+}
+
+.fa-sort-alpha-asc:before {
+ content: "\f15d";
+}
+
+.fa-sort-alpha-desc:before {
+ content: "\f15e";
+}
+
+.fa-sort-amount-asc:before {
+ content: "\f160";
+}
+
+.fa-sort-amount-desc:before {
+ content: "\f161";
+}
+
+.fa-sort-numeric-asc:before {
+ content: "\f162";
+}
+
+.fa-sort-numeric-desc:before {
+ content: "\f163";
+}
+
+.fa-thumbs-up:before {
+ content: "\f164";
+}
+
+.fa-thumbs-down:before {
+ content: "\f165";
+}
+
+.fa-youtube-square:before {
+ content: "\f166";
+}
+
+.fa-youtube:before {
+ content: "\f167";
+}
+
+.fa-xing:before {
+ content: "\f168";
+}
+
+.fa-xing-square:before {
+ content: "\f169";
+}
+
+.fa-youtube-play:before {
+ content: "\f16a";
+}
+
+.fa-dropbox:before {
+ content: "\f16b";
+}
+
+.fa-stack-overflow:before {
+ content: "\f16c";
+}
+
+.fa-instagram:before {
+ content: "\f16d";
+}
+
+.fa-flickr:before {
+ content: "\f16e";
+}
+
+.fa-adn:before {
+ content: "\f170";
+}
+
+.fa-bitbucket:before {
+ content: "\f171";
+}
+
+.fa-bitbucket-square:before {
+ content: "\f172";
+}
+
+.fa-tumblr:before {
+ content: "\f173";
+}
+
+.fa-tumblr-square:before {
+ content: "\f174";
+}
+
+.fa-long-arrow-down:before {
+ content: "\f175";
+}
+
+.fa-long-arrow-up:before {
+ content: "\f176";
+}
+
+.fa-long-arrow-left:before {
+ content: "\f177";
+}
+
+.fa-long-arrow-right:before {
+ content: "\f178";
+}
+
+.fa-apple:before {
+ content: "\f179";
+}
+
+.fa-windows:before {
+ content: "\f17a";
+}
+
+.fa-android:before {
+ content: "\f17b";
+}
+
+.fa-linux:before {
+ content: "\f17c";
+}
+
+.fa-dribbble:before {
+ content: "\f17d";
+}
+
+.fa-skype:before {
+ content: "\f17e";
+}
+
+.fa-foursquare:before {
+ content: "\f180";
+}
+
+.fa-trello:before {
+ content: "\f181";
+}
+
+.fa-female:before {
+ content: "\f182";
+}
+
+.fa-male:before {
+ content: "\f183";
+}
+
+.fa-gittip:before,
+.fa-gratipay:before {
+ content: "\f184";
+}
+
+.fa-sun-o:before {
+ content: "\f185";
+}
+
+.fa-moon-o:before {
+ content: "\f186";
+}
+
+.fa-archive:before {
+ content: "\f187";
+}
+
+.fa-bug:before {
+ content: "\f188";
+}
+
+.fa-vk:before {
+ content: "\f189";
+}
+
+.fa-weibo:before {
+ content: "\f18a";
+}
+
+.fa-renren:before {
+ content: "\f18b";
+}
+
+.fa-pagelines:before {
+ content: "\f18c";
+}
+
+.fa-stack-exchange:before {
+ content: "\f18d";
+}
+
+.fa-arrow-circle-o-right:before {
+ content: "\f18e";
+}
+
+.fa-arrow-circle-o-left:before {
+ content: "\f190";
+}
+
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+ content: "\f191";
+}
+
+.fa-dot-circle-o:before {
+ content: "\f192";
+}
+
+.fa-wheelchair:before {
+ content: "\f193";
+}
+
+.fa-vimeo-square:before {
+ content: "\f194";
+}
+
+.fa-turkish-lira:before,
+.fa-try:before {
+ content: "\f195";
+}
+
+.fa-plus-square-o:before {
+ content: "\f196";
+}
+
+.fa-space-shuttle:before {
+ content: "\f197";
+}
+
+.fa-slack:before {
+ content: "\f198";
+}
+
+.fa-envelope-square:before {
+ content: "\f199";
+}
+
+.fa-wordpress:before {
+ content: "\f19a";
+}
+
+.fa-openid:before {
+ content: "\f19b";
+}
+
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before {
+ content: "\f19c";
+}
+
+.fa-mortar-board:before,
+.fa-graduation-cap:before {
+ content: "\f19d";
+}
+
+.fa-yahoo:before {
+ content: "\f19e";
+}
+
+.fa-google:before {
+ content: "\f1a0";
+}
+
+.fa-reddit:before {
+ content: "\f1a1";
+}
+
+.fa-reddit-square:before {
+ content: "\f1a2";
+}
+
+.fa-stumbleupon-circle:before {
+ content: "\f1a3";
+}
+
+.fa-stumbleupon:before {
+ content: "\f1a4";
+}
+
+.fa-delicious:before {
+ content: "\f1a5";
+}
+
+.fa-digg:before {
+ content: "\f1a6";
+}
+
+.fa-pied-piper-pp:before {
+ content: "\f1a7";
+}
+
+.fa-pied-piper-alt:before {
+ content: "\f1a8";
+}
+
+.fa-drupal:before {
+ content: "\f1a9";
+}
+
+.fa-joomla:before {
+ content: "\f1aa";
+}
+
+.fa-language:before {
+ content: "\f1ab";
+}
+
+.fa-fax:before {
+ content: "\f1ac";
+}
+
+.fa-building:before {
+ content: "\f1ad";
+}
+
+.fa-child:before {
+ content: "\f1ae";
+}
+
+.fa-paw:before {
+ content: "\f1b0";
+}
+
+.fa-spoon:before {
+ content: "\f1b1";
+}
+
+.fa-cube:before {
+ content: "\f1b2";
+}
+
+.fa-cubes:before {
+ content: "\f1b3";
+}
+
+.fa-behance:before {
+ content: "\f1b4";
+}
+
+.fa-behance-square:before {
+ content: "\f1b5";
+}
+
+.fa-steam:before {
+ content: "\f1b6";
+}
+
+.fa-steam-square:before {
+ content: "\f1b7";
+}
+
+.fa-recycle:before {
+ content: "\f1b8";
+}
+
+.fa-automobile:before,
+.fa-car:before {
+ content: "\f1b9";
+}
+
+.fa-cab:before,
+.fa-taxi:before {
+ content: "\f1ba";
+}
+
+.fa-tree:before {
+ content: "\f1bb";
+}
+
+.fa-spotify:before {
+ content: "\f1bc";
+}
+
+.fa-deviantart:before {
+ content: "\f1bd";
+}
+
+.fa-soundcloud:before {
+ content: "\f1be";
+}
+
+.fa-database:before {
+ content: "\f1c0";
+}
+
+.fa-file-pdf-o:before {
+ content: "\f1c1";
+}
+
+.fa-file-word-o:before {
+ content: "\f1c2";
+}
+
+.fa-file-excel-o:before {
+ content: "\f1c3";
+}
+
+.fa-file-powerpoint-o:before {
+ content: "\f1c4";
+}
+
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before {
+ content: "\f1c5";
+}
+
+.fa-file-zip-o:before,
+.fa-file-archive-o:before {
+ content: "\f1c6";
+}
+
+.fa-file-sound-o:before,
+.fa-file-audio-o:before {
+ content: "\f1c7";
+}
+
+.fa-file-movie-o:before,
+.fa-file-video-o:before {
+ content: "\f1c8";
+}
+
+.fa-file-code-o:before {
+ content: "\f1c9";
+}
+
+.fa-vine:before {
+ content: "\f1ca";
+}
+
+.fa-codepen:before {
+ content: "\f1cb";
+}
+
+.fa-jsfiddle:before {
+ content: "\f1cc";
+}
+
+.fa-life-bouy:before,
+.fa-life-buoy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before {
+ content: "\f1cd";
+}
+
+.fa-circle-o-notch:before {
+ content: "\f1ce";
+}
+
+.fa-ra:before,
+.fa-resistance:before,
+.fa-rebel:before {
+ content: "\f1d0";
+}
+
+.fa-ge:before,
+.fa-empire:before {
+ content: "\f1d1";
+}
+
+.fa-git-square:before {
+ content: "\f1d2";
+}
+
+.fa-git:before {
+ content: "\f1d3";
+}
+
+.fa-y-combinator-square:before,
+.fa-yc-square:before,
+.fa-hacker-news:before {
+ content: "\f1d4";
+}
+
+.fa-tencent-weibo:before {
+ content: "\f1d5";
+}
+
+.fa-qq:before {
+ content: "\f1d6";
+}
+
+.fa-wechat:before,
+.fa-weixin:before {
+ content: "\f1d7";
+}
+
+.fa-send:before,
+.fa-paper-plane:before {
+ content: "\f1d8";
+}
+
+.fa-send-o:before,
+.fa-paper-plane-o:before {
+ content: "\f1d9";
+}
+
+.fa-history:before {
+ content: "\f1da";
+}
+
+.fa-circle-thin:before {
+ content: "\f1db";
+}
+
+.fa-header:before {
+ content: "\f1dc";
+}
+
+.fa-paragraph:before {
+ content: "\f1dd";
+}
+
+.fa-sliders:before {
+ content: "\f1de";
+}
+
+.fa-share-alt:before {
+ content: "\f1e0";
+}
+
+.fa-share-alt-square:before {
+ content: "\f1e1";
+}
+
+.fa-bomb:before {
+ content: "\f1e2";
+}
+
+.fa-soccer-ball-o:before,
+.fa-futbol-o:before {
+ content: "\f1e3";
+}
+
+.fa-tty:before {
+ content: "\f1e4";
+}
+
+.fa-binoculars:before {
+ content: "\f1e5";
+}
+
+.fa-plug:before {
+ content: "\f1e6";
+}
+
+.fa-slideshare:before {
+ content: "\f1e7";
+}
+
+.fa-twitch:before {
+ content: "\f1e8";
+}
+
+.fa-yelp:before {
+ content: "\f1e9";
+}
+
+.fa-newspaper-o:before {
+ content: "\f1ea";
+}
+
+.fa-wifi:before {
+ content: "\f1eb";
+}
+
+.fa-calculator:before {
+ content: "\f1ec";
+}
+
+.fa-paypal:before {
+ content: "\f1ed";
+}
+
+.fa-google-wallet:before {
+ content: "\f1ee";
+}
+
+.fa-cc-visa:before {
+ content: "\f1f0";
+}
+
+.fa-cc-mastercard:before {
+ content: "\f1f1";
+}
+
+.fa-cc-discover:before {
+ content: "\f1f2";
+}
+
+.fa-cc-amex:before {
+ content: "\f1f3";
+}
+
+.fa-cc-paypal:before {
+ content: "\f1f4";
+}
+
+.fa-cc-stripe:before {
+ content: "\f1f5";
+}
+
+.fa-bell-slash:before {
+ content: "\f1f6";
+}
+
+.fa-bell-slash-o:before {
+ content: "\f1f7";
+}
+
+.fa-trash:before {
+ content: "\f1f8";
+}
+
+.fa-copyright:before {
+ content: "\f1f9";
+}
+
+.fa-at:before {
+ content: "\f1fa";
+}
+
+.fa-eyedropper:before {
+ content: "\f1fb";
+}
+
+.fa-paint-brush:before {
+ content: "\f1fc";
+}
+
+.fa-birthday-cake:before {
+ content: "\f1fd";
+}
+
+.fa-area-chart:before {
+ content: "\f1fe";
+}
+
+.fa-pie-chart:before {
+ content: "\f200";
+}
+
+.fa-line-chart:before {
+ content: "\f201";
+}
+
+.fa-lastfm:before {
+ content: "\f202";
+}
+
+.fa-lastfm-square:before {
+ content: "\f203";
+}
+
+.fa-toggle-off:before {
+ content: "\f204";
+}
+
+.fa-toggle-on:before {
+ content: "\f205";
+}
+
+.fa-bicycle:before {
+ content: "\f206";
+}
+
+.fa-bus:before {
+ content: "\f207";
+}
+
+.fa-ioxhost:before {
+ content: "\f208";
+}
+
+.fa-angellist:before {
+ content: "\f209";
+}
+
+.fa-cc:before {
+ content: "\f20a";
+}
+
+.fa-shekel:before,
+.fa-sheqel:before,
+.fa-ils:before {
+ content: "\f20b";
+}
+
+.fa-meanpath:before {
+ content: "\f20c";
+}
+
+.fa-buysellads:before {
+ content: "\f20d";
+}
+
+.fa-connectdevelop:before {
+ content: "\f20e";
+}
+
+.fa-dashcube:before {
+ content: "\f210";
+}
+
+.fa-forumbee:before {
+ content: "\f211";
+}
+
+.fa-leanpub:before {
+ content: "\f212";
+}
+
+.fa-sellsy:before {
+ content: "\f213";
+}
+
+.fa-shirtsinbulk:before {
+ content: "\f214";
+}
+
+.fa-simplybuilt:before {
+ content: "\f215";
+}
+
+.fa-skyatlas:before {
+ content: "\f216";
+}
+
+.fa-cart-plus:before {
+ content: "\f217";
+}
+
+.fa-cart-arrow-down:before {
+ content: "\f218";
+}
+
+.fa-diamond:before {
+ content: "\f219";
+}
+
+.fa-ship:before {
+ content: "\f21a";
+}
+
+.fa-user-secret:before {
+ content: "\f21b";
+}
+
+.fa-motorcycle:before {
+ content: "\f21c";
+}
+
+.fa-street-view:before {
+ content: "\f21d";
+}
+
+.fa-heartbeat:before {
+ content: "\f21e";
+}
+
+.fa-venus:before {
+ content: "\f221";
+}
+
+.fa-mars:before {
+ content: "\f222";
+}
+
+.fa-mercury:before {
+ content: "\f223";
+}
+
+.fa-intersex:before,
+.fa-transgender:before {
+ content: "\f224";
+}
+
+.fa-transgender-alt:before {
+ content: "\f225";
+}
+
+.fa-venus-double:before {
+ content: "\f226";
+}
+
+.fa-mars-double:before {
+ content: "\f227";
+}
+
+.fa-venus-mars:before {
+ content: "\f228";
+}
+
+.fa-mars-stroke:before {
+ content: "\f229";
+}
+
+.fa-mars-stroke-v:before {
+ content: "\f22a";
+}
+
+.fa-mars-stroke-h:before {
+ content: "\f22b";
+}
+
+.fa-neuter:before {
+ content: "\f22c";
+}
+
+.fa-genderless:before {
+ content: "\f22d";
+}
+
+.fa-facebook-official:before {
+ content: "\f230";
+}
+
+.fa-pinterest-p:before {
+ content: "\f231";
+}
+
+.fa-whatsapp:before {
+ content: "\f232";
+}
+
+.fa-server:before {
+ content: "\f233";
+}
+
+.fa-user-plus:before {
+ content: "\f234";
+}
+
+.fa-user-times:before {
+ content: "\f235";
+}
+
+.fa-hotel:before,
+.fa-bed:before {
+ content: "\f236";
+}
+
+.fa-viacoin:before {
+ content: "\f237";
+}
+
+.fa-train:before {
+ content: "\f238";
+}
+
+.fa-subway:before {
+ content: "\f239";
+}
+
+.fa-medium:before {
+ content: "\f23a";
+}
+
+.fa-yc:before,
+.fa-y-combinator:before {
+ content: "\f23b";
+}
+
+.fa-optin-monster:before {
+ content: "\f23c";
+}
+
+.fa-opencart:before {
+ content: "\f23d";
+}
+
+.fa-expeditedssl:before {
+ content: "\f23e";
+}
+
+.fa-battery-4:before,
+.fa-battery:before,
+.fa-battery-full:before {
+ content: "\f240";
+}
+
+.fa-battery-3:before,
+.fa-battery-three-quarters:before {
+ content: "\f241";
+}
+
+.fa-battery-2:before,
+.fa-battery-half:before {
+ content: "\f242";
+}
+
+.fa-battery-1:before,
+.fa-battery-quarter:before {
+ content: "\f243";
+}
+
+.fa-battery-0:before,
+.fa-battery-empty:before {
+ content: "\f244";
+}
+
+.fa-mouse-pointer:before {
+ content: "\f245";
+}
+
+.fa-i-cursor:before {
+ content: "\f246";
+}
+
+.fa-object-group:before {
+ content: "\f247";
+}
+
+.fa-object-ungroup:before {
+ content: "\f248";
+}
+
+.fa-sticky-note:before {
+ content: "\f249";
+}
+
+.fa-sticky-note-o:before {
+ content: "\f24a";
+}
+
+.fa-cc-jcb:before {
+ content: "\f24b";
+}
+
+.fa-cc-diners-club:before {
+ content: "\f24c";
+}
+
+.fa-clone:before {
+ content: "\f24d";
+}
+
+.fa-balance-scale:before {
+ content: "\f24e";
+}
+
+.fa-hourglass-o:before {
+ content: "\f250";
+}
+
+.fa-hourglass-1:before,
+.fa-hourglass-start:before {
+ content: "\f251";
+}
+
+.fa-hourglass-2:before,
+.fa-hourglass-half:before {
+ content: "\f252";
+}
+
+.fa-hourglass-3:before,
+.fa-hourglass-end:before {
+ content: "\f253";
+}
+
+.fa-hourglass:before {
+ content: "\f254";
+}
+
+.fa-hand-grab-o:before,
+.fa-hand-rock-o:before {
+ content: "\f255";
+}
+
+.fa-hand-stop-o:before,
+.fa-hand-paper-o:before {
+ content: "\f256";
+}
+
+.fa-hand-scissors-o:before {
+ content: "\f257";
+}
+
+.fa-hand-lizard-o:before {
+ content: "\f258";
+}
+
+.fa-hand-spock-o:before {
+ content: "\f259";
+}
+
+.fa-hand-pointer-o:before {
+ content: "\f25a";
+}
+
+.fa-hand-peace-o:before {
+ content: "\f25b";
+}
+
+.fa-trademark:before {
+ content: "\f25c";
+}
+
+.fa-registered:before {
+ content: "\f25d";
+}
+
+.fa-creative-commons:before {
+ content: "\f25e";
+}
+
+.fa-gg:before {
+ content: "\f260";
+}
+
+.fa-gg-circle:before {
+ content: "\f261";
+}
+
+.fa-tripadvisor:before {
+ content: "\f262";
+}
+
+.fa-odnoklassniki:before {
+ content: "\f263";
+}
+
+.fa-odnoklassniki-square:before {
+ content: "\f264";
+}
+
+.fa-get-pocket:before {
+ content: "\f265";
+}
+
+.fa-wikipedia-w:before {
+ content: "\f266";
+}
+
+.fa-safari:before {
+ content: "\f267";
+}
+
+.fa-chrome:before {
+ content: "\f268";
+}
+
+.fa-firefox:before {
+ content: "\f269";
+}
+
+.fa-opera:before {
+ content: "\f26a";
+}
+
+.fa-internet-explorer:before {
+ content: "\f26b";
+}
+
+.fa-tv:before,
+.fa-television:before {
+ content: "\f26c";
+}
+
+.fa-contao:before {
+ content: "\f26d";
+}
+
+.fa-500px:before {
+ content: "\f26e";
+}
+
+.fa-amazon:before {
+ content: "\f270";
+}
+
+.fa-calendar-plus-o:before {
+ content: "\f271";
+}
+
+.fa-calendar-minus-o:before {
+ content: "\f272";
+}
+
+.fa-calendar-times-o:before {
+ content: "\f273";
+}
+
+.fa-calendar-check-o:before {
+ content: "\f274";
+}
+
+.fa-industry:before {
+ content: "\f275";
+}
+
+.fa-map-pin:before {
+ content: "\f276";
+}
+
+.fa-map-signs:before {
+ content: "\f277";
+}
+
+.fa-map-o:before {
+ content: "\f278";
+}
+
+.fa-map:before {
+ content: "\f279";
+}
+
+.fa-commenting:before {
+ content: "\f27a";
+}
+
+.fa-commenting-o:before {
+ content: "\f27b";
+}
+
+.fa-houzz:before {
+ content: "\f27c";
+}
+
+.fa-vimeo:before {
+ content: "\f27d";
+}
+
+.fa-black-tie:before {
+ content: "\f27e";
+}
+
+.fa-fonticons:before {
+ content: "\f280";
+}
+
+.fa-reddit-alien:before {
+ content: "\f281";
+}
+
+.fa-edge:before {
+ content: "\f282";
+}
+
+.fa-credit-card-alt:before {
+ content: "\f283";
+}
+
+.fa-codiepie:before {
+ content: "\f284";
+}
+
+.fa-modx:before {
+ content: "\f285";
+}
+
+.fa-fort-awesome:before {
+ content: "\f286";
+}
+
+.fa-usb:before {
+ content: "\f287";
+}
+
+.fa-product-hunt:before {
+ content: "\f288";
+}
+
+.fa-mixcloud:before {
+ content: "\f289";
+}
+
+.fa-scribd:before {
+ content: "\f28a";
+}
+
+.fa-pause-circle:before {
+ content: "\f28b";
+}
+
+.fa-pause-circle-o:before {
+ content: "\f28c";
+}
+
+.fa-stop-circle:before {
+ content: "\f28d";
+}
+
+.fa-stop-circle-o:before {
+ content: "\f28e";
+}
+
+.fa-shopping-bag:before {
+ content: "\f290";
+}
+
+.fa-shopping-basket:before {
+ content: "\f291";
+}
+
+.fa-hashtag:before {
+ content: "\f292";
+}
+
+.fa-bluetooth:before {
+ content: "\f293";
+}
+
+.fa-bluetooth-b:before {
+ content: "\f294";
+}
+
+.fa-percent:before {
+ content: "\f295";
+}
+
+.fa-gitlab:before {
+ content: "\f296";
+}
+
+.fa-wpbeginner:before {
+ content: "\f297";
+}
+
+.fa-wpforms:before {
+ content: "\f298";
+}
+
+.fa-envira:before {
+ content: "\f299";
+}
+
+.fa-universal-access:before {
+ content: "\f29a";
+}
+
+.fa-wheelchair-alt:before {
+ content: "\f29b";
+}
+
+.fa-question-circle-o:before {
+ content: "\f29c";
+}
+
+.fa-blind:before {
+ content: "\f29d";
+}
+
+.fa-audio-description:before {
+ content: "\f29e";
+}
+
+.fa-volume-control-phone:before {
+ content: "\f2a0";
+}
+
+.fa-braille:before {
+ content: "\f2a1";
+}
+
+.fa-assistive-listening-systems:before {
+ content: "\f2a2";
+}
+
+.fa-asl-interpreting:before,
+.fa-american-sign-language-interpreting:before {
+ content: "\f2a3";
+}
+
+.fa-deafness:before,
+.fa-hard-of-hearing:before,
+.fa-deaf:before {
+ content: "\f2a4";
+}
+
+.fa-glide:before {
+ content: "\f2a5";
+}
+
+.fa-glide-g:before {
+ content: "\f2a6";
+}
+
+.fa-signing:before,
+.fa-sign-language:before {
+ content: "\f2a7";
+}
+
+.fa-low-vision:before {
+ content: "\f2a8";
+}
+
+.fa-viadeo:before {
+ content: "\f2a9";
+}
+
+.fa-viadeo-square:before {
+ content: "\f2aa";
+}
+
+.fa-snapchat:before {
+ content: "\f2ab";
+}
+
+.fa-snapchat-ghost:before {
+ content: "\f2ac";
+}
+
+.fa-snapchat-square:before {
+ content: "\f2ad";
+}
+
+.fa-pied-piper:before {
+ content: "\f2ae";
+}
+
+.fa-first-order:before {
+ content: "\f2b0";
+}
+
+.fa-yoast:before {
+ content: "\f2b1";
+}
+
+.fa-themeisle:before {
+ content: "\f2b2";
+}
+
+.fa-google-plus-circle:before,
+.fa-google-plus-official:before {
+ content: "\f2b3";
+}
+
+.fa-fa:before,
+.fa-font-awesome:before {
+ content: "\f2b4";
+}
+
+.fa-handshake-o:before {
+ content: "\f2b5";
+}
+
+.fa-envelope-open:before {
+ content: "\f2b6";
+}
+
+.fa-envelope-open-o:before {
+ content: "\f2b7";
+}
+
+.fa-linode:before {
+ content: "\f2b8";
+}
+
+.fa-address-book:before {
+ content: "\f2b9";
+}
+
+.fa-address-book-o:before {
+ content: "\f2ba";
+}
+
+.fa-vcard:before,
+.fa-address-card:before {
+ content: "\f2bb";
+}
+
+.fa-vcard-o:before,
+.fa-address-card-o:before {
+ content: "\f2bc";
+}
+
+.fa-user-circle:before {
+ content: "\f2bd";
+}
+
+.fa-user-circle-o:before {
+ content: "\f2be";
+}
+
+.fa-user-o:before {
+ content: "\f2c0";
+}
+
+.fa-id-badge:before {
+ content: "\f2c1";
+}
+
+.fa-drivers-license:before,
+.fa-id-card:before {
+ content: "\f2c2";
+}
+
+.fa-drivers-license-o:before,
+.fa-id-card-o:before {
+ content: "\f2c3";
+}
+
+.fa-quora:before {
+ content: "\f2c4";
+}
+
+.fa-free-code-camp:before {
+ content: "\f2c5";
+}
+
+.fa-telegram:before {
+ content: "\f2c6";
+}
+
+.fa-thermometer-4:before,
+.fa-thermometer:before,
+.fa-thermometer-full:before {
+ content: "\f2c7";
+}
+
+.fa-thermometer-3:before,
+.fa-thermometer-three-quarters:before {
+ content: "\f2c8";
+}
+
+.fa-thermometer-2:before,
+.fa-thermometer-half:before {
+ content: "\f2c9";
+}
+
+.fa-thermometer-1:before,
+.fa-thermometer-quarter:before {
+ content: "\f2ca";
+}
+
+.fa-thermometer-0:before,
+.fa-thermometer-empty:before {
+ content: "\f2cb";
+}
+
+.fa-shower:before {
+ content: "\f2cc";
+}
+
+.fa-bathtub:before,
+.fa-s15:before,
+.fa-bath:before {
+ content: "\f2cd";
+}
+
+.fa-podcast:before {
+ content: "\f2ce";
+}
+
+.fa-window-maximize:before {
+ content: "\f2d0";
+}
+
+.fa-window-minimize:before {
+ content: "\f2d1";
+}
+
+.fa-window-restore:before {
+ content: "\f2d2";
+}
+
+.fa-times-rectangle:before,
+.fa-window-close:before {
+ content: "\f2d3";
+}
+
+.fa-times-rectangle-o:before,
+.fa-window-close-o:before {
+ content: "\f2d4";
+}
+
+.fa-bandcamp:before {
+ content: "\f2d5";
+}
+
+.fa-grav:before {
+ content: "\f2d6";
+}
+
+.fa-etsy:before {
+ content: "\f2d7";
+}
+
+.fa-imdb:before {
+ content: "\f2d8";
+}
+
+.fa-ravelry:before {
+ content: "\f2d9";
+}
+
+.fa-eercast:before {
+ content: "\f2da";
+}
+
+.fa-microchip:before {
+ content: "\f2db";
+}
+
+.fa-snowflake-o:before {
+ content: "\f2dc";
+}
+
+.fa-superpowers:before {
+ content: "\f2dd";
+}
+
+.fa-wpexplorer:before {
+ content: "\f2de";
+}
+
+.fa-meetup:before {
+ content: "\f2e0";
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
diff --git a/assets/css/admin-rtl.min.css b/assets/css/admin-rtl.min.css
new file mode 100644
index 0000000000..b386fc8a1f
--- /dev/null
+++ b/assets/css/admin-rtl.min.css
@@ -0,0 +1,4 @@
+#poststuff .llms-metabox:before,#poststuff .llms-metabox:after,.llms-form-fields:before,.llms-metabox .llms-access-plans:before,.llms-collapsible .llms-collapsible-body:before,.llms-collapsible .llms-collapsible-header:before,.llms-collapsible:before,.llms-form-fields:after,.llms-metabox .llms-access-plans:after,.llms-collapsible .llms-collapsible-body:after,.llms-collapsible .llms-collapsible-header:after,.llms-collapsible:after{content:" ";display:table}#poststuff .llms-metabox:after,.llms-form-fields:after,.llms-metabox .llms-access-plans:after,.llms-collapsible .llms-collapsible-body:after,.llms-collapsible .llms-collapsible-header:after,.llms-collapsible:after{clear:both}.llms-button-action,.llms-button-danger,.llms-button-primary,.llms-button-secondary{border:none;border-radius:8px;color:#fefefe;cursor:pointer;display:inline-block;font-size:18px;font-weight:700;text-decoration:none;text-shadow:none;line-height:1;margin:0;max-width:100%;padding:12px 24px;position:relative;-webkit-transition:all .5s ease;transition:all .5s ease}.llms-button-action:disabled,.llms-button-danger:disabled,.llms-button-primary:disabled,.llms-button-secondary:disabled{opacity:.5}.llms-button-action:hover,.llms-button-action:active,.llms-button-danger:hover,.llms-button-danger:active,.llms-button-primary:hover,.llms-button-primary:active,.llms-button-secondary:hover,.llms-button-secondary:active{color:#fefefe}.llms-button-action:focus,.llms-button-danger:focus,.llms-button-primary:focus,.llms-button-secondary:focus{color:#fefefe}.llms-button-action.auto,.llms-button-danger.auto,.llms-button-primary.auto,.llms-button-secondary.auto{width:auto}.llms-button-action.full,.llms-button-danger.full,.llms-button-primary.full,.llms-button-secondary.full{display:block;text-align:center;width:100%}.llms-button-action.square,.llms-button-danger.square,.llms-button-primary.square,.llms-button-secondary.square{padding:12px}.llms-button-action.small,.llms-button-danger.small,.llms-button-primary.small,.llms-button-secondary.small{font-size:13px;padding:8px 14px}.llms-button-action.small.square,.llms-button-danger.small.square,.llms-button-primary.small.square,.llms-button-secondary.small.square{padding:8px}.llms-button-action.large,.llms-button-danger.large,.llms-button-primary.large,.llms-button-secondary.large{font-size:18px;line-height:1.2;padding:16px 32px}.llms-button-action.large.square,.llms-button-danger.large.square,.llms-button-primary.large.square,.llms-button-secondary.large.square{padding:16px}.llms-button-action.large .fa,.llms-button-danger.large .fa,.llms-button-primary.large .fa,.llms-button-secondary.large .fa{right:-7px;position:relative}a.llms-button-action,a.llms-button-danger,a.llms-button-primary{color:#fefefe}.llms-button-primary{background:#466dd8}.llms-button-primary:hover,.llms-button-primary.clicked{background:#2b55cb}.llms-button-primary:focus,.llms-button-primary:active{background:#6888df}.llms-button-secondary{background:#e1e1e1;color:#444}.llms-button-secondary:hover{color:#414141;background:#cdcdcd}.llms-button-secondary:focus,.llms-button-secondary:active{color:#414141;background:#ebebeb}a.llms-button-secondary{color:#444}.llms-button-action{background:#c05621}.llms-button-action:hover,.llms-button-action.clicked{background:#f67d28}.llms-button-action:focus,.llms-button-action:active{background:#faad76}.llms-button-danger{background:#bb231c}.llms-button-danger:hover{background:#981c17}.llms-button-danger:focus,.llms-button-danger:active{background:#cd261f}.llms-button-outline{background:rgba(0,0,0,0);border:3px solid #1d2327;border-radius:8px;color:#1d2327;cursor:pointer;font-size:16px;font-weight:700;text-decoration:none;text-shadow:none;line-height:1;margin:0;max-width:100%;padding:12px 24px;position:relative;-webkit-transition:all .5s ease;transition:all .5s ease}.llms-button-outline:disabled{opacity:.5}.llms-button-outline:hover,.llms-button-outline:active{color:#1d2327}.llms-button-outline:focus{color:#1d2327}.llms-button-outline.auto{width:auto}.llms-button-outline.full{display:block;text-align:center;width:100%}.llms-button-outline.square{padding:12px}.llms-course-continue-button{display:inline-block}.lifterlms [data-tip],.lifterlms [data-title-default],.lifterlms [data-title-active],.llms-metabox [data-tip],.llms-metabox [data-title-default],.llms-metabox [data-title-active],.llms-mb-container [data-tip],.llms-mb-container [data-title-default],.llms-mb-container [data-title-active],.llms-quiz-wrapper [data-tip],.llms-quiz-wrapper [data-title-default],.llms-quiz-wrapper [data-title-active]{position:relative}.lifterlms [data-tip].tip--top-right:before,.lifterlms [data-title-default].tip--top-right:before,.lifterlms [data-title-active].tip--top-right:before,.llms-metabox [data-tip].tip--top-right:before,.llms-metabox [data-title-default].tip--top-right:before,.llms-metabox [data-title-active].tip--top-right:before,.llms-mb-container [data-tip].tip--top-right:before,.llms-mb-container [data-title-default].tip--top-right:before,.llms-mb-container [data-title-active].tip--top-right:before,.llms-quiz-wrapper [data-tip].tip--top-right:before,.llms-quiz-wrapper [data-title-default].tip--top-right:before,.llms-quiz-wrapper [data-title-active].tip--top-right:before{bottom:100%;right:-10px}.lifterlms [data-tip].tip--top-right:hover:before,.lifterlms [data-title-default].tip--top-right:hover:before,.lifterlms [data-title-active].tip--top-right:hover:before,.llms-metabox [data-tip].tip--top-right:hover:before,.llms-metabox [data-title-default].tip--top-right:hover:before,.llms-metabox [data-title-active].tip--top-right:hover:before,.llms-mb-container [data-tip].tip--top-right:hover:before,.llms-mb-container [data-title-default].tip--top-right:hover:before,.llms-mb-container [data-title-active].tip--top-right:hover:before,.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-right:after,.lifterlms [data-title-default].tip--top-right:after,.lifterlms [data-title-active].tip--top-right:after,.llms-metabox [data-tip].tip--top-right:after,.llms-metabox [data-title-default].tip--top-right:after,.llms-metabox [data-title-active].tip--top-right:after,.llms-mb-container [data-tip].tip--top-right:after,.llms-mb-container [data-title-default].tip--top-right:after,.llms-mb-container [data-title-active].tip--top-right:after,.llms-quiz-wrapper [data-tip].tip--top-right:after,.llms-quiz-wrapper [data-title-default].tip--top-right:after,.llms-quiz-wrapper [data-title-active].tip--top-right:after{border-top-color:#444;right:6px;top:0}.lifterlms [data-tip].tip--top-right:hover:after,.lifterlms [data-title-default].tip--top-right:hover:after,.lifterlms [data-title-active].tip--top-right:hover:after,.llms-metabox [data-tip].tip--top-right:hover:after,.llms-metabox [data-title-default].tip--top-right:hover:after,.llms-metabox [data-title-active].tip--top-right:hover:after,.llms-mb-container [data-tip].tip--top-right:hover:after,.llms-mb-container [data-title-default].tip--top-right:hover:after,.llms-mb-container [data-title-active].tip--top-right:hover:after,.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after{top:-6px}.lifterlms [data-tip].tip--top-left:before,.lifterlms [data-title-default].tip--top-left:before,.lifterlms [data-title-active].tip--top-left:before,.llms-metabox [data-tip].tip--top-left:before,.llms-metabox [data-title-default].tip--top-left:before,.llms-metabox [data-title-active].tip--top-left:before,.llms-mb-container [data-tip].tip--top-left:before,.llms-mb-container [data-title-default].tip--top-left:before,.llms-mb-container [data-title-active].tip--top-left:before,.llms-quiz-wrapper [data-tip].tip--top-left:before,.llms-quiz-wrapper [data-title-default].tip--top-left:before,.llms-quiz-wrapper [data-title-active].tip--top-left:before{bottom:100%;left:-10px}.lifterlms [data-tip].tip--top-left:hover:before,.lifterlms [data-title-default].tip--top-left:hover:before,.lifterlms [data-title-active].tip--top-left:hover:before,.llms-metabox [data-tip].tip--top-left:hover:before,.llms-metabox [data-title-default].tip--top-left:hover:before,.llms-metabox [data-title-active].tip--top-left:hover:before,.llms-mb-container [data-tip].tip--top-left:hover:before,.llms-mb-container [data-title-default].tip--top-left:hover:before,.llms-mb-container [data-title-active].tip--top-left:hover:before,.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-left:after,.lifterlms [data-title-default].tip--top-left:after,.lifterlms [data-title-active].tip--top-left:after,.llms-metabox [data-tip].tip--top-left:after,.llms-metabox [data-title-default].tip--top-left:after,.llms-metabox [data-title-active].tip--top-left:after,.llms-mb-container [data-tip].tip--top-left:after,.llms-mb-container [data-title-default].tip--top-left:after,.llms-mb-container [data-title-active].tip--top-left:after,.llms-quiz-wrapper [data-tip].tip--top-left:after,.llms-quiz-wrapper [data-title-default].tip--top-left:after,.llms-quiz-wrapper [data-title-active].tip--top-left:after{border-top-color:#444;left:6px;top:0}.lifterlms [data-tip].tip--top-left:hover:after,.lifterlms [data-title-default].tip--top-left:hover:after,.lifterlms [data-title-active].tip--top-left:hover:after,.llms-metabox [data-tip].tip--top-left:hover:after,.llms-metabox [data-title-default].tip--top-left:hover:after,.llms-metabox [data-title-active].tip--top-left:hover:after,.llms-mb-container [data-tip].tip--top-left:hover:after,.llms-mb-container [data-title-default].tip--top-left:hover:after,.llms-mb-container [data-title-active].tip--top-left:hover:after,.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after{top:-6px}.lifterlms [data-tip].tip--bottom-left:before,.lifterlms [data-title-default].tip--bottom-left:before,.lifterlms [data-title-active].tip--bottom-left:before,.llms-metabox [data-tip].tip--bottom-left:before,.llms-metabox [data-title-default].tip--bottom-left:before,.llms-metabox [data-title-active].tip--bottom-left:before,.llms-mb-container [data-tip].tip--bottom-left:before,.llms-mb-container [data-title-default].tip--bottom-left:before,.llms-mb-container [data-title-active].tip--bottom-left:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:before{top:100%;left:-10px}.lifterlms [data-tip].tip--bottom-left:hover:before,.lifterlms [data-title-default].tip--bottom-left:hover:before,.lifterlms [data-title-active].tip--bottom-left:hover:before,.llms-metabox [data-tip].tip--bottom-left:hover:before,.llms-metabox [data-title-default].tip--bottom-left:hover:before,.llms-metabox [data-title-active].tip--bottom-left:hover:before,.llms-mb-container [data-tip].tip--bottom-left:hover:before,.llms-mb-container [data-title-default].tip--bottom-left:hover:before,.llms-mb-container [data-title-active].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-left:after,.lifterlms [data-title-default].tip--bottom-left:after,.lifterlms [data-title-active].tip--bottom-left:after,.llms-metabox [data-tip].tip--bottom-left:after,.llms-metabox [data-title-default].tip--bottom-left:after,.llms-metabox [data-title-active].tip--bottom-left:after,.llms-mb-container [data-tip].tip--bottom-left:after,.llms-mb-container [data-title-default].tip--bottom-left:after,.llms-mb-container [data-title-active].tip--bottom-left:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:after{border-bottom-color:#444;left:6px;bottom:0}.lifterlms [data-tip].tip--bottom-left:hover:after,.lifterlms [data-title-default].tip--bottom-left:hover:after,.lifterlms [data-title-active].tip--bottom-left:hover:after,.llms-metabox [data-tip].tip--bottom-left:hover:after,.llms-metabox [data-title-default].tip--bottom-left:hover:after,.llms-metabox [data-title-active].tip--bottom-left:hover:after,.llms-mb-container [data-tip].tip--bottom-left:hover:after,.llms-mb-container [data-title-default].tip--bottom-left:hover:after,.llms-mb-container [data-title-active].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after{bottom:-6px}.lifterlms [data-tip].tip--bottom-right:before,.lifterlms [data-title-default].tip--bottom-right:before,.lifterlms [data-title-active].tip--bottom-right:before,.llms-metabox [data-tip].tip--bottom-right:before,.llms-metabox [data-title-default].tip--bottom-right:before,.llms-metabox [data-title-active].tip--bottom-right:before,.llms-mb-container [data-tip].tip--bottom-right:before,.llms-mb-container [data-title-default].tip--bottom-right:before,.llms-mb-container [data-title-active].tip--bottom-right:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:before{top:100%;right:-10px}.lifterlms [data-tip].tip--bottom-right:hover:before,.lifterlms [data-title-default].tip--bottom-right:hover:before,.lifterlms [data-title-active].tip--bottom-right:hover:before,.llms-metabox [data-tip].tip--bottom-right:hover:before,.llms-metabox [data-title-default].tip--bottom-right:hover:before,.llms-metabox [data-title-active].tip--bottom-right:hover:before,.llms-mb-container [data-tip].tip--bottom-right:hover:before,.llms-mb-container [data-title-default].tip--bottom-right:hover:before,.llms-mb-container [data-title-active].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-right:after,.lifterlms [data-title-default].tip--bottom-right:after,.lifterlms [data-title-active].tip--bottom-right:after,.llms-metabox [data-tip].tip--bottom-right:after,.llms-metabox [data-title-default].tip--bottom-right:after,.llms-metabox [data-title-active].tip--bottom-right:after,.llms-mb-container [data-tip].tip--bottom-right:after,.llms-mb-container [data-title-default].tip--bottom-right:after,.llms-mb-container [data-title-active].tip--bottom-right:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:after{border-bottom-color:#444;right:6px;bottom:0}.lifterlms [data-tip].tip--bottom-right:hover:after,.lifterlms [data-title-default].tip--bottom-right:hover:after,.lifterlms [data-title-active].tip--bottom-right:hover:after,.llms-metabox [data-tip].tip--bottom-right:hover:after,.llms-metabox [data-title-default].tip--bottom-right:hover:after,.llms-metabox [data-title-active].tip--bottom-right:hover:after,.llms-mb-container [data-tip].tip--bottom-right:hover:after,.llms-mb-container [data-title-default].tip--bottom-right:hover:after,.llms-mb-container [data-title-active].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after{bottom:-6px}.lifterlms [data-tip]:before,.lifterlms [data-title-default]:before,.lifterlms [data-title-active]:before,.llms-metabox [data-tip]:before,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-active]:before,.llms-mb-container [data-tip]:before,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-active]:before,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-active]:before{background:#444;border-radius:4px;color:#fff;font-size:13px;line-height:1.2;padding:8px;max-width:300px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.lifterlms [data-tip]:after,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:after{content:"";border:6px solid rgba(0,0,0,0);height:0;width:0}.lifterlms [data-tip]:before,.lifterlms [data-tip]:after,.lifterlms [data-title-default]:before,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:before,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:before,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:before,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:before,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:before,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:before,.llms-quiz-wrapper [data-title-active]:after{opacity:0;-webkit-transition:all .2s .1s ease;transition:all .2s .1s ease;position:absolute;pointer-events:none;visibility:hidden}.lifterlms [data-tip]:hover:before,.lifterlms [data-tip]:hover:after,.lifterlms [data-title-default]:hover:before,.lifterlms [data-title-default]:hover:after,.lifterlms [data-title-active]:hover:before,.lifterlms [data-title-active]:hover:after,.llms-metabox [data-tip]:hover:before,.llms-metabox [data-tip]:hover:after,.llms-metabox [data-title-default]:hover:before,.llms-metabox [data-title-default]:hover:after,.llms-metabox [data-title-active]:hover:before,.llms-metabox [data-title-active]:hover:after,.llms-mb-container [data-tip]:hover:before,.llms-mb-container [data-tip]:hover:after,.llms-mb-container [data-title-default]:hover:before,.llms-mb-container [data-title-default]:hover:after,.llms-mb-container [data-title-active]:hover:before,.llms-mb-container [data-title-active]:hover:after,.llms-quiz-wrapper [data-tip]:hover:before,.llms-quiz-wrapper [data-tip]:hover:after,.llms-quiz-wrapper [data-title-default]:hover:before,.llms-quiz-wrapper [data-title-default]:hover:after,.llms-quiz-wrapper [data-title-active]:hover:before,.llms-quiz-wrapper [data-title-active]:hover:after{opacity:1;-webkit-transition:all 0 .1s ease;transition:all 0 .1s ease;visibility:visible;z-index:99999999}.lifterlms [data-tip]:before,.llms-metabox [data-tip]:before,.llms-mb-container [data-tip]:before,.llms-quiz-wrapper [data-tip]:before{content:attr(data-tip)}.lifterlms [data-tip].active:before,.llms-metabox [data-tip].active:before,.llms-mb-container [data-tip].active:before,.llms-quiz-wrapper [data-tip].active:before{content:attr(data-tip-active)}#adminmenu .toplevel_page_lifterlms .wp-menu-image img{padding-top:6px;width:20px}#adminmenu .toplevel_page_lifterlms a[href*="page=llms-add-ons"],#adminmenu .opensub .wp-submenu li.current a[href*="page=llms-add-ons"],#adminmenu .wp-submenu li.current a[href*="page=llms-add-ons"],#adminmenu .wp-submenu li.current a[href*="page=llms-add-ons"],#adminmenu .wp-submenu li.current a[href*="page=llms-add-ons"],#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a[href*="page=llms-add-ons"]{color:#f8954f}.last-col{float:left;padding-left:0 !important}.last-col:after{clear:both}@media(max-width: 767px){.m-all{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;padding-left:0}.m-1of2{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.m-1of3{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:33.33%}.m-2of3{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:66.66%}.m-1of4{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:25%}.m-3of4{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:75%}.m-right{text-align:center}.m-center{text-align:center}.m-left{text-align:center}.d-right{text-align:left}.d-center{text-align:center}.d-left{text-align:right}}@media(min-width: 768px)and (max-width: 1029px){.t-all{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;padding-left:0}.t-1of2{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.t-1of3{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:33.33%}.t-2of3{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:66.66%}.t-1of4{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:25%}.t-3of4{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:75%}.t-1of5{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:20%}.t-2of5{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:40%}.t-3of5{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:60%}.t-4of5{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:80%}.d-right{text-align:left}.d-center{text-align:center}.d-left{text-align:right}}@media(min-width: 1030px){.d-all{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;padding-left:0}.d-1of2{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.d-1of3{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:33.33%}.d-2of3{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:66.66%}.d-1of4{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:25%}.d-3of4{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:75%}.d-1of5{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:20%}.d-2of5{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:40%}.d-3of5{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:60%}.d-4of5{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:80%}.d-1of6{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:16.6666666667%}.d-1of7{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:14.2857142857%}.d-2of7{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:28.5714286%}.d-3of7{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:42.8571429%}.d-4of7{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:57.1428572%}.d-5of7{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:71.4285715%}.d-6of7{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:85.7142857%}.d-1of8{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:12.5%}.d-1of9{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:11.1111111111%}.d-1of10{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:10%}.d-1of11{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:9.0909090909%}.d-1of12{float:right;padding-left:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:8.33%}.d-right{text-align:left}.d-center{text-align:center}.d-left{text-align:right}}#llms-form-wrapper .llms-search-form-wrapper{border-bottom:1px solid #999;margin:20px 0}#llms-form-wrapper #llms_analytics_search{border:none !important;text-shadow:none !important;border:none !important;outline:none !important;-webkit-box-shadow:none !important;box-shadow:none !important;margin:0 !important;color:#fefefe !important;background:#466dd8 !important;border-radius:0;-webkit-transition:.5s;transition:.5s}#llms-form-wrapper #llms_analytics_search:hover{background:#0185a3 !important}#llms-form-wrapper #llms_analytics_search:active{background:#33b1cb !important}#llms-skip-setup-form .llms-admin-link{background:none !important;border:none;padding:0 !important;color:#0074a2;cursor:pointer}#llms-skip-setup-form .llms-admin-link:hover{color:#2ea2cc}#llms-skip-setup-form .llms-admin-link:focus{color:#124964}.llms-switch{position:relative}.llms-switch .llms-toggle{position:absolute;margin-right:-9999px;visibility:hidden}.llms-switch .llms-toggle+label{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;position:relative;cursor:pointer;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.llms-switch input.llms-toggle-round+label{border:2px solid #6c7781;border-radius:10px;height:20px;width:36px}.llms-switch input.llms-toggle-round+label:before,.llms-switch input.llms-toggle-round+label:after{-webkit-box-sizing:border-box;box-sizing:border-box;content:"";display:block;position:absolute;-webkit-transition:background .4s;transition:background .4s}.llms-switch input.llms-toggle-round:checked+label{border-color:#11a0d2;background-color:#11a0d2}.llms-switch input.llms-toggle-round+label:after{height:12px;right:2px;top:2px;background-color:#6c7781;border-radius:50%;-webkit-transition:margin .4s;transition:margin .4s;width:12px;z-index:3}.llms-switch input.llms-toggle-round:checked+label:after{background-color:#fefefe;margin-right:16px}.llms-switch input.llms-toggle-round+label:before{height:8px;top:4px;border:1px solid #6c7781;border-radius:50%;left:4px;width:8px;z-index:2}.llms-switch input.llms-toggle-round:checked+label:before{border-color:#fefefe;border-radius:0;right:6px;left:auto;width:2px}#llms-profile-fields{margin:50px 0}#llms-profile-fields .llms-form-field{padding-right:0}#llms-profile-fields label{display:block;font-weight:bold;padding:8px 0 2px}#llms-profile-fields .type-checkbox .type-checkbox label{display:initial;font-weight:initial;padding:0}#llms-profile-fields .type-checkbox .type-checkbox input{display:inline-block;margin-bottom:0;width:1rem}#llms-profile-fields select{max-width:100%}a.llms-voucher-delete{background:#bb231c;color:#fefefe;display:block;padding:4px 2px;text-decoration:none;-webkit-transition:ease .3s all;transition:ease .3s all}a.llms-voucher-delete:hover{background:#af3a26}.llms-voucher-codes-wrapper table,.llms-voucher-redemption-wrapper table{width:100%;border-collapse:collapse}.llms-voucher-codes-wrapper table th,.llms-voucher-codes-wrapper table td,.llms-voucher-redemption-wrapper table th,.llms-voucher-redemption-wrapper table td{border:none}.llms-voucher-codes-wrapper table thead,.llms-voucher-redemption-wrapper table thead{background-color:#466dd8;color:#fff}.llms-voucher-codes-wrapper table thead th,.llms-voucher-redemption-wrapper table thead th{padding:10px 10px}.llms-voucher-codes-wrapper table tr,.llms-voucher-redemption-wrapper table tr{counter-increment:row-counter}.llms-voucher-codes-wrapper table tr:nth-child(even),.llms-voucher-redemption-wrapper table tr:nth-child(even){background-color:#f1f1f1}.llms-voucher-codes-wrapper table tr td,.llms-voucher-redemption-wrapper table tr td{padding:5px}.llms-voucher-codes-wrapper table tr td:first-child:before,.llms-voucher-redemption-wrapper table tr td:first-child:before{content:counter(row-counter)}.llms-voucher-codes-wrapper table{width:100%;border-collapse:collapse}.llms-voucher-codes-wrapper table th,.llms-voucher-codes-wrapper table td{border:none}.llms-voucher-codes-wrapper table thead{background-color:#466dd8;color:#fff}.llms-voucher-codes-wrapper table tr:nth-child(even){background-color:#f1f1f1}.llms-voucher-codes-wrapper table tr td span{display:inline-block;min-width:30px}.llms-voucher-codes-wrapper button{cursor:pointer}.llms-voucher-codes-wrapper .llms-voucher-delete{float:left;margin-left:15px}.llms-voucher-codes-wrapper .llms-voucher-uses{width:50px}.llms-voucher-codes-wrapper .llms-voucher-add-codes{float:left}.llms-voucher-codes-wrapper .llms-voucher-add-codes input[type=text]{width:30px}.llms-voucher-export-wrapper .llms-voucher-export-type{width:100%}.llms-voucher-export-wrapper .llms-voucher-export-type p{margin:0 15px 0 0}.llms-voucher-export-wrapper .llms-voucher-email-wrapper{width:100%;margin:25px 0}.llms-voucher-export-wrapper .llms-voucher-email-wrapper input[type=text]{width:100%}.llms-voucher-export-wrapper .llms-voucher-email-wrapper p{margin:0}.llms-voucher-export-wrapper>button{float:left}.postbox .inside{overflow:auto}.llms-widget{background-color:#fff;border:1px solid #dedede;border-radius:12px;-webkit-box-shadow:0px 0px 1px rgba(48,49,51,.05),0px 2px 4px rgba(48,49,51,.1);box-shadow:0px 0px 1px rgba(48,49,51,.05),0px 2px 4px rgba(48,49,51,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:20px;padding:20px;position:relative;width:100%}.llms-widget.alt{border:1px solid #ccc;background-color:#efefef;margin-bottom:10px}.llms-widget.alt .llms-label{color:#777;font-size:14px;margin-bottom:10px;padding-bottom:5px}.llms-widget.alt h2{color:#444;font-weight:300}.llms-widget a{border-bottom:1px dotted #466dd8;display:inline-block;text-decoration:none}.llms-widget a:hover{border-bottom:1px dotted #2b55cb}.llms-widget .llms-widget-content{margin:.67em 0;color:#466dd8;font-size:2.4em;font-weight:700;line-height:1;word-break:break-all}.llms-widget h2{font-size:1.8em}.llms-widget .llms-label{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:18px;font-weight:400;margin:0 0 10px 0;text-align:center}.llms-widget .llms-chart{width:100%;padding:10px;-webkit-box-sizing:border-box;box-sizing:border-box}.llms-widget mark.yes{background-color:#7ad03a}.llms-widget .llms-subtitle{margin-bottom:0}.llms-widget .spinner{float:none;right:50%;margin:-10px -10px 0 0;position:absolute;top:50%;z-index:2}.llms-widget.is-loading:before{background:#fefefe;bottom:0;content:"";right:0;opacity:.9;position:absolute;left:0;top:0;z-index:1}.llms-widget.is-loading .spinner{visibility:visible}.llms-widget td[colspan="2"]{padding-right:0}.llms-widget tr.llms-disabled-field{opacity:.5;pointer-events:none}.llms-widget-1-3,.llms-widget-1-4,.llms-widget-1-5{text-align:center}.llms-widget .llms-widget-info-toggle{color:#aaa;cursor:pointer;font-size:16px;position:absolute;left:20px;top:20px}.llms-widget.info-showing .llms-widget-info{display:block}.llms-widget-info{background:#444;color:#fefefe;bottom:-50px;display:none;padding:15px;position:absolute;text-align:center;right:10px;left:15px;z-index:3}.llms-widget-info:before{content:"";border:12px solid rgba(0,0,0,0);border-bottom-color:#444;right:50%;margin-right:-12px;position:absolute;top:-24px}.llms-widget-info p{margin:0}.llms-widget-row:before,.llms-widget-row:after{content:" ";display:table}.llms-widget-row:after{clear:both}.llms-widget-row .no-padding{padding:0 !important}svg.icon{height:24px;width:24px;display:inline-block;fill:currentColor;vertical-align:baseline}button svg.icon{height:18px;width:18px;margin:4px 4px 0 -4px;-webkit-filter:drop-shadow(0 1px #eee);filter:drop-shadow(0 1px #eee);float:left}svg.icon.menu-icon{height:20px;width:20px;display:inline-block;fill:currentColor;vertical-align:text-bottom;margin-left:10px}svg.icon.tree-icon{height:13px;width:13px;vertical-align:middle}svg.icon.section-icon{height:16px;width:16px;vertical-align:text-bottom}svg.icon.button-icon{height:16px;width:16px;vertical-align:text-bottom}svg.icon.button-icon-attr{height:10px;width:10px;vertical-align:middle}svg.icon.list-icon{height:12px;width:12px;vertical-align:middle}svg.icon.list-icon.on{color:#466dd8}svg.icon.list-icon.off{color:#444}svg.icon.detail-icon{height:16px;width:16px;vertical-align:text-bottom;cursor:default}svg.icon.detail-icon.on{color:#466dd8}svg.icon.detail-icon.off{color:#ccc}svg.icon-ion-arrow-up{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}svg use{pointer-events:none}#side-sortables .tab-content{padding:0}.llms-mb-container .tab-content{display:none;background-color:#fff;padding:0 20px}.llms-mb-container .tab-content ul:not(.select2-selection__rendered){margin:0 0 15px 0}.llms-mb-container .tab-content ul:not(.select2-selection__rendered)>li{padding:20px 0;margin:0}.llms-mb-container .tab-content ul:not(.select2-selection__rendered)>li.select:not([class*=d-]){width:100%}.llms-mb-container .tab-content ul:not(.select2-selection__rendered)>li:last-child{border:0;padding-bottom:0}.llms-mb-container .tab-content ul:not(.select2-selection__rendered)>li.top{border-bottom:0;padding-bottom:0}.llms-mb-container .tab-content .full-width{width:100%}.llms-mb-container .tab-content #wp-content-editor-tools{background:none}.llms-mb-container .tab-content.llms-active{display:inherit}.llms-mb-container .tab-content .no-border{border-bottom:0px}.topModal{display:none;position:relative;border:4px solid gray;background:#fff;z-index:1000001;padding:2px;max-width:500px;margin:34px auto 0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-color:#fff;border-radius:2px;border:1px solid #ddd}.topModalClose{float:left;cursor:pointer;margin-left:10px;margin-top:10px}.topModalContainer{display:none;overflow:auto;overflow-y:hidden;position:fixed;top:0 !important;left:0;bottom:0;right:0;-webkit-overflow-scrolling:touch;width:auto !important;margin-right:0 !important;background-color:rgba(0,0,0,0) !important;z-index:100002 !important}.topModalBackground{display:none;background:#000;position:fixed;height:100%;width:100%;top:0 !important;right:0;margin-right:0 !important;z-index:100002 !important;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:auto;overflow-y:hidden}body.modal-open{overflow:hidden}.llms-modal-header{border-top-left-radius:1px;border-top-right-radius:1px;background:#466dd8;color:#eee;padding:10px 15px;font-size:18px}#llms-icon-modal-close{width:16px;height:16px;fill:#fefefe}.llms-modal-content{padding:20px}.llms-modal-content h3{margin-top:0}.llms-modal-form h1{margin-top:0}.llms-modal-form input[type=text]{width:100%}.llms-modal-form textarea,.llms-modal-form input[type=text],.llms-modal-form input[type=password],.llms-modal-form input[type=file],.llms-modal-form input[type=datetime],.llms-modal-form input[type=datetime-local],.llms-modal-form input[type=date],.llms-modal-form input[type=month],.llms-modal-form input[type=time],.llms-modal-form input[type=week],.llms-modal-form input[type=number],.llms-modal-form input[type=email],.llms-modal-form input[type=url],.llms-modal-form input[type=search],.llms-modal-form input[type=tel],.llms-modal-form input[type=color]{padding:0 .4em 0 .4em;margin-bottom:2em;vertical-align:middle;border-radius:3px;min-width:50px;max-width:635px;width:100%;min-height:32px;background-color:#fff;border:1px solid #ccc;margin:0 0 24px 0;outline:none;-webkit-transition:border .3s ease-in-out 0s;transition:border .3s ease-in-out 0s}.llms-modal-form textarea:focus,.llms-modal-form input[type=text]:focus,.llms-modal-form input[type=password]:focus,.llms-modal-form input[type=file]:focus,.llms-modal-form input[type=datetime]:focus,.llms-modal-form input[type=datetime-local]:focus,.llms-modal-form input[type=date]:focus,.llms-modal-form input[type=month]:focus,.llms-modal-form input[type=time]:focus,.llms-modal-form input[type=week]:focus,.llms-modal-form input[type=number]:focus,.llms-modal-form input[type=email]:focus,.llms-modal-form input[type=url]:focus,.llms-modal-form input[type=search]:focus,.llms-modal-form input[type=tel]:focus,.llms-modal-form input[type=color]:focus{background:#fefefe;border:1px solid #466dd8}.llms-modal-form textarea{padding:.4em !important;height:100px !important;border-radius:3px;vertical-align:middle;min-height:32px;outline:none;-webkit-box-sizing:border-box;box-sizing:border-box}.llms-modal-form textarea:focus{background:#fefefe;border:1px solid #466dd8}.llms-modal-form .chosen-container-single .chosen-single{border-radius:3px;vertical-align:middle;min-height:32px;border:1px solid #ccc;width:100%;background:#fefefe !important;outline:none;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 0 0 #fff;box-shadow:0 0 0 #fff;line-height:32px;margin:0 0 24px 0}.llms-modal-form .chosen-container-single .chosen-single:focus{background:#fefefe;border:1px solid #466dd8}.llms-modal-form .chosen-container-single .chosen-single div b{margin-top:4px}.llms-modal-form .chosen-search input[type=text]{border:1px solid #ccc}.llms-modal-form .chosen-search input[type=text]:focus{background-color:#fefefe;border:1px solid #466dd8}.llms-modal-form .chosen-container-single .chosen-drop{margin-top:-28px}.llms-modal-form .llms-button-primary,.llms-modal-form .llms-button-secondary{padding:10px 10px;border-radius:0;-webkit-transition:.5s;transition:.5s;-webkit-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px #ccc}.llms-modal-form .llms-button-primary.full,.llms-modal-form .llms-button-secondary.full{width:100%}.modal-open .select2-dropdown{z-index:1000005}.button.llms-merge-code-button{vertical-align:middle}.button.llms-merge-code-button svg{margin-left:2px;position:relative;top:4px;width:16px}.button.llms-merge-code-button svg g{fill:currentColor}.llms-mb-container .llms-merge-code-wrapper{float:left;top:-5px}.llms-merge-code-wrapper{display:inline;position:relative}.llms-merge-codes{background:#f7f7f7;border:1px solid #ccc;border-radius:3px;-webkit-box-shadow:0 1px 0 #ccc;box-shadow:0 1px 0 #ccc;color:#555;display:none;right:1px;overflow:hidden;position:absolute;top:30px;width:200px}.llms-merge-codes ul{margin:0;padding:0}.llms-merge-codes li{cursor:pointer;margin:0;padding:4px 8px !important;border-bottom:1px solid #ccc}.llms-merge-codes li:hover{color:#23282d;background:#fefefe}.llms-merge-codes.active{display:block;z-index:777}.llms-nav-tab,.llms-nav-tab-filters{display:block;width:100%}form.llms-nav-tab-filters.full-width{width:100%}form.llms-nav-tab-filters.full-width label{display:inline-block;width:10%;text-align:right}form.llms-nav-tab-filters.full-width .select2-container{width:85% !important}.llms-nav-tab-settings{display:block;width:100%}#llms-form-wrapper .llms-select{width:100%;margin-bottom:20px}#llms-form-wrapper .llms-checkbox{display:inline-block;width:100%;text-align:right}#llms-form-wrapper .llms-filter-options{width:100%}#llms-form-wrapper .llms-date-select{width:100%;display:inline-block;margin-bottom:20px}#llms-form-wrapper .llms-date-select input[type=text]{width:100%}ul.tabs li{display:block}@media only screen and (min-width: 481px){#llms-form-wrapper .llms-checkbox{width:33%}}@media only screen and (min-width: 768px){ul.tabs li{display:inline-block}.llms-nav-tab{display:inline-block;width:33%}.llms-nav-tab-settings{display:inline-block;width:25%}#llms-form-wrapper .llms-select{width:50%;max-width:500px}#llms-form-wrapper .llms-filter-options{width:50%;max-width:500px}#llms-form-wrapper .llms-date-select{width:47.5%}#llms-form-wrapper .llms-date-select:first-child{margin-left:5%}.llms-widget input[type=text],.llms-widget input[type=password],.llms-widget input[type=datetime],.llms-widget input[type=datetime-local],.llms-widget input[type=date],.llms-widget input[type=month],.llms-widget input[type=time],.llms-widget input[type=week],.llms-widget input[type=number],.llms-widget input[type=email],.llms-widget input[type=url],.llms-widget input[type=search],.llms-widget input[type=tel],.llms-widget input[type=color],.llms-widget select,.llms-widget textarea{width:50%}.llms-widget input[type=text].medium,.llms-widget input[type=password].medium,.llms-widget input[type=datetime].medium,.llms-widget input[type=datetime-local].medium,.llms-widget input[type=date].medium,.llms-widget input[type=month].medium,.llms-widget input[type=time].medium,.llms-widget input[type=week].medium,.llms-widget input[type=number].medium,.llms-widget input[type=email].medium,.llms-widget input[type=url].medium,.llms-widget input[type=search].medium,.llms-widget input[type=tel].medium,.llms-widget input[type=color].medium,.llms-widget select.medium,.llms-widget textarea.medium{width:30%}.llms-widget input[type=text].small,.llms-widget input[type=password].small,.llms-widget input[type=datetime].small,.llms-widget input[type=datetime-local].small,.llms-widget input[type=date].small,.llms-widget input[type=month].small,.llms-widget input[type=time].small,.llms-widget input[type=week].small,.llms-widget input[type=number].small,.llms-widget input[type=email].small,.llms-widget input[type=url].small,.llms-widget input[type=search].small,.llms-widget input[type=tel].small,.llms-widget input[type=color].small,.llms-widget select.small,.llms-widget textarea.small{width:20%}.llms-widget input[type=text].tiny,.llms-widget input[type=password].tiny,.llms-widget input[type=datetime].tiny,.llms-widget input[type=datetime-local].tiny,.llms-widget input[type=date].tiny,.llms-widget input[type=month].tiny,.llms-widget input[type=time].tiny,.llms-widget input[type=week].tiny,.llms-widget input[type=number].tiny,.llms-widget input[type=email].tiny,.llms-widget input[type=url].tiny,.llms-widget input[type=search].tiny,.llms-widget input[type=tel].tiny,.llms-widget input[type=color].tiny,.llms-widget select.tiny,.llms-widget textarea.tiny{width:10%}}@media only screen and (min-width: 1030px){.llms-nav-tab{display:inline-block;width:33.333%}.llms-nav-tab-settings{display:inline-block;width:25%}#llms-form-wrapper .llms-select{display:inline-block;width:47.5%}#llms-form-wrapper .llms-select:first-child{margin-left:5%}#llms-form-wrapper .llms-filter-options{display:inline-block;width:47.5%}#llms-form-wrapper .llms-filter-options.date-filter{margin-left:5%}#llms-form-wrapper .llms-filter-options .llms-date-select{margin-bottom:0}#llms-form-wrapper .llms-date-select{width:47.5%}#llms-form-wrapper .llms-date-select:first-child{margin-left:5%}.llms-widget-row:before,.llms-widget-row:after{content:" ";display:table}.llms-widget-row:after{clear:both}.llms-widget-row .llms-widget-1-5{vertical-align:top;width:20%;float:right;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 5px}.llms-widget-row .llms-widget-1-4{vertical-align:top;width:25%;float:right;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 5px}.llms-widget-row .llms-widget-1-3{width:33.3%;float:right;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 5px}.llms-widget-row .llms-widget-1-2{width:50%;float:right;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 5px;vertical-align:top}}@media only screen and (min-width: 1240px){.llms-nav-tab-filters,.llms-nav-tab-settings{float:right;width:12.5%}}.wrap.lifterlms{margin-top:0}.llms-header{background-color:#fff;margin:0 -20px 0 0;padding:20px 10px;position:relative;z-index:1}.llms-header .llms-inside-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 10px}.llms-header .lifterlms-logo{-webkit-box-flex:0;-ms-flex:0 0 190px;flex:0 0 190px;max-height:52px;margin-left:10px}.llms-header .llms-meta{-ms-flex-item-align:center;align-self:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:16px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;line-height:1.5}.llms-header .llms-meta .llms-version{background-color:#1d2327;color:#fff;border-radius:999px;font-size:13px;font-weight:700;padding:6px 12px}.llms-header .llms-meta a{display:inline-block}.llms-header .llms-meta .llms-license{border-left:1px solid #ccc;font-weight:700;margin-left:12px;padding-left:12px}.llms-header .llms-meta .llms-license a{text-decoration:none}.llms-header .llms-meta .llms-license a:before{content:"";display:inline-block;font:400 16px/1 dashicons;right:0;padding-left:3px;position:relative;text-decoration:none;vertical-align:text-bottom}.llms-header .llms-meta .llms-license a.llms-license-none{color:#888}.llms-header .llms-meta .llms-license a.llms-license-none:before{content:""}.llms-header .llms-meta .llms-license a.llms-license-active{color:#008a20}.llms-header .llms-meta .llms-license a.llms-license-active:before{content:""}.llms-header .llms-meta .llms-support{font-weight:700}.llms-header .llms-meta .llms-support a{color:#1d2327;text-decoration:none}.llms-subheader{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.15);box-shadow:0 1px 3px rgba(0,0,0,.15);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin-right:-20px;padding:10px 20px;width:100%;z-index:1}.llms-subheader h1{font-weight:700;padding:0}.llms-subheader h1 a{color:inherit;text-decoration:none}#post_course_difficulty{min-width:200px}#_video-embed,#_audio-embed{width:100%}hr{background-color:#ccc;border:none;height:1px;margin:30px 0;padding:0}.llms_certificate_default_image,.llms_certificate_image{width:300px}.llms_achievement_default_image,.llms_achievement_image{width:120px}div[id^=lifterlms-] .inside{overflow:visible}.notice.llms-admin-notice{background-color:#fff;border:1px solid #ccd0d4;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.15);box-shadow:0 1px 4px rgba(0,0,0,.15);display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 !important;position:relative}.notice.llms-admin-notice .notice-dismiss{text-decoration:none}.notice.llms-admin-notice.notice-warning{border-right:4px solid #f8954f}.notice.llms-admin-notice.notice-warning .llms-admin-notice-icon{background-color:#fef4ed}.notice.llms-admin-notice.notice-info{border-right:4px solid #466dd8}.notice.llms-admin-notice.notice-info h3{color:#466dd8}.notice.llms-admin-notice.notice-info .llms-admin-notice-icon{background-color:#edf0fb}.notice.llms-admin-notice.notice-success{border-right:4px solid #18a957}.notice.llms-admin-notice.notice-success h3{color:#18a957}.notice.llms-admin-notice.notice-success .llms-admin-notice-icon{background-color:#e8f6ee}.notice.llms-admin-notice.notice-error{border-right:4px solid #df1642}.notice.llms-admin-notice.notice-error h3{color:#9c0f2e}.notice.llms-admin-notice.notice-error .llms-admin-notice-icon{background-color:#fce8ec}.notice.llms-admin-notice .llms-admin-notice-icon{background-image:url(../../assets/images/lifterlms-icon-color.png);background-position:center center;background-repeat:no-repeat;background-size:30px;min-width:70px}.notice.llms-admin-notice .llms-admin-notice-content{color:#111;padding:20px}.notice.llms-admin-notice h3{font-size:18px;font-weight:700;line-height:25px;margin:0 0 15px 0}.notice.llms-admin-notice button,.notice.llms-admin-notice .llms-button-primary{display:inline-block}.notice.llms-admin-notice p{font-size:14px;line-height:22px;margin:0 0 15px 0;max-width:65em;padding:0}.notice.llms-admin-notice p:last-of-type{margin-bottom:0}.llms-button-action.small .dashicons,.llms-button-danger.small .dashicons,.llms-button-primary.small .dashicons,.llms-button-secondary.small .dashicons{font-size:13px;height:13px;width:13px}.llms-button-action:hover,.llms-button-danger:hover,.llms-button-primary:hover,.llms-button-secondary:hover{-webkit-box-shadow:none;box-shadow:none}a.llms-view-as{line-height:2;margin-left:8px}.llms-image-field-preview{max-height:80px;vertical-align:middle;width:auto}.llms-image-field-remove.hidden{display:none}.llms-log-viewer{background:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);margin:20px 0;padding:25px}.llms-log-viewer pre{font-family:monospace;margin:0;padding:0;white-space:pre-wrap}.llms-status--tools .llms-table{background:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.llms-status--tools .llms-table td,.llms-status--tools .llms-table th{padding:10px;vertical-align:top}.llms-status--tools .llms-table th{width:28%}.llms-status--tools .llms-table p{margin:0 0 10px}.llms-error{color:#bb231c;font-style:italic}.llms-rating-stars{color:#ffb900;text-decoration:none}@media screen and (max-width: 782px){.llms-header{top:46px}.llms-header .llms-inside-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:20px}.llms-header .llms-inside-wrap .lifterlms-logo{-ms-flex-item-align:center;align-self:center;-webkit-box-flex:inherit;-ms-flex:inherit;flex:inherit;max-height:initial;max-width:200px}.llms-header .llms-inside-wrap .llms-meta{-webkit-column-gap:10px;-moz-column-gap:10px;column-gap:10px}}.llms-table-wrap{position:relative}.llms-table-header{padding:0}.llms-table-header:before,.llms-table-header:after{content:" ";display:table}.llms-table-header:after{clear:both}.llms-table-header h2{font-size:20px;padding:0;display:inline-block;line-height:1.5;margin:0 0 20px 0;vertical-align:middle}.llms-table-header .llms-table-search,.llms-table-header .llms-table-filters{float:left;padding-right:10px}.llms-table-header .llms-table-search input{margin:0;padding:0 8px}.llms-table{border:1px solid #c3c4c7;border-collapse:collapse;width:100%}.llms-table a:not(.small){color:#466dd8}.llms-table a:not(.small):hover{color:#2b55cb}.llms-table td,.llms-table th{border-bottom:1px solid #c3c4c7;padding:10px 12px;text-align:center}.llms-table td.expandable.closed,.llms-table th.expandable.closed{display:none}.llms-table td .llms-button-primary,.llms-table td .llms-button-secondary,.llms-table td .llms-button-action,.llms-table td .llms-button-danger,.llms-table th .llms-button-primary,.llms-table th .llms-button-secondary,.llms-table th .llms-button-action,.llms-table th .llms-button-danger{display:inline-block}.llms-table tr.llms-quiz-pending td{font-weight:700}.llms-table thead th,.llms-table tfoot th{background-color:#fff;font-weight:700}.llms-table thead th a.llms-sortable,.llms-table tfoot th a.llms-sortable{padding-left:16px;position:relative;text-decoration:none;width:100%}.llms-table thead th a.llms-sortable.active[data-order=DESC] .asc,.llms-table tfoot th a.llms-sortable.active[data-order=DESC] .asc{opacity:1}.llms-table thead th a.llms-sortable.active[data-order=ASC] .desc,.llms-table tfoot th a.llms-sortable.active[data-order=ASC] .desc{opacity:1}.llms-table thead th a.llms-sortable:hover[data-order=DESC] .asc,.llms-table tfoot th a.llms-sortable:hover[data-order=DESC] .asc{opacity:0}.llms-table thead th a.llms-sortable:hover[data-order=DESC] .desc,.llms-table tfoot th a.llms-sortable:hover[data-order=DESC] .desc{opacity:1}.llms-table thead th a.llms-sortable:hover[data-order=ASC] .asc,.llms-table tfoot th a.llms-sortable:hover[data-order=ASC] .asc{opacity:1}.llms-table thead th a.llms-sortable:hover[data-order=ASC] .desc,.llms-table tfoot th a.llms-sortable:hover[data-order=ASC] .desc{opacity:0}.llms-table thead th a.llms-sortable .dashicons,.llms-table tfoot th a.llms-sortable .dashicons{color:#444;font-size:16px;height:16px;opacity:0;position:absolute;width:16px}.llms-table tfoot th{border-bottom:none}.llms-table tfoot th .llms-table-export{float:right}.llms-table tfoot th .llms-table-export .llms-table-progress{background:#efefef;display:none;margin-right:8px;vertical-align:middle;width:100px}.llms-table tfoot th .llms-clear-resumable-attempts{float:right}.llms-table tfoot th .llms-table-pagination{float:left}.llms-table.zebra tbody tr:nth-child(even) th,.llms-table.zebra tbody tr:nth-child(even) td{background-color:#fff}.llms-table.zebra tbody tr:nth-child(odd) th,.llms-table.zebra tbody tr:nth-child(odd) td{background-color:#f6f7f7}.llms-table.text-left td,.llms-table.text-left th{text-align:right}.llms-table.size-large td,.llms-table.size-large th{font-size:14px;padding:10px 12px}.llms-table .llms-drag-handle{color:#777;cursor:pointer;-webkit-transition:color .4s ease;transition:color .4s ease}.llms-table .llms-action-icon{color:#777;text-decoration:none}.llms-table .llms-action-icon .tooltip{cursor:pointer}.llms-table .llms-action-icon:hover{color:#466dd8}.llms-table .llms-action-icon.danger:hover{color:#bb231c}.llms-table .llms-table-page-count{font-size:12px;padding:0 5px}.llms-table-progress{text-align:center}.llms-table-progress .llms-table-progress-bar{background:#eee;border-radius:10px;height:16px;overflow:hidden;position:relative}.llms-table-progress .llms-table-progress-bar .llms-table-progress-inner{background:#466dd8;height:100%;-webkit-transition:width .2s ease;transition:width .2s ease}.llms-table-progress .llms-table-progress-text{color:#466dd8;font-size:12px;font-weight:700;line-height:16px}.llms-table.llms-gateway-table .status .fa,.llms-table.llms-integrations-table .status .fa{color:#466dd8;font-size:22px}.llms-table.llms-gateway-table .sort,.llms-table.llms-integrations-table .sort{cursor:move;text-align:center;width:10px}.llms-gb-table-notifications th,.llms-gb-table-notifications td{text-align:right}.llms-order-note .llms-order-note-content{background:#efefef;margin-bottom:10px;padding:10px;position:relative}.llms-order-note .llms-order-note-content:after{border-style:solid;border-color:#efefef rgba(0,0,0,0);border-width:10px 0 0 10px;bottom:-10px;content:"";display:block;height:0;right:20px;position:absolute;width:0}.llms-order-note .llms-order-note-content p{font-size:13px;margin:0;line-height:1.5}.llms-order-note .llms-order-note-meta{color:#999;font-size:11px;margin-right:10px}.llms-mb-list label{font-size:15px;font-weight:700;line-height:1.5;display:block;width:100%}.llms-mb-list .description{margin-bottom:8px}.llms-mb-list .input-full{width:100%}#poststuff .llms-metabox h2,#poststuff .llms-metabox h3,#poststuff .llms-metabox h4,#poststuff .llms-metabox h6{margin:0;padding:0}#poststuff .llms-metabox h2{font-size:18px;font-weight:700}#poststuff .llms-metabox h3{color:#1e1e1e;font-size:16px}#poststuff .llms-metabox h4{color:#1e1e1e;font-size:16px;line-height:1.5;padding:0;margin:0}#poststuff .llms-metabox h4:not(.llms-collapsible-body h4:first-of-type){margin-top:20px}#poststuff .llms-metabox .llms-transaction-test-mode{background:#ffffd7;font-style:italic;right:0;padding:2px;position:absolute;left:0;top:0;text-align:center}#poststuff .llms-metabox a.llms-editable,#poststuff .llms-metabox .llms-metabox-icon,#poststuff .llms-metabox button.llms-editable{color:#999;text-decoration:none}#poststuff .llms-metabox a.llms-editable:hover,#poststuff .llms-metabox .llms-metabox-icon:hover,#poststuff .llms-metabox button.llms-editable:hover{color:#466dd8}#poststuff .llms-metabox button.llms-editable{border:none;background:none;cursor:pointer;padding:0;vertical-align:top}#poststuff .llms-metabox h4 button.llms-editable{float:left}#poststuff .llms-metabox .llms-table{margin-top:10px}#poststuff .llms-metabox button.llms-button-primary{border-radius:8px;font-size:16px;font-weight:700;height:auto}.llms-metabox-section{background:#fff;margin-top:25px;position:relative}.llms-metabox-section.no-top-margin{margin-top:0}.llms-metabox-section .llms-metabox-field{margin:5px 0;position:relative}.llms-metabox-section .llms-metabox-field label{color:#1e1e1e;display:block;margin-bottom:5px;font-size:14px;font-weight:400}.llms-metabox-section .llms-metabox-field select,.llms-metabox-section .llms-metabox-field textarea,.llms-metabox-section .llms-metabox-field input[type=text],.llms-metabox-section .llms-metabox-field input[type=number]{width:100%}.llms-metabox-section .llms-metabox-field input.md-text{width:105px}.llms-metabox-section .llms-metabox-field input.sm-text{width:45px}.llms-metabox-section .llms-metabox-field .llms-datetime-field .llms-date-input{width:95px}.llms-metabox-section .llms-metabox-field .llms-datetime-field .llms-time-input{width:45px}.llms-metabox-section .llms-metabox-field .llms-datetime-field em{font-style:normal;padding:0 3px}.llms-metabox-section .llms-metabox-field .select2-container--default .select2-search--inline .select2-search__field{min-height:auto}.llms-metabox-section .llms-metabox-field .select2-container--default .select2-selection--multiple .select2-selection__rendered li{margin-bottom:0}.llms-metabox-section .llms-metabox-field:has(.wp-editor-wrap) label{position:relative;z-index:5}.llms-metabox-section .llms-metabox-field .wp-editor-wrap{margin-top:-30px}.llms-collapsible{background:#fff;border:1px solid #efefef;border-radius:6px;-webkit-box-shadow:-2px 2px 8px rgba(0,0,0,.08);box-shadow:-2px 2px 8px rgba(0,0,0,.08);display:block;margin:0;padding:0;position:relative;text-align:center;margin-top:0}.llms-collapsible:last-child{margin-bottom:0}.llms-collapsible.opened .llms-collapsible-header .dashicons-arrow-down{display:none}.llms-collapsible.opened .llms-collapsible-header .dashicons-arrow-up{display:inline}.llms-collapsible .llms-collapsible-header{padding:15px}.llms-collapsible .llms-collapsible-header [class^=d-]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:5px}.llms-collapsible .llms-collapsible-header .d-right{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding-left:0}.llms-collapsible .llms-collapsible-header h3{color:#1e1e1e;display:inline;margin:0;font-size:16px;font-weight:700}.llms-collapsible .llms-collapsible-header h3 small{font-weight:400}.llms-collapsible .llms-collapsible-header .dashicons-arrow-up{display:inline}.llms-collapsible .llms-collapsible-header .dashicons-arrow-up{display:none}.llms-collapsible .llms-collapsible-header a{text-decoration:none}.llms-collapsible .llms-collapsible-header .dashicons{color:#1e1e1e;cursor:pointer;-webkit-transition:color .4s ease;transition:color .4s ease}.llms-collapsible .llms-collapsible-header .dashicons:hover{color:#466dd8}.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning,.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning:hover,.llms-collapsible .llms-collapsible-header .dashicons.dashicons-trash:hover,.llms-collapsible .llms-collapsible-header .dashicons.dashicons-no:hover{color:#bb231c}.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning.medium-danger,.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning.medium-danger:hover{color:#c05621}.llms-collapsible .llms-collapsible-body{display:none;padding:15px}._llms_instructors_data.repeater .llms-repeater-rows .llms-repeater-row:first-child .llms-repeater-remove{display:none}._llms_instructors_data.repeater .llms-mb-list{padding:0 5px !important}.post-type-llms_order #post-body-content{display:none}#lifterlms-order-details .handlediv,#lifterlms-order-details .handlediv.button-link,#lifterlms-order-details .postbox-header{display:none}#lifterlms-order-details .inside{padding:20px;margin-top:0}.llms-table tbody tr.llms-txn-failed td{background-color:rgba(187,35,28,.5);border-bottom-color:rgba(187,35,28,.5)}.llms-table tbody tr.llms-txn-refunded td{background-color:rgba(255,165,0,.5);border-bottom-color:rgba(255,165,0,.5)}.llms-txn-refund-form .llms-metabox-section,.llms-manual-txn-form .llms-metabox-section{margin-top:0}.llms-txn-refund-form .llms-metabox-field,.llms-manual-txn-form .llms-metabox-field{text-align:left}.llms-txn-refund-form .llms-metabox-field input[type=number],.llms-manual-txn-form .llms-metabox-field input[type=number]{max-width:100px}.llms-txn-refund-form .llms-metabox-field input[type=text],.llms-manual-txn-form .llms-metabox-field input[type=text]{max-width:340px}.llms-manual-txn-form{background-color:#eaeaea}.llms-manual-txn-form .llms-metabox-section{background-color:#eaeaea}#llms-remaining-edit{display:none}.llms-remaining-edit--content label,.llms-remaining-edit--content span,.llms-remaining-edit--content textarea{display:block}.llms-remaining-edit--content label{margin-bottom:20px}.llms-remaining-edit--content textarea,.llms-remaining-edit--content input{width:100%}.submitbox .llms-mb-section,.llms-award-engagement-submitbox .llms-mb-list{margin-bottom:12px}.submitbox .llms-mb-section:last-of-type,.llms-award-engagement-submitbox .llms-mb-list:last-of-type{margin-bottom:0}.sync-action:before,.submitbox .llms-mb-section.student-info:before,.submitbox .llms-mb-section.post_author_override label:before,.llms-award-engagement-submitbox .llms-mb-list.student-info:before,.llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before{font:normal 20px/1 dashicons;speak:never;display:inline-block;margin-right:-1px;padding-left:3px;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:relative;top:-1px;color:#8c8f94}body:not(.admin-color-fresh) .sync-action:before,body:not(.admin-color-fresh) .submitbox .llms-mb-section.student-info:before,body:not(.admin-color-fresh) .submitbox .llms-mb-section.post_author_override label:before,body:not(.admin-color-fresh) .llms-award-engagement-submitbox .llms-mb-list.student-info:before,body:not(.admin-color-fresh) .llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before{color:currentColor}.submitbox .llms-mb-section.student-info:before,.submitbox .llms-mb-section.post_author_override label:before,.llms-award-engagement-submitbox .llms-mb-list.student-info:before,.llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before{content:""}.sync-action:before{content:"";color:#fff}.submitbox .llms-mb-section.post_author_override label,.llms-award-engagement-submitbox .llms-mb-list.post_author_override label{display:inline-block;width:auto}.llms-metabox>p:first-child{margin-top:0}.llms-metabox #llms-new-access-plan-model{display:none}.llms-metabox .llms-access-plans{color:#1e1e1e}.llms-metabox .llms-access-plans>.llms-no-plans-msg{display:none}.llms-metabox .llms-access-plans>.llms-no-plans-msg .notice{margin-left:0;margin-right:0}.llms-metabox .llms-access-plans>.llms-no-plans-msg:last-child{display:block}.llms-metabox .llms-access-plans.dragging{background:#efefef;-webkit-box-shadow:inset 0 0 0 1px #e5e5e5;box-shadow:inset 0 0 0 1px #e5e5e5}.llms-metabox .llms-access-plans .llms-spinning{z-index:1}.llms-metabox .llms-access-plans .llms-invalid{border-color:#bb231c}.llms-metabox .llms-access-plans .llms-invalid .dashicons-warning{display:inline}.llms-metabox .llms-access-plans .llms-needs-attention .dashicons-warning.medium-danger{display:inline}.llms-metabox .llms-access-plans .dashicons-warning{display:none}.llms-metabox .llms-access-plan{margin-bottom:20px;text-align:right}.llms-metabox .llms-access-plan [data-tip]:before{text-align:center}.llms-metabox .llms-access-plan .llms-plan-link,.llms-metabox .llms-access-plan [data-controller]{display:none}.llms-metabox .llms-access-plan:hover .llms-plan-link,.llms-metabox .llms-access-plan.opened .llms-plan-link{display:inline-block}.llms-metabox .llms-access-plan .llms-metabox-field{margin:15px 0}.llms-metabox .llms-access-plan .llms-required{color:#bb231c;margin-right:3px}.llms-metabox .llms-access-plan .notice{margin-right:0}.llms-metabox-students .llms-table tr .name{text-align:right}.llms-metabox-students .llms-add-student:hover{color:#4d8d3c}.llms-metabox-students .llms-remove-student:hover{color:#bb231c}.llms-mb-container .tab-content ul:not(.select2-selection__rendered).llms-mb-repeater-fields>li.llms-mb-list{border-bottom:none;padding:0 0 10px}.llms-mb-list.repeater .llms-repeater-rows{position:relative;margin-top:10px;min-height:10px}.llms-mb-list.repeater .llms-repeater-rows.dragging{background:#efefef;-webkit-box-shadow:inset 0 0 0 1px #e5e5e5;box-shadow:inset 0 0 0 1px #e5e5e5}.llms-mb-list.repeater .llms-repeater-row{background:#fff}.llms-mb-list.repeater .llms-mb-repeater-footer{text-align:left;margin-top:20px}.llms-mb-list.repeater .tmce-active .wp-editor-area{color:#32373c}.llms-builder-launcher p{margin-top:0}.llms-builder-launcher ol{margin-top:-6px}.llms-builder-launcher .llms-button-primary{-webkit-box-sizing:border-box;box-sizing:border-box}.wp-list-table .llms-status{border-radius:6px;display:inline-block;font-size:13px;font-weight:700;line-height:1.4;padding:2px 6px;vertical-align:middle}.wp-list-table .llms-status.llms-size--large{font-size:105%;padding:6px 12px}.wp-list-table .llms-status.llms-active,.wp-list-table .llms-status.llms-completed,.wp-list-table .llms-status.llms-pass,.wp-list-table .llms-status.llms-txn-succeeded{color:#4d8d3c;background-color:rgba(77,141,60,.15)}.wp-list-table .llms-status.llms-fail,.wp-list-table .llms-status.llms-failed,.wp-list-table .llms-status.llms-expired,.wp-list-table .llms-status.llms-cancelled,.wp-list-table .llms-status.llms-txn-failed{color:#bb231c;background-color:rgba(187,35,28,.15)}.wp-list-table .llms-status.llms-incomplete,.wp-list-table .llms-status.llms-on-hold,.wp-list-table .llms-status.llms-pending,.wp-list-table .llms-status.llms-pending-cancel,.wp-list-table .llms-status.llms-refunded,.wp-list-table .llms-status.llms-txn-pending,.wp-list-table .llms-status.llms-txn-refunded{color:#c05621;background-color:rgba(192,86,33,.15)}#lifterlms-order-transactions .llms-table tfoot th{text-align:left}.llms-post-table-post-filter{display:inline-block;margin-left:6px;max-width:100%;width:220px}.llms-nav-tab-wrapper{background:#466dd8;margin:20px 0}.llms-nav-tab-wrapper.llms-nav-secondary{background:#e1e1e1}.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item{margin:0}.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover,.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link{background:#cdcdcd}.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link{color:#414141;font-size:15px;padding:8px 14px}.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link .dashicons{font-size:15px;height:15px;width:15px}.llms-nav-tab-wrapper.llms-nav-text{background:inherit}.llms-nav-tab-wrapper.llms-nav-text .llms-nav-items{padding-right:0}.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item{background:inherit;color:#646970}.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item:last-child:after{display:none}.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item:after{content:"|";display:inline-block;margin:0 6px 0 8px}.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item .llms-nav-link:hover{background:inherit;color:#466dd8}.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item.llms-active .llms-nav-link{background:inherit;color:#000;font-weight:600;text-decoration:none}.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item .llms-nav-link{color:#466dd8;display:inline-block;letter-spacing:0;margin:0;padding:0;text-decoration:underline;text-transform:none}.llms-nav-tab-wrapper.llms-nav-style-tabs{background-color:#1c3987;margin:0;padding-top:8px}.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item{margin:0 3px}.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item .llms-nav-link{border-top-right-radius:4px;border-top-left-radius:4px}.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item.llms-active .llms-nav-link{background-color:#fff;color:#466dd8;font-weight:700}.llms-nav-tab-wrapper.llms-nav-style-filters{background-color:#466dd8;border-radius:12px;margin:20px 0;overflow:hidden;padding:0}.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding-right:0}@media only screen and (min-width: 782px){.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items .llms-nav-item{float:none}.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items .llms-nav-item .llms-nav-link{padding:14px}.llms-nav-tab-wrapper .llms-nav-items{margin:0;padding-right:10px}.llms-nav-tab-wrapper .llms-nav-items:before,.llms-nav-tab-wrapper .llms-nav-items:after{content:" ";display:table}.llms-nav-tab-wrapper .llms-nav-items:after{clear:both}.llms-nav-tab-wrapper .llms-nav-item{margin:0}.llms-nav-tab-wrapper .llms-nav-item .llms-nav-link:hover{background:#466dd8}.llms-nav-tab-wrapper .llms-nav-item.llms-active .llms-nav-link{background:#1c3987}.llms-nav-tab-wrapper .llms-nav-item.llms-active .llms-nav-link{font-weight:400}@media only screen and (min-width: 768px){.llms-nav-tab-wrapper .llms-nav-item{float:right}.llms-nav-tab-wrapper .llms-nav-item.llms-nav-item-right{float:left}}.llms-nav-tab-wrapper .llms-nav-link{color:#fff;cursor:pointer;display:block;font-weight:400;font-size:15px;padding:9px 18px;text-align:center;text-decoration:none;-webkit-transition:all .3s ease;transition:all .3s ease}#llms-options-page-contents h2{color:#999;font-weight:500;letter-spacing:2px;border-bottom:1px solid #999}.llms-reporting.wrap .llms-options-page-contents .llms-nav-tab-wrapper.llms-nav-secondary{-webkit-box-shadow:0 1px 3px rgba(0,0,0,.15);box-shadow:0 1px 3px rgba(0,0,0,.15);margin:0;padding:0}.llms-reporting.wrap .llms-stab-title{color:#1c3987;font-size:36px;font-weight:300;margin-bottom:20px}.llms-reporting.wrap td.id a{text-decoration:none}.llms-reporting.wrap th.id,.llms-reporting.wrap td.id,.llms-reporting.wrap th.name,.llms-reporting.wrap td.name,.llms-reporting.wrap th.registered,.llms-reporting.wrap td.registered,.llms-reporting.wrap th.last_seen,.llms-reporting.wrap td.last_seen,.llms-reporting.wrap th.overall_progress,.llms-reporting.wrap td.overall_progress,.llms-reporting.wrap th.title,.llms-reporting.wrap td.title,.llms-reporting.wrap th.course,.llms-reporting.wrap td.course,.llms-reporting.wrap th.lesson,.llms-reporting.wrap td.lesson{text-align:right}.llms-reporting.wrap td.section-title{background:#eaeaea;text-align:right;font-weight:700;padding:16px 4px}.llms-reporting.wrap td.questions-table{text-align:right}.llms-reporting.wrap td.questions-table .correct,.llms-reporting.wrap td.questions-table .question,.llms-reporting.wrap td.questions-table .selected{text-align:right;max-width:300px}.llms-reporting.wrap td.questions-table .correct img,.llms-reporting.wrap td.questions-table .question img,.llms-reporting.wrap td.questions-table .selected img{height:auto;max-width:64px}.llms-reporting.wrap table.quiz-attempts{margin-bottom:40px}.llms-reporting.wrap.tab--students .llms-options-page-contents #llms-award-certificate-wrapper .components-button.is-secondary{background:#e1e1e1;border-radius:8px;-webkit-box-shadow:none;box-shadow:none;color:#414141;font-size:13px;font-weight:700;height:auto;padding:8px 14px}.llms-reporting.wrap.tab--enrollments .llms-nav-tab-wrapper.llms-nav-secondary,.llms-reporting.wrap.tab--sales .llms-nav-tab-wrapper.llms-nav-secondary{margin-bottom:0}.llms-reporting.wrap.tab--enrollments .llms-options-page-contents,.llms-reporting.wrap.tab--sales .llms-options-page-contents{-webkit-box-shadow:none;box-shadow:none;background:none;margin-top:20px;padding:0}.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form,.llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-item-align:center;align-self:center;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:13px;gap:5px}.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form label,.llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form label{font-weight:700}.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form input,.llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form input{border:0;font-size:13px;margin:0;padding:0 4px;vertical-align:middle;width:110px}.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form .select2-container input,.llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form .select2-container input{width:100% !important}.llms-reporting.wrap.tab--enrollments .button.small,.llms-reporting.wrap.tab--sales .button.small{height:23px;line-height:23px}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters,.llms-reporting.wrap.tab--sales .llms-analytics-filters{display:none}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-inside-wrap,.llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-inside-wrap{background-color:#fff;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);margin:-20px 10px 20px 10px;padding:20px}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-items,.llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-items{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:20px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin:0}@media only screen and (min-width: 782px){.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-items,.llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-items{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item,.llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item label,.llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item label{display:block;font-weight:700;margin:0 0 5px 0}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item .select2-selection__rendered,.llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item .select2-selection__rendered{word-wrap:break-word;text-overflow:inherit;white-space:normal}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters p,.llms-reporting.wrap.tab--sales .llms-analytics-filters p{margin:0;text-align:left}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters p .llms-button-primary,.llms-reporting.wrap.tab--sales .llms-analytics-filters p .llms-button-primary{display:inline-block}.llms-reporting.wrap .llms-reporting-tab.llms-reporting-quiz .llms-table-filter-wrap{width:160px}.llms-reporting.wrap .llms-table-header form{display:inline}.llms-reporting.wrap .llms-table-header .button{margin-right:5px}.llms-charts-wrapper{background-color:#fff;border:1px solid #dedede;border-radius:12px;-webkit-box-shadow:0px 0px 1px rgba(48,49,51,.05),0px 2px 4px rgba(48,49,51,.1);box-shadow:0px 0px 1px rgba(48,49,51,.05),0px 2px 4px rgba(48,49,51,.1);padding:20px}.llms-reporting-tab h1,.llms-reporting-tab h2,.llms-reporting-tab h3,.llms-reporting-tab h4,.llms-reporting-tab h5,.llms-reporting-tab h6{margin:0}.llms-reporting-tab h1 a,.llms-reporting-tab h2 a,.llms-reporting-tab h3 a,.llms-reporting-tab h4 a,.llms-reporting-tab h5 a,.llms-reporting-tab h6 a{color:#466dd8;text-decoration:none}.llms-reporting-tab h1 a:hover,.llms-reporting-tab h2 a:hover,.llms-reporting-tab h3 a:hover,.llms-reporting-tab h4 a:hover,.llms-reporting-tab h5 a:hover,.llms-reporting-tab h6 a:hover{color:#466dd8}.llms-reporting-tab h2{font-size:22px;line-height:1.5}.llms-reporting-tab h2.llms-table-title{margin-bottom:20px}.llms-reporting-tab h5{font-size:15px;line-height:1.5}.llms-reporting-tab .llms-reporting-body{background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);margin:20px auto;padding:0}.llms-reporting-tab .llms-reporting-body .llms-reporting-stab{padding:30px}.llms-reporting-tab .llms-reporting-body .llms-reporting-stab .llms-table-header{margin:0}.llms-reporting-tab .llms-reporting-body .llms-gb-tab{padding:30px}.llms-reporting-tab .llms-reporting-body .llms-reporting-header{padding:30px;margin:0}.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-img{border-radius:50%;display:inline-block;margin-left:10px;overflow:hidden;vertical-align:middle}.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-img img{display:block;max-height:64px;width:auto}.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-info{display:inline-block;vertical-align:middle}.llms-reporting-breadcrumbs{margin:0;padding:0}.llms-reporting-breadcrumbs a{color:#466dd8;font-size:15px;text-decoration:none}.llms-reporting-breadcrumbs a:hover{color:#2b55cb}.llms-reporting-breadcrumbs a:after{content:" > ";color:#646970}.llms-reporting-breadcrumbs a:last-child{color:#000;font-weight:700}.llms-reporting-breadcrumbs a:last-child:after{display:none}#llms-students-table .name{text-align:right}.llms-reporting-tab-content{display:-webkit-box;display:-ms-flexbox;display:flex}.llms-reporting-tab-content>header:before,.llms-reporting-tab-content>header:after{content:" ";display:table}.llms-reporting-tab-content>header:after{clear:both}.llms-reporting-tab-content h3{margin-bottom:20px}.llms-reporting-tab-content .llms-reporting-tab-filter{float:left;position:relative;margin-left:.75em;width:180px;top:-3px}.llms-reporting-tab-content .llms-reporting-tab-main{-webkit-box-flex:3;-ms-flex:3;flex:3;max-width:75%}.llms-reporting-tab-content .llms-reporting-tab-side{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-right:20px}.llms-reporting-tab-content>.llms-table-wrap{-webkit-box-flex:1;-ms-flex:1;flex:1}.llms-reporting-widgets:before,.llms-reporting-widgets:after{content:" ";display:table}.llms-reporting-widgets:after{clear:both}.llms-reporting-widget{border-top:4px solid #466dd8;background:#fafafa;margin-bottom:10px;padding:30px}.llms-reporting-widget:before,.llms-reporting-widget:after{content:" ";display:table}.llms-reporting-widget:after{clear:both}.llms-reporting-widget .fa{color:#999;float:right;font-size:32px;margin-left:10px}.llms-reporting-widget strong{color:#333;font-size:20px;line-height:1.2}.llms-reporting-widget.llms-reporting-student-address strong{line-height:1.1}.llms-reporting-widget sup,.llms-reporting-widget .llms-price-currency-symbol{font-size:75%;position:relative;top:-4px;vertical-align:baseline}.llms-reporting-widget small{font-size:13px}.llms-reporting-widget small.compare{margin-right:5px}.llms-reporting-widget small.compare.positive{color:#4d8d3c}.llms-reporting-widget small.compare.negative{color:#bb231c}.llms-reporting-event{border-right:4px solid #555;background:#fafafa;font-size:11px;line-height:1.2;margin-bottom:.75em;padding:10px}.llms-reporting-event:before,.llms-reporting-event:after{content:" ";display:table}.llms-reporting-event:after{clear:both}.llms-reporting-event.color--blue{border-right-color:#466dd8}.llms-reporting-event.color--green,.llms-reporting-event._enrollment_trigger,.llms-reporting-event._is_complete.yes{border-right-color:#4d8d3c}.llms-reporting-event.color--purple,.llms-reporting-event._status.enrolled{border-right-color:#845ef7}.llms-reporting-event.color--red,.llms-reporting-event._status.expired,.llms-reporting-event._status.cancelled{border-right-color:#bb231c}.llms-reporting-event.color--orange,.llms-reporting-event._achievement_earned,.llms-reporting-event._certificate_earned,.llms-reporting-event._email_sent{border-right-color:#c05621}.llms-reporting-event time{color:#888}.llms-reporting-event .llms-student-avatar{margin-right:10px;float:left}.llms-reporting-event a{text-decoration:none;color:inherit}@media only screen and (min-width: 782px){.llms-reporting.wrap .llms-options-page-contents .llms-nav-tab-wrapper.llms-nav-secondary{margin-right:0;margin-left:0}}.llms-quiz-attempt-results{margin:0;padding:0;list-style-type:none}.llms-quiz-attempt-results .llms-quiz-attempt-question{background:#efefef;border-radius:6px;margin:0 0 15px;position:relative;list-style-type:none}.llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer{color:inherit;display:-webkit-box;display:-ms-flexbox;display:flex;gap:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:15px 15px 15px 35px;text-decoration:none}.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct,.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect{background:rgba(192,86,33,.2)}.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon,.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon{background-color:#c05621}.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct{background:rgba(77,141,60,.15)}.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon{background-color:#4d8d3c}.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect{background:rgba(187,35,28,.15)}.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon{background-color:#bb231c}.llms-quiz-attempt-results .llms-quiz-attempt-question pre{overflow:auto}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title{font-size:22px;margin:0;line-height:1.4}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points{line-height:1.4}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip{position:absolute;left:-12px;top:-2px}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon{color:rgba(255,255,255,.65);border-radius:50%;font-size:30px;height:40px;line-height:40px;text-align:center;width:40px}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main{display:none;padding:0 15px 15px}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label{font-weight:700;margin:0 0 10px;padding:0}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers{margin:0;padding:0}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{padding:0;margin:0 30px 0 0}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child{list-style-type:none;margin-right:0}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img{height:auto;max-width:200px}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section{border-top:2px solid rgba(255,255,255,.5);margin-top:20px;padding-top:20px}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child{border-top:none;margin-top:0;padding-top:0}.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers,.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers{list-style-type:none;margin:0;padding:0}.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer,.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{display:inline-block;list-style-type:none;margin:0;padding:5px}.llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed{opacity:.5}.llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title{font-style:italic;font-weight:normal}.wrap.llms-reporting .llms-inside-wrap,.wrap.lifterlms-settings .llms-inside-wrap,.wrap.llms-status .llms-inside-wrap{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0 auto}.wrap.llms-reporting .llms-inside-wrap .llms-nav-text,.wrap.lifterlms-settings .llms-inside-wrap .llms-nav-text,.wrap.llms-status .llms-inside-wrap .llms-nav-text{margin:0 auto}.wrap.llms-reporting .llms-subheader .llms-save,.wrap.lifterlms-settings .llms-subheader .llms-save,.wrap.llms-status .llms-subheader .llms-save{-webkit-box-flex:1;-ms-flex:auto;flex:auto;text-align:left}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary,.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary,.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary{background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.15);box-shadow:0 1px 3px rgba(0,0,0,.15);margin:0 -10px 20px -20px}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items,.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items,.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items{padding-right:0}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover,.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover,.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover{background:#f0f0f1;color:#222}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link{background:#fafafa;color:#466dd8;border-top-color:#466dd8}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link{font-weight:700}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link,.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link,.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link{border-top:2px solid rgba(0,0,0,0);padding:14px}.wrap.llms-reporting .llms-setting-group,.wrap.lifterlms-settings .llms-setting-group,.wrap.llms-status .llms-setting-group{background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);margin:20px auto;padding:20px}.wrap.llms-reporting .llms-setting-group .llms-label,.wrap.lifterlms-settings .llms-setting-group .llms-label,.wrap.llms-status .llms-setting-group .llms-label{border-bottom:1px solid #efefef;font-weight:700;font-size:20px;padding:20px;margin:-20px -20px 20px}.wrap.llms-reporting .llms-setting-group .llms-label .llms-button-primary,.wrap.lifterlms-settings .llms-setting-group .llms-label .llms-button-primary,.wrap.llms-status .llms-setting-group .llms-label .llms-button-primary{margin-right:10px}.wrap.llms-reporting .llms-setting-group .llms-help-tooltip .dashicons,.wrap.lifterlms-settings .llms-setting-group .llms-help-tooltip .dashicons,.wrap.llms-status .llms-setting-group .llms-help-tooltip .dashicons{color:#444;cursor:help}.wrap.llms-reporting .llms-setting-group .form-table,.wrap.lifterlms-settings .llms-setting-group .form-table,.wrap.llms-status .llms-setting-group .form-table{margin:0}.wrap.llms-reporting .llms-setting-group .form-table tr:first-child .llms-subtitle,.wrap.lifterlms-settings .llms-setting-group .form-table tr:first-child .llms-subtitle,.wrap.llms-status .llms-setting-group .form-table tr:first-child .llms-subtitle{margin-top:0}.wrap.llms-reporting .llms-setting-group td[colspan="2"],.wrap.lifterlms-settings .llms-setting-group td[colspan="2"],.wrap.llms-status .llms-setting-group td[colspan="2"]{padding-top:0;padding-right:0}.wrap.llms-reporting .llms-setting-group tr.llms-disabled-field,.wrap.lifterlms-settings .llms-setting-group tr.llms-disabled-field,.wrap.llms-status .llms-setting-group tr.llms-disabled-field{opacity:.5;pointer-events:none}.wrap.llms-reporting .llms-setting-group p,.wrap.lifterlms-settings .llms-setting-group p,.wrap.llms-status .llms-setting-group p{font-size:14px}.wrap.llms-reporting .llms-setting-group input[type=text],.wrap.llms-reporting .llms-setting-group input[type=password],.wrap.llms-reporting .llms-setting-group input[type=datetime],.wrap.llms-reporting .llms-setting-group input[type=datetime-local],.wrap.llms-reporting .llms-setting-group input[type=date],.wrap.llms-reporting .llms-setting-group input[type=month],.wrap.llms-reporting .llms-setting-group input[type=time],.wrap.llms-reporting .llms-setting-group input[type=week],.wrap.llms-reporting .llms-setting-group input[type=number],.wrap.llms-reporting .llms-setting-group input[type=email],.wrap.llms-reporting .llms-setting-group input[type=url],.wrap.llms-reporting .llms-setting-group input[type=search],.wrap.llms-reporting .llms-setting-group input[type=tel],.wrap.llms-reporting .llms-setting-group input[type=color],.wrap.llms-reporting .llms-setting-group select,.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area),.wrap.lifterlms-settings .llms-setting-group input[type=text],.wrap.lifterlms-settings .llms-setting-group input[type=password],.wrap.lifterlms-settings .llms-setting-group input[type=datetime],.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local],.wrap.lifterlms-settings .llms-setting-group input[type=date],.wrap.lifterlms-settings .llms-setting-group input[type=month],.wrap.lifterlms-settings .llms-setting-group input[type=time],.wrap.lifterlms-settings .llms-setting-group input[type=week],.wrap.lifterlms-settings .llms-setting-group input[type=number],.wrap.lifterlms-settings .llms-setting-group input[type=email],.wrap.lifterlms-settings .llms-setting-group input[type=url],.wrap.lifterlms-settings .llms-setting-group input[type=search],.wrap.lifterlms-settings .llms-setting-group input[type=tel],.wrap.lifterlms-settings .llms-setting-group input[type=color],.wrap.lifterlms-settings .llms-setting-group select,.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area),.wrap.llms-status .llms-setting-group input[type=text],.wrap.llms-status .llms-setting-group input[type=password],.wrap.llms-status .llms-setting-group input[type=datetime],.wrap.llms-status .llms-setting-group input[type=datetime-local],.wrap.llms-status .llms-setting-group input[type=date],.wrap.llms-status .llms-setting-group input[type=month],.wrap.llms-status .llms-setting-group input[type=time],.wrap.llms-status .llms-setting-group input[type=week],.wrap.llms-status .llms-setting-group input[type=number],.wrap.llms-status .llms-setting-group input[type=email],.wrap.llms-status .llms-setting-group input[type=url],.wrap.llms-status .llms-setting-group input[type=search],.wrap.llms-status .llms-setting-group input[type=tel],.wrap.llms-status .llms-setting-group input[type=color],.wrap.llms-status .llms-setting-group select,.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area){width:50%}.wrap.llms-reporting .llms-setting-group input[type=text].medium,.wrap.llms-reporting .llms-setting-group input[type=password].medium,.wrap.llms-reporting .llms-setting-group input[type=datetime].medium,.wrap.llms-reporting .llms-setting-group input[type=datetime-local].medium,.wrap.llms-reporting .llms-setting-group input[type=date].medium,.wrap.llms-reporting .llms-setting-group input[type=month].medium,.wrap.llms-reporting .llms-setting-group input[type=time].medium,.wrap.llms-reporting .llms-setting-group input[type=week].medium,.wrap.llms-reporting .llms-setting-group input[type=number].medium,.wrap.llms-reporting .llms-setting-group input[type=email].medium,.wrap.llms-reporting .llms-setting-group input[type=url].medium,.wrap.llms-reporting .llms-setting-group input[type=search].medium,.wrap.llms-reporting .llms-setting-group input[type=tel].medium,.wrap.llms-reporting .llms-setting-group input[type=color].medium,.wrap.llms-reporting .llms-setting-group select.medium,.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).medium,.wrap.lifterlms-settings .llms-setting-group input[type=text].medium,.wrap.lifterlms-settings .llms-setting-group input[type=password].medium,.wrap.lifterlms-settings .llms-setting-group input[type=datetime].medium,.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].medium,.wrap.lifterlms-settings .llms-setting-group input[type=date].medium,.wrap.lifterlms-settings .llms-setting-group input[type=month].medium,.wrap.lifterlms-settings .llms-setting-group input[type=time].medium,.wrap.lifterlms-settings .llms-setting-group input[type=week].medium,.wrap.lifterlms-settings .llms-setting-group input[type=number].medium,.wrap.lifterlms-settings .llms-setting-group input[type=email].medium,.wrap.lifterlms-settings .llms-setting-group input[type=url].medium,.wrap.lifterlms-settings .llms-setting-group input[type=search].medium,.wrap.lifterlms-settings .llms-setting-group input[type=tel].medium,.wrap.lifterlms-settings .llms-setting-group input[type=color].medium,.wrap.lifterlms-settings .llms-setting-group select.medium,.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).medium,.wrap.llms-status .llms-setting-group input[type=text].medium,.wrap.llms-status .llms-setting-group input[type=password].medium,.wrap.llms-status .llms-setting-group input[type=datetime].medium,.wrap.llms-status .llms-setting-group input[type=datetime-local].medium,.wrap.llms-status .llms-setting-group input[type=date].medium,.wrap.llms-status .llms-setting-group input[type=month].medium,.wrap.llms-status .llms-setting-group input[type=time].medium,.wrap.llms-status .llms-setting-group input[type=week].medium,.wrap.llms-status .llms-setting-group input[type=number].medium,.wrap.llms-status .llms-setting-group input[type=email].medium,.wrap.llms-status .llms-setting-group input[type=url].medium,.wrap.llms-status .llms-setting-group input[type=search].medium,.wrap.llms-status .llms-setting-group input[type=tel].medium,.wrap.llms-status .llms-setting-group input[type=color].medium,.wrap.llms-status .llms-setting-group select.medium,.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).medium{width:30%}.wrap.llms-reporting .llms-setting-group input[type=text].small,.wrap.llms-reporting .llms-setting-group input[type=password].small,.wrap.llms-reporting .llms-setting-group input[type=datetime].small,.wrap.llms-reporting .llms-setting-group input[type=datetime-local].small,.wrap.llms-reporting .llms-setting-group input[type=date].small,.wrap.llms-reporting .llms-setting-group input[type=month].small,.wrap.llms-reporting .llms-setting-group input[type=time].small,.wrap.llms-reporting .llms-setting-group input[type=week].small,.wrap.llms-reporting .llms-setting-group input[type=number].small,.wrap.llms-reporting .llms-setting-group input[type=email].small,.wrap.llms-reporting .llms-setting-group input[type=url].small,.wrap.llms-reporting .llms-setting-group input[type=search].small,.wrap.llms-reporting .llms-setting-group input[type=tel].small,.wrap.llms-reporting .llms-setting-group input[type=color].small,.wrap.llms-reporting .llms-setting-group select.small,.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).small,.wrap.lifterlms-settings .llms-setting-group input[type=text].small,.wrap.lifterlms-settings .llms-setting-group input[type=password].small,.wrap.lifterlms-settings .llms-setting-group input[type=datetime].small,.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].small,.wrap.lifterlms-settings .llms-setting-group input[type=date].small,.wrap.lifterlms-settings .llms-setting-group input[type=month].small,.wrap.lifterlms-settings .llms-setting-group input[type=time].small,.wrap.lifterlms-settings .llms-setting-group input[type=week].small,.wrap.lifterlms-settings .llms-setting-group input[type=number].small,.wrap.lifterlms-settings .llms-setting-group input[type=email].small,.wrap.lifterlms-settings .llms-setting-group input[type=url].small,.wrap.lifterlms-settings .llms-setting-group input[type=search].small,.wrap.lifterlms-settings .llms-setting-group input[type=tel].small,.wrap.lifterlms-settings .llms-setting-group input[type=color].small,.wrap.lifterlms-settings .llms-setting-group select.small,.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).small,.wrap.llms-status .llms-setting-group input[type=text].small,.wrap.llms-status .llms-setting-group input[type=password].small,.wrap.llms-status .llms-setting-group input[type=datetime].small,.wrap.llms-status .llms-setting-group input[type=datetime-local].small,.wrap.llms-status .llms-setting-group input[type=date].small,.wrap.llms-status .llms-setting-group input[type=month].small,.wrap.llms-status .llms-setting-group input[type=time].small,.wrap.llms-status .llms-setting-group input[type=week].small,.wrap.llms-status .llms-setting-group input[type=number].small,.wrap.llms-status .llms-setting-group input[type=email].small,.wrap.llms-status .llms-setting-group input[type=url].small,.wrap.llms-status .llms-setting-group input[type=search].small,.wrap.llms-status .llms-setting-group input[type=tel].small,.wrap.llms-status .llms-setting-group input[type=color].small,.wrap.llms-status .llms-setting-group select.small,.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).small{width:20%}.wrap.llms-reporting .llms-setting-group input[type=text].tiny,.wrap.llms-reporting .llms-setting-group input[type=password].tiny,.wrap.llms-reporting .llms-setting-group input[type=datetime].tiny,.wrap.llms-reporting .llms-setting-group input[type=datetime-local].tiny,.wrap.llms-reporting .llms-setting-group input[type=date].tiny,.wrap.llms-reporting .llms-setting-group input[type=month].tiny,.wrap.llms-reporting .llms-setting-group input[type=time].tiny,.wrap.llms-reporting .llms-setting-group input[type=week].tiny,.wrap.llms-reporting .llms-setting-group input[type=number].tiny,.wrap.llms-reporting .llms-setting-group input[type=email].tiny,.wrap.llms-reporting .llms-setting-group input[type=url].tiny,.wrap.llms-reporting .llms-setting-group input[type=search].tiny,.wrap.llms-reporting .llms-setting-group input[type=tel].tiny,.wrap.llms-reporting .llms-setting-group input[type=color].tiny,.wrap.llms-reporting .llms-setting-group select.tiny,.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).tiny,.wrap.lifterlms-settings .llms-setting-group input[type=text].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=password].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=datetime].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=date].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=month].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=time].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=week].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=number].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=email].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=url].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=search].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=tel].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=color].tiny,.wrap.lifterlms-settings .llms-setting-group select.tiny,.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).tiny,.wrap.llms-status .llms-setting-group input[type=text].tiny,.wrap.llms-status .llms-setting-group input[type=password].tiny,.wrap.llms-status .llms-setting-group input[type=datetime].tiny,.wrap.llms-status .llms-setting-group input[type=datetime-local].tiny,.wrap.llms-status .llms-setting-group input[type=date].tiny,.wrap.llms-status .llms-setting-group input[type=month].tiny,.wrap.llms-status .llms-setting-group input[type=time].tiny,.wrap.llms-status .llms-setting-group input[type=week].tiny,.wrap.llms-status .llms-setting-group input[type=number].tiny,.wrap.llms-status .llms-setting-group input[type=email].tiny,.wrap.llms-status .llms-setting-group input[type=url].tiny,.wrap.llms-status .llms-setting-group input[type=search].tiny,.wrap.llms-status .llms-setting-group input[type=tel].tiny,.wrap.llms-status .llms-setting-group input[type=color].tiny,.wrap.llms-status .llms-setting-group select.tiny,.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).tiny{width:10%}@media only screen and (min-width: 782px){.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link{background:#fff}}.wrap.llms-reporting #llms-mailhawk-connect,.wrap.lifterlms-settings #llms-mailhawk-connect,.wrap.llms-status #llms-mailhawk-connect{height:auto;margin:0 0 6px;position:relative}.wrap.llms-reporting #llms-mailhawk-connect .dashicons,.wrap.lifterlms-settings #llms-mailhawk-connect .dashicons,.wrap.llms-status #llms-mailhawk-connect .dashicons{margin:-4px 0 0 4px;vertical-align:middle}.wrap.llms-reporting #llms-sendwp-connect,.wrap.lifterlms-settings #llms-sendwp-connect,.wrap.llms-status #llms-sendwp-connect{height:auto;margin:0 0 6px;position:relative}.wrap.llms-reporting #llms-sendwp-connect .fa,.wrap.lifterlms-settings #llms-sendwp-connect .fa,.wrap.llms-status #llms-sendwp-connect .fa{margin-left:4px}@media only screen and (min-width: 782px){.wrap.lifterlms-settings .llms-subheader{height:40px;position:sticky;top:32px}.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary{margin:0 -22px 20px -20px}.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items{padding-right:10px}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary{margin:0 -22px 20px -20px}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items{padding-right:10px}.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary{margin:0 -22px 20px -20px}.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items{padding-right:10px}}.wrap.llms-dashboard .llms-inside-wrap{padding-top:30px}.wrap.llms-dashboard #poststuff h2{padding:12px 20px}.wrap.llms-dashboard .llms-dashboard-activity h2{font-size:20px;font-weight:700;line-height:1.5;margin-top:0;text-align:center}.wrap.llms-dashboard .postbox{background-color:#fff;border:none;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.wrap.llms-dashboard .postbox .postbox-header{border-bottom-color:#efefef}.wrap.llms-dashboard .postbox .inside{padding:20px}.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap{margin-top:0}.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item{margin-top:0}.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item p{text-align:right}.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item footer.llms-actions{padding-top:0}.wrap.llms-dashboard #llms_dashboard_addons p{text-align:center}.wrap.llms-dashboard #llms_dashboard_addons p .llms-button-primary{display:inline-block;margin-top:15px}.wrap.llms-dashboard #llms_dashboard_quick_links ul{list-style:disc;margin:5px 20px 0 0}.wrap.llms-dashboard #llms_dashboard_quick_links ul li{font-size:15px;line-height:1.5}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links{display:grid;grid-template-columns:1fr;grid-gap:30px}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links a{display:inline-block}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list h3{margin:0 0 10px 0}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list ul{margin-bottom:20px}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list ul.llms-checklist{list-style:none;margin-right:0}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa{text-align:center;width:16px}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa-check{color:#008a20}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa-times{color:#d63638}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-primary,.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-secondary,.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-action{display:block;text-align:center}@media only screen and (min-width: 782px){.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links{grid-template-columns:1fr 1fr 1fr}}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links .llms-list h3{margin:0}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links .llms-list h3 .dashicons{color:#aaa}@media only screen and (min-width: 782px){.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links{grid-template-columns:1fr 1fr 1fr 1fr}}.wrap.llms-dashboard #llms_dashboard_blog ul,.wrap.llms-dashboard #llms_dashboard_podcast ul{margin:0}.wrap.llms-dashboard #llms_dashboard_blog ul li,.wrap.llms-dashboard #llms_dashboard_podcast ul li{margin:0 0 15px 0}.wrap.llms-dashboard #llms_dashboard_blog ul li a,.wrap.llms-dashboard #llms_dashboard_podcast ul li a{display:block}.wrap.llms-dashboard #llms_dashboard_blog p,.wrap.llms-dashboard #llms_dashboard_podcast p{margin:15px 0;text-align:center}.wrap.llms-dashboard #llms_dashboard_blog p a,.wrap.llms-dashboard #llms_dashboard_podcast p a{display:inline-block}#llms_dashboard_widget .inside{margin:0;padding-bottom:8px}#llms_dashboard_widget .llms-dashboard-widget-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:12px}#llms_dashboard_widget .activity-block{padding-bottom:8px;border-color:#e8e8e8}#llms_dashboard_widget h3{margin-bottom:0}#llms_dashboard_widget .llms-charts-wrapper{display:none}#llms_dashboard_widget .llms-widget-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:8px;width:100%;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;padding:4px 0}#llms_dashboard_widget .llms-widget-row:before,#llms_dashboard_widget .llms-widget-row:after{display:none}#llms_dashboard_widget .llms-widget-1-4{padding:0;-webkit-box-flex:1;-ms-flex:1;flex:1}#llms_dashboard_widget .llms-widget{padding:8px 8px 12px;margin:0;border-radius:6px;border:1px solid #e8e8e8;-webkit-box-shadow:0px 2px 4px #f6f7f7;box-shadow:0px 2px 4px #f6f7f7;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}#llms_dashboard_widget .llms-label{font-size:14px;width:100%;-ms-flex-item-align:start;align-self:flex-start;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#llms_dashboard_widget .llms-widget-content{font-size:20px;margin:0}#llms_dashboard_widget .llms-widget-info-toggle{display:none}#llms_dashboard_widget a{border:0}#llms_dashboard_widget .subsubsub{color:#dcdcde}.llms-dashboard-widget-feed{margin:0 -12px;padding:0;background-color:#f6f7f7}.llms-dashboard-widget-feed li{margin:0;padding:8px 12px;border-bottom:1px solid #e8e8e8}.llms-dashboard-widget-feed span{display:block}.wrap.llms-resources .llms-inside-wrap{padding-top:30px}.wrap.llms-resources #poststuff #post-body.columns-2{margin-left:350px}.wrap.llms-resources #poststuff #post-body.columns-2 #side-sortables{width:330px}@media only screen and (max-width: 850px){.wrap.llms-resources #poststuff #post-body.columns-2 #side-sortables{width:auto}}.wrap.llms-resources #poststuff #postbox-container-1{float:left;margin-left:-350px;width:330px}.wrap.llms-resources #poststuff h2{padding:12px 20px}.wrap.llms-resources #poststuff .postbox{background-color:#fff;border:none;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.wrap.llms-resources #poststuff .postbox .postbox-header{border-bottom-color:#efefef}.wrap.llms-resources #poststuff .postbox .inside{margin:0;padding:20px}.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video p{font-size:15px;line-height:1.5;margin:0 0 40px 0}.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container{height:0;overflow:hidden;padding-top:30px;padding-bottom:56.25%;position:relative}.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container iframe,.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container object,.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container embed{right:0;height:100%;position:absolute;top:0;width:100%}.wrap.llms-resources #llms_dashboard_getting_started ul{margin:0 0 20px 0}.wrap.llms-resources #llms_dashboard_getting_started ul li{font-size:15px;line-height:1.5;margin-bottom:15px}.wrap.llms-resources #llms_dashboard_getting_started .llms-button-primary{display:block;margin-top:auto;max-width:300px;text-align:center}.wrap.llms-resources #llms_dashboard_resource_links ul{list-style:disc;margin:5px 20px 0 0}.wrap.llms-resources #llms_dashboard_resource_links ul li{font-size:15px;line-height:1.5}.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links{display:grid;grid-template-columns:1fr;grid-gap:60px}.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links a{display:inline-block}.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list h3{margin:0 0 10px 0}.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list h3 .dashicons{color:#aaa}.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list ul{margin-bottom:20px}.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-primary,.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-secondary,.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-action{display:block;margin-top:auto;max-width:300px;text-align:center}@media only screen and (min-width: 782px){.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links{grid-template-columns:1fr 1fr 1fr}}.llms-remarks .llms-remarks-field{height:120px;width:100%}.llms-remarks input[type=number]{width:60px}button[name=llms_quiz_attempt_action] .save{display:none}button[name=llms_quiz_attempt_action].grading .default{display:none}button[name=llms_quiz_attempt_action].grading .save{display:inline}.llms-form-fields{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields *{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields.flush .llms-form-field{padding:0 0 20px}.llms-form-fields label:not(.llms-field-html label){font-weight:700}.llms-form-fields .wp-block-columns,.llms-form-fields .wp-block-column{margin-bottom:0}.llms-form-heading{padding:0 10px 10px}.llms-form-field{float:right;padding:0 10px 20px;position:relative;width:100%}.llms-form-field label:empty:after{content:" "}.llms-form-field [type=text],.llms-form-field [type=password],.llms-form-field [type=email],.llms-form-field [type=url],.llms-form-field [type=tel],.llms-form-field [type=number]{background-color:#fefefe;background-clip:padding-box;border:1px solid #999;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:16px;line-height:1;padding:8px 12px;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;width:100%}.llms-form-field input:focus,.llms-form-field input:focus-visible{border-color:#6888df;outline:thin solid}.llms-form-field select{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background-color:#fefefe;border:1px solid #999;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#010101;padding:8px 12px;margin:0;width:100%;font-family:inherit;font-size:16px;cursor:inherit;line-height:1.6;z-index:1;outline:none;background-repeat:no-repeat;background-image:linear-gradient(-45deg, transparent 50%, currentcolor 50%),linear-gradient(-135deg, currentcolor 50%, transparent 50%);background-position:left 15px top 1.3rem,left 10px top 1.3rem;background-size:5px 5px,5px 5px}.llms-form-field select::-ms-expand{display:none}.llms-form-field select:focus{border:1px solid #6888df;outline:thin solid}.llms-form-field.valid input[type=date],.llms-form-field.valid input[type=time],.llms-form-field.valid input[type=datetime-local],.llms-form-field.valid input[type=week],.llms-form-field.valid input[type=month],.llms-form-field.valid input[type=text],.llms-form-field.valid input[type=email],.llms-form-field.valid input[type=url],.llms-form-field.valid input[type=password],.llms-form-field.valid input[type=search],.llms-form-field.valid input[type=tel],.llms-form-field.valid input[type=number],.llms-form-field.valid textarea,.llms-form-field.valid select{background:rgba(131,195,115,.3);border-color:#83c373}.llms-form-field.error input[type=date],.llms-form-field.error input[type=time],.llms-form-field.error input[type=datetime-local],.llms-form-field.error input[type=week],.llms-form-field.error input[type=month],.llms-form-field.error input[type=text],.llms-form-field.error input[type=email],.llms-form-field.error input[type=url],.llms-form-field.error input[type=password],.llms-form-field.error input[type=search],.llms-form-field.error input[type=tel],.llms-form-field.error input[type=number],.llms-form-field.error textarea,.llms-form-field.error select,.llms-form-field.invalid input[type=date],.llms-form-field.invalid input[type=time],.llms-form-field.invalid input[type=datetime-local],.llms-form-field.invalid input[type=week],.llms-form-field.invalid input[type=month],.llms-form-field.invalid input[type=text],.llms-form-field.invalid input[type=email],.llms-form-field.invalid input[type=url],.llms-form-field.invalid input[type=password],.llms-form-field.invalid input[type=search],.llms-form-field.invalid input[type=tel],.llms-form-field.invalid input[type=number],.llms-form-field.invalid textarea,.llms-form-field.invalid select{background:rgba(187,35,28,.3);border-color:#bb231c}.llms-form-field.llms-visually-hidden-field{display:none}.llms-form-field.align-right{text-align:left}@media screen and (min-width: 600px){.llms-form-field.llms-cols-1{width:8.3333333333%}.llms-form-field.llms-cols-2{width:16.6666666667%}.llms-form-field.llms-cols-3{width:25%}.llms-form-field.llms-cols-4{width:33.3333333333%}.llms-form-field.llms-cols-5{width:41.6666666667%}.llms-form-field.llms-cols-6{width:50%}.llms-form-field.llms-cols-7{width:58.3333333333%}.llms-form-field.llms-cols-8{width:66.6666666667%}.llms-form-field.llms-cols-9{width:75%}.llms-form-field.llms-cols-10{width:83.3333333333%}.llms-form-field.llms-cols-11{width:91.6666666667%}.llms-form-field.llms-cols-12{width:100%}}.llms-form-field.type-hidden{padding:0}.llms-form-field.type-radio input,.llms-form-field.type-radio label,.llms-form-field.type-checkbox input,.llms-form-field.type-checkbox label{display:inline-block;width:auto}.llms-form-field.type-radio input,.llms-form-field.type-checkbox input{margin-left:10px}.llms-form-field.type-radio label+.llms-description,.llms-form-field.type-checkbox label+.llms-description{display:block}.llms-form-field.type-radio:not(.is-group) input[type=radio]{position:absolute;opacity:0;visibility:none}.llms-form-field.type-radio:not(.is-group) label:before{background:#fafafa;background-position:-24px 0;background-repeat:no-repeat;border-radius:50%;-webkit-box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;content:"";cursor:pointer;display:inline-block;height:22px;margin-left:5px;position:relative;-webkit-transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);top:-3px;vertical-align:middle;width:22px;z-index:2}.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked+label:before{-webkit-transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);background-position:100% 0;background-image:radial-gradient(ellipse at center, #466dd8 0%, #466dd8 40%, #fafafa 45%)}.llms-form-field .llms-input-group{margin-top:5px}.llms-form-field .llms-input-group .llms-form-field{padding:0 5px 5px 0}.llms-form-field.type-reset button:not(.auto),.llms-form-field.type-button button:not(.auto),.llms-form-field.type-submit button:not(.auto){width:100%}.llms-form-field .llms-description{font-size:14px;font-style:italic;line-height:18px}.llms-form-field .llms-required{color:#bb231c;margin-right:4px}.llms-form-field input,.llms-form-field textarea,.llms-form-field select{width:100%;margin-bottom:5px}.llms-form-field .select2-container .select2-selection--single{height:auto;padding:4px 6px}.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%}.llms-password-strength-meter{border:1px solid #dadada;display:none;font-size:10px;margin-top:-10px;padding:1px;position:relative;text-align:center}.llms-password-strength-meter:before{bottom:0;content:"";right:0;position:absolute;top:0;-webkit-transition:width .4s ease;transition:width .4s ease}.llms-password-strength-meter.mismatch,.llms-password-strength-meter.too-short,.llms-password-strength-meter.very-weak{border-color:#e35b5b}.llms-password-strength-meter.mismatch:before,.llms-password-strength-meter.too-short:before,.llms-password-strength-meter.very-weak:before{background:rgba(227,91,91,.25);width:25%}.llms-password-strength-meter.too-short:before{width:0}.llms-password-strength-meter.weak{border-color:#f78b53}.llms-password-strength-meter.weak:before{background:rgba(247,139,83,.25);width:50%}.llms-password-strength-meter.medium{border-color:#ffc733}.llms-password-strength-meter.medium:before{background:rgba(255,199,51,.25);width:75%}.llms-password-strength-meter.strong{border-color:#83c373}.llms-password-strength-meter.strong:before{background:rgba(131,195,115,.25);width:100%}.llms-password-strength-meter+.llms-description{display:block}/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:"FontAwesome";src:url("../fonts/fontawesome-webfont.eot?v=4.7.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-right:0;margin-right:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;right:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{right:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:right}.fa-pull-right{float:left}.fa.fa-pull-left{margin-left:.3em}.fa.fa-pull-right{margin-right:.3em}.pull-right{float:left}.pull-left{float:right}.fa.pull-left{margin-left:.3em}.fa.pull-right{margin-right:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(-270deg);transform:rotate(-270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;right:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-vcard:before,.fa-address-card:before{content:""}.fa-vcard-o:before,.fa-address-card-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
diff --git a/assets/css/admin-wizard-rtl.css b/assets/css/admin-wizard-rtl.css
new file mode 100644
index 0000000000..de010ac844
--- /dev/null
+++ b/assets/css/admin-wizard-rtl.css
@@ -0,0 +1,310 @@
+#wpadminbar, #adminmenumain, #wpfooter {
+ display: none;
+}
+
+#llms-setup-wizard {
+ background-color: #F0F0F1;
+ height: 100%;
+ right: 0;
+ overflow: scroll;
+ position: fixed;
+ top: 0;
+ width: 100%;
+}
+
+.llms-setup-wrapper {
+ margin: 30px auto;
+ max-width: 640px;
+}
+
+#llms-logo {
+ text-align: center;
+}
+#llms-logo a {
+ display: inline-block;
+}
+#llms-logo img {
+ max-width: 200px;
+}
+
+.llms-setup-content {
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ padding: 30px;
+}
+.llms-setup-content h1, .llms-setup-content h2, .llms-setup-content h3, .llms-setup-content h4, .llms-setup-content h5, .llms-setup-content h6 {
+ color: #3C434A;
+}
+.llms-setup-content a:not(.llms-button-primary):not(.llms-button-secondary) {
+ color: #466dd8;
+}
+.llms-setup-content p, .llms-setup-content li {
+ color: #3C434A;
+ font-size: 16px;
+}
+.llms-setup-content p.error {
+ color: #bb231c;
+ background: rgba(187, 35, 28, 0.1);
+ border: 1px solid currentColor;
+ padding: 1em;
+ border-radius: 4px;
+ margin: 1.5em 0 0;
+ font-size: 15px;
+ text-align: right;
+}
+.llms-setup-content label {
+ font-weight: 500;
+}
+.llms-setup-content table {
+ border-bottom: 1px solid #f1f1f1;
+ border-collapse: collapse;
+ width: 100%;
+}
+.llms-setup-content td {
+ border-top: 1px solid #f1f1f1;
+}
+.llms-setup-content td:first-child {
+ padding-left: 10px;
+ width: 33%;
+}
+.llms-setup-content td:first-child a {
+ font-size: 16px;
+ font-weight: 500;
+}
+.llms-setup-content td:first-child i {
+ display: block;
+ font-size: 13px;
+ margin-top: 10px;
+}
+.llms-setup-content td:first-child i a {
+ font-size: 13px;
+}
+.llms-setup-content small {
+ font-size: small;
+}
+.llms-setup-content .has-checkbox-field {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: reverse;
+ -ms-flex-direction: row-reverse;
+ flex-direction: row-reverse;
+ -webkit-box-pack: end;
+ -ms-flex-pack: end;
+ justify-content: flex-end;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -ms-flex-line-pack: center;
+ align-content: center;
+ gap: 0.5em;
+ font-weight: normal;
+ font-size: 16px;
+}
+.llms-setup-content .has-checkbox-field input {
+ margin: 0;
+}
+.llms-setup-content label {
+ font-size: 16px;
+ display: block;
+ margin-bottom: 0.5em;
+}
+.llms-setup-content small + label {
+ margin-top: 1em;
+}
+.llms-setup-content [type=text] {
+ width: 100%;
+ clear: both;
+ margin: 0;
+ padding: 0.3em 0.6em;
+}
+.llms-setup-content .has-date-field {
+ font-size: 16px;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ margin-bottom: 0.5em;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ gap: 0.5em;
+}
+.llms-setup-content [type=date] {
+ padding: 0.3em 0.6em;
+}
+.llms-setup-content .is-hidden {
+ display: none;
+}
+
+.llms-setup-date-fields {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ gap: 1em;
+ padding-top: 2em;
+}
+
+.llms-setup-date-field {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+}
+
+.llms-setup-actions {
+ margin-top: 2em;
+ text-align: left;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ gap: 1em;
+}
+.llms-setup-actions .llms-button-primary {
+ display: inline-block;
+}
+.llms-setup-actions .llms-button-primary:after {
+ content: "\f054";
+ font-family: "FontAwesome";
+ font-weight: 900;
+ padding-right: 10px;
+}
+
+.llms-exit-setup {
+ color: inherit !important;
+ margin-left: 10px;
+}
+.llms-exit-setup + .llms-button-primary,
+.llms-exit-setup + .llms-button-secondary {
+ margin-right: auto;
+}
+
+.llms-importing-msgs a {
+ color: #466dd8;
+}
+.llms-importing-msgs .llms-importing-msg {
+ display: none;
+ font-size: 14px;
+ font-style: italic;
+ text-align: left;
+}
+
+ul.llms-importable-courses {
+ border-bottom: 1px solid #f1f1f1;
+ display: block;
+}
+ul.llms-importable-courses li.llms-importable-course {
+ border-top: 1px solid #f1f1f1;
+ display: block;
+ margin: 0;
+ max-width: 100%;
+ padding: 20px 0;
+}
+ul.llms-importable-courses li.llms-importable-course h3 {
+ grid-area: title;
+ line-height: 1.5;
+ margin: 0;
+}
+ul.llms-importable-courses li.llms-importable-course p {
+ grid-area: description;
+ margin: 0;
+}
+ul.llms-importable-courses li.llms-importable-course label {
+ -webkit-column-gap: 20px;
+ -moz-column-gap: 20px;
+ column-gap: 20px;
+ display: grid;
+ font-weight: 400;
+ grid-template-areas: "image title switch" "image description switch";
+ grid-template-columns: 1fr 3fr auto;
+ row-gap: 5px;
+}
+ul.llms-importable-courses li.llms-importable-course img {
+ grid-area: image;
+ max-width: 160px;
+}
+ul.llms-importable-courses li.llms-importable-course .llms-switch {
+ grid-area: switch;
+}
+ul.llms-importable-courses li.llms-importable-course .llms-switch input.llms-toggle-round:checked + label {
+ border-color: #466dd8;
+ background-color: #466dd8;
+}
+
+.llms-setup-progress {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ margin: 20px 0;
+}
+.llms-setup-progress li {
+ border-bottom: 4px solid #466dd8;
+ display: inline-block;
+ font-size: 14px;
+ padding-bottom: 10px;
+ position: relative;
+ text-align: center;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+}
+.llms-setup-progress li a {
+ color: #466dd8;
+ text-decoration: none;
+}
+.llms-setup-progress li:after {
+ background: #466dd8;
+ bottom: 0;
+ content: "";
+ border: 4px solid #466dd8;
+ border-radius: 100%;
+ height: 4px;
+ position: absolute;
+ right: 50%;
+ margin-right: -6px;
+ margin-bottom: -8px;
+ width: 4px;
+}
+.llms-setup-progress li.current {
+ font-weight: 700;
+}
+.llms-setup-progress li.current:after {
+ background: #fff;
+}
+.llms-setup-progress li.current ~ li {
+ border-bottom-color: #ccc;
+}
+.llms-setup-progress li.current ~ li:after {
+ background: #ccc;
+ border-color: #ccc;
+}
+.llms-setup-progress li.current ~ li a {
+ color: #bbb;
+}
+
+.llms-setup-wrapper [type=text].llms-datepicker {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512' fill='%23ccc'%3E%3Cpath d='M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H64C28.7 64 0 92.7 0 128v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64h-40V24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H152V24zM48 192h352v256c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z'/%3E%3C/svg%3E");
+ background-repeat: no-repeat;
+ background-position: left 8px center;
+ background-size: 16px 16px;
+ padding-left: 40px;
+}
+
+@media only screen and (max-width: 782px) {
+ ul.llms-importable-courses li.llms-importable-course label {
+ grid-template-areas: "image switch" "title title" "description description";
+ grid-template-columns: 3fr auto;
+ }
+}
diff --git a/assets/css/admin-wizard-rtl.min.css b/assets/css/admin-wizard-rtl.min.css
new file mode 100644
index 0000000000..bd8e7486c9
--- /dev/null
+++ b/assets/css/admin-wizard-rtl.min.css
@@ -0,0 +1 @@
+#wpadminbar,#adminmenumain,#wpfooter{display:none}#llms-setup-wizard{background-color:#f0f0f1;height:100%;right:0;overflow:scroll;position:fixed;top:0;width:100%}.llms-setup-wrapper{margin:30px auto;max-width:640px}#llms-logo{text-align:center}#llms-logo a{display:inline-block}#llms-logo img{max-width:200px}.llms-setup-content{background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);padding:30px}.llms-setup-content h1,.llms-setup-content h2,.llms-setup-content h3,.llms-setup-content h4,.llms-setup-content h5,.llms-setup-content h6{color:#3c434a}.llms-setup-content a:not(.llms-button-primary):not(.llms-button-secondary){color:#466dd8}.llms-setup-content p,.llms-setup-content li{color:#3c434a;font-size:16px}.llms-setup-content p.error{color:#bb231c;background:rgba(187,35,28,.1);border:1px solid currentColor;padding:1em;border-radius:4px;margin:1.5em 0 0;font-size:15px;text-align:right}.llms-setup-content label{font-weight:500}.llms-setup-content table{border-bottom:1px solid #f1f1f1;border-collapse:collapse;width:100%}.llms-setup-content td{border-top:1px solid #f1f1f1}.llms-setup-content td:first-child{padding-left:10px;width:33%}.llms-setup-content td:first-child a{font-size:16px;font-weight:500}.llms-setup-content td:first-child i{display:block;font-size:13px;margin-top:10px}.llms-setup-content td:first-child i a{font-size:13px}.llms-setup-content small{font-size:small}.llms-setup-content .has-checkbox-field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;gap:.5em;font-weight:normal;font-size:16px}.llms-setup-content .has-checkbox-field input{margin:0}.llms-setup-content label{font-size:16px;display:block;margin-bottom:.5em}.llms-setup-content small+label{margin-top:1em}.llms-setup-content [type=text]{width:100%;clear:both;margin:0;padding:.3em .6em}.llms-setup-content .has-date-field{font-size:16px;display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:.5em;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.5em}.llms-setup-content [type=date]{padding:.3em .6em}.llms-setup-content .is-hidden{display:none}.llms-setup-date-fields{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:1em;padding-top:2em}.llms-setup-date-field{-webkit-box-flex:1;-ms-flex:1;flex:1}.llms-setup-actions{margin-top:2em;text-align:left;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:1em}.llms-setup-actions .llms-button-primary{display:inline-block}.llms-setup-actions .llms-button-primary:after{content:"";font-family:"FontAwesome";font-weight:900;padding-right:10px}.llms-exit-setup{color:inherit !important;margin-left:10px}.llms-exit-setup+.llms-button-primary,.llms-exit-setup+.llms-button-secondary{margin-right:auto}.llms-importing-msgs a{color:#466dd8}.llms-importing-msgs .llms-importing-msg{display:none;font-size:14px;font-style:italic;text-align:left}ul.llms-importable-courses{border-bottom:1px solid #f1f1f1;display:block}ul.llms-importable-courses li.llms-importable-course{border-top:1px solid #f1f1f1;display:block;margin:0;max-width:100%;padding:20px 0}ul.llms-importable-courses li.llms-importable-course h3{grid-area:title;line-height:1.5;margin:0}ul.llms-importable-courses li.llms-importable-course p{grid-area:description;margin:0}ul.llms-importable-courses li.llms-importable-course label{-webkit-column-gap:20px;-moz-column-gap:20px;column-gap:20px;display:grid;font-weight:400;grid-template-areas:"image title switch" "image description switch";grid-template-columns:1fr 3fr auto;row-gap:5px}ul.llms-importable-courses li.llms-importable-course img{grid-area:image;max-width:160px}ul.llms-importable-courses li.llms-importable-course .llms-switch{grid-area:switch}ul.llms-importable-courses li.llms-importable-course .llms-switch input.llms-toggle-round:checked+label{border-color:#466dd8;background-color:#466dd8}.llms-setup-progress{display:-webkit-box;display:-ms-flexbox;display:flex;margin:20px 0}.llms-setup-progress li{border-bottom:4px solid #466dd8;display:inline-block;font-size:14px;padding-bottom:10px;position:relative;text-align:center;-webkit-box-flex:1;-ms-flex:1;flex:1}.llms-setup-progress li a{color:#466dd8;text-decoration:none}.llms-setup-progress li:after{background:#466dd8;bottom:0;content:"";border:4px solid #466dd8;border-radius:100%;height:4px;position:absolute;right:50%;margin-right:-6px;margin-bottom:-8px;width:4px}.llms-setup-progress li.current{font-weight:700}.llms-setup-progress li.current:after{background:#fff}.llms-setup-progress li.current~li{border-bottom-color:#ccc}.llms-setup-progress li.current~li:after{background:#ccc;border-color:#ccc}.llms-setup-progress li.current~li a{color:#bbb}.llms-setup-wrapper [type=text].llms-datepicker{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512' fill='%23ccc'%3E%3Cpath d='M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H64C28.7 64 0 92.7 0 128v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64h-40V24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H152V24zM48 192h352v256c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 8px center;background-size:16px 16px;padding-left:40px}@media only screen and (max-width: 782px){ul.llms-importable-courses li.llms-importable-course label{grid-template-areas:"image switch" "title title" "description description";grid-template-columns:3fr auto}}
diff --git a/assets/css/admin-wizard.css b/assets/css/admin-wizard.css
new file mode 100644
index 0000000000..1296e2e434
--- /dev/null
+++ b/assets/css/admin-wizard.css
@@ -0,0 +1,311 @@
+#wpadminbar, #adminmenumain, #wpfooter {
+ display: none;
+}
+
+#llms-setup-wizard {
+ background-color: #F0F0F1;
+ height: 100%;
+ left: 0;
+ overflow: scroll;
+ position: fixed;
+ top: 0;
+ width: 100%;
+}
+
+.llms-setup-wrapper {
+ margin: 30px auto;
+ max-width: 640px;
+}
+
+#llms-logo {
+ text-align: center;
+}
+#llms-logo a {
+ display: inline-block;
+}
+#llms-logo img {
+ max-width: 200px;
+}
+
+.llms-setup-content {
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ padding: 30px;
+}
+.llms-setup-content h1, .llms-setup-content h2, .llms-setup-content h3, .llms-setup-content h4, .llms-setup-content h5, .llms-setup-content h6 {
+ color: #3C434A;
+}
+.llms-setup-content a:not(.llms-button-primary):not(.llms-button-secondary) {
+ color: #466dd8;
+}
+.llms-setup-content p, .llms-setup-content li {
+ color: #3C434A;
+ font-size: 16px;
+}
+.llms-setup-content p.error {
+ color: #bb231c;
+ background: rgba(187, 35, 28, 0.1);
+ border: 1px solid currentColor;
+ padding: 1em;
+ border-radius: 4px;
+ margin: 1.5em 0 0;
+ font-size: 15px;
+ text-align: left;
+}
+.llms-setup-content label {
+ font-weight: 500;
+}
+.llms-setup-content table {
+ border-bottom: 1px solid #f1f1f1;
+ border-collapse: collapse;
+ width: 100%;
+}
+.llms-setup-content td {
+ border-top: 1px solid #f1f1f1;
+}
+.llms-setup-content td:first-child {
+ padding-right: 10px;
+ width: 33%;
+}
+.llms-setup-content td:first-child a {
+ font-size: 16px;
+ font-weight: 500;
+}
+.llms-setup-content td:first-child i {
+ display: block;
+ font-size: 13px;
+ margin-top: 10px;
+}
+.llms-setup-content td:first-child i a {
+ font-size: 13px;
+}
+.llms-setup-content small {
+ font-size: small;
+}
+.llms-setup-content .has-checkbox-field {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: reverse;
+ -ms-flex-direction: row-reverse;
+ flex-direction: row-reverse;
+ -webkit-box-pack: end;
+ -ms-flex-pack: end;
+ justify-content: flex-end;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -ms-flex-line-pack: center;
+ align-content: center;
+ gap: 0.5em;
+ font-weight: normal;
+ font-size: 16px;
+}
+.llms-setup-content .has-checkbox-field input {
+ margin: 0;
+}
+.llms-setup-content label {
+ font-size: 16px;
+ display: block;
+ margin-bottom: 0.5em;
+}
+.llms-setup-content small + label {
+ margin-top: 1em;
+}
+.llms-setup-content [type=text] {
+ width: 100%;
+ clear: both;
+ margin: 0;
+ padding: 0.3em 0.6em;
+}
+.llms-setup-content .has-date-field {
+ font-size: 16px;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ margin-bottom: 0.5em;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ gap: 0.5em;
+}
+.llms-setup-content [type=date] {
+ padding: 0.3em 0.6em;
+}
+.llms-setup-content .is-hidden {
+ display: none;
+}
+
+.llms-setup-date-fields {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ gap: 1em;
+ padding-top: 2em;
+}
+
+.llms-setup-date-field {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+}
+
+.llms-setup-actions {
+ margin-top: 2em;
+ text-align: right;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ gap: 1em;
+}
+.llms-setup-actions .llms-button-primary {
+ display: inline-block;
+}
+.llms-setup-actions .llms-button-primary:after {
+ content: "\f054";
+ font-family: "FontAwesome";
+ font-weight: 900;
+ padding-left: 10px;
+}
+
+.llms-exit-setup {
+ color: inherit !important;
+ margin-right: 10px;
+}
+.llms-exit-setup + .llms-button-primary,
+.llms-exit-setup + .llms-button-secondary {
+ margin-left: auto;
+}
+
+.llms-importing-msgs a {
+ color: #466dd8;
+}
+.llms-importing-msgs .llms-importing-msg {
+ display: none;
+ font-size: 14px;
+ font-style: italic;
+ text-align: right;
+}
+
+ul.llms-importable-courses {
+ border-bottom: 1px solid #f1f1f1;
+ display: block;
+}
+ul.llms-importable-courses li.llms-importable-course {
+ border-top: 1px solid #f1f1f1;
+ display: block;
+ margin: 0;
+ max-width: 100%;
+ padding: 20px 0;
+}
+ul.llms-importable-courses li.llms-importable-course h3 {
+ grid-area: title;
+ line-height: 1.5;
+ margin: 0;
+}
+ul.llms-importable-courses li.llms-importable-course p {
+ grid-area: description;
+ margin: 0;
+}
+ul.llms-importable-courses li.llms-importable-course label {
+ -webkit-column-gap: 20px;
+ -moz-column-gap: 20px;
+ column-gap: 20px;
+ display: grid;
+ font-weight: 400;
+ grid-template-areas: "image title switch" "image description switch";
+ grid-template-columns: 1fr 3fr auto;
+ row-gap: 5px;
+}
+ul.llms-importable-courses li.llms-importable-course img {
+ grid-area: image;
+ max-width: 160px;
+}
+ul.llms-importable-courses li.llms-importable-course .llms-switch {
+ grid-area: switch;
+}
+ul.llms-importable-courses li.llms-importable-course .llms-switch input.llms-toggle-round:checked + label {
+ border-color: #466dd8;
+ background-color: #466dd8;
+}
+
+.llms-setup-progress {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ margin: 20px 0;
+}
+.llms-setup-progress li {
+ border-bottom: 4px solid #466dd8;
+ display: inline-block;
+ font-size: 14px;
+ padding-bottom: 10px;
+ position: relative;
+ text-align: center;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+}
+.llms-setup-progress li a {
+ color: #466dd8;
+ text-decoration: none;
+}
+.llms-setup-progress li:after {
+ background: #466dd8;
+ bottom: 0;
+ content: "";
+ border: 4px solid #466dd8;
+ border-radius: 100%;
+ height: 4px;
+ position: absolute;
+ left: 50%;
+ margin-left: -6px;
+ margin-bottom: -8px;
+ width: 4px;
+}
+.llms-setup-progress li.current {
+ font-weight: 700;
+}
+.llms-setup-progress li.current:after {
+ background: #fff;
+}
+.llms-setup-progress li.current ~ li {
+ border-bottom-color: #ccc;
+}
+.llms-setup-progress li.current ~ li:after {
+ background: #ccc;
+ border-color: #ccc;
+}
+.llms-setup-progress li.current ~ li a {
+ color: #bbb;
+}
+
+.llms-setup-wrapper [type=text].llms-datepicker {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512' fill='%23ccc'%3E%3Cpath d='M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H64C28.7 64 0 92.7 0 128v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64h-40V24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H152V24zM48 192h352v256c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z'/%3E%3C/svg%3E");
+ background-repeat: no-repeat;
+ background-position: right 8px center;
+ background-size: 16px 16px;
+ padding-right: 40px;
+}
+
+@media only screen and (max-width: 782px) {
+ ul.llms-importable-courses li.llms-importable-course label {
+ grid-template-areas: "image switch" "title title" "description description";
+ grid-template-columns: 3fr auto;
+ }
+}
+/*# sourceMappingURL=../maps/css/admin-wizard.css.map */
diff --git a/assets/css/admin-wizard.min.css b/assets/css/admin-wizard.min.css
new file mode 100644
index 0000000000..1b8c494535
--- /dev/null
+++ b/assets/css/admin-wizard.min.css
@@ -0,0 +1,2 @@
+#wpadminbar,#adminmenumain,#wpfooter{display:none}#llms-setup-wizard{background-color:#f0f0f1;height:100%;left:0;overflow:scroll;position:fixed;top:0;width:100%}.llms-setup-wrapper{margin:30px auto;max-width:640px}#llms-logo{text-align:center}#llms-logo a{display:inline-block}#llms-logo img{max-width:200px}.llms-setup-content{background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);padding:30px}.llms-setup-content h1,.llms-setup-content h2,.llms-setup-content h3,.llms-setup-content h4,.llms-setup-content h5,.llms-setup-content h6{color:#3c434a}.llms-setup-content a:not(.llms-button-primary):not(.llms-button-secondary){color:#466dd8}.llms-setup-content p,.llms-setup-content li{color:#3c434a;font-size:16px}.llms-setup-content p.error{color:#bb231c;background:rgba(187,35,28,.1);border:1px solid currentColor;padding:1em;border-radius:4px;margin:1.5em 0 0;font-size:15px;text-align:left}.llms-setup-content label{font-weight:500}.llms-setup-content table{border-bottom:1px solid #f1f1f1;border-collapse:collapse;width:100%}.llms-setup-content td{border-top:1px solid #f1f1f1}.llms-setup-content td:first-child{padding-right:10px;width:33%}.llms-setup-content td:first-child a{font-size:16px;font-weight:500}.llms-setup-content td:first-child i{display:block;font-size:13px;margin-top:10px}.llms-setup-content td:first-child i a{font-size:13px}.llms-setup-content small{font-size:small}.llms-setup-content .has-checkbox-field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;gap:.5em;font-weight:normal;font-size:16px}.llms-setup-content .has-checkbox-field input{margin:0}.llms-setup-content label{font-size:16px;display:block;margin-bottom:.5em}.llms-setup-content small+label{margin-top:1em}.llms-setup-content [type=text]{width:100%;clear:both;margin:0;padding:.3em .6em}.llms-setup-content .has-date-field{font-size:16px;display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:.5em;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.5em}.llms-setup-content [type=date]{padding:.3em .6em}.llms-setup-content .is-hidden{display:none}.llms-setup-date-fields{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:1em;padding-top:2em}.llms-setup-date-field{-webkit-box-flex:1;-ms-flex:1;flex:1}.llms-setup-actions{margin-top:2em;text-align:right;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:1em}.llms-setup-actions .llms-button-primary{display:inline-block}.llms-setup-actions .llms-button-primary:after{content:"";font-family:"FontAwesome";font-weight:900;padding-left:10px}.llms-exit-setup{color:inherit !important;margin-right:10px}.llms-exit-setup+.llms-button-primary,.llms-exit-setup+.llms-button-secondary{margin-left:auto}.llms-importing-msgs a{color:#466dd8}.llms-importing-msgs .llms-importing-msg{display:none;font-size:14px;font-style:italic;text-align:right}ul.llms-importable-courses{border-bottom:1px solid #f1f1f1;display:block}ul.llms-importable-courses li.llms-importable-course{border-top:1px solid #f1f1f1;display:block;margin:0;max-width:100%;padding:20px 0}ul.llms-importable-courses li.llms-importable-course h3{grid-area:title;line-height:1.5;margin:0}ul.llms-importable-courses li.llms-importable-course p{grid-area:description;margin:0}ul.llms-importable-courses li.llms-importable-course label{-webkit-column-gap:20px;-moz-column-gap:20px;column-gap:20px;display:grid;font-weight:400;grid-template-areas:"image title switch" "image description switch";grid-template-columns:1fr 3fr auto;row-gap:5px}ul.llms-importable-courses li.llms-importable-course img{grid-area:image;max-width:160px}ul.llms-importable-courses li.llms-importable-course .llms-switch{grid-area:switch}ul.llms-importable-courses li.llms-importable-course .llms-switch input.llms-toggle-round:checked+label{border-color:#466dd8;background-color:#466dd8}.llms-setup-progress{display:-webkit-box;display:-ms-flexbox;display:flex;margin:20px 0}.llms-setup-progress li{border-bottom:4px solid #466dd8;display:inline-block;font-size:14px;padding-bottom:10px;position:relative;text-align:center;-webkit-box-flex:1;-ms-flex:1;flex:1}.llms-setup-progress li a{color:#466dd8;text-decoration:none}.llms-setup-progress li:after{background:#466dd8;bottom:0;content:"";border:4px solid #466dd8;border-radius:100%;height:4px;position:absolute;left:50%;margin-left:-6px;margin-bottom:-8px;width:4px}.llms-setup-progress li.current{font-weight:700}.llms-setup-progress li.current:after{background:#fff}.llms-setup-progress li.current~li{border-bottom-color:#ccc}.llms-setup-progress li.current~li:after{background:#ccc;border-color:#ccc}.llms-setup-progress li.current~li a{color:#bbb}.llms-setup-wrapper [type=text].llms-datepicker{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512' fill='%23ccc'%3E%3Cpath d='M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H64C28.7 64 0 92.7 0 128v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64h-40V24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H152V24zM48 192h352v256c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:16px 16px;padding-right:40px}@media only screen and (max-width: 782px){ul.llms-importable-courses li.llms-importable-course label{grid-template-areas:"image switch" "title title" "description description";grid-template-columns:3fr auto}}
+/*# sourceMappingURL=../maps/css/admin-wizard.min.css.map */
diff --git a/assets/css/admin.css b/assets/css/admin.css
new file mode 100644
index 0000000000..5ca40061bb
--- /dev/null
+++ b/assets/css/admin.css
@@ -0,0 +1,7750 @@
+@charset "UTF-8";
+#poststuff .llms-metabox:before, #poststuff .llms-metabox:after,
+.llms-form-fields:before,
+.llms-metabox .llms-access-plans:before,
+.llms-collapsible .llms-collapsible-body:before,
+.llms-collapsible .llms-collapsible-header:before,
+.llms-collapsible:before,
+.llms-form-fields:after,
+.llms-metabox .llms-access-plans:after,
+.llms-collapsible .llms-collapsible-body:after,
+.llms-collapsible .llms-collapsible-header:after,
+.llms-collapsible:after {
+ content: " ";
+ display: table;
+}
+#poststuff .llms-metabox:after,
+.llms-form-fields:after,
+.llms-metabox .llms-access-plans:after,
+.llms-collapsible .llms-collapsible-body:after,
+.llms-collapsible .llms-collapsible-header:after,
+.llms-collapsible:after {
+ clear: both;
+}
+
+.llms-button-action,
+.llms-button-danger,
+.llms-button-primary,
+.llms-button-secondary {
+ border: none;
+ border-radius: 8px;
+ color: #fefefe;
+ cursor: pointer;
+ display: inline-block;
+ font-size: 18px;
+ font-weight: 700;
+ text-decoration: none;
+ text-shadow: none;
+ line-height: 1;
+ margin: 0;
+ max-width: 100%;
+ padding: 12px 24px;
+ position: relative;
+ -webkit-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+}
+.llms-button-action:disabled,
+.llms-button-danger:disabled,
+.llms-button-primary:disabled,
+.llms-button-secondary:disabled {
+ opacity: 0.5;
+}
+.llms-button-action:hover, .llms-button-action:active,
+.llms-button-danger:hover,
+.llms-button-danger:active,
+.llms-button-primary:hover,
+.llms-button-primary:active,
+.llms-button-secondary:hover,
+.llms-button-secondary:active {
+ color: #fefefe;
+}
+.llms-button-action:focus,
+.llms-button-danger:focus,
+.llms-button-primary:focus,
+.llms-button-secondary:focus {
+ color: #fefefe;
+}
+.llms-button-action.auto,
+.llms-button-danger.auto,
+.llms-button-primary.auto,
+.llms-button-secondary.auto {
+ width: auto;
+}
+.llms-button-action.full,
+.llms-button-danger.full,
+.llms-button-primary.full,
+.llms-button-secondary.full {
+ display: block;
+ text-align: center;
+ width: 100%;
+}
+.llms-button-action.square,
+.llms-button-danger.square,
+.llms-button-primary.square,
+.llms-button-secondary.square {
+ padding: 12px;
+}
+.llms-button-action.small,
+.llms-button-danger.small,
+.llms-button-primary.small,
+.llms-button-secondary.small {
+ font-size: 13px;
+ padding: 8px 14px;
+}
+.llms-button-action.small.square,
+.llms-button-danger.small.square,
+.llms-button-primary.small.square,
+.llms-button-secondary.small.square {
+ padding: 8px;
+}
+.llms-button-action.large,
+.llms-button-danger.large,
+.llms-button-primary.large,
+.llms-button-secondary.large {
+ font-size: 18px;
+ line-height: 1.2;
+ padding: 16px 32px;
+}
+.llms-button-action.large.square,
+.llms-button-danger.large.square,
+.llms-button-primary.large.square,
+.llms-button-secondary.large.square {
+ padding: 16px;
+}
+.llms-button-action.large .fa,
+.llms-button-danger.large .fa,
+.llms-button-primary.large .fa,
+.llms-button-secondary.large .fa {
+ left: -7px;
+ position: relative;
+}
+
+/* Fix for cases where link color overrides the button color */
+a.llms-button-action,
+a.llms-button-danger,
+a.llms-button-primary {
+ color: #fefefe;
+}
+
+.llms-button-primary {
+ background: #466dd8;
+}
+.llms-button-primary:hover, .llms-button-primary.clicked {
+ background: #2b55cb;
+}
+.llms-button-primary:focus, .llms-button-primary:active {
+ background: #6888df;
+}
+
+.llms-button-secondary {
+ background: #e1e1e1;
+ color: #444;
+}
+.llms-button-secondary:hover {
+ color: #414141;
+ background: #cdcdcd;
+}
+.llms-button-secondary:focus, .llms-button-secondary:active {
+ color: #414141;
+ background: #ebebeb;
+}
+
+/* Fix for cases where link color overrides the button color */
+a.llms-button-secondary {
+ color: #444;
+}
+
+.llms-button-action {
+ background: #c05621;
+}
+.llms-button-action:hover, .llms-button-action.clicked {
+ background: #f67d28;
+}
+.llms-button-action:focus, .llms-button-action:active {
+ background: #faad76;
+}
+
+.llms-button-danger {
+ background: #bb231c;
+}
+.llms-button-danger:hover {
+ background: #981c17;
+}
+.llms-button-danger:focus, .llms-button-danger:active {
+ background: #cd261f;
+}
+
+.llms-button-outline {
+ background: transparent;
+ border: 3px solid #1D2327;
+ border-radius: 8px;
+ color: #1D2327;
+ cursor: pointer;
+ font-size: 16px;
+ font-weight: 700;
+ text-decoration: none;
+ text-shadow: none;
+ line-height: 1;
+ margin: 0;
+ max-width: 100%;
+ padding: 12px 24px;
+ position: relative;
+ -webkit-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+}
+.llms-button-outline:disabled {
+ opacity: 0.5;
+}
+.llms-button-outline:hover, .llms-button-outline:active {
+ color: #1D2327;
+}
+.llms-button-outline:focus {
+ color: #1D2327;
+}
+.llms-button-outline.auto {
+ width: auto;
+}
+.llms-button-outline.full {
+ display: block;
+ text-align: center;
+ width: 100%;
+}
+.llms-button-outline.square {
+ padding: 12px;
+}
+
+.llms-course-continue-button {
+ display: inline-block;
+}
+
+.lifterlms [data-tip],
+.lifterlms [data-title-default],
+.lifterlms [data-title-active],
+.llms-metabox [data-tip],
+.llms-metabox [data-title-default],
+.llms-metabox [data-title-active],
+.llms-mb-container [data-tip],
+.llms-mb-container [data-title-default],
+.llms-mb-container [data-title-active],
+.llms-quiz-wrapper [data-tip],
+.llms-quiz-wrapper [data-title-default],
+.llms-quiz-wrapper [data-title-active] {
+ position: relative;
+}
+.lifterlms [data-tip].tip--top-right:before,
+.lifterlms [data-title-default].tip--top-right:before,
+.lifterlms [data-title-active].tip--top-right:before,
+.llms-metabox [data-tip].tip--top-right:before,
+.llms-metabox [data-title-default].tip--top-right:before,
+.llms-metabox [data-title-active].tip--top-right:before,
+.llms-mb-container [data-tip].tip--top-right:before,
+.llms-mb-container [data-title-default].tip--top-right:before,
+.llms-mb-container [data-title-active].tip--top-right:before,
+.llms-quiz-wrapper [data-tip].tip--top-right:before,
+.llms-quiz-wrapper [data-title-default].tip--top-right:before,
+.llms-quiz-wrapper [data-title-active].tip--top-right:before {
+ bottom: 100%;
+ left: -10px;
+}
+.lifterlms [data-tip].tip--top-right:hover:before,
+.lifterlms [data-title-default].tip--top-right:hover:before,
+.lifterlms [data-title-active].tip--top-right:hover:before,
+.llms-metabox [data-tip].tip--top-right:hover:before,
+.llms-metabox [data-title-default].tip--top-right:hover:before,
+.llms-metabox [data-title-active].tip--top-right:hover:before,
+.llms-mb-container [data-tip].tip--top-right:hover:before,
+.llms-mb-container [data-title-default].tip--top-right:hover:before,
+.llms-mb-container [data-title-active].tip--top-right:hover:before,
+.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before {
+ bottom: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--top-right:after,
+.lifterlms [data-title-default].tip--top-right:after,
+.lifterlms [data-title-active].tip--top-right:after,
+.llms-metabox [data-tip].tip--top-right:after,
+.llms-metabox [data-title-default].tip--top-right:after,
+.llms-metabox [data-title-active].tip--top-right:after,
+.llms-mb-container [data-tip].tip--top-right:after,
+.llms-mb-container [data-title-default].tip--top-right:after,
+.llms-mb-container [data-title-active].tip--top-right:after,
+.llms-quiz-wrapper [data-tip].tip--top-right:after,
+.llms-quiz-wrapper [data-title-default].tip--top-right:after,
+.llms-quiz-wrapper [data-title-active].tip--top-right:after {
+ border-top-color: #444;
+ left: 6px;
+ top: 0;
+}
+.lifterlms [data-tip].tip--top-right:hover:after,
+.lifterlms [data-title-default].tip--top-right:hover:after,
+.lifterlms [data-title-active].tip--top-right:hover:after,
+.llms-metabox [data-tip].tip--top-right:hover:after,
+.llms-metabox [data-title-default].tip--top-right:hover:after,
+.llms-metabox [data-title-active].tip--top-right:hover:after,
+.llms-mb-container [data-tip].tip--top-right:hover:after,
+.llms-mb-container [data-title-default].tip--top-right:hover:after,
+.llms-mb-container [data-title-active].tip--top-right:hover:after,
+.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after {
+ top: -6px;
+}
+.lifterlms [data-tip].tip--top-left:before,
+.lifterlms [data-title-default].tip--top-left:before,
+.lifterlms [data-title-active].tip--top-left:before,
+.llms-metabox [data-tip].tip--top-left:before,
+.llms-metabox [data-title-default].tip--top-left:before,
+.llms-metabox [data-title-active].tip--top-left:before,
+.llms-mb-container [data-tip].tip--top-left:before,
+.llms-mb-container [data-title-default].tip--top-left:before,
+.llms-mb-container [data-title-active].tip--top-left:before,
+.llms-quiz-wrapper [data-tip].tip--top-left:before,
+.llms-quiz-wrapper [data-title-default].tip--top-left:before,
+.llms-quiz-wrapper [data-title-active].tip--top-left:before {
+ bottom: 100%;
+ right: -10px;
+}
+.lifterlms [data-tip].tip--top-left:hover:before,
+.lifterlms [data-title-default].tip--top-left:hover:before,
+.lifterlms [data-title-active].tip--top-left:hover:before,
+.llms-metabox [data-tip].tip--top-left:hover:before,
+.llms-metabox [data-title-default].tip--top-left:hover:before,
+.llms-metabox [data-title-active].tip--top-left:hover:before,
+.llms-mb-container [data-tip].tip--top-left:hover:before,
+.llms-mb-container [data-title-default].tip--top-left:hover:before,
+.llms-mb-container [data-title-active].tip--top-left:hover:before,
+.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before {
+ bottom: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--top-left:after,
+.lifterlms [data-title-default].tip--top-left:after,
+.lifterlms [data-title-active].tip--top-left:after,
+.llms-metabox [data-tip].tip--top-left:after,
+.llms-metabox [data-title-default].tip--top-left:after,
+.llms-metabox [data-title-active].tip--top-left:after,
+.llms-mb-container [data-tip].tip--top-left:after,
+.llms-mb-container [data-title-default].tip--top-left:after,
+.llms-mb-container [data-title-active].tip--top-left:after,
+.llms-quiz-wrapper [data-tip].tip--top-left:after,
+.llms-quiz-wrapper [data-title-default].tip--top-left:after,
+.llms-quiz-wrapper [data-title-active].tip--top-left:after {
+ border-top-color: #444;
+ right: 6px;
+ top: 0;
+}
+.lifterlms [data-tip].tip--top-left:hover:after,
+.lifterlms [data-title-default].tip--top-left:hover:after,
+.lifterlms [data-title-active].tip--top-left:hover:after,
+.llms-metabox [data-tip].tip--top-left:hover:after,
+.llms-metabox [data-title-default].tip--top-left:hover:after,
+.llms-metabox [data-title-active].tip--top-left:hover:after,
+.llms-mb-container [data-tip].tip--top-left:hover:after,
+.llms-mb-container [data-title-default].tip--top-left:hover:after,
+.llms-mb-container [data-title-active].tip--top-left:hover:after,
+.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after {
+ top: -6px;
+}
+.lifterlms [data-tip].tip--bottom-left:before,
+.lifterlms [data-title-default].tip--bottom-left:before,
+.lifterlms [data-title-active].tip--bottom-left:before,
+.llms-metabox [data-tip].tip--bottom-left:before,
+.llms-metabox [data-title-default].tip--bottom-left:before,
+.llms-metabox [data-title-active].tip--bottom-left:before,
+.llms-mb-container [data-tip].tip--bottom-left:before,
+.llms-mb-container [data-title-default].tip--bottom-left:before,
+.llms-mb-container [data-title-active].tip--bottom-left:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:before {
+ top: 100%;
+ right: -10px;
+}
+.lifterlms [data-tip].tip--bottom-left:hover:before,
+.lifterlms [data-title-default].tip--bottom-left:hover:before,
+.lifterlms [data-title-active].tip--bottom-left:hover:before,
+.llms-metabox [data-tip].tip--bottom-left:hover:before,
+.llms-metabox [data-title-default].tip--bottom-left:hover:before,
+.llms-metabox [data-title-active].tip--bottom-left:hover:before,
+.llms-mb-container [data-tip].tip--bottom-left:hover:before,
+.llms-mb-container [data-title-default].tip--bottom-left:hover:before,
+.llms-mb-container [data-title-active].tip--bottom-left:hover:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before {
+ top: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--bottom-left:after,
+.lifterlms [data-title-default].tip--bottom-left:after,
+.lifterlms [data-title-active].tip--bottom-left:after,
+.llms-metabox [data-tip].tip--bottom-left:after,
+.llms-metabox [data-title-default].tip--bottom-left:after,
+.llms-metabox [data-title-active].tip--bottom-left:after,
+.llms-mb-container [data-tip].tip--bottom-left:after,
+.llms-mb-container [data-title-default].tip--bottom-left:after,
+.llms-mb-container [data-title-active].tip--bottom-left:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:after {
+ border-bottom-color: #444;
+ right: 6px;
+ bottom: 0;
+}
+.lifterlms [data-tip].tip--bottom-left:hover:after,
+.lifterlms [data-title-default].tip--bottom-left:hover:after,
+.lifterlms [data-title-active].tip--bottom-left:hover:after,
+.llms-metabox [data-tip].tip--bottom-left:hover:after,
+.llms-metabox [data-title-default].tip--bottom-left:hover:after,
+.llms-metabox [data-title-active].tip--bottom-left:hover:after,
+.llms-mb-container [data-tip].tip--bottom-left:hover:after,
+.llms-mb-container [data-title-default].tip--bottom-left:hover:after,
+.llms-mb-container [data-title-active].tip--bottom-left:hover:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after {
+ bottom: -6px;
+}
+.lifterlms [data-tip].tip--bottom-right:before,
+.lifterlms [data-title-default].tip--bottom-right:before,
+.lifterlms [data-title-active].tip--bottom-right:before,
+.llms-metabox [data-tip].tip--bottom-right:before,
+.llms-metabox [data-title-default].tip--bottom-right:before,
+.llms-metabox [data-title-active].tip--bottom-right:before,
+.llms-mb-container [data-tip].tip--bottom-right:before,
+.llms-mb-container [data-title-default].tip--bottom-right:before,
+.llms-mb-container [data-title-active].tip--bottom-right:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:before {
+ top: 100%;
+ left: -10px;
+}
+.lifterlms [data-tip].tip--bottom-right:hover:before,
+.lifterlms [data-title-default].tip--bottom-right:hover:before,
+.lifterlms [data-title-active].tip--bottom-right:hover:before,
+.llms-metabox [data-tip].tip--bottom-right:hover:before,
+.llms-metabox [data-title-default].tip--bottom-right:hover:before,
+.llms-metabox [data-title-active].tip--bottom-right:hover:before,
+.llms-mb-container [data-tip].tip--bottom-right:hover:before,
+.llms-mb-container [data-title-default].tip--bottom-right:hover:before,
+.llms-mb-container [data-title-active].tip--bottom-right:hover:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before {
+ top: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--bottom-right:after,
+.lifterlms [data-title-default].tip--bottom-right:after,
+.lifterlms [data-title-active].tip--bottom-right:after,
+.llms-metabox [data-tip].tip--bottom-right:after,
+.llms-metabox [data-title-default].tip--bottom-right:after,
+.llms-metabox [data-title-active].tip--bottom-right:after,
+.llms-mb-container [data-tip].tip--bottom-right:after,
+.llms-mb-container [data-title-default].tip--bottom-right:after,
+.llms-mb-container [data-title-active].tip--bottom-right:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:after {
+ border-bottom-color: #444;
+ left: 6px;
+ bottom: 0;
+}
+.lifterlms [data-tip].tip--bottom-right:hover:after,
+.lifterlms [data-title-default].tip--bottom-right:hover:after,
+.lifterlms [data-title-active].tip--bottom-right:hover:after,
+.llms-metabox [data-tip].tip--bottom-right:hover:after,
+.llms-metabox [data-title-default].tip--bottom-right:hover:after,
+.llms-metabox [data-title-active].tip--bottom-right:hover:after,
+.llms-mb-container [data-tip].tip--bottom-right:hover:after,
+.llms-mb-container [data-title-default].tip--bottom-right:hover:after,
+.llms-mb-container [data-title-active].tip--bottom-right:hover:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after {
+ bottom: -6px;
+}
+.lifterlms [data-tip]:before,
+.lifterlms [data-title-default]:before,
+.lifterlms [data-title-active]:before,
+.llms-metabox [data-tip]:before,
+.llms-metabox [data-title-default]:before,
+.llms-metabox [data-title-active]:before,
+.llms-mb-container [data-tip]:before,
+.llms-mb-container [data-title-default]:before,
+.llms-mb-container [data-title-active]:before,
+.llms-quiz-wrapper [data-tip]:before,
+.llms-quiz-wrapper [data-title-default]:before,
+.llms-quiz-wrapper [data-title-active]:before {
+ background: #444;
+ border-radius: 4px;
+ color: #fff;
+ font-size: 13px;
+ line-height: 1.2;
+ padding: 8px;
+ max-width: 300px;
+ width: -webkit-max-content;
+ width: -moz-max-content;
+ width: max-content;
+}
+.lifterlms [data-tip]:after,
+.lifterlms [data-title-default]:after,
+.lifterlms [data-title-active]:after,
+.llms-metabox [data-tip]:after,
+.llms-metabox [data-title-default]:after,
+.llms-metabox [data-title-active]:after,
+.llms-mb-container [data-tip]:after,
+.llms-mb-container [data-title-default]:after,
+.llms-mb-container [data-title-active]:after,
+.llms-quiz-wrapper [data-tip]:after,
+.llms-quiz-wrapper [data-title-default]:after,
+.llms-quiz-wrapper [data-title-active]:after {
+ content: "";
+ border: 6px solid transparent;
+ height: 0;
+ width: 0;
+}
+.lifterlms [data-tip]:before, .lifterlms [data-tip]:after,
+.lifterlms [data-title-default]:before,
+.lifterlms [data-title-default]:after,
+.lifterlms [data-title-active]:before,
+.lifterlms [data-title-active]:after,
+.llms-metabox [data-tip]:before,
+.llms-metabox [data-tip]:after,
+.llms-metabox [data-title-default]:before,
+.llms-metabox [data-title-default]:after,
+.llms-metabox [data-title-active]:before,
+.llms-metabox [data-title-active]:after,
+.llms-mb-container [data-tip]:before,
+.llms-mb-container [data-tip]:after,
+.llms-mb-container [data-title-default]:before,
+.llms-mb-container [data-title-default]:after,
+.llms-mb-container [data-title-active]:before,
+.llms-mb-container [data-title-active]:after,
+.llms-quiz-wrapper [data-tip]:before,
+.llms-quiz-wrapper [data-tip]:after,
+.llms-quiz-wrapper [data-title-default]:before,
+.llms-quiz-wrapper [data-title-default]:after,
+.llms-quiz-wrapper [data-title-active]:before,
+.llms-quiz-wrapper [data-title-active]:after {
+ opacity: 0;
+ -webkit-transition: all 0.2s 0.1s ease;
+ transition: all 0.2s 0.1s ease;
+ position: absolute;
+ pointer-events: none;
+ visibility: hidden;
+}
+.lifterlms [data-tip]:hover:before, .lifterlms [data-tip]:hover:after,
+.lifterlms [data-title-default]:hover:before,
+.lifterlms [data-title-default]:hover:after,
+.lifterlms [data-title-active]:hover:before,
+.lifterlms [data-title-active]:hover:after,
+.llms-metabox [data-tip]:hover:before,
+.llms-metabox [data-tip]:hover:after,
+.llms-metabox [data-title-default]:hover:before,
+.llms-metabox [data-title-default]:hover:after,
+.llms-metabox [data-title-active]:hover:before,
+.llms-metabox [data-title-active]:hover:after,
+.llms-mb-container [data-tip]:hover:before,
+.llms-mb-container [data-tip]:hover:after,
+.llms-mb-container [data-title-default]:hover:before,
+.llms-mb-container [data-title-default]:hover:after,
+.llms-mb-container [data-title-active]:hover:before,
+.llms-mb-container [data-title-active]:hover:after,
+.llms-quiz-wrapper [data-tip]:hover:before,
+.llms-quiz-wrapper [data-tip]:hover:after,
+.llms-quiz-wrapper [data-title-default]:hover:before,
+.llms-quiz-wrapper [data-title-default]:hover:after,
+.llms-quiz-wrapper [data-title-active]:hover:before,
+.llms-quiz-wrapper [data-title-active]:hover:after {
+ opacity: 1;
+ -webkit-transition: all 0 0.1s ease;
+ transition: all 0 0.1s ease;
+ visibility: visible;
+ z-index: 99999999;
+}
+.lifterlms [data-tip]:before,
+.llms-metabox [data-tip]:before,
+.llms-mb-container [data-tip]:before,
+.llms-quiz-wrapper [data-tip]:before {
+ content: attr(data-tip);
+}
+.lifterlms [data-tip].active:before,
+.llms-metabox [data-tip].active:before,
+.llms-mb-container [data-tip].active:before,
+.llms-quiz-wrapper [data-tip].active:before {
+ content: attr(data-tip-active);
+}
+
+#adminmenu .toplevel_page_lifterlms .wp-menu-image img {
+ padding-top: 6px;
+ width: 20px;
+}
+#adminmenu .toplevel_page_lifterlms a[href*="page=llms-add-ons"],
+#adminmenu .opensub .wp-submenu li.current a[href*="page=llms-add-ons"],
+#adminmenu .wp-submenu li.current a[href*="page=llms-add-ons"],
+#adminmenu .wp-submenu li.current a[href*="page=llms-add-ons"],
+#adminmenu .wp-submenu li.current a[href*="page=llms-add-ons"],
+#adminmenu a.wp-has-current-submenu:focus + .wp-submenu li.current a[href*="page=llms-add-ons"] {
+ color: #f8954f;
+}
+
+/******************************************************************
+
+Grids for Breakpoints
+
+******************************************************************/
+.last-col {
+ float: right;
+ padding-right: 0 !important;
+}
+
+.last-col:after {
+ clear: both;
+}
+
+/*
+Mobile Grid Styles
+These are the widths for the mobile grid.
+There are four types, but you can add or customize
+them however you see fit.
+*/
+@media (max-width: 767px) {
+ .m-all {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ padding-right: 0;
+ }
+ .m-1of2 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 50%;
+ }
+ .m-1of3 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 33.33%;
+ }
+ .m-2of3 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 66.66%;
+ }
+ .m-1of4 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 25%;
+ }
+ .m-3of4 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 75%;
+ }
+ .m-right {
+ text-align: center;
+ }
+ .m-center {
+ text-align: center;
+ }
+ .m-left {
+ text-align: center;
+ }
+ .d-right {
+ text-align: right;
+ }
+ .d-center {
+ text-align: center;
+ }
+ .d-left {
+ text-align: left;
+ }
+}
+/* Portrait tablet to landscape */
+@media (min-width: 768px) and (max-width: 1029px) {
+ .t-all {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ padding-right: 0;
+ }
+ .t-1of2 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 50%;
+ }
+ .t-1of3 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 33.33%;
+ }
+ .t-2of3 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 66.66%;
+ }
+ .t-1of4 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 25%;
+ }
+ .t-3of4 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 75%;
+ }
+ .t-1of5 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 20%;
+ }
+ .t-2of5 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 40%;
+ }
+ .t-3of5 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 60%;
+ }
+ .t-4of5 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 80%;
+ }
+ .d-right {
+ text-align: right;
+ }
+ .d-center {
+ text-align: center;
+ }
+ .d-left {
+ text-align: left;
+ }
+}
+/* Landscape to small desktop */
+@media (min-width: 1030px) {
+ .d-all {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ padding-right: 0;
+ }
+ .d-1of2 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 50%;
+ }
+ .d-1of3 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 33.33%;
+ }
+ .d-2of3 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 66.66%;
+ }
+ .d-1of4 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 25%;
+ }
+ .d-3of4 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 75%;
+ }
+ .d-1of5 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 20%;
+ }
+ .d-2of5 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 40%;
+ }
+ .d-3of5 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 60%;
+ }
+ .d-4of5 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 80%;
+ }
+ .d-1of6 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 16.6666666667%;
+ }
+ .d-1of7 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 14.2857142857%;
+ }
+ .d-2of7 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 28.5714286%;
+ }
+ .d-3of7 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 42.8571429%;
+ }
+ .d-4of7 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 57.1428572%;
+ }
+ .d-5of7 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 71.4285715%;
+ }
+ .d-6of7 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 85.7142857%;
+ }
+ .d-1of8 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 12.5%;
+ }
+ .d-1of9 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 11.1111111111%;
+ }
+ .d-1of10 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 10%;
+ }
+ .d-1of11 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 9.0909090909%;
+ }
+ .d-1of12 {
+ float: left;
+ padding-right: 0.75em;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 8.33%;
+ }
+ .d-right {
+ text-align: right;
+ }
+ .d-center {
+ text-align: center;
+ }
+ .d-left {
+ text-align: left;
+ }
+}
+/******************************************************************
+
+Form Styles
+
+******************************************************************/
+#llms-form-wrapper .llms-search-form-wrapper {
+ border-bottom: 1px solid #999;
+ margin: 20px 0;
+}
+#llms-form-wrapper #llms_analytics_search {
+ border: none !important;
+ text-shadow: none !important;
+ border: none !important;
+ outline: none !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ margin: 0 !important;
+ color: #fefefe !important;
+ background: #466dd8 !important;
+ border-radius: 0;
+ -webkit-transition: 0.5s;
+ transition: 0.5s;
+}
+#llms-form-wrapper #llms_analytics_search:hover {
+ background: #0185a3 !important;
+}
+#llms-form-wrapper #llms_analytics_search:active {
+ background: #33b1cb !important;
+}
+
+#llms-skip-setup-form .llms-admin-link {
+ background: none !important;
+ border: none;
+ padding: 0 !important;
+ color: #0074a2;
+ cursor: pointer;
+}
+#llms-skip-setup-form .llms-admin-link:hover {
+ color: #2ea2cc;
+}
+#llms-skip-setup-form .llms-admin-link:focus {
+ color: #124964;
+}
+
+/**
+ * Toggle Switch ( replaces checkbox on admin panels )
+ */
+.llms-switch {
+ position: relative;
+}
+.llms-switch .llms-toggle {
+ position: absolute;
+ margin-left: -9999px;
+ visibility: hidden;
+}
+.llms-switch .llms-toggle + label {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ display: block;
+ position: relative;
+ cursor: pointer;
+ outline: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.llms-switch input.llms-toggle-round + label {
+ border: 2px solid #6c7781;
+ border-radius: 10px;
+ height: 20px;
+ width: 36px;
+}
+.llms-switch input.llms-toggle-round + label:before,
+.llms-switch input.llms-toggle-round + label:after {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ content: "";
+ display: block;
+ position: absolute;
+ -webkit-transition: background 0.4s;
+ transition: background 0.4s;
+}
+.llms-switch input.llms-toggle-round:checked + label {
+ border-color: #11a0d2;
+ background-color: #11a0d2;
+}
+.llms-switch input.llms-toggle-round + label:after {
+ height: 12px;
+ left: 2px;
+ top: 2px;
+ background-color: #6c7781;
+ border-radius: 50%;
+ -webkit-transition: margin 0.4s;
+ transition: margin 0.4s;
+ width: 12px;
+ z-index: 3;
+}
+.llms-switch input.llms-toggle-round:checked + label:after {
+ background-color: #fefefe;
+ margin-left: 16px;
+}
+.llms-switch input.llms-toggle-round + label:before {
+ height: 8px;
+ top: 4px;
+ border: 1px solid #6c7781;
+ border-radius: 50%;
+ right: 4px;
+ width: 8px;
+ z-index: 2;
+}
+.llms-switch input.llms-toggle-round:checked + label:before {
+ border-color: #fefefe;
+ border-radius: 0;
+ left: 6px;
+ right: auto;
+ width: 2px;
+}
+
+#llms-profile-fields {
+ margin: 50px 0;
+}
+#llms-profile-fields .llms-form-field {
+ padding-left: 0;
+}
+#llms-profile-fields label {
+ display: block;
+ font-weight: bold;
+ padding: 8px 0 2px;
+}
+#llms-profile-fields .type-checkbox .type-checkbox label {
+ display: initial;
+ font-weight: initial;
+ padding: 0;
+}
+#llms-profile-fields .type-checkbox .type-checkbox input {
+ display: inline-block;
+ margin-bottom: 0;
+ width: 1rem;
+}
+#llms-profile-fields select {
+ max-width: 100%;
+}
+
+a.llms-voucher-delete {
+ background: #bb231c;
+ color: #fefefe;
+ display: block;
+ padding: 4px 2px;
+ text-decoration: none;
+ -webkit-transition: ease 0.3s all;
+ transition: ease 0.3s all;
+}
+a.llms-voucher-delete:hover {
+ background: #af3a26;
+}
+
+.llms-voucher-codes-wrapper table,
+.llms-voucher-redemption-wrapper table {
+ width: 100%;
+ border-collapse: collapse;
+}
+.llms-voucher-codes-wrapper table th, .llms-voucher-codes-wrapper table td,
+.llms-voucher-redemption-wrapper table th,
+.llms-voucher-redemption-wrapper table td {
+ border: none;
+}
+.llms-voucher-codes-wrapper table thead,
+.llms-voucher-redemption-wrapper table thead {
+ background-color: #466dd8;
+ color: #fff;
+}
+.llms-voucher-codes-wrapper table thead th,
+.llms-voucher-redemption-wrapper table thead th {
+ padding: 10px 10px;
+}
+.llms-voucher-codes-wrapper table tr,
+.llms-voucher-redemption-wrapper table tr {
+ counter-increment: row-counter;
+}
+.llms-voucher-codes-wrapper table tr:nth-child(even),
+.llms-voucher-redemption-wrapper table tr:nth-child(even) {
+ background-color: #F1F1F1;
+}
+.llms-voucher-codes-wrapper table tr td,
+.llms-voucher-redemption-wrapper table tr td {
+ padding: 5px;
+}
+.llms-voucher-codes-wrapper table tr td:first-child:before,
+.llms-voucher-redemption-wrapper table tr td:first-child:before {
+ content: counter(row-counter);
+}
+
+.llms-voucher-codes-wrapper table {
+ width: 100%;
+ border-collapse: collapse;
+}
+.llms-voucher-codes-wrapper table th, .llms-voucher-codes-wrapper table td {
+ border: none;
+}
+.llms-voucher-codes-wrapper table thead {
+ background-color: #466dd8;
+ color: #fff;
+}
+.llms-voucher-codes-wrapper table tr:nth-child(even) {
+ background-color: #F1F1F1;
+}
+.llms-voucher-codes-wrapper table tr td span {
+ display: inline-block;
+ min-width: 30px;
+}
+.llms-voucher-codes-wrapper button {
+ cursor: pointer;
+}
+.llms-voucher-codes-wrapper .llms-voucher-delete {
+ float: right;
+ margin-right: 15px;
+}
+.llms-voucher-codes-wrapper .llms-voucher-uses {
+ width: 50px;
+}
+.llms-voucher-codes-wrapper .llms-voucher-add-codes {
+ float: right;
+}
+.llms-voucher-codes-wrapper .llms-voucher-add-codes input[type=text] {
+ width: 30px;
+}
+
+.llms-voucher-export-wrapper .llms-voucher-export-type {
+ width: 100%;
+}
+.llms-voucher-export-wrapper .llms-voucher-export-type p {
+ margin: 0 0 0 15px;
+}
+.llms-voucher-export-wrapper .llms-voucher-email-wrapper {
+ width: 100%;
+ margin: 25px 0;
+}
+.llms-voucher-export-wrapper .llms-voucher-email-wrapper input[type=text] {
+ width: 100%;
+}
+.llms-voucher-export-wrapper .llms-voucher-email-wrapper p {
+ margin: 0;
+}
+.llms-voucher-export-wrapper > button {
+ float: right;
+}
+
+.postbox .inside {
+ overflow: auto;
+}
+
+.llms-widget {
+ background-color: #FFF;
+ border: 1px solid #dedede;
+ border-radius: 12px;
+ -webkit-box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
+ box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin-bottom: 20px;
+ padding: 20px;
+ position: relative;
+ width: 100%;
+}
+.llms-widget.alt {
+ border: 1px solid #ccc;
+ background-color: #efefef;
+ margin-bottom: 10px;
+}
+.llms-widget.alt .llms-label {
+ color: #777;
+ font-size: 14px;
+ margin-bottom: 10px;
+ padding-bottom: 5px;
+}
+.llms-widget.alt h2 {
+ color: #444;
+ font-weight: 300;
+}
+.llms-widget a {
+ border-bottom: 1px dotted #466dd8;
+ display: inline-block;
+ text-decoration: none;
+}
+.llms-widget a:hover {
+ border-bottom: 1px dotted #2b55cb;
+}
+.llms-widget .llms-widget-content {
+ margin: 0.67em 0;
+ color: #466dd8;
+ font-size: 2.4em;
+ font-weight: 700;
+ line-height: 1;
+ word-break: break-all;
+}
+.llms-widget h2 {
+ font-size: 1.8em;
+}
+.llms-widget .llms-label {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ font-size: 18px;
+ font-weight: 400;
+ margin: 0 0 10px 0;
+ text-align: center;
+}
+.llms-widget .llms-chart {
+ width: 100%;
+ padding: 10px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.llms-widget mark.yes {
+ background-color: #7ad03a;
+}
+.llms-widget .llms-subtitle {
+ margin-bottom: 0;
+}
+.llms-widget .spinner {
+ float: none;
+ left: 50%;
+ margin: -10px 0 0 -10px;
+ position: absolute;
+ top: 50%;
+ z-index: 2;
+}
+.llms-widget.is-loading:before {
+ background: #fefefe;
+ bottom: 0;
+ content: "";
+ left: 0;
+ opacity: 0.9;
+ position: absolute;
+ right: 0;
+ top: 0;
+ z-index: 1;
+}
+.llms-widget.is-loading .spinner {
+ visibility: visible;
+}
+.llms-widget td[colspan="2"] {
+ padding-left: 0;
+}
+.llms-widget tr.llms-disabled-field {
+ opacity: 0.5;
+ pointer-events: none;
+}
+
+.llms-widget-1-3,
+.llms-widget-1-4,
+.llms-widget-1-5 {
+ text-align: center;
+}
+
+.llms-widget .llms-widget-info-toggle {
+ color: #AAA;
+ cursor: pointer;
+ font-size: 16px;
+ position: absolute;
+ right: 20px;
+ top: 20px;
+}
+.llms-widget.info-showing .llms-widget-info {
+ display: block;
+}
+
+.llms-widget-info {
+ background: #444;
+ color: #fefefe;
+ bottom: -50px;
+ display: none;
+ padding: 15px;
+ position: absolute;
+ text-align: center;
+ left: 10px;
+ right: 15px;
+ z-index: 3;
+}
+.llms-widget-info:before {
+ content: "";
+ border: 12px solid transparent;
+ border-bottom-color: #444;
+ left: 50%;
+ margin-left: -12px;
+ position: absolute;
+ top: -24px;
+}
+.llms-widget-info p {
+ margin: 0;
+}
+
+.llms-widget-row:before, .llms-widget-row:after {
+ content: " ";
+ display: table;
+}
+.llms-widget-row:after {
+ clear: both;
+}
+
+.llms-widget-row .no-padding {
+ padding: 0 !important;
+}
+
+/******************************************************************
+
+SVG Styles
+
+******************************************************************/
+svg.icon {
+ height: 24px;
+ width: 24px;
+ display: inline-block;
+ fill: currentColor;
+ vertical-align: baseline;
+}
+button svg.icon {
+ height: 18px;
+ width: 18px;
+ margin: 4px -4px 0 4px;
+ -webkit-filter: drop-shadow(0 1px #eee);
+ filter: drop-shadow(0 1px #eee);
+ float: right;
+}
+svg.icon.menu-icon {
+ height: 20px;
+ width: 20px;
+ display: inline-block;
+ fill: currentColor;
+ vertical-align: text-bottom;
+ margin-right: 10px;
+}
+svg.icon.tree-icon {
+ height: 13px;
+ width: 13px;
+ vertical-align: middle;
+}
+svg.icon.section-icon {
+ height: 16px;
+ width: 16px;
+ vertical-align: text-bottom;
+}
+svg.icon.button-icon {
+ height: 16px;
+ width: 16px;
+ vertical-align: text-bottom;
+}
+svg.icon.button-icon-attr {
+ height: 10px;
+ width: 10px;
+ vertical-align: middle;
+}
+svg.icon.list-icon {
+ height: 12px;
+ width: 12px;
+ vertical-align: middle;
+}
+svg.icon.list-icon.on {
+ color: #466dd8;
+}
+svg.icon.list-icon.off {
+ color: #444;
+}
+svg.icon.detail-icon {
+ height: 16px;
+ width: 16px;
+ vertical-align: text-bottom;
+ cursor: default;
+}
+svg.icon.detail-icon.on {
+ color: #466dd8;
+}
+svg.icon.detail-icon.off {
+ color: #ccc;
+}
+svg.icon-ion-arrow-up {
+ -webkit-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+svg use {
+ pointer-events: none;
+}
+
+/******************************************************************
+
+Metabox Tabs
+
+******************************************************************/
+#side-sortables .tab-content {
+ padding: 0;
+}
+
+.llms-mb-container .tab-content {
+ display: none;
+ background-color: #FFF;
+ padding: 0 20px;
+}
+.llms-mb-container .tab-content ul:not(.select2-selection__rendered) {
+ margin: 0 0 15px 0;
+}
+.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li {
+ padding: 20px 0;
+ margin: 0;
+}
+.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li.select:not([class*=d-]) {
+ width: 100%;
+}
+.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li:last-child {
+ border: 0;
+ padding-bottom: 0;
+}
+.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li.top {
+ border-bottom: 0;
+ padding-bottom: 0;
+}
+.llms-mb-container .tab-content .full-width {
+ width: 100%;
+}
+.llms-mb-container .tab-content #wp-content-editor-tools {
+ background: none;
+}
+
+.llms-mb-container .tab-content.llms-active {
+ display: inherit;
+}
+
+.llms-mb-container .tab-content .no-border {
+ border-bottom: 0px;
+}
+
+/******************************************************************
+
+Styles for topModal modal
+
+******************************************************************/
+/**
+ * Base modal styles
+ */
+.topModal {
+ display: none;
+ position: relative;
+ border: 4px solid #808080;
+ background: #fff;
+ z-index: 1000001;
+ padding: 2px;
+ max-width: 500px;
+ margin: 34px auto 0;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ background-color: #ffffff;
+ border-radius: 2px;
+ border: 1px solid #dddddd;
+}
+
+.topModalClose {
+ float: right;
+ cursor: pointer;
+ margin-right: 10px;
+ margin-top: 10px;
+}
+
+.topModalContainer {
+ display: none;
+ overflow: auto;
+ overflow-y: hidden;
+ position: fixed;
+ top: 0 !important;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ -webkit-overflow-scrolling: touch;
+ width: auto !important;
+ margin-left: 0 !important;
+ background-color: transparent !important;
+ z-index: 100002 !important;
+}
+
+.topModalBackground {
+ display: none;
+ background: #000;
+ position: fixed;
+ height: 100%;
+ width: 100%;
+ top: 0 !important;
+ left: 0;
+ margin-left: 0 !important;
+ z-index: 100002 !important;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ overflow: auto;
+ overflow-y: hidden;
+}
+
+body.modal-open {
+ overflow: hidden;
+}
+
+.llms-modal-header {
+ border-top-right-radius: 1px;
+ border-top-left-radius: 1px;
+ background: #466dd8;
+ color: #eeeeee;
+ padding: 10px 15px;
+ font-size: 18px;
+}
+
+#llms-icon-modal-close {
+ width: 16px;
+ height: 16px;
+ fill: #fefefe;
+}
+
+.llms-modal-content {
+ padding: 20px;
+}
+.llms-modal-content h3 {
+ margin-top: 0;
+}
+
+/**
+ * Custom Modal Styles for LifterLMS
+ */
+.llms-modal-form h1 {
+ margin-top: 0;
+}
+.llms-modal-form input[type=text] {
+ width: 100%;
+}
+.llms-modal-form textarea,
+.llms-modal-form input[type=text],
+.llms-modal-form input[type=password],
+.llms-modal-form input[type=file],
+.llms-modal-form input[type=datetime],
+.llms-modal-form input[type=datetime-local],
+.llms-modal-form input[type=date],
+.llms-modal-form input[type=month],
+.llms-modal-form input[type=time],
+.llms-modal-form input[type=week],
+.llms-modal-form input[type=number],
+.llms-modal-form input[type=email],
+.llms-modal-form input[type=url],
+.llms-modal-form input[type=search],
+.llms-modal-form input[type=tel],
+.llms-modal-form input[type=color] {
+ padding: 0 0.4em 0 0.4em;
+ margin-bottom: 2em;
+ vertical-align: middle;
+ border-radius: 3px;
+ min-width: 50px;
+ max-width: 635px;
+ width: 100%;
+ min-height: 32px;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ margin: 0 0 24px 0;
+ outline: none;
+ -webkit-transition: border 0.3s ease-in-out 0s;
+ transition: border 0.3s ease-in-out 0s;
+}
+.llms-modal-form textarea:focus,
+.llms-modal-form input[type=text]:focus,
+.llms-modal-form input[type=password]:focus,
+.llms-modal-form input[type=file]:focus,
+.llms-modal-form input[type=datetime]:focus,
+.llms-modal-form input[type=datetime-local]:focus,
+.llms-modal-form input[type=date]:focus,
+.llms-modal-form input[type=month]:focus,
+.llms-modal-form input[type=time]:focus,
+.llms-modal-form input[type=week]:focus,
+.llms-modal-form input[type=number]:focus,
+.llms-modal-form input[type=email]:focus,
+.llms-modal-form input[type=url]:focus,
+.llms-modal-form input[type=search]:focus,
+.llms-modal-form input[type=tel]:focus,
+.llms-modal-form input[type=color]:focus {
+ background: #fefefe;
+ border: 1px solid #466dd8;
+}
+.llms-modal-form textarea {
+ padding: 0.4em !important;
+ height: 100px !important;
+ border-radius: 3px;
+ vertical-align: middle;
+ min-height: 32px;
+ outline: none;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.llms-modal-form textarea:focus {
+ background: #fefefe;
+ border: 1px solid #466dd8;
+}
+.llms-modal-form .chosen-container-single .chosen-single {
+ border-radius: 3px;
+ vertical-align: middle;
+ min-height: 32px;
+ border: 1px solid #ccc;
+ width: 100%;
+ background: #fefefe !important;
+ outline: none;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-box-shadow: 0 0 0 #fff;
+ box-shadow: 0 0 0 #fff;
+ line-height: 32px;
+ margin: 0 0 24px 0;
+}
+.llms-modal-form .chosen-container-single .chosen-single:focus {
+ background: #fefefe;
+ border: 1px solid #466dd8;
+}
+.llms-modal-form .chosen-container-single .chosen-single div b {
+ margin-top: 4px;
+}
+.llms-modal-form .chosen-search input[type=text] {
+ border: 1px solid #ccc;
+}
+.llms-modal-form .chosen-search input[type=text]:focus {
+ background-color: #fefefe;
+ border: 1px solid #466dd8;
+}
+.llms-modal-form .chosen-container-single .chosen-drop {
+ margin-top: -28px;
+}
+.llms-modal-form .llms-button-primary, .llms-modal-form .llms-button-secondary {
+ padding: 10px 10px;
+ border-radius: 0;
+ -webkit-transition: 0.5s;
+ transition: 0.5s;
+ -webkit-box-shadow: 0 1px 1px #ccc;
+ box-shadow: 0 1px 1px #ccc;
+}
+.llms-modal-form .llms-button-primary.full, .llms-modal-form .llms-button-secondary.full {
+ width: 100%;
+}
+
+.modal-open .select2-dropdown {
+ z-index: 1000005;
+}
+
+.button.llms-merge-code-button {
+ vertical-align: middle;
+}
+.button.llms-merge-code-button svg {
+ margin-right: 2px;
+ position: relative;
+ top: 4px;
+ width: 16px;
+}
+.button.llms-merge-code-button svg g {
+ fill: currentColor;
+}
+
+.llms-mb-container .llms-merge-code-wrapper {
+ float: right;
+ top: -5px;
+}
+
+.llms-merge-code-wrapper {
+ display: inline;
+ position: relative;
+}
+
+.llms-merge-codes {
+ background: #f7f7f7;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ -webkit-box-shadow: 0 1px 0 #ccc;
+ box-shadow: 0 1px 0 #ccc;
+ color: #555;
+ display: none;
+ left: 1px;
+ overflow: hidden;
+ position: absolute;
+ top: 30px;
+ width: 200px;
+}
+.llms-merge-codes ul {
+ margin: 0;
+ padding: 0;
+}
+.llms-merge-codes li {
+ cursor: pointer;
+ margin: 0;
+ padding: 4px 8px !important;
+ border-bottom: 1px solid #ccc;
+}
+.llms-merge-codes li:hover {
+ color: #23282d;
+ background: #fefefe;
+}
+.llms-merge-codes.active {
+ display: block;
+ z-index: 777;
+}
+
+/******************************************************************
+
+Base Mobile
+
+******************************************************************/
+.llms-nav-tab,
+.llms-nav-tab-filters {
+ display: block;
+ width: 100%;
+}
+
+form.llms-nav-tab-filters.full-width {
+ width: 100%;
+}
+form.llms-nav-tab-filters.full-width label {
+ display: inline-block;
+ width: 10%;
+ text-align: left;
+}
+form.llms-nav-tab-filters.full-width .select2-container {
+ width: 85% !important;
+}
+
+.llms-nav-tab-settings {
+ display: block;
+ width: 100%;
+}
+
+#llms-form-wrapper .llms-select {
+ width: 100%;
+ margin-bottom: 20px;
+}
+#llms-form-wrapper .llms-checkbox {
+ display: inline-block;
+ width: 100%;
+ text-align: left;
+}
+#llms-form-wrapper .llms-filter-options {
+ width: 100%;
+}
+#llms-form-wrapper .llms-date-select {
+ width: 100%;
+ display: inline-block;
+ margin-bottom: 20px;
+}
+#llms-form-wrapper .llms-date-select input[type=text] {
+ width: 100%;
+}
+ul.tabs li {
+ display: block;
+}
+
+@media only screen and (min-width: 481px) {
+ /******************************************************************
+
+ Larger Phones
+
+ ******************************************************************/
+ #llms-form-wrapper .llms-checkbox {
+ width: 33%;
+ }
+}
+@media only screen and (min-width: 768px) {
+ /******************************************************************
+
+ Tablets and small computers
+
+ ******************************************************************/
+ ul.tabs li {
+ display: inline-block;
+ }
+ .llms-nav-tab {
+ display: inline-block;
+ width: 33%;
+ }
+ .llms-nav-tab-settings {
+ display: inline-block;
+ width: 25%;
+ }
+ #llms-form-wrapper .llms-select {
+ width: 50%;
+ max-width: 500px;
+ }
+ #llms-form-wrapper .llms-filter-options {
+ width: 50%;
+ max-width: 500px;
+ }
+ #llms-form-wrapper .llms-date-select {
+ width: 47.5%;
+ }
+ #llms-form-wrapper .llms-date-select:first-child {
+ margin-right: 5%;
+ }
+ .llms-widget input[type=text],
+.llms-widget input[type=password],
+.llms-widget input[type=datetime],
+.llms-widget input[type=datetime-local],
+.llms-widget input[type=date],
+.llms-widget input[type=month],
+.llms-widget input[type=time],
+.llms-widget input[type=week],
+.llms-widget input[type=number],
+.llms-widget input[type=email],
+.llms-widget input[type=url],
+.llms-widget input[type=search],
+.llms-widget input[type=tel],
+.llms-widget input[type=color],
+.llms-widget select,
+.llms-widget textarea {
+ width: 50%;
+ }
+ .llms-widget input[type=text].medium,
+.llms-widget input[type=password].medium,
+.llms-widget input[type=datetime].medium,
+.llms-widget input[type=datetime-local].medium,
+.llms-widget input[type=date].medium,
+.llms-widget input[type=month].medium,
+.llms-widget input[type=time].medium,
+.llms-widget input[type=week].medium,
+.llms-widget input[type=number].medium,
+.llms-widget input[type=email].medium,
+.llms-widget input[type=url].medium,
+.llms-widget input[type=search].medium,
+.llms-widget input[type=tel].medium,
+.llms-widget input[type=color].medium,
+.llms-widget select.medium,
+.llms-widget textarea.medium {
+ width: 30%;
+ }
+ .llms-widget input[type=text].small,
+.llms-widget input[type=password].small,
+.llms-widget input[type=datetime].small,
+.llms-widget input[type=datetime-local].small,
+.llms-widget input[type=date].small,
+.llms-widget input[type=month].small,
+.llms-widget input[type=time].small,
+.llms-widget input[type=week].small,
+.llms-widget input[type=number].small,
+.llms-widget input[type=email].small,
+.llms-widget input[type=url].small,
+.llms-widget input[type=search].small,
+.llms-widget input[type=tel].small,
+.llms-widget input[type=color].small,
+.llms-widget select.small,
+.llms-widget textarea.small {
+ width: 20%;
+ }
+ .llms-widget input[type=text].tiny,
+.llms-widget input[type=password].tiny,
+.llms-widget input[type=datetime].tiny,
+.llms-widget input[type=datetime-local].tiny,
+.llms-widget input[type=date].tiny,
+.llms-widget input[type=month].tiny,
+.llms-widget input[type=time].tiny,
+.llms-widget input[type=week].tiny,
+.llms-widget input[type=number].tiny,
+.llms-widget input[type=email].tiny,
+.llms-widget input[type=url].tiny,
+.llms-widget input[type=search].tiny,
+.llms-widget input[type=tel].tiny,
+.llms-widget input[type=color].tiny,
+.llms-widget select.tiny,
+.llms-widget textarea.tiny {
+ width: 10%;
+ }
+}
+@media only screen and (min-width: 1030px) {
+ /******************************************************************
+
+ Desktop Stylesheet
+
+ ******************************************************************/
+ .llms-nav-tab {
+ display: inline-block;
+ width: 33.333%;
+ }
+ .llms-nav-tab-settings {
+ display: inline-block;
+ width: 25%;
+ }
+ #llms-form-wrapper .llms-select {
+ display: inline-block;
+ width: 47.5%;
+ }
+ #llms-form-wrapper .llms-select:first-child {
+ margin-right: 5%;
+ }
+ #llms-form-wrapper .llms-filter-options {
+ display: inline-block;
+ width: 47.5%;
+ }
+ #llms-form-wrapper .llms-filter-options.date-filter {
+ margin-right: 5%;
+ }
+ #llms-form-wrapper .llms-filter-options .llms-date-select {
+ margin-bottom: 0;
+ }
+ #llms-form-wrapper .llms-date-select {
+ width: 47.5%;
+ }
+ #llms-form-wrapper .llms-date-select:first-child {
+ margin-right: 5%;
+ }
+ .llms-widget-row:before, .llms-widget-row:after {
+ content: " ";
+ display: table;
+ }
+ .llms-widget-row:after {
+ clear: both;
+ }
+ .llms-widget-row .llms-widget-1-5 {
+ vertical-align: top;
+ width: 20%;
+ float: left;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0 5px;
+ }
+ .llms-widget-row .llms-widget-1-4 {
+ vertical-align: top;
+ width: 25%;
+ float: left;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0 5px;
+ }
+ .llms-widget-row .llms-widget-1-3 {
+ width: 33.3%;
+ float: left;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0 5px;
+ }
+ .llms-widget-row .llms-widget-1-2 {
+ width: 50%;
+ float: left;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0 5px;
+ vertical-align: top;
+ }
+}
+@media only screen and (min-width: 1240px) {
+ /******************************************************************
+
+ large Monitor Stylesheet
+
+ ******************************************************************/
+ .llms-nav-tab-filters,
+.llms-nav-tab-settings {
+ float: left;
+ width: 12.5%;
+ }
+}
+.wrap.lifterlms {
+ margin-top: 0;
+}
+
+.llms-header {
+ background-color: #FFF;
+ margin: 0 0 0 -20px;
+ padding: 20px 10px;
+ position: relative;
+ z-index: 1;
+}
+.llms-header .llms-inside-wrap {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ padding: 0 10px;
+}
+.llms-header .lifterlms-logo {
+ -webkit-box-flex: 0;
+ -ms-flex: 0 0 190px;
+ flex: 0 0 190px;
+ max-height: 52px;
+ margin-right: 10px;
+}
+.llms-header .llms-meta {
+ -ms-flex-item-align: center;
+ align-self: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ font-size: 16px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ line-height: 1.5;
+}
+.llms-header .llms-meta .llms-version {
+ background-color: #1d2327;
+ color: #FFF;
+ border-radius: 999px;
+ font-size: 13px;
+ font-weight: 700;
+ padding: 6px 12px;
+}
+.llms-header .llms-meta a {
+ display: inline-block;
+}
+.llms-header .llms-meta .llms-license {
+ border-right: 1px solid #CCC;
+ font-weight: 700;
+ margin-right: 12px;
+ padding-right: 12px;
+}
+.llms-header .llms-meta .llms-license a {
+ text-decoration: none;
+}
+.llms-header .llms-meta .llms-license a:before {
+ content: "\f534";
+ display: inline-block;
+ font: 400 16px/1 dashicons;
+ left: 0;
+ padding-right: 3px;
+ position: relative;
+ text-decoration: none;
+ vertical-align: text-bottom;
+}
+.llms-header .llms-meta .llms-license a.llms-license-none {
+ color: #888;
+}
+.llms-header .llms-meta .llms-license a.llms-license-none:before {
+ content: "\f335";
+}
+.llms-header .llms-meta .llms-license a.llms-license-active {
+ color: #008a20;
+}
+.llms-header .llms-meta .llms-license a.llms-license-active:before {
+ content: "\f112";
+}
+.llms-header .llms-meta .llms-support {
+ font-weight: 700;
+}
+.llms-header .llms-meta .llms-support a {
+ color: #1d2327;
+ text-decoration: none;
+}
+
+.llms-subheader {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ margin-left: -20px;
+ padding: 10px 20px;
+ width: 100%;
+ z-index: 1;
+}
+.llms-subheader h1 {
+ font-weight: 700;
+ padding: 0;
+}
+.llms-subheader h1 a {
+ color: inherit;
+ text-decoration: none;
+}
+
+#post_course_difficulty {
+ min-width: 200px;
+}
+
+#_video-embed, #_audio-embed {
+ width: 100%;
+}
+
+hr {
+ background-color: #CCC;
+ border: none;
+ height: 1px;
+ margin: 30px 0;
+ padding: 0;
+}
+
+.llms_certificate_default_image, .llms_certificate_image {
+ width: 300px;
+}
+
+.llms_achievement_default_image, .llms_achievement_image {
+ width: 120px;
+}
+
+div[id^=lifterlms-] .inside {
+ overflow: visible;
+}
+
+.notice.llms-admin-notice {
+ background-color: #FFF;
+ border: 1px solid #ccd0d4;
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ padding: 0 !important;
+ position: relative;
+}
+.notice.llms-admin-notice .notice-dismiss {
+ text-decoration: none;
+}
+.notice.llms-admin-notice.notice-warning {
+ border-left: 4px solid #F8954F;
+}
+.notice.llms-admin-notice.notice-warning .llms-admin-notice-icon {
+ background-color: #FEF4ED;
+}
+.notice.llms-admin-notice.notice-info {
+ border-left: 4px solid #466DD8;
+}
+.notice.llms-admin-notice.notice-info h3 {
+ color: #466DD8;
+}
+.notice.llms-admin-notice.notice-info .llms-admin-notice-icon {
+ background-color: #EDF0FB;
+}
+.notice.llms-admin-notice.notice-success {
+ border-left: 4px solid #18A957;
+}
+.notice.llms-admin-notice.notice-success h3 {
+ color: #18A957;
+}
+.notice.llms-admin-notice.notice-success .llms-admin-notice-icon {
+ background-color: #E8F6EE;
+}
+.notice.llms-admin-notice.notice-error {
+ border-left: 4px solid #DF1642;
+}
+.notice.llms-admin-notice.notice-error h3 {
+ color: #9C0F2E;
+}
+.notice.llms-admin-notice.notice-error .llms-admin-notice-icon {
+ background-color: #FCE8EC;
+}
+.notice.llms-admin-notice .llms-admin-notice-icon {
+ background-image: url(../../assets/images/lifterlms-icon-color.png);
+ background-position: center center;
+ background-repeat: no-repeat;
+ background-size: 30px;
+ min-width: 70px;
+}
+.notice.llms-admin-notice .llms-admin-notice-content {
+ color: #111;
+ padding: 20px;
+}
+.notice.llms-admin-notice h3 {
+ font-size: 18px;
+ font-weight: 700;
+ line-height: 25px;
+ margin: 0 0 15px 0;
+}
+.notice.llms-admin-notice button,
+.notice.llms-admin-notice .llms-button-primary {
+ display: inline-block;
+}
+.notice.llms-admin-notice p {
+ font-size: 14px;
+ line-height: 22px;
+ margin: 0 0 15px 0;
+ max-width: 65em;
+ padding: 0;
+}
+.notice.llms-admin-notice p:last-of-type {
+ margin-bottom: 0;
+}
+
+.llms-button-action.small .dashicons,
+.llms-button-danger.small .dashicons,
+.llms-button-primary.small .dashicons,
+.llms-button-secondary.small .dashicons {
+ font-size: 13px;
+ height: 13px;
+ width: 13px;
+}
+.llms-button-action:hover,
+.llms-button-danger:hover,
+.llms-button-primary:hover,
+.llms-button-secondary:hover {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+a.llms-view-as {
+ line-height: 2;
+ margin-right: 8px;
+}
+
+.llms-image-field-preview {
+ max-height: 80px;
+ vertical-align: middle;
+ width: auto;
+}
+
+.llms-image-field-remove.hidden {
+ display: none;
+}
+
+.llms-log-viewer {
+ background: #fff;
+ border: 1px solid #e5e5e5;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
+ margin: 20px 0;
+ padding: 25px;
+}
+.llms-log-viewer pre {
+ font-family: monospace;
+ margin: 0;
+ padding: 0;
+ white-space: pre-wrap;
+}
+
+.llms-status--tools .llms-table {
+ background: #fff;
+ border: 1px solid #e5e5e5;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
+}
+.llms-status--tools .llms-table td, .llms-status--tools .llms-table th {
+ padding: 10px;
+ vertical-align: top;
+}
+.llms-status--tools .llms-table th {
+ width: 28%;
+}
+.llms-status--tools .llms-table p {
+ margin: 0 0 10px;
+}
+
+.llms-error {
+ color: #bb231c;
+ font-style: italic;
+}
+
+.llms-rating-stars {
+ color: #ffb900;
+ text-decoration: none;
+}
+
+@media screen and (max-width: 782px) {
+ .llms-header {
+ top: 46px;
+ }
+ .llms-header .llms-inside-wrap {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ gap: 20px;
+ }
+ .llms-header .llms-inside-wrap .lifterlms-logo {
+ -ms-flex-item-align: center;
+ align-self: center;
+ -webkit-box-flex: inherit;
+ -ms-flex: inherit;
+ flex: inherit;
+ max-height: initial;
+ max-width: 200px;
+ }
+ .llms-header .llms-inside-wrap .llms-meta {
+ -webkit-column-gap: 10px;
+ -moz-column-gap: 10px;
+ column-gap: 10px;
+ }
+}
+.llms-table-wrap {
+ position: relative;
+}
+
+.llms-table-header {
+ padding: 0;
+}
+.llms-table-header:before, .llms-table-header:after {
+ content: " ";
+ display: table;
+}
+.llms-table-header:after {
+ clear: both;
+}
+.llms-table-header h2 {
+ font-size: 20px;
+ padding: 0;
+ display: inline-block;
+ line-height: 1.5;
+ margin: 0 0 20px 0;
+ vertical-align: middle;
+}
+.llms-table-header .llms-table-search,
+.llms-table-header .llms-table-filters {
+ float: right;
+ padding-left: 10px;
+}
+.llms-table-header .llms-table-search input {
+ margin: 0;
+ padding: 0 8px;
+}
+
+.llms-table {
+ border: 1px solid #c3c4c7;
+ border-collapse: collapse;
+ width: 100%;
+}
+.llms-table a:not(.small) {
+ color: #466dd8;
+}
+.llms-table a:not(.small):hover {
+ color: #2b55cb;
+}
+.llms-table td, .llms-table th {
+ border-bottom: 1px solid #c3c4c7;
+ padding: 10px 12px;
+ text-align: center;
+}
+.llms-table td.expandable.closed, .llms-table th.expandable.closed {
+ display: none;
+}
+.llms-table td .llms-button-primary,
+.llms-table td .llms-button-secondary,
+.llms-table td .llms-button-action,
+.llms-table td .llms-button-danger, .llms-table th .llms-button-primary,
+.llms-table th .llms-button-secondary,
+.llms-table th .llms-button-action,
+.llms-table th .llms-button-danger {
+ display: inline-block;
+}
+.llms-table tr.llms-quiz-pending td {
+ font-weight: 700;
+}
+.llms-table thead th,
+.llms-table tfoot th {
+ background-color: #FFF;
+ font-weight: 700;
+}
+.llms-table thead th a.llms-sortable,
+.llms-table tfoot th a.llms-sortable {
+ padding-right: 16px;
+ position: relative;
+ text-decoration: none;
+ width: 100%;
+}
+.llms-table thead th a.llms-sortable.active[data-order=DESC] .asc,
+.llms-table tfoot th a.llms-sortable.active[data-order=DESC] .asc {
+ opacity: 1;
+}
+.llms-table thead th a.llms-sortable.active[data-order=ASC] .desc,
+.llms-table tfoot th a.llms-sortable.active[data-order=ASC] .desc {
+ opacity: 1;
+}
+.llms-table thead th a.llms-sortable:hover[data-order=DESC] .asc,
+.llms-table tfoot th a.llms-sortable:hover[data-order=DESC] .asc {
+ opacity: 0;
+}
+.llms-table thead th a.llms-sortable:hover[data-order=DESC] .desc,
+.llms-table tfoot th a.llms-sortable:hover[data-order=DESC] .desc {
+ opacity: 1;
+}
+.llms-table thead th a.llms-sortable:hover[data-order=ASC] .asc,
+.llms-table tfoot th a.llms-sortable:hover[data-order=ASC] .asc {
+ opacity: 1;
+}
+.llms-table thead th a.llms-sortable:hover[data-order=ASC] .desc,
+.llms-table tfoot th a.llms-sortable:hover[data-order=ASC] .desc {
+ opacity: 0;
+}
+.llms-table thead th a.llms-sortable .dashicons,
+.llms-table tfoot th a.llms-sortable .dashicons {
+ color: #444;
+ font-size: 16px;
+ height: 16px;
+ opacity: 0;
+ position: absolute;
+ width: 16px;
+}
+.llms-table tfoot th {
+ border-bottom: none;
+}
+.llms-table tfoot th .llms-table-export {
+ float: left;
+}
+.llms-table tfoot th .llms-table-export .llms-table-progress {
+ background: #efefef;
+ display: none;
+ margin-left: 8px;
+ vertical-align: middle;
+ width: 100px;
+}
+.llms-table tfoot th .llms-clear-resumable-attempts {
+ float: left;
+}
+.llms-table tfoot th .llms-table-pagination {
+ float: right;
+}
+.llms-table.zebra tbody tr:nth-child(even) th, .llms-table.zebra tbody tr:nth-child(even) td {
+ background-color: #fff;
+}
+.llms-table.zebra tbody tr:nth-child(odd) th, .llms-table.zebra tbody tr:nth-child(odd) td {
+ background-color: #f6f7f7;
+}
+.llms-table.text-left td, .llms-table.text-left th {
+ text-align: left;
+}
+.llms-table.size-large td, .llms-table.size-large th {
+ font-size: 14px;
+ padding: 10px 12px;
+}
+.llms-table .llms-drag-handle {
+ color: #777;
+ cursor: pointer;
+ -webkit-transition: color 0.4s ease;
+ transition: color 0.4s ease;
+}
+.llms-table .llms-action-icon {
+ color: #777;
+ text-decoration: none;
+}
+.llms-table .llms-action-icon .tooltip {
+ cursor: pointer;
+}
+.llms-table .llms-action-icon:hover {
+ color: #466dd8;
+}
+.llms-table .llms-action-icon.danger:hover {
+ color: #bb231c;
+}
+.llms-table .llms-table-page-count {
+ font-size: 12px;
+ padding: 0 5px;
+}
+
+.llms-table-progress {
+ text-align: center;
+}
+.llms-table-progress .llms-table-progress-bar {
+ background: #eee;
+ border-radius: 10px;
+ height: 16px;
+ overflow: hidden;
+ position: relative;
+}
+.llms-table-progress .llms-table-progress-bar .llms-table-progress-inner {
+ background: #466dd8;
+ height: 100%;
+ -webkit-transition: width 0.2s ease;
+ transition: width 0.2s ease;
+}
+.llms-table-progress .llms-table-progress-text {
+ color: #466dd8;
+ font-size: 12px;
+ font-weight: 700;
+ line-height: 16px;
+}
+
+.llms-table.llms-gateway-table .status .fa,
+.llms-table.llms-integrations-table .status .fa {
+ color: #466dd8;
+ font-size: 22px;
+}
+.llms-table.llms-gateway-table .sort,
+.llms-table.llms-integrations-table .sort {
+ cursor: move;
+ text-align: center;
+ width: 10px;
+}
+
+.llms-gb-table-notifications th, .llms-gb-table-notifications td {
+ text-align: left;
+}
+
+.llms-order-note .llms-order-note-content {
+ background: #efefef;
+ margin-bottom: 10px;
+ padding: 10px;
+ position: relative;
+}
+.llms-order-note .llms-order-note-content:after {
+ border-style: solid;
+ border-color: #efefef transparent;
+ border-width: 10px 10px 0 0;
+ bottom: -10px;
+ content: "";
+ display: block;
+ height: 0;
+ left: 20px;
+ position: absolute;
+ width: 0;
+}
+.llms-order-note .llms-order-note-content p {
+ font-size: 13px;
+ margin: 0;
+ line-height: 1.5;
+}
+.llms-order-note .llms-order-note-meta {
+ color: #999;
+ font-size: 11px;
+ margin-left: 10px;
+}
+
+.llms-mb-list label {
+ font-size: 15px;
+ font-weight: 700;
+ line-height: 1.5;
+ display: block;
+ width: 100%;
+}
+.llms-mb-list .description {
+ margin-bottom: 8px;
+}
+.llms-mb-list .input-full {
+ width: 100%;
+}
+
+#poststuff .llms-metabox h2, #poststuff .llms-metabox h3, #poststuff .llms-metabox h4, #poststuff .llms-metabox h6 {
+ margin: 0;
+ padding: 0;
+}
+#poststuff .llms-metabox h2 {
+ font-size: 18px;
+ font-weight: 700;
+}
+#poststuff .llms-metabox h3 {
+ color: #1e1e1e;
+ font-size: 16px;
+}
+#poststuff .llms-metabox h4 {
+ color: #1e1e1e;
+ font-size: 16px;
+ line-height: 1.5;
+ padding: 0;
+ margin: 0;
+}
+#poststuff .llms-metabox h4:not(.llms-collapsible-body h4:first-of-type) {
+ margin-top: 20px;
+}
+#poststuff .llms-metabox .llms-transaction-test-mode {
+ background: #ffffd7;
+ font-style: italic;
+ left: 0;
+ padding: 2px;
+ position: absolute;
+ right: 0;
+ top: 0;
+ text-align: center;
+}
+#poststuff .llms-metabox a.llms-editable,
+#poststuff .llms-metabox .llms-metabox-icon,
+#poststuff .llms-metabox button.llms-editable {
+ color: #999;
+ text-decoration: none;
+}
+#poststuff .llms-metabox a.llms-editable:hover,
+#poststuff .llms-metabox .llms-metabox-icon:hover,
+#poststuff .llms-metabox button.llms-editable:hover {
+ color: #466dd8;
+}
+#poststuff .llms-metabox button.llms-editable {
+ border: none;
+ background: none;
+ cursor: pointer;
+ padding: 0;
+ vertical-align: top;
+}
+#poststuff .llms-metabox h4 button.llms-editable {
+ float: right;
+}
+#poststuff .llms-metabox .llms-table {
+ margin-top: 10px;
+}
+#poststuff .llms-metabox button.llms-button-primary {
+ border-radius: 8px;
+ font-size: 16px;
+ font-weight: 700;
+ height: auto;
+}
+
+.llms-metabox-section {
+ background: #fff;
+ margin-top: 25px;
+ position: relative;
+ /* Fixes to tighten the space between tinymce editor and label */
+}
+.llms-metabox-section.no-top-margin {
+ margin-top: 0;
+}
+.llms-metabox-section .llms-metabox-field {
+ margin: 5px 0;
+ position: relative;
+}
+.llms-metabox-section .llms-metabox-field label {
+ color: #1e1e1e;
+ display: block;
+ margin-bottom: 5px;
+ font-size: 14px;
+ font-weight: 400;
+}
+.llms-metabox-section .llms-metabox-field select,
+.llms-metabox-section .llms-metabox-field textarea,
+.llms-metabox-section .llms-metabox-field input[type=text],
+.llms-metabox-section .llms-metabox-field input[type=number] {
+ width: 100%;
+}
+.llms-metabox-section .llms-metabox-field input.md-text {
+ width: 105px;
+}
+.llms-metabox-section .llms-metabox-field input.sm-text {
+ width: 45px;
+}
+.llms-metabox-section .llms-metabox-field .llms-datetime-field .llms-date-input {
+ width: 95px;
+}
+.llms-metabox-section .llms-metabox-field .llms-datetime-field .llms-time-input {
+ width: 45px;
+}
+.llms-metabox-section .llms-metabox-field .llms-datetime-field em {
+ font-style: normal;
+ padding: 0 3px;
+}
+.llms-metabox-section .llms-metabox-field .select2-container--default .select2-search--inline .select2-search__field {
+ min-height: auto;
+}
+.llms-metabox-section .llms-metabox-field .select2-container--default .select2-selection--multiple .select2-selection__rendered li {
+ margin-bottom: 0;
+}
+.llms-metabox-section .llms-metabox-field:has(.wp-editor-wrap) label {
+ position: relative;
+ z-index: 5;
+}
+.llms-metabox-section .llms-metabox-field .wp-editor-wrap {
+ margin-top: -30px;
+}
+
+.llms-collapsible {
+ background: #fff;
+ border: 1px solid #efefef;
+ border-radius: 6px;
+ -webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.08);
+ box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.08);
+ display: block;
+ margin: 0;
+ padding: 0;
+ position: relative;
+ text-align: center;
+ margin-top: 0;
+}
+.llms-collapsible:last-child {
+ margin-bottom: 0;
+}
+.llms-collapsible.opened .llms-collapsible-header .dashicons-arrow-down {
+ display: none;
+}
+.llms-collapsible.opened .llms-collapsible-header .dashicons-arrow-up {
+ display: inline;
+}
+.llms-collapsible .llms-collapsible-header {
+ padding: 15px;
+}
+.llms-collapsible .llms-collapsible-header [class^=d-] {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 5px;
+}
+.llms-collapsible .llms-collapsible-header .d-right {
+ -webkit-box-pack: end;
+ -ms-flex-pack: end;
+ justify-content: flex-end;
+ padding-right: 0;
+}
+.llms-collapsible .llms-collapsible-header h3 {
+ color: #1e1e1e;
+ display: inline;
+ margin: 0;
+ font-size: 16px;
+ font-weight: 700;
+}
+.llms-collapsible .llms-collapsible-header h3 small {
+ font-weight: 400;
+}
+.llms-collapsible .llms-collapsible-header .dashicons-arrow-up {
+ display: inline;
+}
+.llms-collapsible .llms-collapsible-header .dashicons-arrow-up {
+ display: none;
+}
+.llms-collapsible .llms-collapsible-header a {
+ text-decoration: none;
+}
+.llms-collapsible .llms-collapsible-header .dashicons {
+ color: #1e1e1e;
+ cursor: pointer;
+ -webkit-transition: color 0.4s ease;
+ transition: color 0.4s ease;
+}
+.llms-collapsible .llms-collapsible-header .dashicons:hover {
+ color: #466dd8;
+}
+.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning:hover, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-trash:hover, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-no:hover {
+ color: #bb231c;
+}
+.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning.medium-danger, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning.medium-danger:hover {
+ color: #c05621;
+}
+.llms-collapsible .llms-collapsible-body {
+ display: none;
+ padding: 15px;
+}
+
+._llms_instructors_data.repeater .llms-repeater-rows .llms-repeater-row:first-child .llms-repeater-remove {
+ display: none;
+}
+._llms_instructors_data.repeater .llms-mb-list {
+ padding: 0 5px !important;
+}
+
+.post-type-llms_order #post-body-content {
+ display: none;
+}
+
+#lifterlms-order-details .handlediv,
+#lifterlms-order-details .handlediv.button-link,
+#lifterlms-order-details .postbox-header {
+ display: none;
+}
+#lifterlms-order-details .inside {
+ padding: 20px;
+ margin-top: 0;
+}
+
+.llms-table tbody tr.llms-txn-failed td {
+ background-color: rgba(187, 35, 28, 0.5);
+ border-bottom-color: rgba(187, 35, 28, 0.5);
+}
+
+.llms-table tbody tr.llms-txn-refunded td {
+ background-color: rgba(255, 165, 0, 0.5);
+ border-bottom-color: rgba(255, 165, 0, 0.5);
+}
+
+.llms-txn-refund-form .llms-metabox-section,
+.llms-manual-txn-form .llms-metabox-section {
+ margin-top: 0;
+}
+.llms-txn-refund-form .llms-metabox-field,
+.llms-manual-txn-form .llms-metabox-field {
+ text-align: right;
+}
+.llms-txn-refund-form .llms-metabox-field input[type=number],
+.llms-manual-txn-form .llms-metabox-field input[type=number] {
+ max-width: 100px;
+}
+.llms-txn-refund-form .llms-metabox-field input[type=text],
+.llms-manual-txn-form .llms-metabox-field input[type=text] {
+ max-width: 340px;
+}
+
+.llms-manual-txn-form {
+ background-color: #eaeaea;
+}
+.llms-manual-txn-form .llms-metabox-section {
+ background-color: #eaeaea;
+}
+
+#llms-remaining-edit {
+ display: none;
+}
+
+.llms-remaining-edit--content label, .llms-remaining-edit--content span, .llms-remaining-edit--content textarea {
+ display: block;
+}
+.llms-remaining-edit--content label {
+ margin-bottom: 20px;
+}
+.llms-remaining-edit--content textarea, .llms-remaining-edit--content input {
+ width: 100%;
+}
+
+.submitbox .llms-mb-section,
+.llms-award-engagement-submitbox .llms-mb-list {
+ margin-bottom: 12px;
+}
+.submitbox .llms-mb-section:last-of-type,
+.llms-award-engagement-submitbox .llms-mb-list:last-of-type {
+ margin-bottom: 0;
+}
+.sync-action:before, .submitbox .llms-mb-section.student-info:before, .submitbox .llms-mb-section.post_author_override label:before,
+.llms-award-engagement-submitbox .llms-mb-list.student-info:before,
+.llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before {
+ font: normal 20px/1 dashicons;
+ speak: never;
+ display: inline-block;
+ margin-left: -1px;
+ padding-right: 3px;
+ vertical-align: top;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ position: relative;
+ top: -1px;
+ color: #8c8f94;
+}
+body:not(.admin-color-fresh) .sync-action:before, body:not(.admin-color-fresh) .submitbox .llms-mb-section.student-info:before, body:not(.admin-color-fresh) .submitbox .llms-mb-section.post_author_override label:before,
+body:not(.admin-color-fresh) .llms-award-engagement-submitbox .llms-mb-list.student-info:before,
+body:not(.admin-color-fresh) .llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before {
+ color: currentColor;
+}
+
+.submitbox .llms-mb-section.student-info:before, .submitbox .llms-mb-section.post_author_override label:before,
+.llms-award-engagement-submitbox .llms-mb-list.student-info:before,
+.llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before {
+ content: "\f110";
+}
+.sync-action:before {
+ content: "\f113";
+ color: white;
+}
+
+.submitbox .llms-mb-section.post_author_override label,
+.llms-award-engagement-submitbox .llms-mb-list.post_author_override label {
+ display: inline-block;
+ width: auto;
+}
+
+.llms-metabox > p:first-child {
+ margin-top: 0;
+}
+.llms-metabox #llms-new-access-plan-model {
+ display: none;
+}
+.llms-metabox .llms-access-plans {
+ color: #1e1e1e;
+}
+.llms-metabox .llms-access-plans > .llms-no-plans-msg {
+ display: none;
+}
+.llms-metabox .llms-access-plans > .llms-no-plans-msg .notice {
+ margin-right: 0;
+ margin-left: 0;
+}
+.llms-metabox .llms-access-plans > .llms-no-plans-msg:last-child {
+ display: block;
+}
+.llms-metabox .llms-access-plans.dragging {
+ background: #efefef;
+ -webkit-box-shadow: inset 0 0 0 1px #e5e5e5;
+ box-shadow: inset 0 0 0 1px #e5e5e5;
+}
+.llms-metabox .llms-access-plans .llms-spinning {
+ z-index: 1;
+}
+.llms-metabox .llms-access-plans .llms-invalid {
+ border-color: #bb231c;
+}
+.llms-metabox .llms-access-plans .llms-invalid .dashicons-warning {
+ display: inline;
+}
+.llms-metabox .llms-access-plans .llms-needs-attention .dashicons-warning.medium-danger {
+ display: inline;
+}
+.llms-metabox .llms-access-plans .dashicons-warning {
+ display: none;
+}
+.llms-metabox .llms-access-plan {
+ margin-bottom: 20px;
+ text-align: left;
+}
+.llms-metabox .llms-access-plan [data-tip]:before {
+ text-align: center;
+}
+.llms-metabox .llms-access-plan .llms-plan-link,
+.llms-metabox .llms-access-plan [data-controller] {
+ display: none;
+}
+.llms-metabox .llms-access-plan:hover .llms-plan-link, .llms-metabox .llms-access-plan.opened .llms-plan-link {
+ display: inline-block;
+}
+.llms-metabox .llms-access-plan .llms-metabox-field {
+ margin: 15px 0;
+}
+.llms-metabox .llms-access-plan .llms-required {
+ color: #bb231c;
+ margin-left: 3px;
+}
+.llms-metabox .llms-access-plan .notice {
+ margin-left: 0;
+}
+
+.llms-metabox-students .llms-table tr .name {
+ text-align: left;
+}
+.llms-metabox-students .llms-add-student:hover {
+ color: #4d8d3c;
+}
+.llms-metabox-students .llms-remove-student:hover {
+ color: #bb231c;
+}
+
+.llms-mb-container .tab-content ul:not(.select2-selection__rendered).llms-mb-repeater-fields > li.llms-mb-list {
+ border-bottom: none;
+ padding: 0 0 10px;
+}
+
+.llms-mb-list.repeater .llms-repeater-rows {
+ position: relative;
+ margin-top: 10px;
+ min-height: 10px;
+}
+.llms-mb-list.repeater .llms-repeater-rows.dragging {
+ background: #efefef;
+ -webkit-box-shadow: inset 0 0 0 1px #e5e5e5;
+ box-shadow: inset 0 0 0 1px #e5e5e5;
+}
+.llms-mb-list.repeater .llms-repeater-row {
+ background: #fff;
+}
+.llms-mb-list.repeater .llms-mb-repeater-footer {
+ text-align: right;
+ margin-top: 20px;
+}
+.llms-mb-list.repeater .tmce-active .wp-editor-area {
+ color: #32373c;
+}
+
+.llms-builder-launcher p {
+ margin-top: 0;
+}
+.llms-builder-launcher ol {
+ margin-top: -6px;
+}
+.llms-builder-launcher .llms-button-primary {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.wp-list-table .llms-status {
+ border-radius: 6px;
+ display: inline-block;
+ font-size: 13px;
+ font-weight: 700;
+ line-height: 1.4;
+ padding: 2px 6px;
+ vertical-align: middle;
+}
+.wp-list-table .llms-status.llms-size--large {
+ font-size: 105%;
+ padding: 6px 12px;
+}
+.wp-list-table .llms-status.llms-active, .wp-list-table .llms-status.llms-completed, .wp-list-table .llms-status.llms-pass, .wp-list-table .llms-status.llms-txn-succeeded {
+ color: #4d8d3c;
+ background-color: rgba(77, 141, 60, 0.15);
+}
+.wp-list-table .llms-status.llms-fail, .wp-list-table .llms-status.llms-failed, .wp-list-table .llms-status.llms-expired, .wp-list-table .llms-status.llms-cancelled, .wp-list-table .llms-status.llms-txn-failed {
+ color: #bb231c;
+ background-color: rgba(187, 35, 28, 0.15);
+}
+.wp-list-table .llms-status.llms-incomplete, .wp-list-table .llms-status.llms-on-hold, .wp-list-table .llms-status.llms-pending, .wp-list-table .llms-status.llms-pending-cancel, .wp-list-table .llms-status.llms-refunded, .wp-list-table .llms-status.llms-txn-pending, .wp-list-table .llms-status.llms-txn-refunded {
+ color: #c05621;
+ background-color: rgba(192, 86, 33, 0.15);
+}
+
+#lifterlms-order-transactions .llms-table tfoot th {
+ text-align: right;
+}
+
+.llms-post-table-post-filter {
+ display: inline-block;
+ margin-right: 6px;
+ max-width: 100%;
+ width: 220px;
+}
+
+.llms-nav-tab-wrapper {
+ background: #466dd8;
+ margin: 20px 0;
+}
+.llms-nav-tab-wrapper.llms-nav-secondary {
+ background: #e1e1e1;
+}
+.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item {
+ margin: 0;
+}
+.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover, .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {
+ background: #cdcdcd;
+}
+.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link {
+ color: #414141;
+ font-size: 15px;
+ padding: 8px 14px;
+}
+.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link .dashicons {
+ font-size: 15px;
+ height: 15px;
+ width: 15px;
+}
+.llms-nav-tab-wrapper.llms-nav-text {
+ background: inherit;
+}
+.llms-nav-tab-wrapper.llms-nav-text .llms-nav-items {
+ padding-left: 0;
+}
+.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item {
+ background: inherit;
+ color: #646970;
+}
+.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item:last-child:after {
+ display: none;
+}
+.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item:after {
+ content: "|";
+ display: inline-block;
+ margin: 0 8px 0 6px;
+}
+.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item .llms-nav-link:hover {
+ background: inherit;
+ color: #466dd8;
+}
+.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item.llms-active .llms-nav-link {
+ background: inherit;
+ color: #000;
+ font-weight: 600;
+ text-decoration: none;
+}
+.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item .llms-nav-link {
+ color: #466dd8;
+ display: inline-block;
+ letter-spacing: 0;
+ margin: 0;
+ padding: 0;
+ text-decoration: underline;
+ text-transform: none;
+}
+.llms-nav-tab-wrapper.llms-nav-style-tabs {
+ background-color: #1c3987;
+ margin: 0;
+ padding-top: 8px;
+}
+.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item {
+ margin: 0 3px;
+}
+.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item .llms-nav-link {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+}
+.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item.llms-active .llms-nav-link {
+ background-color: #FFF;
+ color: #466dd8;
+ font-weight: 700;
+}
+.llms-nav-tab-wrapper.llms-nav-style-filters {
+ background-color: #466dd8;
+ border-radius: 12px;
+ margin: 20px 0;
+ overflow: hidden;
+ padding: 0;
+}
+.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ padding-left: 0;
+}
+@media only screen and (min-width: 782px) {
+ .llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ }
+}
+.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items .llms-nav-item {
+ float: none;
+}
+.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items .llms-nav-item .llms-nav-link {
+ padding: 14px;
+}
+.llms-nav-tab-wrapper .llms-nav-items {
+ margin: 0;
+ padding-left: 10px;
+}
+.llms-nav-tab-wrapper .llms-nav-items:before, .llms-nav-tab-wrapper .llms-nav-items:after {
+ content: " ";
+ display: table;
+}
+.llms-nav-tab-wrapper .llms-nav-items:after {
+ clear: both;
+}
+.llms-nav-tab-wrapper .llms-nav-item {
+ margin: 0;
+}
+.llms-nav-tab-wrapper .llms-nav-item .llms-nav-link:hover {
+ background: #466dd8;
+}
+.llms-nav-tab-wrapper .llms-nav-item.llms-active .llms-nav-link {
+ background: #1c3987;
+}
+.llms-nav-tab-wrapper .llms-nav-item.llms-active .llms-nav-link {
+ font-weight: 400;
+}
+@media only screen and (min-width: 768px) {
+ .llms-nav-tab-wrapper .llms-nav-item {
+ float: left;
+ }
+ .llms-nav-tab-wrapper .llms-nav-item.llms-nav-item-right {
+ float: right;
+ }
+}
+.llms-nav-tab-wrapper .llms-nav-link {
+ color: #fff;
+ cursor: pointer;
+ display: block;
+ font-weight: 400;
+ font-size: 15px;
+ padding: 9px 18px;
+ text-align: center;
+ text-decoration: none;
+ -webkit-transition: all 0.3s ease;
+ transition: all 0.3s ease;
+}
+
+#llms-options-page-contents h2 {
+ color: #999;
+ font-weight: 500;
+ letter-spacing: 2px;
+ border-bottom: 1px solid #999;
+}
+
+.llms-reporting.wrap .llms-options-page-contents .llms-nav-tab-wrapper.llms-nav-secondary {
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
+ margin: 0;
+ padding: 0;
+}
+.llms-reporting.wrap .llms-stab-title {
+ color: #1c3987;
+ font-size: 36px;
+ font-weight: 300;
+ margin-bottom: 20px;
+}
+.llms-reporting.wrap td.id a {
+ text-decoration: none;
+}
+.llms-reporting.wrap th.id, .llms-reporting.wrap td.id,
+.llms-reporting.wrap th.name, .llms-reporting.wrap td.name,
+.llms-reporting.wrap th.registered, .llms-reporting.wrap td.registered,
+.llms-reporting.wrap th.last_seen, .llms-reporting.wrap td.last_seen,
+.llms-reporting.wrap th.overall_progress, .llms-reporting.wrap td.overall_progress,
+.llms-reporting.wrap th.title, .llms-reporting.wrap td.title,
+.llms-reporting.wrap th.course, .llms-reporting.wrap td.course,
+.llms-reporting.wrap th.lesson, .llms-reporting.wrap td.lesson {
+ text-align: left;
+}
+.llms-reporting.wrap td.section-title {
+ background: #eaeaea;
+ text-align: left;
+ font-weight: 700;
+ padding: 16px 4px;
+}
+.llms-reporting.wrap td.questions-table {
+ text-align: left;
+}
+.llms-reporting.wrap td.questions-table .correct,
+.llms-reporting.wrap td.questions-table .question,
+.llms-reporting.wrap td.questions-table .selected {
+ text-align: left;
+ max-width: 300px;
+}
+.llms-reporting.wrap td.questions-table .correct img,
+.llms-reporting.wrap td.questions-table .question img,
+.llms-reporting.wrap td.questions-table .selected img {
+ height: auto;
+ max-width: 64px;
+}
+.llms-reporting.wrap table.quiz-attempts {
+ margin-bottom: 40px;
+}
+.llms-reporting.wrap.tab--students .llms-options-page-contents #llms-award-certificate-wrapper .components-button.is-secondary {
+ background: #e1e1e1;
+ border-radius: 8px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ color: #414141;
+ font-size: 13px;
+ font-weight: 700;
+ height: auto;
+ padding: 8px 14px;
+}
+.llms-reporting.wrap.tab--enrollments .llms-nav-tab-wrapper.llms-nav-secondary, .llms-reporting.wrap.tab--sales .llms-nav-tab-wrapper.llms-nav-secondary {
+ margin-bottom: 0;
+}
+.llms-reporting.wrap.tab--enrollments .llms-options-page-contents, .llms-reporting.wrap.tab--sales .llms-options-page-contents {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ background: none;
+ margin-top: 20px;
+ padding: 0;
+}
+.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -ms-flex-item-align: center;
+ align-self: center;
+ color: #FFF;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ font-size: 13px;
+ gap: 5px;
+}
+.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form label, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form label {
+ font-weight: 700;
+}
+.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form input, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form input {
+ border: 0;
+ font-size: 13px;
+ margin: 0;
+ padding: 0 4px;
+ vertical-align: middle;
+ width: 110px;
+}
+.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form .select2-container input, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form .select2-container input {
+ width: 100% !important;
+}
+.llms-reporting.wrap.tab--enrollments .button.small, .llms-reporting.wrap.tab--sales .button.small {
+ height: 23px;
+ line-height: 23px;
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters, .llms-reporting.wrap.tab--sales .llms-analytics-filters {
+ display: none;
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-inside-wrap, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-inside-wrap {
+ background-color: #FFF;
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ margin: -20px 10px 20px 10px;
+ padding: 20px;
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-items, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-items {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ gap: 20px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ margin: 0;
+}
+@media only screen and (min-width: 782px) {
+ .llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-items, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-items {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ }
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item label, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item label {
+ display: block;
+ font-weight: 700;
+ margin: 0 0 5px 0;
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item .select2-selection__rendered, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item .select2-selection__rendered {
+ word-wrap: break-word;
+ text-overflow: inherit;
+ white-space: normal;
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters p, .llms-reporting.wrap.tab--sales .llms-analytics-filters p {
+ margin: 0;
+ text-align: right;
+}
+.llms-reporting.wrap.tab--enrollments .llms-analytics-filters p .llms-button-primary, .llms-reporting.wrap.tab--sales .llms-analytics-filters p .llms-button-primary {
+ display: inline-block;
+}
+.llms-reporting.wrap .llms-reporting-tab.llms-reporting-quiz .llms-table-filter-wrap {
+ width: 160px;
+}
+.llms-reporting.wrap .llms-table-header form {
+ display: inline;
+}
+.llms-reporting.wrap .llms-table-header .button {
+ margin-left: 5px;
+}
+
+.llms-charts-wrapper {
+ background-color: #FFF;
+ border: 1px solid #dedede;
+ border-radius: 12px;
+ -webkit-box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
+ box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
+ padding: 20px;
+}
+
+.llms-reporting-tab h1, .llms-reporting-tab h2, .llms-reporting-tab h3, .llms-reporting-tab h4, .llms-reporting-tab h5, .llms-reporting-tab h6 {
+ margin: 0;
+}
+.llms-reporting-tab h1 a, .llms-reporting-tab h2 a, .llms-reporting-tab h3 a, .llms-reporting-tab h4 a, .llms-reporting-tab h5 a, .llms-reporting-tab h6 a {
+ color: #466dd8;
+ text-decoration: none;
+}
+.llms-reporting-tab h1 a:hover, .llms-reporting-tab h2 a:hover, .llms-reporting-tab h3 a:hover, .llms-reporting-tab h4 a:hover, .llms-reporting-tab h5 a:hover, .llms-reporting-tab h6 a:hover {
+ color: #466dd8;
+}
+.llms-reporting-tab h2 {
+ font-size: 22px;
+ line-height: 1.5;
+}
+.llms-reporting-tab h2.llms-table-title {
+ margin-bottom: 20px;
+}
+.llms-reporting-tab h5 {
+ font-size: 15px;
+ line-height: 1.5;
+}
+.llms-reporting-tab .llms-reporting-body {
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ margin: 20px auto;
+ padding: 0;
+}
+.llms-reporting-tab .llms-reporting-body .llms-reporting-stab {
+ padding: 30px;
+}
+.llms-reporting-tab .llms-reporting-body .llms-reporting-stab .llms-table-header {
+ margin: 0;
+}
+.llms-reporting-tab .llms-reporting-body .llms-gb-tab {
+ padding: 30px;
+}
+.llms-reporting-tab .llms-reporting-body .llms-reporting-header {
+ padding: 30px;
+ margin: 0;
+}
+.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-img {
+ border-radius: 50%;
+ display: inline-block;
+ margin-right: 10px;
+ overflow: hidden;
+ vertical-align: middle;
+}
+.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-img img {
+ display: block;
+ max-height: 64px;
+ width: auto;
+}
+.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-info {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.llms-reporting-breadcrumbs {
+ margin: 0;
+ padding: 0;
+}
+.llms-reporting-breadcrumbs a {
+ color: #466dd8;
+ font-size: 15px;
+ text-decoration: none;
+}
+.llms-reporting-breadcrumbs a:hover {
+ color: #2b55cb;
+}
+.llms-reporting-breadcrumbs a:after {
+ content: " > ";
+ color: #646970;
+}
+.llms-reporting-breadcrumbs a:last-child {
+ color: #000;
+ font-weight: 700;
+}
+.llms-reporting-breadcrumbs a:last-child:after {
+ display: none;
+}
+
+#llms-students-table .name {
+ text-align: left;
+}
+
+.llms-reporting-tab-content {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+}
+.llms-reporting-tab-content > header:before, .llms-reporting-tab-content > header:after {
+ content: " ";
+ display: table;
+}
+.llms-reporting-tab-content > header:after {
+ clear: both;
+}
+.llms-reporting-tab-content h3 {
+ margin-bottom: 20px;
+}
+.llms-reporting-tab-content .llms-reporting-tab-filter {
+ float: right;
+ position: relative;
+ margin-right: 0.75em;
+ width: 180px;
+ top: -3px;
+}
+.llms-reporting-tab-content .llms-reporting-tab-main {
+ -webkit-box-flex: 3;
+ -ms-flex: 3;
+ flex: 3;
+ max-width: 75%;
+}
+.llms-reporting-tab-content .llms-reporting-tab-side {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ margin-left: 20px;
+}
+.llms-reporting-tab-content > .llms-table-wrap {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+}
+
+.llms-reporting-widgets:before, .llms-reporting-widgets:after {
+ content: " ";
+ display: table;
+}
+.llms-reporting-widgets:after {
+ clear: both;
+}
+
+.llms-reporting-widget {
+ border-top: 4px solid #466dd8;
+ background: #fafafa;
+ margin-bottom: 10px;
+ padding: 30px;
+}
+.llms-reporting-widget:before, .llms-reporting-widget:after {
+ content: " ";
+ display: table;
+}
+.llms-reporting-widget:after {
+ clear: both;
+}
+.llms-reporting-widget .fa {
+ color: #999;
+ float: left;
+ font-size: 32px;
+ margin-right: 10px;
+}
+.llms-reporting-widget strong {
+ color: #333;
+ font-size: 20px;
+ line-height: 1.2;
+}
+.llms-reporting-widget.llms-reporting-student-address strong {
+ line-height: 1.1;
+}
+.llms-reporting-widget sup,
+.llms-reporting-widget .llms-price-currency-symbol {
+ font-size: 75%;
+ position: relative;
+ top: -4px;
+ vertical-align: baseline;
+}
+.llms-reporting-widget small {
+ font-size: 13px;
+}
+.llms-reporting-widget small.compare {
+ margin-left: 5px;
+}
+.llms-reporting-widget small.compare.positive {
+ color: #4d8d3c;
+}
+.llms-reporting-widget small.compare.negative {
+ color: #bb231c;
+}
+
+.llms-reporting-event {
+ border-left: 4px solid #555;
+ background: #fafafa;
+ font-size: 11px;
+ line-height: 1.2;
+ margin-bottom: 0.75em;
+ padding: 10px;
+}
+.llms-reporting-event:before, .llms-reporting-event:after {
+ content: " ";
+ display: table;
+}
+.llms-reporting-event:after {
+ clear: both;
+}
+.llms-reporting-event.color--blue {
+ border-left-color: #466dd8;
+}
+.llms-reporting-event.color--green, .llms-reporting-event._enrollment_trigger, .llms-reporting-event._is_complete.yes {
+ border-left-color: #4d8d3c;
+}
+.llms-reporting-event.color--purple, .llms-reporting-event._status.enrolled {
+ border-left-color: #845ef7;
+}
+.llms-reporting-event.color--red, .llms-reporting-event._status.expired, .llms-reporting-event._status.cancelled {
+ border-left-color: #bb231c;
+}
+.llms-reporting-event.color--orange, .llms-reporting-event._achievement_earned, .llms-reporting-event._certificate_earned, .llms-reporting-event._email_sent {
+ border-left-color: #c05621;
+}
+.llms-reporting-event time {
+ color: #888;
+}
+.llms-reporting-event .llms-student-avatar {
+ margin-left: 10px;
+ float: right;
+}
+.llms-reporting-event a {
+ text-decoration: none;
+ color: inherit;
+}
+
+@media only screen and (min-width: 782px) {
+ .llms-reporting.wrap .llms-options-page-contents .llms-nav-tab-wrapper.llms-nav-secondary {
+ margin-left: 0;
+ margin-right: 0;
+ }
+}
+.llms-quiz-attempt-results {
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question {
+ background: #efefef;
+ border-radius: 6px;
+ margin: 0 0 15px;
+ position: relative;
+ list-style-type: none;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer {
+ color: inherit;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 10px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ padding: 15px 35px 15px 15px;
+ text-decoration: none;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct, .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect {
+ background: rgba(192, 86, 33, 0.2);
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon, .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon {
+ background-color: #c05621;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct {
+ background: rgba(77, 141, 60, 0.15);
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon {
+ background-color: #4d8d3c;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect {
+ background: rgba(187, 35, 28, 0.15);
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon {
+ background-color: #bb231c;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question pre {
+ overflow: auto;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title {
+ font-size: 22px;
+ margin: 0;
+ line-height: 1.4;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points {
+ line-height: 1.4;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip {
+ position: absolute;
+ right: -12px;
+ top: -2px;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon {
+ color: rgba(255, 255, 255, 0.65);
+ border-radius: 50%;
+ font-size: 30px;
+ height: 40px;
+ line-height: 40px;
+ text-align: center;
+ width: 40px;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main {
+ display: none;
+ padding: 0 15px 15px;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label {
+ font-weight: 700;
+ margin: 0 0 10px;
+ padding: 0;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers {
+ margin: 0;
+ padding: 0;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {
+ padding: 0;
+ margin: 0 0 0 30px;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child {
+ list-style-type: none;
+ margin-left: 0;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img {
+ height: auto;
+ max-width: 200px;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section {
+ border-top: 2px solid rgba(255, 255, 255, 0.5);
+ margin-top: 20px;
+ padding-top: 20px;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child {
+ border-top: none;
+ margin-top: 0;
+ padding-top: 0;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers, .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer, .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0;
+ padding: 5px;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed {
+ opacity: 0.5;
+}
+.llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title {
+ font-style: italic;
+ font-weight: normal;
+}
+
+.wrap.llms-reporting .llms-inside-wrap,
+.wrap.lifterlms-settings .llms-inside-wrap,
+.wrap.llms-status .llms-inside-wrap {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0 auto;
+}
+.wrap.llms-reporting .llms-inside-wrap .llms-nav-text,
+.wrap.lifterlms-settings .llms-inside-wrap .llms-nav-text,
+.wrap.llms-status .llms-inside-wrap .llms-nav-text {
+ margin: 0 auto;
+}
+.wrap.llms-reporting .llms-subheader .llms-save,
+.wrap.lifterlms-settings .llms-subheader .llms-save,
+.wrap.llms-status .llms-subheader .llms-save {
+ -webkit-box-flex: 1;
+ -ms-flex: auto;
+ flex: auto;
+ text-align: right;
+}
+.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary,
+.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary,
+.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary {
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
+ margin: 0 -20px 20px -10px;
+}
+.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items,
+.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items,
+.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {
+ padding-left: 0;
+}
+.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover,
+.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover,
+.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover {
+ background: #f0f0f1;
+ color: #222222;
+}
+.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,
+.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,
+.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {
+ background: #fafafa;
+ color: #466dd8;
+ border-top-color: #466dd8;
+}
+.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,
+.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,
+.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {
+ font-weight: 700;
+}
+.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link,
+.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link,
+.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link {
+ border-top: 2px solid transparent;
+ padding: 14px;
+}
+.wrap.llms-reporting .llms-setting-group,
+.wrap.lifterlms-settings .llms-setting-group,
+.wrap.llms-status .llms-setting-group {
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ margin: 20px auto;
+ padding: 20px;
+}
+.wrap.llms-reporting .llms-setting-group .llms-label,
+.wrap.lifterlms-settings .llms-setting-group .llms-label,
+.wrap.llms-status .llms-setting-group .llms-label {
+ border-bottom: 1px solid #efefef;
+ font-weight: 700;
+ font-size: 20px;
+ padding: 20px;
+ margin: -20px -20px 20px;
+}
+.wrap.llms-reporting .llms-setting-group .llms-label .llms-button-primary,
+.wrap.lifterlms-settings .llms-setting-group .llms-label .llms-button-primary,
+.wrap.llms-status .llms-setting-group .llms-label .llms-button-primary {
+ margin-left: 10px;
+}
+.wrap.llms-reporting .llms-setting-group .llms-help-tooltip .dashicons,
+.wrap.lifterlms-settings .llms-setting-group .llms-help-tooltip .dashicons,
+.wrap.llms-status .llms-setting-group .llms-help-tooltip .dashicons {
+ color: #444;
+ cursor: help;
+}
+.wrap.llms-reporting .llms-setting-group .form-table,
+.wrap.lifterlms-settings .llms-setting-group .form-table,
+.wrap.llms-status .llms-setting-group .form-table {
+ margin: 0;
+}
+.wrap.llms-reporting .llms-setting-group .form-table tr:first-child .llms-subtitle,
+.wrap.lifterlms-settings .llms-setting-group .form-table tr:first-child .llms-subtitle,
+.wrap.llms-status .llms-setting-group .form-table tr:first-child .llms-subtitle {
+ margin-top: 0;
+}
+.wrap.llms-reporting .llms-setting-group td[colspan="2"],
+.wrap.lifterlms-settings .llms-setting-group td[colspan="2"],
+.wrap.llms-status .llms-setting-group td[colspan="2"] {
+ padding-top: 0;
+ padding-left: 0;
+}
+.wrap.llms-reporting .llms-setting-group tr.llms-disabled-field,
+.wrap.lifterlms-settings .llms-setting-group tr.llms-disabled-field,
+.wrap.llms-status .llms-setting-group tr.llms-disabled-field {
+ opacity: 0.5;
+ pointer-events: none;
+}
+.wrap.llms-reporting .llms-setting-group p,
+.wrap.lifterlms-settings .llms-setting-group p,
+.wrap.llms-status .llms-setting-group p {
+ font-size: 14px;
+}
+.wrap.llms-reporting .llms-setting-group input[type=text],
+.wrap.llms-reporting .llms-setting-group input[type=password],
+.wrap.llms-reporting .llms-setting-group input[type=datetime],
+.wrap.llms-reporting .llms-setting-group input[type=datetime-local],
+.wrap.llms-reporting .llms-setting-group input[type=date],
+.wrap.llms-reporting .llms-setting-group input[type=month],
+.wrap.llms-reporting .llms-setting-group input[type=time],
+.wrap.llms-reporting .llms-setting-group input[type=week],
+.wrap.llms-reporting .llms-setting-group input[type=number],
+.wrap.llms-reporting .llms-setting-group input[type=email],
+.wrap.llms-reporting .llms-setting-group input[type=url],
+.wrap.llms-reporting .llms-setting-group input[type=search],
+.wrap.llms-reporting .llms-setting-group input[type=tel],
+.wrap.llms-reporting .llms-setting-group input[type=color],
+.wrap.llms-reporting .llms-setting-group select,
+.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area),
+.wrap.lifterlms-settings .llms-setting-group input[type=text],
+.wrap.lifterlms-settings .llms-setting-group input[type=password],
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime],
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local],
+.wrap.lifterlms-settings .llms-setting-group input[type=date],
+.wrap.lifterlms-settings .llms-setting-group input[type=month],
+.wrap.lifterlms-settings .llms-setting-group input[type=time],
+.wrap.lifterlms-settings .llms-setting-group input[type=week],
+.wrap.lifterlms-settings .llms-setting-group input[type=number],
+.wrap.lifterlms-settings .llms-setting-group input[type=email],
+.wrap.lifterlms-settings .llms-setting-group input[type=url],
+.wrap.lifterlms-settings .llms-setting-group input[type=search],
+.wrap.lifterlms-settings .llms-setting-group input[type=tel],
+.wrap.lifterlms-settings .llms-setting-group input[type=color],
+.wrap.lifterlms-settings .llms-setting-group select,
+.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area),
+.wrap.llms-status .llms-setting-group input[type=text],
+.wrap.llms-status .llms-setting-group input[type=password],
+.wrap.llms-status .llms-setting-group input[type=datetime],
+.wrap.llms-status .llms-setting-group input[type=datetime-local],
+.wrap.llms-status .llms-setting-group input[type=date],
+.wrap.llms-status .llms-setting-group input[type=month],
+.wrap.llms-status .llms-setting-group input[type=time],
+.wrap.llms-status .llms-setting-group input[type=week],
+.wrap.llms-status .llms-setting-group input[type=number],
+.wrap.llms-status .llms-setting-group input[type=email],
+.wrap.llms-status .llms-setting-group input[type=url],
+.wrap.llms-status .llms-setting-group input[type=search],
+.wrap.llms-status .llms-setting-group input[type=tel],
+.wrap.llms-status .llms-setting-group input[type=color],
+.wrap.llms-status .llms-setting-group select,
+.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area) {
+ width: 50%;
+}
+.wrap.llms-reporting .llms-setting-group input[type=text].medium,
+.wrap.llms-reporting .llms-setting-group input[type=password].medium,
+.wrap.llms-reporting .llms-setting-group input[type=datetime].medium,
+.wrap.llms-reporting .llms-setting-group input[type=datetime-local].medium,
+.wrap.llms-reporting .llms-setting-group input[type=date].medium,
+.wrap.llms-reporting .llms-setting-group input[type=month].medium,
+.wrap.llms-reporting .llms-setting-group input[type=time].medium,
+.wrap.llms-reporting .llms-setting-group input[type=week].medium,
+.wrap.llms-reporting .llms-setting-group input[type=number].medium,
+.wrap.llms-reporting .llms-setting-group input[type=email].medium,
+.wrap.llms-reporting .llms-setting-group input[type=url].medium,
+.wrap.llms-reporting .llms-setting-group input[type=search].medium,
+.wrap.llms-reporting .llms-setting-group input[type=tel].medium,
+.wrap.llms-reporting .llms-setting-group input[type=color].medium,
+.wrap.llms-reporting .llms-setting-group select.medium,
+.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=text].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=password].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=date].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=month].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=time].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=week].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=number].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=email].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=url].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=search].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=tel].medium,
+.wrap.lifterlms-settings .llms-setting-group input[type=color].medium,
+.wrap.lifterlms-settings .llms-setting-group select.medium,
+.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).medium,
+.wrap.llms-status .llms-setting-group input[type=text].medium,
+.wrap.llms-status .llms-setting-group input[type=password].medium,
+.wrap.llms-status .llms-setting-group input[type=datetime].medium,
+.wrap.llms-status .llms-setting-group input[type=datetime-local].medium,
+.wrap.llms-status .llms-setting-group input[type=date].medium,
+.wrap.llms-status .llms-setting-group input[type=month].medium,
+.wrap.llms-status .llms-setting-group input[type=time].medium,
+.wrap.llms-status .llms-setting-group input[type=week].medium,
+.wrap.llms-status .llms-setting-group input[type=number].medium,
+.wrap.llms-status .llms-setting-group input[type=email].medium,
+.wrap.llms-status .llms-setting-group input[type=url].medium,
+.wrap.llms-status .llms-setting-group input[type=search].medium,
+.wrap.llms-status .llms-setting-group input[type=tel].medium,
+.wrap.llms-status .llms-setting-group input[type=color].medium,
+.wrap.llms-status .llms-setting-group select.medium,
+.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).medium {
+ width: 30%;
+}
+.wrap.llms-reporting .llms-setting-group input[type=text].small,
+.wrap.llms-reporting .llms-setting-group input[type=password].small,
+.wrap.llms-reporting .llms-setting-group input[type=datetime].small,
+.wrap.llms-reporting .llms-setting-group input[type=datetime-local].small,
+.wrap.llms-reporting .llms-setting-group input[type=date].small,
+.wrap.llms-reporting .llms-setting-group input[type=month].small,
+.wrap.llms-reporting .llms-setting-group input[type=time].small,
+.wrap.llms-reporting .llms-setting-group input[type=week].small,
+.wrap.llms-reporting .llms-setting-group input[type=number].small,
+.wrap.llms-reporting .llms-setting-group input[type=email].small,
+.wrap.llms-reporting .llms-setting-group input[type=url].small,
+.wrap.llms-reporting .llms-setting-group input[type=search].small,
+.wrap.llms-reporting .llms-setting-group input[type=tel].small,
+.wrap.llms-reporting .llms-setting-group input[type=color].small,
+.wrap.llms-reporting .llms-setting-group select.small,
+.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).small,
+.wrap.lifterlms-settings .llms-setting-group input[type=text].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=password].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=date].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=month].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=time].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=week].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=number].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=email].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=url].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=search].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=tel].small,
+.wrap.lifterlms-settings .llms-setting-group input[type=color].small,
+.wrap.lifterlms-settings .llms-setting-group select.small,
+.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).small,
+.wrap.llms-status .llms-setting-group input[type=text].small,
+.wrap.llms-status .llms-setting-group input[type=password].small,
+.wrap.llms-status .llms-setting-group input[type=datetime].small,
+.wrap.llms-status .llms-setting-group input[type=datetime-local].small,
+.wrap.llms-status .llms-setting-group input[type=date].small,
+.wrap.llms-status .llms-setting-group input[type=month].small,
+.wrap.llms-status .llms-setting-group input[type=time].small,
+.wrap.llms-status .llms-setting-group input[type=week].small,
+.wrap.llms-status .llms-setting-group input[type=number].small,
+.wrap.llms-status .llms-setting-group input[type=email].small,
+.wrap.llms-status .llms-setting-group input[type=url].small,
+.wrap.llms-status .llms-setting-group input[type=search].small,
+.wrap.llms-status .llms-setting-group input[type=tel].small,
+.wrap.llms-status .llms-setting-group input[type=color].small,
+.wrap.llms-status .llms-setting-group select.small,
+.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).small {
+ width: 20%;
+}
+.wrap.llms-reporting .llms-setting-group input[type=text].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=password].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=datetime].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=datetime-local].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=date].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=month].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=time].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=week].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=number].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=email].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=url].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=search].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=tel].tiny,
+.wrap.llms-reporting .llms-setting-group input[type=color].tiny,
+.wrap.llms-reporting .llms-setting-group select.tiny,
+.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=text].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=password].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=date].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=month].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=time].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=week].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=number].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=email].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=url].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=search].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=tel].tiny,
+.wrap.lifterlms-settings .llms-setting-group input[type=color].tiny,
+.wrap.lifterlms-settings .llms-setting-group select.tiny,
+.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).tiny,
+.wrap.llms-status .llms-setting-group input[type=text].tiny,
+.wrap.llms-status .llms-setting-group input[type=password].tiny,
+.wrap.llms-status .llms-setting-group input[type=datetime].tiny,
+.wrap.llms-status .llms-setting-group input[type=datetime-local].tiny,
+.wrap.llms-status .llms-setting-group input[type=date].tiny,
+.wrap.llms-status .llms-setting-group input[type=month].tiny,
+.wrap.llms-status .llms-setting-group input[type=time].tiny,
+.wrap.llms-status .llms-setting-group input[type=week].tiny,
+.wrap.llms-status .llms-setting-group input[type=number].tiny,
+.wrap.llms-status .llms-setting-group input[type=email].tiny,
+.wrap.llms-status .llms-setting-group input[type=url].tiny,
+.wrap.llms-status .llms-setting-group input[type=search].tiny,
+.wrap.llms-status .llms-setting-group input[type=tel].tiny,
+.wrap.llms-status .llms-setting-group input[type=color].tiny,
+.wrap.llms-status .llms-setting-group select.tiny,
+.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).tiny {
+ width: 10%;
+}
+@media only screen and (min-width: 782px) {
+ .wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,
+.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,
+.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {
+ background: #fff;
+ }
+}
+.wrap.llms-reporting #llms-mailhawk-connect,
+.wrap.lifterlms-settings #llms-mailhawk-connect,
+.wrap.llms-status #llms-mailhawk-connect {
+ height: auto;
+ margin: 0 0 6px;
+ position: relative;
+}
+.wrap.llms-reporting #llms-mailhawk-connect .dashicons,
+.wrap.lifterlms-settings #llms-mailhawk-connect .dashicons,
+.wrap.llms-status #llms-mailhawk-connect .dashicons {
+ margin: -4px 4px 0 0;
+ vertical-align: middle;
+}
+.wrap.llms-reporting #llms-sendwp-connect,
+.wrap.lifterlms-settings #llms-sendwp-connect,
+.wrap.llms-status #llms-sendwp-connect {
+ height: auto;
+ margin: 0 0 6px;
+ position: relative;
+}
+.wrap.llms-reporting #llms-sendwp-connect .fa,
+.wrap.lifterlms-settings #llms-sendwp-connect .fa,
+.wrap.llms-status #llms-sendwp-connect .fa {
+ margin-right: 4px;
+}
+
+@media only screen and (min-width: 782px) {
+ .wrap.lifterlms-settings .llms-subheader {
+ height: 40px;
+ position: sticky;
+ top: 32px;
+ }
+ .wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary {
+ margin: 0 -20px 20px -22px;
+ }
+ .wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {
+ padding-left: 10px;
+ }
+ .wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary {
+ margin: 0 -20px 20px -22px;
+ }
+ .wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {
+ padding-left: 10px;
+ }
+ .wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary {
+ margin: 0 -20px 20px -22px;
+ }
+ .wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {
+ padding-left: 10px;
+ }
+}
+.wrap.llms-dashboard .llms-inside-wrap {
+ padding-top: 30px;
+}
+.wrap.llms-dashboard #poststuff h2 {
+ padding: 12px 20px;
+}
+.wrap.llms-dashboard .llms-dashboard-activity h2 {
+ font-size: 20px;
+ font-weight: 700;
+ line-height: 1.5;
+ margin-top: 0;
+ text-align: center;
+}
+.wrap.llms-dashboard .postbox {
+ background-color: #FFF;
+ border: none;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+}
+.wrap.llms-dashboard .postbox .postbox-header {
+ border-bottom-color: #efefef;
+}
+.wrap.llms-dashboard .postbox .inside {
+ padding: 20px;
+}
+.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap {
+ margin-top: 0;
+}
+.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item {
+ margin-top: 0;
+}
+.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item p {
+ text-align: left;
+}
+.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item footer.llms-actions {
+ padding-top: 0;
+}
+.wrap.llms-dashboard #llms_dashboard_addons p {
+ text-align: center;
+}
+.wrap.llms-dashboard #llms_dashboard_addons p .llms-button-primary {
+ display: inline-block;
+ margin-top: 15px;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links ul {
+ list-style: disc;
+ margin: 5px 0 0 20px;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links ul li {
+ font-size: 15px;
+ line-height: 1.5;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links {
+ display: grid;
+ grid-template-columns: 1fr;
+ grid-gap: 30px;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links a {
+ display: inline-block;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list h3 {
+ margin: 0 0 10px 0;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list ul {
+ margin-bottom: 20px;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list ul.llms-checklist {
+ list-style: none;
+ margin-left: 0;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa {
+ text-align: center;
+ width: 16px;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa-check {
+ color: #008a20;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa-times {
+ color: #d63638;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-primary,
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-secondary,
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-action {
+ display: block;
+ text-align: center;
+}
+@media only screen and (min-width: 782px) {
+ .wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links {
+ grid-template-columns: 1fr 1fr 1fr;
+ }
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ grid-gap: 20px;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links .llms-list h3 {
+ margin: 0;
+}
+.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links .llms-list h3 .dashicons {
+ color: #AAA;
+}
+@media only screen and (min-width: 782px) {
+ .wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links {
+ grid-template-columns: 1fr 1fr 1fr 1fr;
+ }
+}
+.wrap.llms-dashboard #llms_dashboard_blog ul,
+.wrap.llms-dashboard #llms_dashboard_podcast ul {
+ margin: 0;
+}
+.wrap.llms-dashboard #llms_dashboard_blog ul li,
+.wrap.llms-dashboard #llms_dashboard_podcast ul li {
+ margin: 0 0 15px 0;
+}
+.wrap.llms-dashboard #llms_dashboard_blog ul li a,
+.wrap.llms-dashboard #llms_dashboard_podcast ul li a {
+ display: block;
+}
+.wrap.llms-dashboard #llms_dashboard_blog p,
+.wrap.llms-dashboard #llms_dashboard_podcast p {
+ margin: 15px 0;
+ text-align: center;
+}
+.wrap.llms-dashboard #llms_dashboard_blog p a,
+.wrap.llms-dashboard #llms_dashboard_podcast p a {
+ display: inline-block;
+}
+
+#llms_dashboard_widget .inside {
+ margin: 0;
+ padding-bottom: 8px;
+}
+#llms_dashboard_widget .llms-dashboard-widget-wrap {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ padding-top: 12px;
+}
+#llms_dashboard_widget .activity-block {
+ padding-bottom: 8px;
+ border-color: #e8e8e8;
+}
+#llms_dashboard_widget h3 {
+ margin-bottom: 0;
+}
+#llms_dashboard_widget .llms-charts-wrapper {
+ display: none;
+}
+#llms_dashboard_widget .llms-widget-row {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ gap: 8px;
+ width: 100%;
+ -webkit-box-align: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ padding: 4px 0;
+}
+#llms_dashboard_widget .llms-widget-row:before, #llms_dashboard_widget .llms-widget-row:after {
+ display: none;
+}
+#llms_dashboard_widget .llms-widget-1-4 {
+ padding: 0;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+}
+#llms_dashboard_widget .llms-widget {
+ padding: 8px 8px 12px;
+ margin: 0;
+ border-radius: 6px;
+ border: 1px solid #e8e8e8;
+ -webkit-box-shadow: 0px 2px 4px rgb(246, 247, 247);
+ box-shadow: 0px 2px 4px rgb(246, 247, 247);
+ height: 100%;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: end;
+ -ms-flex-align: end;
+ align-items: flex-end;
+}
+#llms_dashboard_widget .llms-label {
+ font-size: 14px;
+ width: 100%;
+ -ms-flex-item-align: start;
+ align-self: flex-start;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+#llms_dashboard_widget .llms-widget-content {
+ font-size: 20px;
+ margin: 0;
+}
+#llms_dashboard_widget .llms-widget-info-toggle {
+ display: none;
+}
+#llms_dashboard_widget a {
+ border: 0;
+}
+#llms_dashboard_widget .subsubsub {
+ color: #dcdcde;
+}
+
+.llms-dashboard-widget-feed {
+ margin: 0 -12px;
+ padding: 0;
+ background-color: #f6f7f7;
+}
+.llms-dashboard-widget-feed li {
+ margin: 0;
+ padding: 8px 12px;
+ border-bottom: 1px solid #e8e8e8;
+}
+.llms-dashboard-widget-feed span {
+ display: block;
+}
+
+.wrap.llms-resources .llms-inside-wrap {
+ padding-top: 30px;
+}
+.wrap.llms-resources #poststuff #post-body.columns-2 {
+ margin-right: 350px;
+}
+.wrap.llms-resources #poststuff #post-body.columns-2 #side-sortables {
+ width: 330px;
+}
+@media only screen and (max-width: 850px) {
+ .wrap.llms-resources #poststuff #post-body.columns-2 #side-sortables {
+ width: auto;
+ }
+}
+.wrap.llms-resources #poststuff #postbox-container-1 {
+ float: right;
+ margin-right: -350px;
+ width: 330px;
+}
+.wrap.llms-resources #poststuff h2 {
+ padding: 12px 20px;
+}
+.wrap.llms-resources #poststuff .postbox {
+ background-color: #FFF;
+ border: none;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+}
+.wrap.llms-resources #poststuff .postbox .postbox-header {
+ border-bottom-color: #efefef;
+}
+.wrap.llms-resources #poststuff .postbox .inside {
+ margin: 0;
+ padding: 20px;
+}
+.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video p {
+ font-size: 15px;
+ line-height: 1.5;
+ margin: 0 0 40px 0;
+}
+.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container {
+ height: 0;
+ overflow: hidden;
+ padding-top: 30px;
+ padding-bottom: 56.25%;
+ position: relative;
+}
+.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container iframe,
+.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container object,
+.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container embed {
+ left: 0;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+.wrap.llms-resources #llms_dashboard_getting_started ul {
+ margin: 0 0 20px 0;
+}
+.wrap.llms-resources #llms_dashboard_getting_started ul li {
+ font-size: 15px;
+ line-height: 1.5;
+ margin-bottom: 15px;
+}
+.wrap.llms-resources #llms_dashboard_getting_started .llms-button-primary {
+ display: block;
+ margin-top: auto;
+ max-width: 300px;
+ text-align: center;
+}
+.wrap.llms-resources #llms_dashboard_resource_links ul {
+ list-style: disc;
+ margin: 5px 0 0 20px;
+}
+.wrap.llms-resources #llms_dashboard_resource_links ul li {
+ font-size: 15px;
+ line-height: 1.5;
+}
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links {
+ display: grid;
+ grid-template-columns: 1fr;
+ grid-gap: 60px;
+}
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links a {
+ display: inline-block;
+}
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+}
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list h3 {
+ margin: 0 0 10px 0;
+}
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list h3 .dashicons {
+ color: #AAA;
+}
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list ul {
+ margin-bottom: 20px;
+}
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-primary,
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-secondary,
+.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-action {
+ display: block;
+ margin-top: auto;
+ max-width: 300px;
+ text-align: center;
+}
+@media only screen and (min-width: 782px) {
+ .wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links {
+ grid-template-columns: 1fr 1fr 1fr;
+ }
+}
+
+.llms-remarks .llms-remarks-field {
+ height: 120px;
+ width: 100%;
+}
+.llms-remarks input[type=number] {
+ width: 60px;
+}
+
+button[name=llms_quiz_attempt_action] .save {
+ display: none;
+}
+button[name=llms_quiz_attempt_action].grading .default {
+ display: none;
+}
+button[name=llms_quiz_attempt_action].grading .save {
+ display: inline;
+}
+
+.llms-form-fields {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.llms-form-fields * {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.llms-form-fields.flush .llms-form-field {
+ padding: 0 0 20px;
+}
+.llms-form-fields label:not(.llms-field-html label) {
+ font-weight: 700;
+}
+.llms-form-fields .wp-block-columns, .llms-form-fields .wp-block-column {
+ margin-bottom: 0;
+}
+
+.llms-form-heading {
+ padding: 0 10px 10px;
+}
+
+.llms-form-field {
+ float: left;
+ padding: 0 10px 20px;
+ position: relative;
+ width: 100%;
+}
+.llms-form-field label:empty:after {
+ content: " ";
+}
+.llms-form-field [type=text],
+.llms-form-field [type=password],
+.llms-form-field [type=email],
+.llms-form-field [type=url],
+.llms-form-field [type=tel],
+.llms-form-field [type=number] {
+ background-color: #fefefe;
+ background-clip: padding-box;
+ border: 1px solid #999;
+ border-radius: 6px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ font-size: 16px;
+ line-height: 1;
+ padding: 8px 12px;
+ -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ width: 100%;
+}
+.llms-form-field input:focus,
+.llms-form-field input:focus-visible {
+ border-color: #6888df;
+ outline: thin solid;
+}
+.llms-form-field select {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ -ms-appearance: none;
+ appearance: none;
+ background-color: #fefefe;
+ border: 1px solid #999;
+ border-radius: 6px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #010101;
+ padding: 8px 12px;
+ margin: 0;
+ width: 100%;
+ font-family: inherit;
+ font-size: 16px;
+ cursor: inherit;
+ line-height: 1.6;
+ z-index: 1;
+ outline: none;
+ background-repeat: no-repeat;
+ background-image: linear-gradient(45deg, transparent 50%, currentcolor 50%), linear-gradient(135deg, currentcolor 50%, transparent 50%);
+ background-position: right 15px top 1.3rem, right 10px top 1.3rem;
+ background-size: 5px 5px, 5px 5px;
+}
+.llms-form-field select::-ms-expand {
+ display: none;
+}
+.llms-form-field select:focus {
+ border: 1px solid #6888df;
+ outline: thin solid;
+}
+.llms-form-field.valid input[type=date], .llms-form-field.valid input[type=time], .llms-form-field.valid input[type=datetime-local], .llms-form-field.valid input[type=week], .llms-form-field.valid input[type=month], .llms-form-field.valid input[type=text], .llms-form-field.valid input[type=email], .llms-form-field.valid input[type=url], .llms-form-field.valid input[type=password], .llms-form-field.valid input[type=search], .llms-form-field.valid input[type=tel], .llms-form-field.valid input[type=number], .llms-form-field.valid textarea, .llms-form-field.valid select {
+ background: rgba(131, 195, 115, 0.3);
+ border-color: #83c373;
+}
+.llms-form-field.error input[type=date], .llms-form-field.error input[type=time], .llms-form-field.error input[type=datetime-local], .llms-form-field.error input[type=week], .llms-form-field.error input[type=month], .llms-form-field.error input[type=text], .llms-form-field.error input[type=email], .llms-form-field.error input[type=url], .llms-form-field.error input[type=password], .llms-form-field.error input[type=search], .llms-form-field.error input[type=tel], .llms-form-field.error input[type=number], .llms-form-field.error textarea, .llms-form-field.error select, .llms-form-field.invalid input[type=date], .llms-form-field.invalid input[type=time], .llms-form-field.invalid input[type=datetime-local], .llms-form-field.invalid input[type=week], .llms-form-field.invalid input[type=month], .llms-form-field.invalid input[type=text], .llms-form-field.invalid input[type=email], .llms-form-field.invalid input[type=url], .llms-form-field.invalid input[type=password], .llms-form-field.invalid input[type=search], .llms-form-field.invalid input[type=tel], .llms-form-field.invalid input[type=number], .llms-form-field.invalid textarea, .llms-form-field.invalid select {
+ background: rgba(187, 35, 28, 0.3);
+ border-color: #bb231c;
+}
+.llms-form-field.llms-visually-hidden-field {
+ display: none;
+}
+.llms-form-field.align-right {
+ text-align: right;
+}
+@media screen and (min-width: 600px) {
+ .llms-form-field.llms-cols-1 {
+ width: 8.3333333333%;
+ }
+ .llms-form-field.llms-cols-2 {
+ width: 16.6666666667%;
+ }
+ .llms-form-field.llms-cols-3 {
+ width: 25%;
+ }
+ .llms-form-field.llms-cols-4 {
+ width: 33.3333333333%;
+ }
+ .llms-form-field.llms-cols-5 {
+ width: 41.6666666667%;
+ }
+ .llms-form-field.llms-cols-6 {
+ width: 50%;
+ }
+ .llms-form-field.llms-cols-7 {
+ width: 58.3333333333%;
+ }
+ .llms-form-field.llms-cols-8 {
+ width: 66.6666666667%;
+ }
+ .llms-form-field.llms-cols-9 {
+ width: 75%;
+ }
+ .llms-form-field.llms-cols-10 {
+ width: 83.3333333333%;
+ }
+ .llms-form-field.llms-cols-11 {
+ width: 91.6666666667%;
+ }
+ .llms-form-field.llms-cols-12 {
+ width: 100%;
+ }
+}
+.llms-form-field.type-hidden {
+ padding: 0;
+}
+.llms-form-field.type-radio input,
+.llms-form-field.type-radio label, .llms-form-field.type-checkbox input,
+.llms-form-field.type-checkbox label {
+ display: inline-block;
+ width: auto;
+}
+.llms-form-field.type-radio input, .llms-form-field.type-checkbox input {
+ margin-right: 10px;
+}
+.llms-form-field.type-radio label + .llms-description, .llms-form-field.type-checkbox label + .llms-description {
+ display: block;
+}
+.llms-form-field.type-radio:not(.is-group) input[type=radio] {
+ position: absolute;
+ opacity: 0;
+ visibility: none;
+}
+.llms-form-field.type-radio:not(.is-group) label:before {
+ background: #fafafa;
+ background-position: -24px 0;
+ background-repeat: no-repeat;
+ border-radius: 50%;
+ -webkit-box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.35) 0 0 0 1px;
+ box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.35) 0 0 0 1px;
+ content: "";
+ cursor: pointer;
+ display: inline-block;
+ height: 22px;
+ margin-right: 5px;
+ position: relative;
+ -webkit-transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);
+ transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);
+ top: -3px;
+ vertical-align: middle;
+ width: 22px;
+ z-index: 2;
+}
+.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked + label:before {
+ -webkit-transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);
+ transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);
+ background-position: 0 0;
+ background-image: radial-gradient(ellipse at center, #466dd8 0%, #466dd8 40%, #fafafa 45%);
+}
+.llms-form-field .llms-input-group {
+ margin-top: 5px;
+}
+.llms-form-field .llms-input-group .llms-form-field {
+ padding: 0 0 5px 5px;
+}
+.llms-form-field.type-reset button:not(.auto), .llms-form-field.type-button button:not(.auto), .llms-form-field.type-submit button:not(.auto) {
+ width: 100%;
+}
+.llms-form-field .llms-description {
+ font-size: 14px;
+ font-style: italic;
+ line-height: 18px;
+}
+.llms-form-field .llms-required {
+ color: #bb231c;
+ margin-left: 4px;
+}
+.llms-form-field input, .llms-form-field textarea, .llms-form-field select {
+ width: 100%;
+ margin-bottom: 5px;
+}
+.llms-form-field .select2-container .select2-selection--single {
+ height: auto;
+ padding: 4px 6px;
+}
+.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow {
+ height: 100%;
+}
+
+.llms-password-strength-meter {
+ border: 1px solid #dadada;
+ display: none;
+ font-size: 10px;
+ margin-top: -10px;
+ padding: 1px;
+ position: relative;
+ text-align: center;
+}
+.llms-password-strength-meter:before {
+ bottom: 0;
+ content: "";
+ left: 0;
+ position: absolute;
+ top: 0;
+ -webkit-transition: width 0.4s ease;
+ transition: width 0.4s ease;
+}
+.llms-password-strength-meter.mismatch, .llms-password-strength-meter.too-short, .llms-password-strength-meter.very-weak {
+ border-color: #e35b5b;
+}
+.llms-password-strength-meter.mismatch:before, .llms-password-strength-meter.too-short:before, .llms-password-strength-meter.very-weak:before {
+ background: rgba(227, 91, 91, 0.25);
+ width: 25%;
+}
+.llms-password-strength-meter.too-short:before {
+ width: 0;
+}
+.llms-password-strength-meter.weak {
+ border-color: #f78b53;
+}
+.llms-password-strength-meter.weak:before {
+ background: rgba(247, 139, 83, 0.25);
+ width: 50%;
+}
+.llms-password-strength-meter.medium {
+ border-color: #ffc733;
+}
+.llms-password-strength-meter.medium:before {
+ background: rgba(255, 199, 51, 0.25);
+ width: 75%;
+}
+.llms-password-strength-meter.strong {
+ border-color: #83c373;
+}
+.llms-password-strength-meter.strong:before {
+ background: rgba(131, 195, 115, 0.25);
+ width: 100%;
+}
+.llms-password-strength-meter + .llms-description {
+ display: block;
+}
+
+/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+/* FONT PATH
+ * -------------------------- */
+@font-face {
+ font-family: "FontAwesome";
+ src: url("../fonts/fontawesome-webfont.eot?v=4.7.0");
+ src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+.fa {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+ font-size: 1.33333333em;
+ line-height: 0.75em;
+ vertical-align: -15%;
+}
+
+.fa-2x {
+ font-size: 2em;
+}
+
+.fa-3x {
+ font-size: 3em;
+}
+
+.fa-4x {
+ font-size: 4em;
+}
+
+.fa-5x {
+ font-size: 5em;
+}
+
+.fa-fw {
+ width: 1.28571429em;
+ text-align: center;
+}
+
+.fa-ul {
+ padding-left: 0;
+ margin-left: 2.14285714em;
+ list-style-type: none;
+}
+
+.fa-ul > li {
+ position: relative;
+}
+
+.fa-li {
+ position: absolute;
+ left: -2.14285714em;
+ width: 2.14285714em;
+ top: 0.14285714em;
+ text-align: center;
+}
+
+.fa-li.fa-lg {
+ left: -1.85714286em;
+}
+
+.fa-border {
+ padding: 0.2em 0.25em 0.15em;
+ border: solid 0.08em #eeeeee;
+ border-radius: 0.1em;
+}
+
+.fa-pull-left {
+ float: left;
+}
+
+.fa-pull-right {
+ float: right;
+}
+
+.fa.fa-pull-left {
+ margin-right: 0.3em;
+}
+
+.fa.fa-pull-right {
+ margin-left: 0.3em;
+}
+
+/* Deprecated as of 4.4.0 */
+.pull-right {
+ float: right;
+}
+
+.pull-left {
+ float: left;
+}
+
+.fa.pull-left {
+ margin-right: 0.3em;
+}
+
+.fa.pull-right {
+ margin-left: 0.3em;
+}
+
+.fa-spin {
+ -webkit-animation: fa-spin 2s infinite linear;
+ animation: fa-spin 2s infinite linear;
+}
+
+.fa-pulse {
+ -webkit-animation: fa-spin 1s infinite steps(8);
+ animation: fa-spin 1s infinite steps(8);
+}
+
+@-webkit-keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+@keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+.fa-rotate-90 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
+ -webkit-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+.fa-rotate-180 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
+ -webkit-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+
+.fa-rotate-270 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
+ -webkit-transform: rotate(270deg);
+ transform: rotate(270deg);
+}
+
+.fa-flip-horizontal {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
+ -webkit-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+.fa-flip-vertical {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
+ -webkit-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+ -webkit-filter: none;
+ filter: none;
+}
+
+.fa-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+
+.fa-stack-1x,
+.fa-stack-2x {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+
+.fa-stack-1x {
+ line-height: inherit;
+}
+
+.fa-stack-2x {
+ font-size: 2em;
+}
+
+.fa-inverse {
+ color: #ffffff;
+}
+
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+.fa-glass:before {
+ content: "\f000";
+}
+
+.fa-music:before {
+ content: "\f001";
+}
+
+.fa-search:before {
+ content: "\f002";
+}
+
+.fa-envelope-o:before {
+ content: "\f003";
+}
+
+.fa-heart:before {
+ content: "\f004";
+}
+
+.fa-star:before {
+ content: "\f005";
+}
+
+.fa-star-o:before {
+ content: "\f006";
+}
+
+.fa-user:before {
+ content: "\f007";
+}
+
+.fa-film:before {
+ content: "\f008";
+}
+
+.fa-th-large:before {
+ content: "\f009";
+}
+
+.fa-th:before {
+ content: "\f00a";
+}
+
+.fa-th-list:before {
+ content: "\f00b";
+}
+
+.fa-check:before {
+ content: "\f00c";
+}
+
+.fa-remove:before,
+.fa-close:before,
+.fa-times:before {
+ content: "\f00d";
+}
+
+.fa-search-plus:before {
+ content: "\f00e";
+}
+
+.fa-search-minus:before {
+ content: "\f010";
+}
+
+.fa-power-off:before {
+ content: "\f011";
+}
+
+.fa-signal:before {
+ content: "\f012";
+}
+
+.fa-gear:before,
+.fa-cog:before {
+ content: "\f013";
+}
+
+.fa-trash-o:before {
+ content: "\f014";
+}
+
+.fa-home:before {
+ content: "\f015";
+}
+
+.fa-file-o:before {
+ content: "\f016";
+}
+
+.fa-clock-o:before {
+ content: "\f017";
+}
+
+.fa-road:before {
+ content: "\f018";
+}
+
+.fa-download:before {
+ content: "\f019";
+}
+
+.fa-arrow-circle-o-down:before {
+ content: "\f01a";
+}
+
+.fa-arrow-circle-o-up:before {
+ content: "\f01b";
+}
+
+.fa-inbox:before {
+ content: "\f01c";
+}
+
+.fa-play-circle-o:before {
+ content: "\f01d";
+}
+
+.fa-rotate-right:before,
+.fa-repeat:before {
+ content: "\f01e";
+}
+
+.fa-refresh:before {
+ content: "\f021";
+}
+
+.fa-list-alt:before {
+ content: "\f022";
+}
+
+.fa-lock:before {
+ content: "\f023";
+}
+
+.fa-flag:before {
+ content: "\f024";
+}
+
+.fa-headphones:before {
+ content: "\f025";
+}
+
+.fa-volume-off:before {
+ content: "\f026";
+}
+
+.fa-volume-down:before {
+ content: "\f027";
+}
+
+.fa-volume-up:before {
+ content: "\f028";
+}
+
+.fa-qrcode:before {
+ content: "\f029";
+}
+
+.fa-barcode:before {
+ content: "\f02a";
+}
+
+.fa-tag:before {
+ content: "\f02b";
+}
+
+.fa-tags:before {
+ content: "\f02c";
+}
+
+.fa-book:before {
+ content: "\f02d";
+}
+
+.fa-bookmark:before {
+ content: "\f02e";
+}
+
+.fa-print:before {
+ content: "\f02f";
+}
+
+.fa-camera:before {
+ content: "\f030";
+}
+
+.fa-font:before {
+ content: "\f031";
+}
+
+.fa-bold:before {
+ content: "\f032";
+}
+
+.fa-italic:before {
+ content: "\f033";
+}
+
+.fa-text-height:before {
+ content: "\f034";
+}
+
+.fa-text-width:before {
+ content: "\f035";
+}
+
+.fa-align-left:before {
+ content: "\f036";
+}
+
+.fa-align-center:before {
+ content: "\f037";
+}
+
+.fa-align-right:before {
+ content: "\f038";
+}
+
+.fa-align-justify:before {
+ content: "\f039";
+}
+
+.fa-list:before {
+ content: "\f03a";
+}
+
+.fa-dedent:before,
+.fa-outdent:before {
+ content: "\f03b";
+}
+
+.fa-indent:before {
+ content: "\f03c";
+}
+
+.fa-video-camera:before {
+ content: "\f03d";
+}
+
+.fa-photo:before,
+.fa-image:before,
+.fa-picture-o:before {
+ content: "\f03e";
+}
+
+.fa-pencil:before {
+ content: "\f040";
+}
+
+.fa-map-marker:before {
+ content: "\f041";
+}
+
+.fa-adjust:before {
+ content: "\f042";
+}
+
+.fa-tint:before {
+ content: "\f043";
+}
+
+.fa-edit:before,
+.fa-pencil-square-o:before {
+ content: "\f044";
+}
+
+.fa-share-square-o:before {
+ content: "\f045";
+}
+
+.fa-check-square-o:before {
+ content: "\f046";
+}
+
+.fa-arrows:before {
+ content: "\f047";
+}
+
+.fa-step-backward:before {
+ content: "\f048";
+}
+
+.fa-fast-backward:before {
+ content: "\f049";
+}
+
+.fa-backward:before {
+ content: "\f04a";
+}
+
+.fa-play:before {
+ content: "\f04b";
+}
+
+.fa-pause:before {
+ content: "\f04c";
+}
+
+.fa-stop:before {
+ content: "\f04d";
+}
+
+.fa-forward:before {
+ content: "\f04e";
+}
+
+.fa-fast-forward:before {
+ content: "\f050";
+}
+
+.fa-step-forward:before {
+ content: "\f051";
+}
+
+.fa-eject:before {
+ content: "\f052";
+}
+
+.fa-chevron-left:before {
+ content: "\f053";
+}
+
+.fa-chevron-right:before {
+ content: "\f054";
+}
+
+.fa-plus-circle:before {
+ content: "\f055";
+}
+
+.fa-minus-circle:before {
+ content: "\f056";
+}
+
+.fa-times-circle:before {
+ content: "\f057";
+}
+
+.fa-check-circle:before {
+ content: "\f058";
+}
+
+.fa-question-circle:before {
+ content: "\f059";
+}
+
+.fa-info-circle:before {
+ content: "\f05a";
+}
+
+.fa-crosshairs:before {
+ content: "\f05b";
+}
+
+.fa-times-circle-o:before {
+ content: "\f05c";
+}
+
+.fa-check-circle-o:before {
+ content: "\f05d";
+}
+
+.fa-ban:before {
+ content: "\f05e";
+}
+
+.fa-arrow-left:before {
+ content: "\f060";
+}
+
+.fa-arrow-right:before {
+ content: "\f061";
+}
+
+.fa-arrow-up:before {
+ content: "\f062";
+}
+
+.fa-arrow-down:before {
+ content: "\f063";
+}
+
+.fa-mail-forward:before,
+.fa-share:before {
+ content: "\f064";
+}
+
+.fa-expand:before {
+ content: "\f065";
+}
+
+.fa-compress:before {
+ content: "\f066";
+}
+
+.fa-plus:before {
+ content: "\f067";
+}
+
+.fa-minus:before {
+ content: "\f068";
+}
+
+.fa-asterisk:before {
+ content: "\f069";
+}
+
+.fa-exclamation-circle:before {
+ content: "\f06a";
+}
+
+.fa-gift:before {
+ content: "\f06b";
+}
+
+.fa-leaf:before {
+ content: "\f06c";
+}
+
+.fa-fire:before {
+ content: "\f06d";
+}
+
+.fa-eye:before {
+ content: "\f06e";
+}
+
+.fa-eye-slash:before {
+ content: "\f070";
+}
+
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+ content: "\f071";
+}
+
+.fa-plane:before {
+ content: "\f072";
+}
+
+.fa-calendar:before {
+ content: "\f073";
+}
+
+.fa-random:before {
+ content: "\f074";
+}
+
+.fa-comment:before {
+ content: "\f075";
+}
+
+.fa-magnet:before {
+ content: "\f076";
+}
+
+.fa-chevron-up:before {
+ content: "\f077";
+}
+
+.fa-chevron-down:before {
+ content: "\f078";
+}
+
+.fa-retweet:before {
+ content: "\f079";
+}
+
+.fa-shopping-cart:before {
+ content: "\f07a";
+}
+
+.fa-folder:before {
+ content: "\f07b";
+}
+
+.fa-folder-open:before {
+ content: "\f07c";
+}
+
+.fa-arrows-v:before {
+ content: "\f07d";
+}
+
+.fa-arrows-h:before {
+ content: "\f07e";
+}
+
+.fa-bar-chart-o:before,
+.fa-bar-chart:before {
+ content: "\f080";
+}
+
+.fa-twitter-square:before {
+ content: "\f081";
+}
+
+.fa-facebook-square:before {
+ content: "\f082";
+}
+
+.fa-camera-retro:before {
+ content: "\f083";
+}
+
+.fa-key:before {
+ content: "\f084";
+}
+
+.fa-gears:before,
+.fa-cogs:before {
+ content: "\f085";
+}
+
+.fa-comments:before {
+ content: "\f086";
+}
+
+.fa-thumbs-o-up:before {
+ content: "\f087";
+}
+
+.fa-thumbs-o-down:before {
+ content: "\f088";
+}
+
+.fa-star-half:before {
+ content: "\f089";
+}
+
+.fa-heart-o:before {
+ content: "\f08a";
+}
+
+.fa-sign-out:before {
+ content: "\f08b";
+}
+
+.fa-linkedin-square:before {
+ content: "\f08c";
+}
+
+.fa-thumb-tack:before {
+ content: "\f08d";
+}
+
+.fa-external-link:before {
+ content: "\f08e";
+}
+
+.fa-sign-in:before {
+ content: "\f090";
+}
+
+.fa-trophy:before {
+ content: "\f091";
+}
+
+.fa-github-square:before {
+ content: "\f092";
+}
+
+.fa-upload:before {
+ content: "\f093";
+}
+
+.fa-lemon-o:before {
+ content: "\f094";
+}
+
+.fa-phone:before {
+ content: "\f095";
+}
+
+.fa-square-o:before {
+ content: "\f096";
+}
+
+.fa-bookmark-o:before {
+ content: "\f097";
+}
+
+.fa-phone-square:before {
+ content: "\f098";
+}
+
+.fa-twitter:before {
+ content: "\f099";
+}
+
+.fa-facebook-f:before,
+.fa-facebook:before {
+ content: "\f09a";
+}
+
+.fa-github:before {
+ content: "\f09b";
+}
+
+.fa-unlock:before {
+ content: "\f09c";
+}
+
+.fa-credit-card:before {
+ content: "\f09d";
+}
+
+.fa-feed:before,
+.fa-rss:before {
+ content: "\f09e";
+}
+
+.fa-hdd-o:before {
+ content: "\f0a0";
+}
+
+.fa-bullhorn:before {
+ content: "\f0a1";
+}
+
+.fa-bell:before {
+ content: "\f0f3";
+}
+
+.fa-certificate:before {
+ content: "\f0a3";
+}
+
+.fa-hand-o-right:before {
+ content: "\f0a4";
+}
+
+.fa-hand-o-left:before {
+ content: "\f0a5";
+}
+
+.fa-hand-o-up:before {
+ content: "\f0a6";
+}
+
+.fa-hand-o-down:before {
+ content: "\f0a7";
+}
+
+.fa-arrow-circle-left:before {
+ content: "\f0a8";
+}
+
+.fa-arrow-circle-right:before {
+ content: "\f0a9";
+}
+
+.fa-arrow-circle-up:before {
+ content: "\f0aa";
+}
+
+.fa-arrow-circle-down:before {
+ content: "\f0ab";
+}
+
+.fa-globe:before {
+ content: "\f0ac";
+}
+
+.fa-wrench:before {
+ content: "\f0ad";
+}
+
+.fa-tasks:before {
+ content: "\f0ae";
+}
+
+.fa-filter:before {
+ content: "\f0b0";
+}
+
+.fa-briefcase:before {
+ content: "\f0b1";
+}
+
+.fa-arrows-alt:before {
+ content: "\f0b2";
+}
+
+.fa-group:before,
+.fa-users:before {
+ content: "\f0c0";
+}
+
+.fa-chain:before,
+.fa-link:before {
+ content: "\f0c1";
+}
+
+.fa-cloud:before {
+ content: "\f0c2";
+}
+
+.fa-flask:before {
+ content: "\f0c3";
+}
+
+.fa-cut:before,
+.fa-scissors:before {
+ content: "\f0c4";
+}
+
+.fa-copy:before,
+.fa-files-o:before {
+ content: "\f0c5";
+}
+
+.fa-paperclip:before {
+ content: "\f0c6";
+}
+
+.fa-save:before,
+.fa-floppy-o:before {
+ content: "\f0c7";
+}
+
+.fa-square:before {
+ content: "\f0c8";
+}
+
+.fa-navicon:before,
+.fa-reorder:before,
+.fa-bars:before {
+ content: "\f0c9";
+}
+
+.fa-list-ul:before {
+ content: "\f0ca";
+}
+
+.fa-list-ol:before {
+ content: "\f0cb";
+}
+
+.fa-strikethrough:before {
+ content: "\f0cc";
+}
+
+.fa-underline:before {
+ content: "\f0cd";
+}
+
+.fa-table:before {
+ content: "\f0ce";
+}
+
+.fa-magic:before {
+ content: "\f0d0";
+}
+
+.fa-truck:before {
+ content: "\f0d1";
+}
+
+.fa-pinterest:before {
+ content: "\f0d2";
+}
+
+.fa-pinterest-square:before {
+ content: "\f0d3";
+}
+
+.fa-google-plus-square:before {
+ content: "\f0d4";
+}
+
+.fa-google-plus:before {
+ content: "\f0d5";
+}
+
+.fa-money:before {
+ content: "\f0d6";
+}
+
+.fa-caret-down:before {
+ content: "\f0d7";
+}
+
+.fa-caret-up:before {
+ content: "\f0d8";
+}
+
+.fa-caret-left:before {
+ content: "\f0d9";
+}
+
+.fa-caret-right:before {
+ content: "\f0da";
+}
+
+.fa-columns:before {
+ content: "\f0db";
+}
+
+.fa-unsorted:before,
+.fa-sort:before {
+ content: "\f0dc";
+}
+
+.fa-sort-down:before,
+.fa-sort-desc:before {
+ content: "\f0dd";
+}
+
+.fa-sort-up:before,
+.fa-sort-asc:before {
+ content: "\f0de";
+}
+
+.fa-envelope:before {
+ content: "\f0e0";
+}
+
+.fa-linkedin:before {
+ content: "\f0e1";
+}
+
+.fa-rotate-left:before,
+.fa-undo:before {
+ content: "\f0e2";
+}
+
+.fa-legal:before,
+.fa-gavel:before {
+ content: "\f0e3";
+}
+
+.fa-dashboard:before,
+.fa-tachometer:before {
+ content: "\f0e4";
+}
+
+.fa-comment-o:before {
+ content: "\f0e5";
+}
+
+.fa-comments-o:before {
+ content: "\f0e6";
+}
+
+.fa-flash:before,
+.fa-bolt:before {
+ content: "\f0e7";
+}
+
+.fa-sitemap:before {
+ content: "\f0e8";
+}
+
+.fa-umbrella:before {
+ content: "\f0e9";
+}
+
+.fa-paste:before,
+.fa-clipboard:before {
+ content: "\f0ea";
+}
+
+.fa-lightbulb-o:before {
+ content: "\f0eb";
+}
+
+.fa-exchange:before {
+ content: "\f0ec";
+}
+
+.fa-cloud-download:before {
+ content: "\f0ed";
+}
+
+.fa-cloud-upload:before {
+ content: "\f0ee";
+}
+
+.fa-user-md:before {
+ content: "\f0f0";
+}
+
+.fa-stethoscope:before {
+ content: "\f0f1";
+}
+
+.fa-suitcase:before {
+ content: "\f0f2";
+}
+
+.fa-bell-o:before {
+ content: "\f0a2";
+}
+
+.fa-coffee:before {
+ content: "\f0f4";
+}
+
+.fa-cutlery:before {
+ content: "\f0f5";
+}
+
+.fa-file-text-o:before {
+ content: "\f0f6";
+}
+
+.fa-building-o:before {
+ content: "\f0f7";
+}
+
+.fa-hospital-o:before {
+ content: "\f0f8";
+}
+
+.fa-ambulance:before {
+ content: "\f0f9";
+}
+
+.fa-medkit:before {
+ content: "\f0fa";
+}
+
+.fa-fighter-jet:before {
+ content: "\f0fb";
+}
+
+.fa-beer:before {
+ content: "\f0fc";
+}
+
+.fa-h-square:before {
+ content: "\f0fd";
+}
+
+.fa-plus-square:before {
+ content: "\f0fe";
+}
+
+.fa-angle-double-left:before {
+ content: "\f100";
+}
+
+.fa-angle-double-right:before {
+ content: "\f101";
+}
+
+.fa-angle-double-up:before {
+ content: "\f102";
+}
+
+.fa-angle-double-down:before {
+ content: "\f103";
+}
+
+.fa-angle-left:before {
+ content: "\f104";
+}
+
+.fa-angle-right:before {
+ content: "\f105";
+}
+
+.fa-angle-up:before {
+ content: "\f106";
+}
+
+.fa-angle-down:before {
+ content: "\f107";
+}
+
+.fa-desktop:before {
+ content: "\f108";
+}
+
+.fa-laptop:before {
+ content: "\f109";
+}
+
+.fa-tablet:before {
+ content: "\f10a";
+}
+
+.fa-mobile-phone:before,
+.fa-mobile:before {
+ content: "\f10b";
+}
+
+.fa-circle-o:before {
+ content: "\f10c";
+}
+
+.fa-quote-left:before {
+ content: "\f10d";
+}
+
+.fa-quote-right:before {
+ content: "\f10e";
+}
+
+.fa-spinner:before {
+ content: "\f110";
+}
+
+.fa-circle:before {
+ content: "\f111";
+}
+
+.fa-mail-reply:before,
+.fa-reply:before {
+ content: "\f112";
+}
+
+.fa-github-alt:before {
+ content: "\f113";
+}
+
+.fa-folder-o:before {
+ content: "\f114";
+}
+
+.fa-folder-open-o:before {
+ content: "\f115";
+}
+
+.fa-smile-o:before {
+ content: "\f118";
+}
+
+.fa-frown-o:before {
+ content: "\f119";
+}
+
+.fa-meh-o:before {
+ content: "\f11a";
+}
+
+.fa-gamepad:before {
+ content: "\f11b";
+}
+
+.fa-keyboard-o:before {
+ content: "\f11c";
+}
+
+.fa-flag-o:before {
+ content: "\f11d";
+}
+
+.fa-flag-checkered:before {
+ content: "\f11e";
+}
+
+.fa-terminal:before {
+ content: "\f120";
+}
+
+.fa-code:before {
+ content: "\f121";
+}
+
+.fa-mail-reply-all:before,
+.fa-reply-all:before {
+ content: "\f122";
+}
+
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+ content: "\f123";
+}
+
+.fa-location-arrow:before {
+ content: "\f124";
+}
+
+.fa-crop:before {
+ content: "\f125";
+}
+
+.fa-code-fork:before {
+ content: "\f126";
+}
+
+.fa-unlink:before,
+.fa-chain-broken:before {
+ content: "\f127";
+}
+
+.fa-question:before {
+ content: "\f128";
+}
+
+.fa-info:before {
+ content: "\f129";
+}
+
+.fa-exclamation:before {
+ content: "\f12a";
+}
+
+.fa-superscript:before {
+ content: "\f12b";
+}
+
+.fa-subscript:before {
+ content: "\f12c";
+}
+
+.fa-eraser:before {
+ content: "\f12d";
+}
+
+.fa-puzzle-piece:before {
+ content: "\f12e";
+}
+
+.fa-microphone:before {
+ content: "\f130";
+}
+
+.fa-microphone-slash:before {
+ content: "\f131";
+}
+
+.fa-shield:before {
+ content: "\f132";
+}
+
+.fa-calendar-o:before {
+ content: "\f133";
+}
+
+.fa-fire-extinguisher:before {
+ content: "\f134";
+}
+
+.fa-rocket:before {
+ content: "\f135";
+}
+
+.fa-maxcdn:before {
+ content: "\f136";
+}
+
+.fa-chevron-circle-left:before {
+ content: "\f137";
+}
+
+.fa-chevron-circle-right:before {
+ content: "\f138";
+}
+
+.fa-chevron-circle-up:before {
+ content: "\f139";
+}
+
+.fa-chevron-circle-down:before {
+ content: "\f13a";
+}
+
+.fa-html5:before {
+ content: "\f13b";
+}
+
+.fa-css3:before {
+ content: "\f13c";
+}
+
+.fa-anchor:before {
+ content: "\f13d";
+}
+
+.fa-unlock-alt:before {
+ content: "\f13e";
+}
+
+.fa-bullseye:before {
+ content: "\f140";
+}
+
+.fa-ellipsis-h:before {
+ content: "\f141";
+}
+
+.fa-ellipsis-v:before {
+ content: "\f142";
+}
+
+.fa-rss-square:before {
+ content: "\f143";
+}
+
+.fa-play-circle:before {
+ content: "\f144";
+}
+
+.fa-ticket:before {
+ content: "\f145";
+}
+
+.fa-minus-square:before {
+ content: "\f146";
+}
+
+.fa-minus-square-o:before {
+ content: "\f147";
+}
+
+.fa-level-up:before {
+ content: "\f148";
+}
+
+.fa-level-down:before {
+ content: "\f149";
+}
+
+.fa-check-square:before {
+ content: "\f14a";
+}
+
+.fa-pencil-square:before {
+ content: "\f14b";
+}
+
+.fa-external-link-square:before {
+ content: "\f14c";
+}
+
+.fa-share-square:before {
+ content: "\f14d";
+}
+
+.fa-compass:before {
+ content: "\f14e";
+}
+
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+ content: "\f150";
+}
+
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+ content: "\f151";
+}
+
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+ content: "\f152";
+}
+
+.fa-euro:before,
+.fa-eur:before {
+ content: "\f153";
+}
+
+.fa-gbp:before {
+ content: "\f154";
+}
+
+.fa-dollar:before,
+.fa-usd:before {
+ content: "\f155";
+}
+
+.fa-rupee:before,
+.fa-inr:before {
+ content: "\f156";
+}
+
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+ content: "\f157";
+}
+
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+ content: "\f158";
+}
+
+.fa-won:before,
+.fa-krw:before {
+ content: "\f159";
+}
+
+.fa-bitcoin:before,
+.fa-btc:before {
+ content: "\f15a";
+}
+
+.fa-file:before {
+ content: "\f15b";
+}
+
+.fa-file-text:before {
+ content: "\f15c";
+}
+
+.fa-sort-alpha-asc:before {
+ content: "\f15d";
+}
+
+.fa-sort-alpha-desc:before {
+ content: "\f15e";
+}
+
+.fa-sort-amount-asc:before {
+ content: "\f160";
+}
+
+.fa-sort-amount-desc:before {
+ content: "\f161";
+}
+
+.fa-sort-numeric-asc:before {
+ content: "\f162";
+}
+
+.fa-sort-numeric-desc:before {
+ content: "\f163";
+}
+
+.fa-thumbs-up:before {
+ content: "\f164";
+}
+
+.fa-thumbs-down:before {
+ content: "\f165";
+}
+
+.fa-youtube-square:before {
+ content: "\f166";
+}
+
+.fa-youtube:before {
+ content: "\f167";
+}
+
+.fa-xing:before {
+ content: "\f168";
+}
+
+.fa-xing-square:before {
+ content: "\f169";
+}
+
+.fa-youtube-play:before {
+ content: "\f16a";
+}
+
+.fa-dropbox:before {
+ content: "\f16b";
+}
+
+.fa-stack-overflow:before {
+ content: "\f16c";
+}
+
+.fa-instagram:before {
+ content: "\f16d";
+}
+
+.fa-flickr:before {
+ content: "\f16e";
+}
+
+.fa-adn:before {
+ content: "\f170";
+}
+
+.fa-bitbucket:before {
+ content: "\f171";
+}
+
+.fa-bitbucket-square:before {
+ content: "\f172";
+}
+
+.fa-tumblr:before {
+ content: "\f173";
+}
+
+.fa-tumblr-square:before {
+ content: "\f174";
+}
+
+.fa-long-arrow-down:before {
+ content: "\f175";
+}
+
+.fa-long-arrow-up:before {
+ content: "\f176";
+}
+
+.fa-long-arrow-left:before {
+ content: "\f177";
+}
+
+.fa-long-arrow-right:before {
+ content: "\f178";
+}
+
+.fa-apple:before {
+ content: "\f179";
+}
+
+.fa-windows:before {
+ content: "\f17a";
+}
+
+.fa-android:before {
+ content: "\f17b";
+}
+
+.fa-linux:before {
+ content: "\f17c";
+}
+
+.fa-dribbble:before {
+ content: "\f17d";
+}
+
+.fa-skype:before {
+ content: "\f17e";
+}
+
+.fa-foursquare:before {
+ content: "\f180";
+}
+
+.fa-trello:before {
+ content: "\f181";
+}
+
+.fa-female:before {
+ content: "\f182";
+}
+
+.fa-male:before {
+ content: "\f183";
+}
+
+.fa-gittip:before,
+.fa-gratipay:before {
+ content: "\f184";
+}
+
+.fa-sun-o:before {
+ content: "\f185";
+}
+
+.fa-moon-o:before {
+ content: "\f186";
+}
+
+.fa-archive:before {
+ content: "\f187";
+}
+
+.fa-bug:before {
+ content: "\f188";
+}
+
+.fa-vk:before {
+ content: "\f189";
+}
+
+.fa-weibo:before {
+ content: "\f18a";
+}
+
+.fa-renren:before {
+ content: "\f18b";
+}
+
+.fa-pagelines:before {
+ content: "\f18c";
+}
+
+.fa-stack-exchange:before {
+ content: "\f18d";
+}
+
+.fa-arrow-circle-o-right:before {
+ content: "\f18e";
+}
+
+.fa-arrow-circle-o-left:before {
+ content: "\f190";
+}
+
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+ content: "\f191";
+}
+
+.fa-dot-circle-o:before {
+ content: "\f192";
+}
+
+.fa-wheelchair:before {
+ content: "\f193";
+}
+
+.fa-vimeo-square:before {
+ content: "\f194";
+}
+
+.fa-turkish-lira:before,
+.fa-try:before {
+ content: "\f195";
+}
+
+.fa-plus-square-o:before {
+ content: "\f196";
+}
+
+.fa-space-shuttle:before {
+ content: "\f197";
+}
+
+.fa-slack:before {
+ content: "\f198";
+}
+
+.fa-envelope-square:before {
+ content: "\f199";
+}
+
+.fa-wordpress:before {
+ content: "\f19a";
+}
+
+.fa-openid:before {
+ content: "\f19b";
+}
+
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before {
+ content: "\f19c";
+}
+
+.fa-mortar-board:before,
+.fa-graduation-cap:before {
+ content: "\f19d";
+}
+
+.fa-yahoo:before {
+ content: "\f19e";
+}
+
+.fa-google:before {
+ content: "\f1a0";
+}
+
+.fa-reddit:before {
+ content: "\f1a1";
+}
+
+.fa-reddit-square:before {
+ content: "\f1a2";
+}
+
+.fa-stumbleupon-circle:before {
+ content: "\f1a3";
+}
+
+.fa-stumbleupon:before {
+ content: "\f1a4";
+}
+
+.fa-delicious:before {
+ content: "\f1a5";
+}
+
+.fa-digg:before {
+ content: "\f1a6";
+}
+
+.fa-pied-piper-pp:before {
+ content: "\f1a7";
+}
+
+.fa-pied-piper-alt:before {
+ content: "\f1a8";
+}
+
+.fa-drupal:before {
+ content: "\f1a9";
+}
+
+.fa-joomla:before {
+ content: "\f1aa";
+}
+
+.fa-language:before {
+ content: "\f1ab";
+}
+
+.fa-fax:before {
+ content: "\f1ac";
+}
+
+.fa-building:before {
+ content: "\f1ad";
+}
+
+.fa-child:before {
+ content: "\f1ae";
+}
+
+.fa-paw:before {
+ content: "\f1b0";
+}
+
+.fa-spoon:before {
+ content: "\f1b1";
+}
+
+.fa-cube:before {
+ content: "\f1b2";
+}
+
+.fa-cubes:before {
+ content: "\f1b3";
+}
+
+.fa-behance:before {
+ content: "\f1b4";
+}
+
+.fa-behance-square:before {
+ content: "\f1b5";
+}
+
+.fa-steam:before {
+ content: "\f1b6";
+}
+
+.fa-steam-square:before {
+ content: "\f1b7";
+}
+
+.fa-recycle:before {
+ content: "\f1b8";
+}
+
+.fa-automobile:before,
+.fa-car:before {
+ content: "\f1b9";
+}
+
+.fa-cab:before,
+.fa-taxi:before {
+ content: "\f1ba";
+}
+
+.fa-tree:before {
+ content: "\f1bb";
+}
+
+.fa-spotify:before {
+ content: "\f1bc";
+}
+
+.fa-deviantart:before {
+ content: "\f1bd";
+}
+
+.fa-soundcloud:before {
+ content: "\f1be";
+}
+
+.fa-database:before {
+ content: "\f1c0";
+}
+
+.fa-file-pdf-o:before {
+ content: "\f1c1";
+}
+
+.fa-file-word-o:before {
+ content: "\f1c2";
+}
+
+.fa-file-excel-o:before {
+ content: "\f1c3";
+}
+
+.fa-file-powerpoint-o:before {
+ content: "\f1c4";
+}
+
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before {
+ content: "\f1c5";
+}
+
+.fa-file-zip-o:before,
+.fa-file-archive-o:before {
+ content: "\f1c6";
+}
+
+.fa-file-sound-o:before,
+.fa-file-audio-o:before {
+ content: "\f1c7";
+}
+
+.fa-file-movie-o:before,
+.fa-file-video-o:before {
+ content: "\f1c8";
+}
+
+.fa-file-code-o:before {
+ content: "\f1c9";
+}
+
+.fa-vine:before {
+ content: "\f1ca";
+}
+
+.fa-codepen:before {
+ content: "\f1cb";
+}
+
+.fa-jsfiddle:before {
+ content: "\f1cc";
+}
+
+.fa-life-bouy:before,
+.fa-life-buoy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before {
+ content: "\f1cd";
+}
+
+.fa-circle-o-notch:before {
+ content: "\f1ce";
+}
+
+.fa-ra:before,
+.fa-resistance:before,
+.fa-rebel:before {
+ content: "\f1d0";
+}
+
+.fa-ge:before,
+.fa-empire:before {
+ content: "\f1d1";
+}
+
+.fa-git-square:before {
+ content: "\f1d2";
+}
+
+.fa-git:before {
+ content: "\f1d3";
+}
+
+.fa-y-combinator-square:before,
+.fa-yc-square:before,
+.fa-hacker-news:before {
+ content: "\f1d4";
+}
+
+.fa-tencent-weibo:before {
+ content: "\f1d5";
+}
+
+.fa-qq:before {
+ content: "\f1d6";
+}
+
+.fa-wechat:before,
+.fa-weixin:before {
+ content: "\f1d7";
+}
+
+.fa-send:before,
+.fa-paper-plane:before {
+ content: "\f1d8";
+}
+
+.fa-send-o:before,
+.fa-paper-plane-o:before {
+ content: "\f1d9";
+}
+
+.fa-history:before {
+ content: "\f1da";
+}
+
+.fa-circle-thin:before {
+ content: "\f1db";
+}
+
+.fa-header:before {
+ content: "\f1dc";
+}
+
+.fa-paragraph:before {
+ content: "\f1dd";
+}
+
+.fa-sliders:before {
+ content: "\f1de";
+}
+
+.fa-share-alt:before {
+ content: "\f1e0";
+}
+
+.fa-share-alt-square:before {
+ content: "\f1e1";
+}
+
+.fa-bomb:before {
+ content: "\f1e2";
+}
+
+.fa-soccer-ball-o:before,
+.fa-futbol-o:before {
+ content: "\f1e3";
+}
+
+.fa-tty:before {
+ content: "\f1e4";
+}
+
+.fa-binoculars:before {
+ content: "\f1e5";
+}
+
+.fa-plug:before {
+ content: "\f1e6";
+}
+
+.fa-slideshare:before {
+ content: "\f1e7";
+}
+
+.fa-twitch:before {
+ content: "\f1e8";
+}
+
+.fa-yelp:before {
+ content: "\f1e9";
+}
+
+.fa-newspaper-o:before {
+ content: "\f1ea";
+}
+
+.fa-wifi:before {
+ content: "\f1eb";
+}
+
+.fa-calculator:before {
+ content: "\f1ec";
+}
+
+.fa-paypal:before {
+ content: "\f1ed";
+}
+
+.fa-google-wallet:before {
+ content: "\f1ee";
+}
+
+.fa-cc-visa:before {
+ content: "\f1f0";
+}
+
+.fa-cc-mastercard:before {
+ content: "\f1f1";
+}
+
+.fa-cc-discover:before {
+ content: "\f1f2";
+}
+
+.fa-cc-amex:before {
+ content: "\f1f3";
+}
+
+.fa-cc-paypal:before {
+ content: "\f1f4";
+}
+
+.fa-cc-stripe:before {
+ content: "\f1f5";
+}
+
+.fa-bell-slash:before {
+ content: "\f1f6";
+}
+
+.fa-bell-slash-o:before {
+ content: "\f1f7";
+}
+
+.fa-trash:before {
+ content: "\f1f8";
+}
+
+.fa-copyright:before {
+ content: "\f1f9";
+}
+
+.fa-at:before {
+ content: "\f1fa";
+}
+
+.fa-eyedropper:before {
+ content: "\f1fb";
+}
+
+.fa-paint-brush:before {
+ content: "\f1fc";
+}
+
+.fa-birthday-cake:before {
+ content: "\f1fd";
+}
+
+.fa-area-chart:before {
+ content: "\f1fe";
+}
+
+.fa-pie-chart:before {
+ content: "\f200";
+}
+
+.fa-line-chart:before {
+ content: "\f201";
+}
+
+.fa-lastfm:before {
+ content: "\f202";
+}
+
+.fa-lastfm-square:before {
+ content: "\f203";
+}
+
+.fa-toggle-off:before {
+ content: "\f204";
+}
+
+.fa-toggle-on:before {
+ content: "\f205";
+}
+
+.fa-bicycle:before {
+ content: "\f206";
+}
+
+.fa-bus:before {
+ content: "\f207";
+}
+
+.fa-ioxhost:before {
+ content: "\f208";
+}
+
+.fa-angellist:before {
+ content: "\f209";
+}
+
+.fa-cc:before {
+ content: "\f20a";
+}
+
+.fa-shekel:before,
+.fa-sheqel:before,
+.fa-ils:before {
+ content: "\f20b";
+}
+
+.fa-meanpath:before {
+ content: "\f20c";
+}
+
+.fa-buysellads:before {
+ content: "\f20d";
+}
+
+.fa-connectdevelop:before {
+ content: "\f20e";
+}
+
+.fa-dashcube:before {
+ content: "\f210";
+}
+
+.fa-forumbee:before {
+ content: "\f211";
+}
+
+.fa-leanpub:before {
+ content: "\f212";
+}
+
+.fa-sellsy:before {
+ content: "\f213";
+}
+
+.fa-shirtsinbulk:before {
+ content: "\f214";
+}
+
+.fa-simplybuilt:before {
+ content: "\f215";
+}
+
+.fa-skyatlas:before {
+ content: "\f216";
+}
+
+.fa-cart-plus:before {
+ content: "\f217";
+}
+
+.fa-cart-arrow-down:before {
+ content: "\f218";
+}
+
+.fa-diamond:before {
+ content: "\f219";
+}
+
+.fa-ship:before {
+ content: "\f21a";
+}
+
+.fa-user-secret:before {
+ content: "\f21b";
+}
+
+.fa-motorcycle:before {
+ content: "\f21c";
+}
+
+.fa-street-view:before {
+ content: "\f21d";
+}
+
+.fa-heartbeat:before {
+ content: "\f21e";
+}
+
+.fa-venus:before {
+ content: "\f221";
+}
+
+.fa-mars:before {
+ content: "\f222";
+}
+
+.fa-mercury:before {
+ content: "\f223";
+}
+
+.fa-intersex:before,
+.fa-transgender:before {
+ content: "\f224";
+}
+
+.fa-transgender-alt:before {
+ content: "\f225";
+}
+
+.fa-venus-double:before {
+ content: "\f226";
+}
+
+.fa-mars-double:before {
+ content: "\f227";
+}
+
+.fa-venus-mars:before {
+ content: "\f228";
+}
+
+.fa-mars-stroke:before {
+ content: "\f229";
+}
+
+.fa-mars-stroke-v:before {
+ content: "\f22a";
+}
+
+.fa-mars-stroke-h:before {
+ content: "\f22b";
+}
+
+.fa-neuter:before {
+ content: "\f22c";
+}
+
+.fa-genderless:before {
+ content: "\f22d";
+}
+
+.fa-facebook-official:before {
+ content: "\f230";
+}
+
+.fa-pinterest-p:before {
+ content: "\f231";
+}
+
+.fa-whatsapp:before {
+ content: "\f232";
+}
+
+.fa-server:before {
+ content: "\f233";
+}
+
+.fa-user-plus:before {
+ content: "\f234";
+}
+
+.fa-user-times:before {
+ content: "\f235";
+}
+
+.fa-hotel:before,
+.fa-bed:before {
+ content: "\f236";
+}
+
+.fa-viacoin:before {
+ content: "\f237";
+}
+
+.fa-train:before {
+ content: "\f238";
+}
+
+.fa-subway:before {
+ content: "\f239";
+}
+
+.fa-medium:before {
+ content: "\f23a";
+}
+
+.fa-yc:before,
+.fa-y-combinator:before {
+ content: "\f23b";
+}
+
+.fa-optin-monster:before {
+ content: "\f23c";
+}
+
+.fa-opencart:before {
+ content: "\f23d";
+}
+
+.fa-expeditedssl:before {
+ content: "\f23e";
+}
+
+.fa-battery-4:before,
+.fa-battery:before,
+.fa-battery-full:before {
+ content: "\f240";
+}
+
+.fa-battery-3:before,
+.fa-battery-three-quarters:before {
+ content: "\f241";
+}
+
+.fa-battery-2:before,
+.fa-battery-half:before {
+ content: "\f242";
+}
+
+.fa-battery-1:before,
+.fa-battery-quarter:before {
+ content: "\f243";
+}
+
+.fa-battery-0:before,
+.fa-battery-empty:before {
+ content: "\f244";
+}
+
+.fa-mouse-pointer:before {
+ content: "\f245";
+}
+
+.fa-i-cursor:before {
+ content: "\f246";
+}
+
+.fa-object-group:before {
+ content: "\f247";
+}
+
+.fa-object-ungroup:before {
+ content: "\f248";
+}
+
+.fa-sticky-note:before {
+ content: "\f249";
+}
+
+.fa-sticky-note-o:before {
+ content: "\f24a";
+}
+
+.fa-cc-jcb:before {
+ content: "\f24b";
+}
+
+.fa-cc-diners-club:before {
+ content: "\f24c";
+}
+
+.fa-clone:before {
+ content: "\f24d";
+}
+
+.fa-balance-scale:before {
+ content: "\f24e";
+}
+
+.fa-hourglass-o:before {
+ content: "\f250";
+}
+
+.fa-hourglass-1:before,
+.fa-hourglass-start:before {
+ content: "\f251";
+}
+
+.fa-hourglass-2:before,
+.fa-hourglass-half:before {
+ content: "\f252";
+}
+
+.fa-hourglass-3:before,
+.fa-hourglass-end:before {
+ content: "\f253";
+}
+
+.fa-hourglass:before {
+ content: "\f254";
+}
+
+.fa-hand-grab-o:before,
+.fa-hand-rock-o:before {
+ content: "\f255";
+}
+
+.fa-hand-stop-o:before,
+.fa-hand-paper-o:before {
+ content: "\f256";
+}
+
+.fa-hand-scissors-o:before {
+ content: "\f257";
+}
+
+.fa-hand-lizard-o:before {
+ content: "\f258";
+}
+
+.fa-hand-spock-o:before {
+ content: "\f259";
+}
+
+.fa-hand-pointer-o:before {
+ content: "\f25a";
+}
+
+.fa-hand-peace-o:before {
+ content: "\f25b";
+}
+
+.fa-trademark:before {
+ content: "\f25c";
+}
+
+.fa-registered:before {
+ content: "\f25d";
+}
+
+.fa-creative-commons:before {
+ content: "\f25e";
+}
+
+.fa-gg:before {
+ content: "\f260";
+}
+
+.fa-gg-circle:before {
+ content: "\f261";
+}
+
+.fa-tripadvisor:before {
+ content: "\f262";
+}
+
+.fa-odnoklassniki:before {
+ content: "\f263";
+}
+
+.fa-odnoklassniki-square:before {
+ content: "\f264";
+}
+
+.fa-get-pocket:before {
+ content: "\f265";
+}
+
+.fa-wikipedia-w:before {
+ content: "\f266";
+}
+
+.fa-safari:before {
+ content: "\f267";
+}
+
+.fa-chrome:before {
+ content: "\f268";
+}
+
+.fa-firefox:before {
+ content: "\f269";
+}
+
+.fa-opera:before {
+ content: "\f26a";
+}
+
+.fa-internet-explorer:before {
+ content: "\f26b";
+}
+
+.fa-tv:before,
+.fa-television:before {
+ content: "\f26c";
+}
+
+.fa-contao:before {
+ content: "\f26d";
+}
+
+.fa-500px:before {
+ content: "\f26e";
+}
+
+.fa-amazon:before {
+ content: "\f270";
+}
+
+.fa-calendar-plus-o:before {
+ content: "\f271";
+}
+
+.fa-calendar-minus-o:before {
+ content: "\f272";
+}
+
+.fa-calendar-times-o:before {
+ content: "\f273";
+}
+
+.fa-calendar-check-o:before {
+ content: "\f274";
+}
+
+.fa-industry:before {
+ content: "\f275";
+}
+
+.fa-map-pin:before {
+ content: "\f276";
+}
+
+.fa-map-signs:before {
+ content: "\f277";
+}
+
+.fa-map-o:before {
+ content: "\f278";
+}
+
+.fa-map:before {
+ content: "\f279";
+}
+
+.fa-commenting:before {
+ content: "\f27a";
+}
+
+.fa-commenting-o:before {
+ content: "\f27b";
+}
+
+.fa-houzz:before {
+ content: "\f27c";
+}
+
+.fa-vimeo:before {
+ content: "\f27d";
+}
+
+.fa-black-tie:before {
+ content: "\f27e";
+}
+
+.fa-fonticons:before {
+ content: "\f280";
+}
+
+.fa-reddit-alien:before {
+ content: "\f281";
+}
+
+.fa-edge:before {
+ content: "\f282";
+}
+
+.fa-credit-card-alt:before {
+ content: "\f283";
+}
+
+.fa-codiepie:before {
+ content: "\f284";
+}
+
+.fa-modx:before {
+ content: "\f285";
+}
+
+.fa-fort-awesome:before {
+ content: "\f286";
+}
+
+.fa-usb:before {
+ content: "\f287";
+}
+
+.fa-product-hunt:before {
+ content: "\f288";
+}
+
+.fa-mixcloud:before {
+ content: "\f289";
+}
+
+.fa-scribd:before {
+ content: "\f28a";
+}
+
+.fa-pause-circle:before {
+ content: "\f28b";
+}
+
+.fa-pause-circle-o:before {
+ content: "\f28c";
+}
+
+.fa-stop-circle:before {
+ content: "\f28d";
+}
+
+.fa-stop-circle-o:before {
+ content: "\f28e";
+}
+
+.fa-shopping-bag:before {
+ content: "\f290";
+}
+
+.fa-shopping-basket:before {
+ content: "\f291";
+}
+
+.fa-hashtag:before {
+ content: "\f292";
+}
+
+.fa-bluetooth:before {
+ content: "\f293";
+}
+
+.fa-bluetooth-b:before {
+ content: "\f294";
+}
+
+.fa-percent:before {
+ content: "\f295";
+}
+
+.fa-gitlab:before {
+ content: "\f296";
+}
+
+.fa-wpbeginner:before {
+ content: "\f297";
+}
+
+.fa-wpforms:before {
+ content: "\f298";
+}
+
+.fa-envira:before {
+ content: "\f299";
+}
+
+.fa-universal-access:before {
+ content: "\f29a";
+}
+
+.fa-wheelchair-alt:before {
+ content: "\f29b";
+}
+
+.fa-question-circle-o:before {
+ content: "\f29c";
+}
+
+.fa-blind:before {
+ content: "\f29d";
+}
+
+.fa-audio-description:before {
+ content: "\f29e";
+}
+
+.fa-volume-control-phone:before {
+ content: "\f2a0";
+}
+
+.fa-braille:before {
+ content: "\f2a1";
+}
+
+.fa-assistive-listening-systems:before {
+ content: "\f2a2";
+}
+
+.fa-asl-interpreting:before,
+.fa-american-sign-language-interpreting:before {
+ content: "\f2a3";
+}
+
+.fa-deafness:before,
+.fa-hard-of-hearing:before,
+.fa-deaf:before {
+ content: "\f2a4";
+}
+
+.fa-glide:before {
+ content: "\f2a5";
+}
+
+.fa-glide-g:before {
+ content: "\f2a6";
+}
+
+.fa-signing:before,
+.fa-sign-language:before {
+ content: "\f2a7";
+}
+
+.fa-low-vision:before {
+ content: "\f2a8";
+}
+
+.fa-viadeo:before {
+ content: "\f2a9";
+}
+
+.fa-viadeo-square:before {
+ content: "\f2aa";
+}
+
+.fa-snapchat:before {
+ content: "\f2ab";
+}
+
+.fa-snapchat-ghost:before {
+ content: "\f2ac";
+}
+
+.fa-snapchat-square:before {
+ content: "\f2ad";
+}
+
+.fa-pied-piper:before {
+ content: "\f2ae";
+}
+
+.fa-first-order:before {
+ content: "\f2b0";
+}
+
+.fa-yoast:before {
+ content: "\f2b1";
+}
+
+.fa-themeisle:before {
+ content: "\f2b2";
+}
+
+.fa-google-plus-circle:before,
+.fa-google-plus-official:before {
+ content: "\f2b3";
+}
+
+.fa-fa:before,
+.fa-font-awesome:before {
+ content: "\f2b4";
+}
+
+.fa-handshake-o:before {
+ content: "\f2b5";
+}
+
+.fa-envelope-open:before {
+ content: "\f2b6";
+}
+
+.fa-envelope-open-o:before {
+ content: "\f2b7";
+}
+
+.fa-linode:before {
+ content: "\f2b8";
+}
+
+.fa-address-book:before {
+ content: "\f2b9";
+}
+
+.fa-address-book-o:before {
+ content: "\f2ba";
+}
+
+.fa-vcard:before,
+.fa-address-card:before {
+ content: "\f2bb";
+}
+
+.fa-vcard-o:before,
+.fa-address-card-o:before {
+ content: "\f2bc";
+}
+
+.fa-user-circle:before {
+ content: "\f2bd";
+}
+
+.fa-user-circle-o:before {
+ content: "\f2be";
+}
+
+.fa-user-o:before {
+ content: "\f2c0";
+}
+
+.fa-id-badge:before {
+ content: "\f2c1";
+}
+
+.fa-drivers-license:before,
+.fa-id-card:before {
+ content: "\f2c2";
+}
+
+.fa-drivers-license-o:before,
+.fa-id-card-o:before {
+ content: "\f2c3";
+}
+
+.fa-quora:before {
+ content: "\f2c4";
+}
+
+.fa-free-code-camp:before {
+ content: "\f2c5";
+}
+
+.fa-telegram:before {
+ content: "\f2c6";
+}
+
+.fa-thermometer-4:before,
+.fa-thermometer:before,
+.fa-thermometer-full:before {
+ content: "\f2c7";
+}
+
+.fa-thermometer-3:before,
+.fa-thermometer-three-quarters:before {
+ content: "\f2c8";
+}
+
+.fa-thermometer-2:before,
+.fa-thermometer-half:before {
+ content: "\f2c9";
+}
+
+.fa-thermometer-1:before,
+.fa-thermometer-quarter:before {
+ content: "\f2ca";
+}
+
+.fa-thermometer-0:before,
+.fa-thermometer-empty:before {
+ content: "\f2cb";
+}
+
+.fa-shower:before {
+ content: "\f2cc";
+}
+
+.fa-bathtub:before,
+.fa-s15:before,
+.fa-bath:before {
+ content: "\f2cd";
+}
+
+.fa-podcast:before {
+ content: "\f2ce";
+}
+
+.fa-window-maximize:before {
+ content: "\f2d0";
+}
+
+.fa-window-minimize:before {
+ content: "\f2d1";
+}
+
+.fa-window-restore:before {
+ content: "\f2d2";
+}
+
+.fa-times-rectangle:before,
+.fa-window-close:before {
+ content: "\f2d3";
+}
+
+.fa-times-rectangle-o:before,
+.fa-window-close-o:before {
+ content: "\f2d4";
+}
+
+.fa-bandcamp:before {
+ content: "\f2d5";
+}
+
+.fa-grav:before {
+ content: "\f2d6";
+}
+
+.fa-etsy:before {
+ content: "\f2d7";
+}
+
+.fa-imdb:before {
+ content: "\f2d8";
+}
+
+.fa-ravelry:before {
+ content: "\f2d9";
+}
+
+.fa-eercast:before {
+ content: "\f2da";
+}
+
+.fa-microchip:before {
+ content: "\f2db";
+}
+
+.fa-snowflake-o:before {
+ content: "\f2dc";
+}
+
+.fa-superpowers:before {
+ content: "\f2dd";
+}
+
+.fa-wpexplorer:before {
+ content: "\f2de";
+}
+
+.fa-meetup:before {
+ content: "\f2e0";
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
+/*# sourceMappingURL=../maps/css/admin.css.map */
diff --git a/assets/css/admin.min.css b/assets/css/admin.min.css
new file mode 100644
index 0000000000..aa8baf5c60
--- /dev/null
+++ b/assets/css/admin.min.css
@@ -0,0 +1,5 @@
+#poststuff .llms-metabox:before,#poststuff .llms-metabox:after,.llms-form-fields:before,.llms-metabox .llms-access-plans:before,.llms-collapsible .llms-collapsible-body:before,.llms-collapsible .llms-collapsible-header:before,.llms-collapsible:before,.llms-form-fields:after,.llms-metabox .llms-access-plans:after,.llms-collapsible .llms-collapsible-body:after,.llms-collapsible .llms-collapsible-header:after,.llms-collapsible:after{content:" ";display:table}#poststuff .llms-metabox:after,.llms-form-fields:after,.llms-metabox .llms-access-plans:after,.llms-collapsible .llms-collapsible-body:after,.llms-collapsible .llms-collapsible-header:after,.llms-collapsible:after{clear:both}.llms-button-action,.llms-button-danger,.llms-button-primary,.llms-button-secondary{border:none;border-radius:8px;color:#fefefe;cursor:pointer;display:inline-block;font-size:18px;font-weight:700;text-decoration:none;text-shadow:none;line-height:1;margin:0;max-width:100%;padding:12px 24px;position:relative;-webkit-transition:all .5s ease;transition:all .5s ease}.llms-button-action:disabled,.llms-button-danger:disabled,.llms-button-primary:disabled,.llms-button-secondary:disabled{opacity:.5}.llms-button-action:hover,.llms-button-action:active,.llms-button-danger:hover,.llms-button-danger:active,.llms-button-primary:hover,.llms-button-primary:active,.llms-button-secondary:hover,.llms-button-secondary:active{color:#fefefe}.llms-button-action:focus,.llms-button-danger:focus,.llms-button-primary:focus,.llms-button-secondary:focus{color:#fefefe}.llms-button-action.auto,.llms-button-danger.auto,.llms-button-primary.auto,.llms-button-secondary.auto{width:auto}.llms-button-action.full,.llms-button-danger.full,.llms-button-primary.full,.llms-button-secondary.full{display:block;text-align:center;width:100%}.llms-button-action.square,.llms-button-danger.square,.llms-button-primary.square,.llms-button-secondary.square{padding:12px}.llms-button-action.small,.llms-button-danger.small,.llms-button-primary.small,.llms-button-secondary.small{font-size:13px;padding:8px 14px}.llms-button-action.small.square,.llms-button-danger.small.square,.llms-button-primary.small.square,.llms-button-secondary.small.square{padding:8px}.llms-button-action.large,.llms-button-danger.large,.llms-button-primary.large,.llms-button-secondary.large{font-size:18px;line-height:1.2;padding:16px 32px}.llms-button-action.large.square,.llms-button-danger.large.square,.llms-button-primary.large.square,.llms-button-secondary.large.square{padding:16px}.llms-button-action.large .fa,.llms-button-danger.large .fa,.llms-button-primary.large .fa,.llms-button-secondary.large .fa{left:-7px;position:relative}a.llms-button-action,a.llms-button-danger,a.llms-button-primary{color:#fefefe}.llms-button-primary{background:#466dd8}.llms-button-primary:hover,.llms-button-primary.clicked{background:#2b55cb}.llms-button-primary:focus,.llms-button-primary:active{background:#6888df}.llms-button-secondary{background:#e1e1e1;color:#444}.llms-button-secondary:hover{color:#414141;background:#cdcdcd}.llms-button-secondary:focus,.llms-button-secondary:active{color:#414141;background:#ebebeb}a.llms-button-secondary{color:#444}.llms-button-action{background:#c05621}.llms-button-action:hover,.llms-button-action.clicked{background:#f67d28}.llms-button-action:focus,.llms-button-action:active{background:#faad76}.llms-button-danger{background:#bb231c}.llms-button-danger:hover{background:#981c17}.llms-button-danger:focus,.llms-button-danger:active{background:#cd261f}.llms-button-outline{background:rgba(0,0,0,0);border:3px solid #1d2327;border-radius:8px;color:#1d2327;cursor:pointer;font-size:16px;font-weight:700;text-decoration:none;text-shadow:none;line-height:1;margin:0;max-width:100%;padding:12px 24px;position:relative;-webkit-transition:all .5s ease;transition:all .5s ease}.llms-button-outline:disabled{opacity:.5}.llms-button-outline:hover,.llms-button-outline:active{color:#1d2327}.llms-button-outline:focus{color:#1d2327}.llms-button-outline.auto{width:auto}.llms-button-outline.full{display:block;text-align:center;width:100%}.llms-button-outline.square{padding:12px}.llms-course-continue-button{display:inline-block}.lifterlms [data-tip],.lifterlms [data-title-default],.lifterlms [data-title-active],.llms-metabox [data-tip],.llms-metabox [data-title-default],.llms-metabox [data-title-active],.llms-mb-container [data-tip],.llms-mb-container [data-title-default],.llms-mb-container [data-title-active],.llms-quiz-wrapper [data-tip],.llms-quiz-wrapper [data-title-default],.llms-quiz-wrapper [data-title-active]{position:relative}.lifterlms [data-tip].tip--top-right:before,.lifterlms [data-title-default].tip--top-right:before,.lifterlms [data-title-active].tip--top-right:before,.llms-metabox [data-tip].tip--top-right:before,.llms-metabox [data-title-default].tip--top-right:before,.llms-metabox [data-title-active].tip--top-right:before,.llms-mb-container [data-tip].tip--top-right:before,.llms-mb-container [data-title-default].tip--top-right:before,.llms-mb-container [data-title-active].tip--top-right:before,.llms-quiz-wrapper [data-tip].tip--top-right:before,.llms-quiz-wrapper [data-title-default].tip--top-right:before,.llms-quiz-wrapper [data-title-active].tip--top-right:before{bottom:100%;left:-10px}.lifterlms [data-tip].tip--top-right:hover:before,.lifterlms [data-title-default].tip--top-right:hover:before,.lifterlms [data-title-active].tip--top-right:hover:before,.llms-metabox [data-tip].tip--top-right:hover:before,.llms-metabox [data-title-default].tip--top-right:hover:before,.llms-metabox [data-title-active].tip--top-right:hover:before,.llms-mb-container [data-tip].tip--top-right:hover:before,.llms-mb-container [data-title-default].tip--top-right:hover:before,.llms-mb-container [data-title-active].tip--top-right:hover:before,.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-right:after,.lifterlms [data-title-default].tip--top-right:after,.lifterlms [data-title-active].tip--top-right:after,.llms-metabox [data-tip].tip--top-right:after,.llms-metabox [data-title-default].tip--top-right:after,.llms-metabox [data-title-active].tip--top-right:after,.llms-mb-container [data-tip].tip--top-right:after,.llms-mb-container [data-title-default].tip--top-right:after,.llms-mb-container [data-title-active].tip--top-right:after,.llms-quiz-wrapper [data-tip].tip--top-right:after,.llms-quiz-wrapper [data-title-default].tip--top-right:after,.llms-quiz-wrapper [data-title-active].tip--top-right:after{border-top-color:#444;left:6px;top:0}.lifterlms [data-tip].tip--top-right:hover:after,.lifterlms [data-title-default].tip--top-right:hover:after,.lifterlms [data-title-active].tip--top-right:hover:after,.llms-metabox [data-tip].tip--top-right:hover:after,.llms-metabox [data-title-default].tip--top-right:hover:after,.llms-metabox [data-title-active].tip--top-right:hover:after,.llms-mb-container [data-tip].tip--top-right:hover:after,.llms-mb-container [data-title-default].tip--top-right:hover:after,.llms-mb-container [data-title-active].tip--top-right:hover:after,.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after{top:-6px}.lifterlms [data-tip].tip--top-left:before,.lifterlms [data-title-default].tip--top-left:before,.lifterlms [data-title-active].tip--top-left:before,.llms-metabox [data-tip].tip--top-left:before,.llms-metabox [data-title-default].tip--top-left:before,.llms-metabox [data-title-active].tip--top-left:before,.llms-mb-container [data-tip].tip--top-left:before,.llms-mb-container [data-title-default].tip--top-left:before,.llms-mb-container [data-title-active].tip--top-left:before,.llms-quiz-wrapper [data-tip].tip--top-left:before,.llms-quiz-wrapper [data-title-default].tip--top-left:before,.llms-quiz-wrapper [data-title-active].tip--top-left:before{bottom:100%;right:-10px}.lifterlms [data-tip].tip--top-left:hover:before,.lifterlms [data-title-default].tip--top-left:hover:before,.lifterlms [data-title-active].tip--top-left:hover:before,.llms-metabox [data-tip].tip--top-left:hover:before,.llms-metabox [data-title-default].tip--top-left:hover:before,.llms-metabox [data-title-active].tip--top-left:hover:before,.llms-mb-container [data-tip].tip--top-left:hover:before,.llms-mb-container [data-title-default].tip--top-left:hover:before,.llms-mb-container [data-title-active].tip--top-left:hover:before,.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-left:after,.lifterlms [data-title-default].tip--top-left:after,.lifterlms [data-title-active].tip--top-left:after,.llms-metabox [data-tip].tip--top-left:after,.llms-metabox [data-title-default].tip--top-left:after,.llms-metabox [data-title-active].tip--top-left:after,.llms-mb-container [data-tip].tip--top-left:after,.llms-mb-container [data-title-default].tip--top-left:after,.llms-mb-container [data-title-active].tip--top-left:after,.llms-quiz-wrapper [data-tip].tip--top-left:after,.llms-quiz-wrapper [data-title-default].tip--top-left:after,.llms-quiz-wrapper [data-title-active].tip--top-left:after{border-top-color:#444;right:6px;top:0}.lifterlms [data-tip].tip--top-left:hover:after,.lifterlms [data-title-default].tip--top-left:hover:after,.lifterlms [data-title-active].tip--top-left:hover:after,.llms-metabox [data-tip].tip--top-left:hover:after,.llms-metabox [data-title-default].tip--top-left:hover:after,.llms-metabox [data-title-active].tip--top-left:hover:after,.llms-mb-container [data-tip].tip--top-left:hover:after,.llms-mb-container [data-title-default].tip--top-left:hover:after,.llms-mb-container [data-title-active].tip--top-left:hover:after,.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after{top:-6px}.lifterlms [data-tip].tip--bottom-left:before,.lifterlms [data-title-default].tip--bottom-left:before,.lifterlms [data-title-active].tip--bottom-left:before,.llms-metabox [data-tip].tip--bottom-left:before,.llms-metabox [data-title-default].tip--bottom-left:before,.llms-metabox [data-title-active].tip--bottom-left:before,.llms-mb-container [data-tip].tip--bottom-left:before,.llms-mb-container [data-title-default].tip--bottom-left:before,.llms-mb-container [data-title-active].tip--bottom-left:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:before{top:100%;right:-10px}.lifterlms [data-tip].tip--bottom-left:hover:before,.lifterlms [data-title-default].tip--bottom-left:hover:before,.lifterlms [data-title-active].tip--bottom-left:hover:before,.llms-metabox [data-tip].tip--bottom-left:hover:before,.llms-metabox [data-title-default].tip--bottom-left:hover:before,.llms-metabox [data-title-active].tip--bottom-left:hover:before,.llms-mb-container [data-tip].tip--bottom-left:hover:before,.llms-mb-container [data-title-default].tip--bottom-left:hover:before,.llms-mb-container [data-title-active].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-left:after,.lifterlms [data-title-default].tip--bottom-left:after,.lifterlms [data-title-active].tip--bottom-left:after,.llms-metabox [data-tip].tip--bottom-left:after,.llms-metabox [data-title-default].tip--bottom-left:after,.llms-metabox [data-title-active].tip--bottom-left:after,.llms-mb-container [data-tip].tip--bottom-left:after,.llms-mb-container [data-title-default].tip--bottom-left:after,.llms-mb-container [data-title-active].tip--bottom-left:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:after{border-bottom-color:#444;right:6px;bottom:0}.lifterlms [data-tip].tip--bottom-left:hover:after,.lifterlms [data-title-default].tip--bottom-left:hover:after,.lifterlms [data-title-active].tip--bottom-left:hover:after,.llms-metabox [data-tip].tip--bottom-left:hover:after,.llms-metabox [data-title-default].tip--bottom-left:hover:after,.llms-metabox [data-title-active].tip--bottom-left:hover:after,.llms-mb-container [data-tip].tip--bottom-left:hover:after,.llms-mb-container [data-title-default].tip--bottom-left:hover:after,.llms-mb-container [data-title-active].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after{bottom:-6px}.lifterlms [data-tip].tip--bottom-right:before,.lifterlms [data-title-default].tip--bottom-right:before,.lifterlms [data-title-active].tip--bottom-right:before,.llms-metabox [data-tip].tip--bottom-right:before,.llms-metabox [data-title-default].tip--bottom-right:before,.llms-metabox [data-title-active].tip--bottom-right:before,.llms-mb-container [data-tip].tip--bottom-right:before,.llms-mb-container [data-title-default].tip--bottom-right:before,.llms-mb-container [data-title-active].tip--bottom-right:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:before{top:100%;left:-10px}.lifterlms [data-tip].tip--bottom-right:hover:before,.lifterlms [data-title-default].tip--bottom-right:hover:before,.lifterlms [data-title-active].tip--bottom-right:hover:before,.llms-metabox [data-tip].tip--bottom-right:hover:before,.llms-metabox [data-title-default].tip--bottom-right:hover:before,.llms-metabox [data-title-active].tip--bottom-right:hover:before,.llms-mb-container [data-tip].tip--bottom-right:hover:before,.llms-mb-container [data-title-default].tip--bottom-right:hover:before,.llms-mb-container [data-title-active].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-right:after,.lifterlms [data-title-default].tip--bottom-right:after,.lifterlms [data-title-active].tip--bottom-right:after,.llms-metabox [data-tip].tip--bottom-right:after,.llms-metabox [data-title-default].tip--bottom-right:after,.llms-metabox [data-title-active].tip--bottom-right:after,.llms-mb-container [data-tip].tip--bottom-right:after,.llms-mb-container [data-title-default].tip--bottom-right:after,.llms-mb-container [data-title-active].tip--bottom-right:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:after{border-bottom-color:#444;left:6px;bottom:0}.lifterlms [data-tip].tip--bottom-right:hover:after,.lifterlms [data-title-default].tip--bottom-right:hover:after,.lifterlms [data-title-active].tip--bottom-right:hover:after,.llms-metabox [data-tip].tip--bottom-right:hover:after,.llms-metabox [data-title-default].tip--bottom-right:hover:after,.llms-metabox [data-title-active].tip--bottom-right:hover:after,.llms-mb-container [data-tip].tip--bottom-right:hover:after,.llms-mb-container [data-title-default].tip--bottom-right:hover:after,.llms-mb-container [data-title-active].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after{bottom:-6px}.lifterlms [data-tip]:before,.lifterlms [data-title-default]:before,.lifterlms [data-title-active]:before,.llms-metabox [data-tip]:before,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-active]:before,.llms-mb-container [data-tip]:before,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-active]:before,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-active]:before{background:#444;border-radius:4px;color:#fff;font-size:13px;line-height:1.2;padding:8px;max-width:300px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.lifterlms [data-tip]:after,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:after{content:"";border:6px solid rgba(0,0,0,0);height:0;width:0}.lifterlms [data-tip]:before,.lifterlms [data-tip]:after,.lifterlms [data-title-default]:before,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:before,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:before,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:before,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:before,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:before,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:before,.llms-quiz-wrapper [data-title-active]:after{opacity:0;-webkit-transition:all .2s .1s ease;transition:all .2s .1s ease;position:absolute;pointer-events:none;visibility:hidden}.lifterlms [data-tip]:hover:before,.lifterlms [data-tip]:hover:after,.lifterlms [data-title-default]:hover:before,.lifterlms [data-title-default]:hover:after,.lifterlms [data-title-active]:hover:before,.lifterlms [data-title-active]:hover:after,.llms-metabox [data-tip]:hover:before,.llms-metabox [data-tip]:hover:after,.llms-metabox [data-title-default]:hover:before,.llms-metabox [data-title-default]:hover:after,.llms-metabox [data-title-active]:hover:before,.llms-metabox [data-title-active]:hover:after,.llms-mb-container [data-tip]:hover:before,.llms-mb-container [data-tip]:hover:after,.llms-mb-container [data-title-default]:hover:before,.llms-mb-container [data-title-default]:hover:after,.llms-mb-container [data-title-active]:hover:before,.llms-mb-container [data-title-active]:hover:after,.llms-quiz-wrapper [data-tip]:hover:before,.llms-quiz-wrapper [data-tip]:hover:after,.llms-quiz-wrapper [data-title-default]:hover:before,.llms-quiz-wrapper [data-title-default]:hover:after,.llms-quiz-wrapper [data-title-active]:hover:before,.llms-quiz-wrapper [data-title-active]:hover:after{opacity:1;-webkit-transition:all 0 .1s ease;transition:all 0 .1s ease;visibility:visible;z-index:99999999}.lifterlms [data-tip]:before,.llms-metabox [data-tip]:before,.llms-mb-container [data-tip]:before,.llms-quiz-wrapper [data-tip]:before{content:attr(data-tip)}.lifterlms [data-tip].active:before,.llms-metabox [data-tip].active:before,.llms-mb-container [data-tip].active:before,.llms-quiz-wrapper [data-tip].active:before{content:attr(data-tip-active)}#adminmenu .toplevel_page_lifterlms .wp-menu-image img{padding-top:6px;width:20px}#adminmenu .toplevel_page_lifterlms a[href*="page=llms-add-ons"],#adminmenu .opensub .wp-submenu li.current a[href*="page=llms-add-ons"],#adminmenu .wp-submenu li.current a[href*="page=llms-add-ons"],#adminmenu .wp-submenu li.current a[href*="page=llms-add-ons"],#adminmenu .wp-submenu li.current a[href*="page=llms-add-ons"],#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a[href*="page=llms-add-ons"]{color:#f8954f}.last-col{float:right;padding-right:0 !important}.last-col:after{clear:both}@media(max-width: 767px){.m-all{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;padding-right:0}.m-1of2{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.m-1of3{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:33.33%}.m-2of3{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:66.66%}.m-1of4{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:25%}.m-3of4{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:75%}.m-right{text-align:center}.m-center{text-align:center}.m-left{text-align:center}.d-right{text-align:right}.d-center{text-align:center}.d-left{text-align:left}}@media(min-width: 768px)and (max-width: 1029px){.t-all{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;padding-right:0}.t-1of2{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.t-1of3{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:33.33%}.t-2of3{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:66.66%}.t-1of4{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:25%}.t-3of4{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:75%}.t-1of5{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:20%}.t-2of5{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:40%}.t-3of5{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:60%}.t-4of5{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:80%}.d-right{text-align:right}.d-center{text-align:center}.d-left{text-align:left}}@media(min-width: 1030px){.d-all{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;padding-right:0}.d-1of2{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.d-1of3{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:33.33%}.d-2of3{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:66.66%}.d-1of4{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:25%}.d-3of4{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:75%}.d-1of5{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:20%}.d-2of5{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:40%}.d-3of5{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:60%}.d-4of5{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:80%}.d-1of6{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:16.6666666667%}.d-1of7{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:14.2857142857%}.d-2of7{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:28.5714286%}.d-3of7{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:42.8571429%}.d-4of7{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:57.1428572%}.d-5of7{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:71.4285715%}.d-6of7{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:85.7142857%}.d-1of8{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:12.5%}.d-1of9{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:11.1111111111%}.d-1of10{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:10%}.d-1of11{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:9.0909090909%}.d-1of12{float:left;padding-right:.75em;-webkit-box-sizing:border-box;box-sizing:border-box;width:8.33%}.d-right{text-align:right}.d-center{text-align:center}.d-left{text-align:left}}#llms-form-wrapper .llms-search-form-wrapper{border-bottom:1px solid #999;margin:20px 0}#llms-form-wrapper #llms_analytics_search{border:none !important;text-shadow:none !important;border:none !important;outline:none !important;-webkit-box-shadow:none !important;box-shadow:none !important;margin:0 !important;color:#fefefe !important;background:#466dd8 !important;border-radius:0;-webkit-transition:.5s;transition:.5s}#llms-form-wrapper #llms_analytics_search:hover{background:#0185a3 !important}#llms-form-wrapper #llms_analytics_search:active{background:#33b1cb !important}#llms-skip-setup-form .llms-admin-link{background:none !important;border:none;padding:0 !important;color:#0074a2;cursor:pointer}#llms-skip-setup-form .llms-admin-link:hover{color:#2ea2cc}#llms-skip-setup-form .llms-admin-link:focus{color:#124964}.llms-switch{position:relative}.llms-switch .llms-toggle{position:absolute;margin-left:-9999px;visibility:hidden}.llms-switch .llms-toggle+label{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;position:relative;cursor:pointer;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.llms-switch input.llms-toggle-round+label{border:2px solid #6c7781;border-radius:10px;height:20px;width:36px}.llms-switch input.llms-toggle-round+label:before,.llms-switch input.llms-toggle-round+label:after{-webkit-box-sizing:border-box;box-sizing:border-box;content:"";display:block;position:absolute;-webkit-transition:background .4s;transition:background .4s}.llms-switch input.llms-toggle-round:checked+label{border-color:#11a0d2;background-color:#11a0d2}.llms-switch input.llms-toggle-round+label:after{height:12px;left:2px;top:2px;background-color:#6c7781;border-radius:50%;-webkit-transition:margin .4s;transition:margin .4s;width:12px;z-index:3}.llms-switch input.llms-toggle-round:checked+label:after{background-color:#fefefe;margin-left:16px}.llms-switch input.llms-toggle-round+label:before{height:8px;top:4px;border:1px solid #6c7781;border-radius:50%;right:4px;width:8px;z-index:2}.llms-switch input.llms-toggle-round:checked+label:before{border-color:#fefefe;border-radius:0;left:6px;right:auto;width:2px}#llms-profile-fields{margin:50px 0}#llms-profile-fields .llms-form-field{padding-left:0}#llms-profile-fields label{display:block;font-weight:bold;padding:8px 0 2px}#llms-profile-fields .type-checkbox .type-checkbox label{display:initial;font-weight:initial;padding:0}#llms-profile-fields .type-checkbox .type-checkbox input{display:inline-block;margin-bottom:0;width:1rem}#llms-profile-fields select{max-width:100%}a.llms-voucher-delete{background:#bb231c;color:#fefefe;display:block;padding:4px 2px;text-decoration:none;-webkit-transition:ease .3s all;transition:ease .3s all}a.llms-voucher-delete:hover{background:#af3a26}.llms-voucher-codes-wrapper table,.llms-voucher-redemption-wrapper table{width:100%;border-collapse:collapse}.llms-voucher-codes-wrapper table th,.llms-voucher-codes-wrapper table td,.llms-voucher-redemption-wrapper table th,.llms-voucher-redemption-wrapper table td{border:none}.llms-voucher-codes-wrapper table thead,.llms-voucher-redemption-wrapper table thead{background-color:#466dd8;color:#fff}.llms-voucher-codes-wrapper table thead th,.llms-voucher-redemption-wrapper table thead th{padding:10px 10px}.llms-voucher-codes-wrapper table tr,.llms-voucher-redemption-wrapper table tr{counter-increment:row-counter}.llms-voucher-codes-wrapper table tr:nth-child(even),.llms-voucher-redemption-wrapper table tr:nth-child(even){background-color:#f1f1f1}.llms-voucher-codes-wrapper table tr td,.llms-voucher-redemption-wrapper table tr td{padding:5px}.llms-voucher-codes-wrapper table tr td:first-child:before,.llms-voucher-redemption-wrapper table tr td:first-child:before{content:counter(row-counter)}.llms-voucher-codes-wrapper table{width:100%;border-collapse:collapse}.llms-voucher-codes-wrapper table th,.llms-voucher-codes-wrapper table td{border:none}.llms-voucher-codes-wrapper table thead{background-color:#466dd8;color:#fff}.llms-voucher-codes-wrapper table tr:nth-child(even){background-color:#f1f1f1}.llms-voucher-codes-wrapper table tr td span{display:inline-block;min-width:30px}.llms-voucher-codes-wrapper button{cursor:pointer}.llms-voucher-codes-wrapper .llms-voucher-delete{float:right;margin-right:15px}.llms-voucher-codes-wrapper .llms-voucher-uses{width:50px}.llms-voucher-codes-wrapper .llms-voucher-add-codes{float:right}.llms-voucher-codes-wrapper .llms-voucher-add-codes input[type=text]{width:30px}.llms-voucher-export-wrapper .llms-voucher-export-type{width:100%}.llms-voucher-export-wrapper .llms-voucher-export-type p{margin:0 0 0 15px}.llms-voucher-export-wrapper .llms-voucher-email-wrapper{width:100%;margin:25px 0}.llms-voucher-export-wrapper .llms-voucher-email-wrapper input[type=text]{width:100%}.llms-voucher-export-wrapper .llms-voucher-email-wrapper p{margin:0}.llms-voucher-export-wrapper>button{float:right}.postbox .inside{overflow:auto}.llms-widget{background-color:#fff;border:1px solid #dedede;border-radius:12px;-webkit-box-shadow:0px 0px 1px rgba(48,49,51,.05),0px 2px 4px rgba(48,49,51,.1);box-shadow:0px 0px 1px rgba(48,49,51,.05),0px 2px 4px rgba(48,49,51,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:20px;padding:20px;position:relative;width:100%}.llms-widget.alt{border:1px solid #ccc;background-color:#efefef;margin-bottom:10px}.llms-widget.alt .llms-label{color:#777;font-size:14px;margin-bottom:10px;padding-bottom:5px}.llms-widget.alt h2{color:#444;font-weight:300}.llms-widget a{border-bottom:1px dotted #466dd8;display:inline-block;text-decoration:none}.llms-widget a:hover{border-bottom:1px dotted #2b55cb}.llms-widget .llms-widget-content{margin:.67em 0;color:#466dd8;font-size:2.4em;font-weight:700;line-height:1;word-break:break-all}.llms-widget h2{font-size:1.8em}.llms-widget .llms-label{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:18px;font-weight:400;margin:0 0 10px 0;text-align:center}.llms-widget .llms-chart{width:100%;padding:10px;-webkit-box-sizing:border-box;box-sizing:border-box}.llms-widget mark.yes{background-color:#7ad03a}.llms-widget .llms-subtitle{margin-bottom:0}.llms-widget .spinner{float:none;left:50%;margin:-10px 0 0 -10px;position:absolute;top:50%;z-index:2}.llms-widget.is-loading:before{background:#fefefe;bottom:0;content:"";left:0;opacity:.9;position:absolute;right:0;top:0;z-index:1}.llms-widget.is-loading .spinner{visibility:visible}.llms-widget td[colspan="2"]{padding-left:0}.llms-widget tr.llms-disabled-field{opacity:.5;pointer-events:none}.llms-widget-1-3,.llms-widget-1-4,.llms-widget-1-5{text-align:center}.llms-widget .llms-widget-info-toggle{color:#aaa;cursor:pointer;font-size:16px;position:absolute;right:20px;top:20px}.llms-widget.info-showing .llms-widget-info{display:block}.llms-widget-info{background:#444;color:#fefefe;bottom:-50px;display:none;padding:15px;position:absolute;text-align:center;left:10px;right:15px;z-index:3}.llms-widget-info:before{content:"";border:12px solid rgba(0,0,0,0);border-bottom-color:#444;left:50%;margin-left:-12px;position:absolute;top:-24px}.llms-widget-info p{margin:0}.llms-widget-row:before,.llms-widget-row:after{content:" ";display:table}.llms-widget-row:after{clear:both}.llms-widget-row .no-padding{padding:0 !important}svg.icon{height:24px;width:24px;display:inline-block;fill:currentColor;vertical-align:baseline}button svg.icon{height:18px;width:18px;margin:4px -4px 0 4px;-webkit-filter:drop-shadow(0 1px #eee);filter:drop-shadow(0 1px #eee);float:right}svg.icon.menu-icon{height:20px;width:20px;display:inline-block;fill:currentColor;vertical-align:text-bottom;margin-right:10px}svg.icon.tree-icon{height:13px;width:13px;vertical-align:middle}svg.icon.section-icon{height:16px;width:16px;vertical-align:text-bottom}svg.icon.button-icon{height:16px;width:16px;vertical-align:text-bottom}svg.icon.button-icon-attr{height:10px;width:10px;vertical-align:middle}svg.icon.list-icon{height:12px;width:12px;vertical-align:middle}svg.icon.list-icon.on{color:#466dd8}svg.icon.list-icon.off{color:#444}svg.icon.detail-icon{height:16px;width:16px;vertical-align:text-bottom;cursor:default}svg.icon.detail-icon.on{color:#466dd8}svg.icon.detail-icon.off{color:#ccc}svg.icon-ion-arrow-up{-webkit-transform:rotate(90deg);transform:rotate(90deg)}svg use{pointer-events:none}#side-sortables .tab-content{padding:0}.llms-mb-container .tab-content{display:none;background-color:#fff;padding:0 20px}.llms-mb-container .tab-content ul:not(.select2-selection__rendered){margin:0 0 15px 0}.llms-mb-container .tab-content ul:not(.select2-selection__rendered)>li{padding:20px 0;margin:0}.llms-mb-container .tab-content ul:not(.select2-selection__rendered)>li.select:not([class*=d-]){width:100%}.llms-mb-container .tab-content ul:not(.select2-selection__rendered)>li:last-child{border:0;padding-bottom:0}.llms-mb-container .tab-content ul:not(.select2-selection__rendered)>li.top{border-bottom:0;padding-bottom:0}.llms-mb-container .tab-content .full-width{width:100%}.llms-mb-container .tab-content #wp-content-editor-tools{background:none}.llms-mb-container .tab-content.llms-active{display:inherit}.llms-mb-container .tab-content .no-border{border-bottom:0px}.topModal{display:none;position:relative;border:4px solid gray;background:#fff;z-index:1000001;padding:2px;max-width:500px;margin:34px auto 0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-color:#fff;border-radius:2px;border:1px solid #ddd}.topModalClose{float:right;cursor:pointer;margin-right:10px;margin-top:10px}.topModalContainer{display:none;overflow:auto;overflow-y:hidden;position:fixed;top:0 !important;right:0;bottom:0;left:0;-webkit-overflow-scrolling:touch;width:auto !important;margin-left:0 !important;background-color:rgba(0,0,0,0) !important;z-index:100002 !important}.topModalBackground{display:none;background:#000;position:fixed;height:100%;width:100%;top:0 !important;left:0;margin-left:0 !important;z-index:100002 !important;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:auto;overflow-y:hidden}body.modal-open{overflow:hidden}.llms-modal-header{border-top-right-radius:1px;border-top-left-radius:1px;background:#466dd8;color:#eee;padding:10px 15px;font-size:18px}#llms-icon-modal-close{width:16px;height:16px;fill:#fefefe}.llms-modal-content{padding:20px}.llms-modal-content h3{margin-top:0}.llms-modal-form h1{margin-top:0}.llms-modal-form input[type=text]{width:100%}.llms-modal-form textarea,.llms-modal-form input[type=text],.llms-modal-form input[type=password],.llms-modal-form input[type=file],.llms-modal-form input[type=datetime],.llms-modal-form input[type=datetime-local],.llms-modal-form input[type=date],.llms-modal-form input[type=month],.llms-modal-form input[type=time],.llms-modal-form input[type=week],.llms-modal-form input[type=number],.llms-modal-form input[type=email],.llms-modal-form input[type=url],.llms-modal-form input[type=search],.llms-modal-form input[type=tel],.llms-modal-form input[type=color]{padding:0 .4em 0 .4em;margin-bottom:2em;vertical-align:middle;border-radius:3px;min-width:50px;max-width:635px;width:100%;min-height:32px;background-color:#fff;border:1px solid #ccc;margin:0 0 24px 0;outline:none;-webkit-transition:border .3s ease-in-out 0s;transition:border .3s ease-in-out 0s}.llms-modal-form textarea:focus,.llms-modal-form input[type=text]:focus,.llms-modal-form input[type=password]:focus,.llms-modal-form input[type=file]:focus,.llms-modal-form input[type=datetime]:focus,.llms-modal-form input[type=datetime-local]:focus,.llms-modal-form input[type=date]:focus,.llms-modal-form input[type=month]:focus,.llms-modal-form input[type=time]:focus,.llms-modal-form input[type=week]:focus,.llms-modal-form input[type=number]:focus,.llms-modal-form input[type=email]:focus,.llms-modal-form input[type=url]:focus,.llms-modal-form input[type=search]:focus,.llms-modal-form input[type=tel]:focus,.llms-modal-form input[type=color]:focus{background:#fefefe;border:1px solid #466dd8}.llms-modal-form textarea{padding:.4em !important;height:100px !important;border-radius:3px;vertical-align:middle;min-height:32px;outline:none;-webkit-box-sizing:border-box;box-sizing:border-box}.llms-modal-form textarea:focus{background:#fefefe;border:1px solid #466dd8}.llms-modal-form .chosen-container-single .chosen-single{border-radius:3px;vertical-align:middle;min-height:32px;border:1px solid #ccc;width:100%;background:#fefefe !important;outline:none;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 0 0 #fff;box-shadow:0 0 0 #fff;line-height:32px;margin:0 0 24px 0}.llms-modal-form .chosen-container-single .chosen-single:focus{background:#fefefe;border:1px solid #466dd8}.llms-modal-form .chosen-container-single .chosen-single div b{margin-top:4px}.llms-modal-form .chosen-search input[type=text]{border:1px solid #ccc}.llms-modal-form .chosen-search input[type=text]:focus{background-color:#fefefe;border:1px solid #466dd8}.llms-modal-form .chosen-container-single .chosen-drop{margin-top:-28px}.llms-modal-form .llms-button-primary,.llms-modal-form .llms-button-secondary{padding:10px 10px;border-radius:0;-webkit-transition:.5s;transition:.5s;-webkit-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px #ccc}.llms-modal-form .llms-button-primary.full,.llms-modal-form .llms-button-secondary.full{width:100%}.modal-open .select2-dropdown{z-index:1000005}.button.llms-merge-code-button{vertical-align:middle}.button.llms-merge-code-button svg{margin-right:2px;position:relative;top:4px;width:16px}.button.llms-merge-code-button svg g{fill:currentColor}.llms-mb-container .llms-merge-code-wrapper{float:right;top:-5px}.llms-merge-code-wrapper{display:inline;position:relative}.llms-merge-codes{background:#f7f7f7;border:1px solid #ccc;border-radius:3px;-webkit-box-shadow:0 1px 0 #ccc;box-shadow:0 1px 0 #ccc;color:#555;display:none;left:1px;overflow:hidden;position:absolute;top:30px;width:200px}.llms-merge-codes ul{margin:0;padding:0}.llms-merge-codes li{cursor:pointer;margin:0;padding:4px 8px !important;border-bottom:1px solid #ccc}.llms-merge-codes li:hover{color:#23282d;background:#fefefe}.llms-merge-codes.active{display:block;z-index:777}.llms-nav-tab,.llms-nav-tab-filters{display:block;width:100%}form.llms-nav-tab-filters.full-width{width:100%}form.llms-nav-tab-filters.full-width label{display:inline-block;width:10%;text-align:left}form.llms-nav-tab-filters.full-width .select2-container{width:85% !important}.llms-nav-tab-settings{display:block;width:100%}#llms-form-wrapper .llms-select{width:100%;margin-bottom:20px}#llms-form-wrapper .llms-checkbox{display:inline-block;width:100%;text-align:left}#llms-form-wrapper .llms-filter-options{width:100%}#llms-form-wrapper .llms-date-select{width:100%;display:inline-block;margin-bottom:20px}#llms-form-wrapper .llms-date-select input[type=text]{width:100%}ul.tabs li{display:block}@media only screen and (min-width: 481px){#llms-form-wrapper .llms-checkbox{width:33%}}@media only screen and (min-width: 768px){ul.tabs li{display:inline-block}.llms-nav-tab{display:inline-block;width:33%}.llms-nav-tab-settings{display:inline-block;width:25%}#llms-form-wrapper .llms-select{width:50%;max-width:500px}#llms-form-wrapper .llms-filter-options{width:50%;max-width:500px}#llms-form-wrapper .llms-date-select{width:47.5%}#llms-form-wrapper .llms-date-select:first-child{margin-right:5%}.llms-widget input[type=text],.llms-widget input[type=password],.llms-widget input[type=datetime],.llms-widget input[type=datetime-local],.llms-widget input[type=date],.llms-widget input[type=month],.llms-widget input[type=time],.llms-widget input[type=week],.llms-widget input[type=number],.llms-widget input[type=email],.llms-widget input[type=url],.llms-widget input[type=search],.llms-widget input[type=tel],.llms-widget input[type=color],.llms-widget select,.llms-widget textarea{width:50%}.llms-widget input[type=text].medium,.llms-widget input[type=password].medium,.llms-widget input[type=datetime].medium,.llms-widget input[type=datetime-local].medium,.llms-widget input[type=date].medium,.llms-widget input[type=month].medium,.llms-widget input[type=time].medium,.llms-widget input[type=week].medium,.llms-widget input[type=number].medium,.llms-widget input[type=email].medium,.llms-widget input[type=url].medium,.llms-widget input[type=search].medium,.llms-widget input[type=tel].medium,.llms-widget input[type=color].medium,.llms-widget select.medium,.llms-widget textarea.medium{width:30%}.llms-widget input[type=text].small,.llms-widget input[type=password].small,.llms-widget input[type=datetime].small,.llms-widget input[type=datetime-local].small,.llms-widget input[type=date].small,.llms-widget input[type=month].small,.llms-widget input[type=time].small,.llms-widget input[type=week].small,.llms-widget input[type=number].small,.llms-widget input[type=email].small,.llms-widget input[type=url].small,.llms-widget input[type=search].small,.llms-widget input[type=tel].small,.llms-widget input[type=color].small,.llms-widget select.small,.llms-widget textarea.small{width:20%}.llms-widget input[type=text].tiny,.llms-widget input[type=password].tiny,.llms-widget input[type=datetime].tiny,.llms-widget input[type=datetime-local].tiny,.llms-widget input[type=date].tiny,.llms-widget input[type=month].tiny,.llms-widget input[type=time].tiny,.llms-widget input[type=week].tiny,.llms-widget input[type=number].tiny,.llms-widget input[type=email].tiny,.llms-widget input[type=url].tiny,.llms-widget input[type=search].tiny,.llms-widget input[type=tel].tiny,.llms-widget input[type=color].tiny,.llms-widget select.tiny,.llms-widget textarea.tiny{width:10%}}@media only screen and (min-width: 1030px){.llms-nav-tab{display:inline-block;width:33.333%}.llms-nav-tab-settings{display:inline-block;width:25%}#llms-form-wrapper .llms-select{display:inline-block;width:47.5%}#llms-form-wrapper .llms-select:first-child{margin-right:5%}#llms-form-wrapper .llms-filter-options{display:inline-block;width:47.5%}#llms-form-wrapper .llms-filter-options.date-filter{margin-right:5%}#llms-form-wrapper .llms-filter-options .llms-date-select{margin-bottom:0}#llms-form-wrapper .llms-date-select{width:47.5%}#llms-form-wrapper .llms-date-select:first-child{margin-right:5%}.llms-widget-row:before,.llms-widget-row:after{content:" ";display:table}.llms-widget-row:after{clear:both}.llms-widget-row .llms-widget-1-5{vertical-align:top;width:20%;float:left;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 5px}.llms-widget-row .llms-widget-1-4{vertical-align:top;width:25%;float:left;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 5px}.llms-widget-row .llms-widget-1-3{width:33.3%;float:left;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 5px}.llms-widget-row .llms-widget-1-2{width:50%;float:left;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 5px;vertical-align:top}}@media only screen and (min-width: 1240px){.llms-nav-tab-filters,.llms-nav-tab-settings{float:left;width:12.5%}}.wrap.lifterlms{margin-top:0}.llms-header{background-color:#fff;margin:0 0 0 -20px;padding:20px 10px;position:relative;z-index:1}.llms-header .llms-inside-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 10px}.llms-header .lifterlms-logo{-webkit-box-flex:0;-ms-flex:0 0 190px;flex:0 0 190px;max-height:52px;margin-right:10px}.llms-header .llms-meta{-ms-flex-item-align:center;align-self:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:16px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;line-height:1.5}.llms-header .llms-meta .llms-version{background-color:#1d2327;color:#fff;border-radius:999px;font-size:13px;font-weight:700;padding:6px 12px}.llms-header .llms-meta a{display:inline-block}.llms-header .llms-meta .llms-license{border-right:1px solid #ccc;font-weight:700;margin-right:12px;padding-right:12px}.llms-header .llms-meta .llms-license a{text-decoration:none}.llms-header .llms-meta .llms-license a:before{content:"";display:inline-block;font:400 16px/1 dashicons;left:0;padding-right:3px;position:relative;text-decoration:none;vertical-align:text-bottom}.llms-header .llms-meta .llms-license a.llms-license-none{color:#888}.llms-header .llms-meta .llms-license a.llms-license-none:before{content:""}.llms-header .llms-meta .llms-license a.llms-license-active{color:#008a20}.llms-header .llms-meta .llms-license a.llms-license-active:before{content:""}.llms-header .llms-meta .llms-support{font-weight:700}.llms-header .llms-meta .llms-support a{color:#1d2327;text-decoration:none}.llms-subheader{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.15);box-shadow:0 1px 3px rgba(0,0,0,.15);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin-left:-20px;padding:10px 20px;width:100%;z-index:1}.llms-subheader h1{font-weight:700;padding:0}.llms-subheader h1 a{color:inherit;text-decoration:none}#post_course_difficulty{min-width:200px}#_video-embed,#_audio-embed{width:100%}hr{background-color:#ccc;border:none;height:1px;margin:30px 0;padding:0}.llms_certificate_default_image,.llms_certificate_image{width:300px}.llms_achievement_default_image,.llms_achievement_image{width:120px}div[id^=lifterlms-] .inside{overflow:visible}.notice.llms-admin-notice{background-color:#fff;border:1px solid #ccd0d4;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.15);box-shadow:0 1px 4px rgba(0,0,0,.15);display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 !important;position:relative}.notice.llms-admin-notice .notice-dismiss{text-decoration:none}.notice.llms-admin-notice.notice-warning{border-left:4px solid #f8954f}.notice.llms-admin-notice.notice-warning .llms-admin-notice-icon{background-color:#fef4ed}.notice.llms-admin-notice.notice-info{border-left:4px solid #466dd8}.notice.llms-admin-notice.notice-info h3{color:#466dd8}.notice.llms-admin-notice.notice-info .llms-admin-notice-icon{background-color:#edf0fb}.notice.llms-admin-notice.notice-success{border-left:4px solid #18a957}.notice.llms-admin-notice.notice-success h3{color:#18a957}.notice.llms-admin-notice.notice-success .llms-admin-notice-icon{background-color:#e8f6ee}.notice.llms-admin-notice.notice-error{border-left:4px solid #df1642}.notice.llms-admin-notice.notice-error h3{color:#9c0f2e}.notice.llms-admin-notice.notice-error .llms-admin-notice-icon{background-color:#fce8ec}.notice.llms-admin-notice .llms-admin-notice-icon{background-image:url(../../assets/images/lifterlms-icon-color.png);background-position:center center;background-repeat:no-repeat;background-size:30px;min-width:70px}.notice.llms-admin-notice .llms-admin-notice-content{color:#111;padding:20px}.notice.llms-admin-notice h3{font-size:18px;font-weight:700;line-height:25px;margin:0 0 15px 0}.notice.llms-admin-notice button,.notice.llms-admin-notice .llms-button-primary{display:inline-block}.notice.llms-admin-notice p{font-size:14px;line-height:22px;margin:0 0 15px 0;max-width:65em;padding:0}.notice.llms-admin-notice p:last-of-type{margin-bottom:0}.llms-button-action.small .dashicons,.llms-button-danger.small .dashicons,.llms-button-primary.small .dashicons,.llms-button-secondary.small .dashicons{font-size:13px;height:13px;width:13px}.llms-button-action:hover,.llms-button-danger:hover,.llms-button-primary:hover,.llms-button-secondary:hover{-webkit-box-shadow:none;box-shadow:none}a.llms-view-as{line-height:2;margin-right:8px}.llms-image-field-preview{max-height:80px;vertical-align:middle;width:auto}.llms-image-field-remove.hidden{display:none}.llms-log-viewer{background:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);margin:20px 0;padding:25px}.llms-log-viewer pre{font-family:monospace;margin:0;padding:0;white-space:pre-wrap}.llms-status--tools .llms-table{background:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.llms-status--tools .llms-table td,.llms-status--tools .llms-table th{padding:10px;vertical-align:top}.llms-status--tools .llms-table th{width:28%}.llms-status--tools .llms-table p{margin:0 0 10px}.llms-error{color:#bb231c;font-style:italic}.llms-rating-stars{color:#ffb900;text-decoration:none}@media screen and (max-width: 782px){.llms-header{top:46px}.llms-header .llms-inside-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:20px}.llms-header .llms-inside-wrap .lifterlms-logo{-ms-flex-item-align:center;align-self:center;-webkit-box-flex:inherit;-ms-flex:inherit;flex:inherit;max-height:initial;max-width:200px}.llms-header .llms-inside-wrap .llms-meta{-webkit-column-gap:10px;-moz-column-gap:10px;column-gap:10px}}.llms-table-wrap{position:relative}.llms-table-header{padding:0}.llms-table-header:before,.llms-table-header:after{content:" ";display:table}.llms-table-header:after{clear:both}.llms-table-header h2{font-size:20px;padding:0;display:inline-block;line-height:1.5;margin:0 0 20px 0;vertical-align:middle}.llms-table-header .llms-table-search,.llms-table-header .llms-table-filters{float:right;padding-left:10px}.llms-table-header .llms-table-search input{margin:0;padding:0 8px}.llms-table{border:1px solid #c3c4c7;border-collapse:collapse;width:100%}.llms-table a:not(.small){color:#466dd8}.llms-table a:not(.small):hover{color:#2b55cb}.llms-table td,.llms-table th{border-bottom:1px solid #c3c4c7;padding:10px 12px;text-align:center}.llms-table td.expandable.closed,.llms-table th.expandable.closed{display:none}.llms-table td .llms-button-primary,.llms-table td .llms-button-secondary,.llms-table td .llms-button-action,.llms-table td .llms-button-danger,.llms-table th .llms-button-primary,.llms-table th .llms-button-secondary,.llms-table th .llms-button-action,.llms-table th .llms-button-danger{display:inline-block}.llms-table tr.llms-quiz-pending td{font-weight:700}.llms-table thead th,.llms-table tfoot th{background-color:#fff;font-weight:700}.llms-table thead th a.llms-sortable,.llms-table tfoot th a.llms-sortable{padding-right:16px;position:relative;text-decoration:none;width:100%}.llms-table thead th a.llms-sortable.active[data-order=DESC] .asc,.llms-table tfoot th a.llms-sortable.active[data-order=DESC] .asc{opacity:1}.llms-table thead th a.llms-sortable.active[data-order=ASC] .desc,.llms-table tfoot th a.llms-sortable.active[data-order=ASC] .desc{opacity:1}.llms-table thead th a.llms-sortable:hover[data-order=DESC] .asc,.llms-table tfoot th a.llms-sortable:hover[data-order=DESC] .asc{opacity:0}.llms-table thead th a.llms-sortable:hover[data-order=DESC] .desc,.llms-table tfoot th a.llms-sortable:hover[data-order=DESC] .desc{opacity:1}.llms-table thead th a.llms-sortable:hover[data-order=ASC] .asc,.llms-table tfoot th a.llms-sortable:hover[data-order=ASC] .asc{opacity:1}.llms-table thead th a.llms-sortable:hover[data-order=ASC] .desc,.llms-table tfoot th a.llms-sortable:hover[data-order=ASC] .desc{opacity:0}.llms-table thead th a.llms-sortable .dashicons,.llms-table tfoot th a.llms-sortable .dashicons{color:#444;font-size:16px;height:16px;opacity:0;position:absolute;width:16px}.llms-table tfoot th{border-bottom:none}.llms-table tfoot th .llms-table-export{float:left}.llms-table tfoot th .llms-table-export .llms-table-progress{background:#efefef;display:none;margin-left:8px;vertical-align:middle;width:100px}.llms-table tfoot th .llms-clear-resumable-attempts{float:left}.llms-table tfoot th .llms-table-pagination{float:right}.llms-table.zebra tbody tr:nth-child(even) th,.llms-table.zebra tbody tr:nth-child(even) td{background-color:#fff}.llms-table.zebra tbody tr:nth-child(odd) th,.llms-table.zebra tbody tr:nth-child(odd) td{background-color:#f6f7f7}.llms-table.text-left td,.llms-table.text-left th{text-align:left}.llms-table.size-large td,.llms-table.size-large th{font-size:14px;padding:10px 12px}.llms-table .llms-drag-handle{color:#777;cursor:pointer;-webkit-transition:color .4s ease;transition:color .4s ease}.llms-table .llms-action-icon{color:#777;text-decoration:none}.llms-table .llms-action-icon .tooltip{cursor:pointer}.llms-table .llms-action-icon:hover{color:#466dd8}.llms-table .llms-action-icon.danger:hover{color:#bb231c}.llms-table .llms-table-page-count{font-size:12px;padding:0 5px}.llms-table-progress{text-align:center}.llms-table-progress .llms-table-progress-bar{background:#eee;border-radius:10px;height:16px;overflow:hidden;position:relative}.llms-table-progress .llms-table-progress-bar .llms-table-progress-inner{background:#466dd8;height:100%;-webkit-transition:width .2s ease;transition:width .2s ease}.llms-table-progress .llms-table-progress-text{color:#466dd8;font-size:12px;font-weight:700;line-height:16px}.llms-table.llms-gateway-table .status .fa,.llms-table.llms-integrations-table .status .fa{color:#466dd8;font-size:22px}.llms-table.llms-gateway-table .sort,.llms-table.llms-integrations-table .sort{cursor:move;text-align:center;width:10px}.llms-gb-table-notifications th,.llms-gb-table-notifications td{text-align:left}.llms-order-note .llms-order-note-content{background:#efefef;margin-bottom:10px;padding:10px;position:relative}.llms-order-note .llms-order-note-content:after{border-style:solid;border-color:#efefef rgba(0,0,0,0);border-width:10px 10px 0 0;bottom:-10px;content:"";display:block;height:0;left:20px;position:absolute;width:0}.llms-order-note .llms-order-note-content p{font-size:13px;margin:0;line-height:1.5}.llms-order-note .llms-order-note-meta{color:#999;font-size:11px;margin-left:10px}.llms-mb-list label{font-size:15px;font-weight:700;line-height:1.5;display:block;width:100%}.llms-mb-list .description{margin-bottom:8px}.llms-mb-list .input-full{width:100%}#poststuff .llms-metabox h2,#poststuff .llms-metabox h3,#poststuff .llms-metabox h4,#poststuff .llms-metabox h6{margin:0;padding:0}#poststuff .llms-metabox h2{font-size:18px;font-weight:700}#poststuff .llms-metabox h3{color:#1e1e1e;font-size:16px}#poststuff .llms-metabox h4{color:#1e1e1e;font-size:16px;line-height:1.5;padding:0;margin:0}#poststuff .llms-metabox h4:not(.llms-collapsible-body h4:first-of-type){margin-top:20px}#poststuff .llms-metabox .llms-transaction-test-mode{background:#ffffd7;font-style:italic;left:0;padding:2px;position:absolute;right:0;top:0;text-align:center}#poststuff .llms-metabox a.llms-editable,#poststuff .llms-metabox .llms-metabox-icon,#poststuff .llms-metabox button.llms-editable{color:#999;text-decoration:none}#poststuff .llms-metabox a.llms-editable:hover,#poststuff .llms-metabox .llms-metabox-icon:hover,#poststuff .llms-metabox button.llms-editable:hover{color:#466dd8}#poststuff .llms-metabox button.llms-editable{border:none;background:none;cursor:pointer;padding:0;vertical-align:top}#poststuff .llms-metabox h4 button.llms-editable{float:right}#poststuff .llms-metabox .llms-table{margin-top:10px}#poststuff .llms-metabox button.llms-button-primary{border-radius:8px;font-size:16px;font-weight:700;height:auto}.llms-metabox-section{background:#fff;margin-top:25px;position:relative}.llms-metabox-section.no-top-margin{margin-top:0}.llms-metabox-section .llms-metabox-field{margin:5px 0;position:relative}.llms-metabox-section .llms-metabox-field label{color:#1e1e1e;display:block;margin-bottom:5px;font-size:14px;font-weight:400}.llms-metabox-section .llms-metabox-field select,.llms-metabox-section .llms-metabox-field textarea,.llms-metabox-section .llms-metabox-field input[type=text],.llms-metabox-section .llms-metabox-field input[type=number]{width:100%}.llms-metabox-section .llms-metabox-field input.md-text{width:105px}.llms-metabox-section .llms-metabox-field input.sm-text{width:45px}.llms-metabox-section .llms-metabox-field .llms-datetime-field .llms-date-input{width:95px}.llms-metabox-section .llms-metabox-field .llms-datetime-field .llms-time-input{width:45px}.llms-metabox-section .llms-metabox-field .llms-datetime-field em{font-style:normal;padding:0 3px}.llms-metabox-section .llms-metabox-field .select2-container--default .select2-search--inline .select2-search__field{min-height:auto}.llms-metabox-section .llms-metabox-field .select2-container--default .select2-selection--multiple .select2-selection__rendered li{margin-bottom:0}.llms-metabox-section .llms-metabox-field:has(.wp-editor-wrap) label{position:relative;z-index:5}.llms-metabox-section .llms-metabox-field .wp-editor-wrap{margin-top:-30px}.llms-collapsible{background:#fff;border:1px solid #efefef;border-radius:6px;-webkit-box-shadow:2px 2px 8px rgba(0,0,0,.08);box-shadow:2px 2px 8px rgba(0,0,0,.08);display:block;margin:0;padding:0;position:relative;text-align:center;margin-top:0}.llms-collapsible:last-child{margin-bottom:0}.llms-collapsible.opened .llms-collapsible-header .dashicons-arrow-down{display:none}.llms-collapsible.opened .llms-collapsible-header .dashicons-arrow-up{display:inline}.llms-collapsible .llms-collapsible-header{padding:15px}.llms-collapsible .llms-collapsible-header [class^=d-]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:5px}.llms-collapsible .llms-collapsible-header .d-right{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding-right:0}.llms-collapsible .llms-collapsible-header h3{color:#1e1e1e;display:inline;margin:0;font-size:16px;font-weight:700}.llms-collapsible .llms-collapsible-header h3 small{font-weight:400}.llms-collapsible .llms-collapsible-header .dashicons-arrow-up{display:inline}.llms-collapsible .llms-collapsible-header .dashicons-arrow-up{display:none}.llms-collapsible .llms-collapsible-header a{text-decoration:none}.llms-collapsible .llms-collapsible-header .dashicons{color:#1e1e1e;cursor:pointer;-webkit-transition:color .4s ease;transition:color .4s ease}.llms-collapsible .llms-collapsible-header .dashicons:hover{color:#466dd8}.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning,.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning:hover,.llms-collapsible .llms-collapsible-header .dashicons.dashicons-trash:hover,.llms-collapsible .llms-collapsible-header .dashicons.dashicons-no:hover{color:#bb231c}.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning.medium-danger,.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning.medium-danger:hover{color:#c05621}.llms-collapsible .llms-collapsible-body{display:none;padding:15px}._llms_instructors_data.repeater .llms-repeater-rows .llms-repeater-row:first-child .llms-repeater-remove{display:none}._llms_instructors_data.repeater .llms-mb-list{padding:0 5px !important}.post-type-llms_order #post-body-content{display:none}#lifterlms-order-details .handlediv,#lifterlms-order-details .handlediv.button-link,#lifterlms-order-details .postbox-header{display:none}#lifterlms-order-details .inside{padding:20px;margin-top:0}.llms-table tbody tr.llms-txn-failed td{background-color:rgba(187,35,28,.5);border-bottom-color:rgba(187,35,28,.5)}.llms-table tbody tr.llms-txn-refunded td{background-color:rgba(255,165,0,.5);border-bottom-color:rgba(255,165,0,.5)}.llms-txn-refund-form .llms-metabox-section,.llms-manual-txn-form .llms-metabox-section{margin-top:0}.llms-txn-refund-form .llms-metabox-field,.llms-manual-txn-form .llms-metabox-field{text-align:right}.llms-txn-refund-form .llms-metabox-field input[type=number],.llms-manual-txn-form .llms-metabox-field input[type=number]{max-width:100px}.llms-txn-refund-form .llms-metabox-field input[type=text],.llms-manual-txn-form .llms-metabox-field input[type=text]{max-width:340px}.llms-manual-txn-form{background-color:#eaeaea}.llms-manual-txn-form .llms-metabox-section{background-color:#eaeaea}#llms-remaining-edit{display:none}.llms-remaining-edit--content label,.llms-remaining-edit--content span,.llms-remaining-edit--content textarea{display:block}.llms-remaining-edit--content label{margin-bottom:20px}.llms-remaining-edit--content textarea,.llms-remaining-edit--content input{width:100%}.submitbox .llms-mb-section,.llms-award-engagement-submitbox .llms-mb-list{margin-bottom:12px}.submitbox .llms-mb-section:last-of-type,.llms-award-engagement-submitbox .llms-mb-list:last-of-type{margin-bottom:0}.sync-action:before,.submitbox .llms-mb-section.student-info:before,.submitbox .llms-mb-section.post_author_override label:before,.llms-award-engagement-submitbox .llms-mb-list.student-info:before,.llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before{font:normal 20px/1 dashicons;speak:never;display:inline-block;margin-left:-1px;padding-right:3px;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:relative;top:-1px;color:#8c8f94}body:not(.admin-color-fresh) .sync-action:before,body:not(.admin-color-fresh) .submitbox .llms-mb-section.student-info:before,body:not(.admin-color-fresh) .submitbox .llms-mb-section.post_author_override label:before,body:not(.admin-color-fresh) .llms-award-engagement-submitbox .llms-mb-list.student-info:before,body:not(.admin-color-fresh) .llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before{color:currentColor}.submitbox .llms-mb-section.student-info:before,.submitbox .llms-mb-section.post_author_override label:before,.llms-award-engagement-submitbox .llms-mb-list.student-info:before,.llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before{content:""}.sync-action:before{content:"";color:#fff}.submitbox .llms-mb-section.post_author_override label,.llms-award-engagement-submitbox .llms-mb-list.post_author_override label{display:inline-block;width:auto}.llms-metabox>p:first-child{margin-top:0}.llms-metabox #llms-new-access-plan-model{display:none}.llms-metabox .llms-access-plans{color:#1e1e1e}.llms-metabox .llms-access-plans>.llms-no-plans-msg{display:none}.llms-metabox .llms-access-plans>.llms-no-plans-msg .notice{margin-right:0;margin-left:0}.llms-metabox .llms-access-plans>.llms-no-plans-msg:last-child{display:block}.llms-metabox .llms-access-plans.dragging{background:#efefef;-webkit-box-shadow:inset 0 0 0 1px #e5e5e5;box-shadow:inset 0 0 0 1px #e5e5e5}.llms-metabox .llms-access-plans .llms-spinning{z-index:1}.llms-metabox .llms-access-plans .llms-invalid{border-color:#bb231c}.llms-metabox .llms-access-plans .llms-invalid .dashicons-warning{display:inline}.llms-metabox .llms-access-plans .llms-needs-attention .dashicons-warning.medium-danger{display:inline}.llms-metabox .llms-access-plans .dashicons-warning{display:none}.llms-metabox .llms-access-plan{margin-bottom:20px;text-align:left}.llms-metabox .llms-access-plan [data-tip]:before{text-align:center}.llms-metabox .llms-access-plan .llms-plan-link,.llms-metabox .llms-access-plan [data-controller]{display:none}.llms-metabox .llms-access-plan:hover .llms-plan-link,.llms-metabox .llms-access-plan.opened .llms-plan-link{display:inline-block}.llms-metabox .llms-access-plan .llms-metabox-field{margin:15px 0}.llms-metabox .llms-access-plan .llms-required{color:#bb231c;margin-left:3px}.llms-metabox .llms-access-plan .notice{margin-left:0}.llms-metabox-students .llms-table tr .name{text-align:left}.llms-metabox-students .llms-add-student:hover{color:#4d8d3c}.llms-metabox-students .llms-remove-student:hover{color:#bb231c}.llms-mb-container .tab-content ul:not(.select2-selection__rendered).llms-mb-repeater-fields>li.llms-mb-list{border-bottom:none;padding:0 0 10px}.llms-mb-list.repeater .llms-repeater-rows{position:relative;margin-top:10px;min-height:10px}.llms-mb-list.repeater .llms-repeater-rows.dragging{background:#efefef;-webkit-box-shadow:inset 0 0 0 1px #e5e5e5;box-shadow:inset 0 0 0 1px #e5e5e5}.llms-mb-list.repeater .llms-repeater-row{background:#fff}.llms-mb-list.repeater .llms-mb-repeater-footer{text-align:right;margin-top:20px}.llms-mb-list.repeater .tmce-active .wp-editor-area{color:#32373c}.llms-builder-launcher p{margin-top:0}.llms-builder-launcher ol{margin-top:-6px}.llms-builder-launcher .llms-button-primary{-webkit-box-sizing:border-box;box-sizing:border-box}.wp-list-table .llms-status{border-radius:6px;display:inline-block;font-size:13px;font-weight:700;line-height:1.4;padding:2px 6px;vertical-align:middle}.wp-list-table .llms-status.llms-size--large{font-size:105%;padding:6px 12px}.wp-list-table .llms-status.llms-active,.wp-list-table .llms-status.llms-completed,.wp-list-table .llms-status.llms-pass,.wp-list-table .llms-status.llms-txn-succeeded{color:#4d8d3c;background-color:rgba(77,141,60,.15)}.wp-list-table .llms-status.llms-fail,.wp-list-table .llms-status.llms-failed,.wp-list-table .llms-status.llms-expired,.wp-list-table .llms-status.llms-cancelled,.wp-list-table .llms-status.llms-txn-failed{color:#bb231c;background-color:rgba(187,35,28,.15)}.wp-list-table .llms-status.llms-incomplete,.wp-list-table .llms-status.llms-on-hold,.wp-list-table .llms-status.llms-pending,.wp-list-table .llms-status.llms-pending-cancel,.wp-list-table .llms-status.llms-refunded,.wp-list-table .llms-status.llms-txn-pending,.wp-list-table .llms-status.llms-txn-refunded{color:#c05621;background-color:rgba(192,86,33,.15)}#lifterlms-order-transactions .llms-table tfoot th{text-align:right}.llms-post-table-post-filter{display:inline-block;margin-right:6px;max-width:100%;width:220px}.llms-nav-tab-wrapper{background:#466dd8;margin:20px 0}.llms-nav-tab-wrapper.llms-nav-secondary{background:#e1e1e1}.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item{margin:0}.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover,.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link{background:#cdcdcd}.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link{color:#414141;font-size:15px;padding:8px 14px}.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link .dashicons{font-size:15px;height:15px;width:15px}.llms-nav-tab-wrapper.llms-nav-text{background:inherit}.llms-nav-tab-wrapper.llms-nav-text .llms-nav-items{padding-left:0}.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item{background:inherit;color:#646970}.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item:last-child:after{display:none}.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item:after{content:"|";display:inline-block;margin:0 8px 0 6px}.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item .llms-nav-link:hover{background:inherit;color:#466dd8}.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item.llms-active .llms-nav-link{background:inherit;color:#000;font-weight:600;text-decoration:none}.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item .llms-nav-link{color:#466dd8;display:inline-block;letter-spacing:0;margin:0;padding:0;text-decoration:underline;text-transform:none}.llms-nav-tab-wrapper.llms-nav-style-tabs{background-color:#1c3987;margin:0;padding-top:8px}.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item{margin:0 3px}.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item .llms-nav-link{border-top-left-radius:4px;border-top-right-radius:4px}.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item.llms-active .llms-nav-link{background-color:#fff;color:#466dd8;font-weight:700}.llms-nav-tab-wrapper.llms-nav-style-filters{background-color:#466dd8;border-radius:12px;margin:20px 0;overflow:hidden;padding:0}.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding-left:0}@media only screen and (min-width: 782px){.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items .llms-nav-item{float:none}.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items .llms-nav-item .llms-nav-link{padding:14px}.llms-nav-tab-wrapper .llms-nav-items{margin:0;padding-left:10px}.llms-nav-tab-wrapper .llms-nav-items:before,.llms-nav-tab-wrapper .llms-nav-items:after{content:" ";display:table}.llms-nav-tab-wrapper .llms-nav-items:after{clear:both}.llms-nav-tab-wrapper .llms-nav-item{margin:0}.llms-nav-tab-wrapper .llms-nav-item .llms-nav-link:hover{background:#466dd8}.llms-nav-tab-wrapper .llms-nav-item.llms-active .llms-nav-link{background:#1c3987}.llms-nav-tab-wrapper .llms-nav-item.llms-active .llms-nav-link{font-weight:400}@media only screen and (min-width: 768px){.llms-nav-tab-wrapper .llms-nav-item{float:left}.llms-nav-tab-wrapper .llms-nav-item.llms-nav-item-right{float:right}}.llms-nav-tab-wrapper .llms-nav-link{color:#fff;cursor:pointer;display:block;font-weight:400;font-size:15px;padding:9px 18px;text-align:center;text-decoration:none;-webkit-transition:all .3s ease;transition:all .3s ease}#llms-options-page-contents h2{color:#999;font-weight:500;letter-spacing:2px;border-bottom:1px solid #999}.llms-reporting.wrap .llms-options-page-contents .llms-nav-tab-wrapper.llms-nav-secondary{-webkit-box-shadow:0 1px 3px rgba(0,0,0,.15);box-shadow:0 1px 3px rgba(0,0,0,.15);margin:0;padding:0}.llms-reporting.wrap .llms-stab-title{color:#1c3987;font-size:36px;font-weight:300;margin-bottom:20px}.llms-reporting.wrap td.id a{text-decoration:none}.llms-reporting.wrap th.id,.llms-reporting.wrap td.id,.llms-reporting.wrap th.name,.llms-reporting.wrap td.name,.llms-reporting.wrap th.registered,.llms-reporting.wrap td.registered,.llms-reporting.wrap th.last_seen,.llms-reporting.wrap td.last_seen,.llms-reporting.wrap th.overall_progress,.llms-reporting.wrap td.overall_progress,.llms-reporting.wrap th.title,.llms-reporting.wrap td.title,.llms-reporting.wrap th.course,.llms-reporting.wrap td.course,.llms-reporting.wrap th.lesson,.llms-reporting.wrap td.lesson{text-align:left}.llms-reporting.wrap td.section-title{background:#eaeaea;text-align:left;font-weight:700;padding:16px 4px}.llms-reporting.wrap td.questions-table{text-align:left}.llms-reporting.wrap td.questions-table .correct,.llms-reporting.wrap td.questions-table .question,.llms-reporting.wrap td.questions-table .selected{text-align:left;max-width:300px}.llms-reporting.wrap td.questions-table .correct img,.llms-reporting.wrap td.questions-table .question img,.llms-reporting.wrap td.questions-table .selected img{height:auto;max-width:64px}.llms-reporting.wrap table.quiz-attempts{margin-bottom:40px}.llms-reporting.wrap.tab--students .llms-options-page-contents #llms-award-certificate-wrapper .components-button.is-secondary{background:#e1e1e1;border-radius:8px;-webkit-box-shadow:none;box-shadow:none;color:#414141;font-size:13px;font-weight:700;height:auto;padding:8px 14px}.llms-reporting.wrap.tab--enrollments .llms-nav-tab-wrapper.llms-nav-secondary,.llms-reporting.wrap.tab--sales .llms-nav-tab-wrapper.llms-nav-secondary{margin-bottom:0}.llms-reporting.wrap.tab--enrollments .llms-options-page-contents,.llms-reporting.wrap.tab--sales .llms-options-page-contents{-webkit-box-shadow:none;box-shadow:none;background:none;margin-top:20px;padding:0}.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form,.llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-item-align:center;align-self:center;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:13px;gap:5px}.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form label,.llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form label{font-weight:700}.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form input,.llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form input{border:0;font-size:13px;margin:0;padding:0 4px;vertical-align:middle;width:110px}.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form .select2-container input,.llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form .select2-container input{width:100% !important}.llms-reporting.wrap.tab--enrollments .button.small,.llms-reporting.wrap.tab--sales .button.small{height:23px;line-height:23px}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters,.llms-reporting.wrap.tab--sales .llms-analytics-filters{display:none}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-inside-wrap,.llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-inside-wrap{background-color:#fff;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);margin:-20px 10px 20px 10px;padding:20px}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-items,.llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-items{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:20px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin:0}@media only screen and (min-width: 782px){.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-items,.llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-items{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item,.llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item label,.llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item label{display:block;font-weight:700;margin:0 0 5px 0}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item .select2-selection__rendered,.llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item .select2-selection__rendered{word-wrap:break-word;text-overflow:inherit;white-space:normal}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters p,.llms-reporting.wrap.tab--sales .llms-analytics-filters p{margin:0;text-align:right}.llms-reporting.wrap.tab--enrollments .llms-analytics-filters p .llms-button-primary,.llms-reporting.wrap.tab--sales .llms-analytics-filters p .llms-button-primary{display:inline-block}.llms-reporting.wrap .llms-reporting-tab.llms-reporting-quiz .llms-table-filter-wrap{width:160px}.llms-reporting.wrap .llms-table-header form{display:inline}.llms-reporting.wrap .llms-table-header .button{margin-left:5px}.llms-charts-wrapper{background-color:#fff;border:1px solid #dedede;border-radius:12px;-webkit-box-shadow:0px 0px 1px rgba(48,49,51,.05),0px 2px 4px rgba(48,49,51,.1);box-shadow:0px 0px 1px rgba(48,49,51,.05),0px 2px 4px rgba(48,49,51,.1);padding:20px}.llms-reporting-tab h1,.llms-reporting-tab h2,.llms-reporting-tab h3,.llms-reporting-tab h4,.llms-reporting-tab h5,.llms-reporting-tab h6{margin:0}.llms-reporting-tab h1 a,.llms-reporting-tab h2 a,.llms-reporting-tab h3 a,.llms-reporting-tab h4 a,.llms-reporting-tab h5 a,.llms-reporting-tab h6 a{color:#466dd8;text-decoration:none}.llms-reporting-tab h1 a:hover,.llms-reporting-tab h2 a:hover,.llms-reporting-tab h3 a:hover,.llms-reporting-tab h4 a:hover,.llms-reporting-tab h5 a:hover,.llms-reporting-tab h6 a:hover{color:#466dd8}.llms-reporting-tab h2{font-size:22px;line-height:1.5}.llms-reporting-tab h2.llms-table-title{margin-bottom:20px}.llms-reporting-tab h5{font-size:15px;line-height:1.5}.llms-reporting-tab .llms-reporting-body{background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);margin:20px auto;padding:0}.llms-reporting-tab .llms-reporting-body .llms-reporting-stab{padding:30px}.llms-reporting-tab .llms-reporting-body .llms-reporting-stab .llms-table-header{margin:0}.llms-reporting-tab .llms-reporting-body .llms-gb-tab{padding:30px}.llms-reporting-tab .llms-reporting-body .llms-reporting-header{padding:30px;margin:0}.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-img{border-radius:50%;display:inline-block;margin-right:10px;overflow:hidden;vertical-align:middle}.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-img img{display:block;max-height:64px;width:auto}.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-info{display:inline-block;vertical-align:middle}.llms-reporting-breadcrumbs{margin:0;padding:0}.llms-reporting-breadcrumbs a{color:#466dd8;font-size:15px;text-decoration:none}.llms-reporting-breadcrumbs a:hover{color:#2b55cb}.llms-reporting-breadcrumbs a:after{content:" > ";color:#646970}.llms-reporting-breadcrumbs a:last-child{color:#000;font-weight:700}.llms-reporting-breadcrumbs a:last-child:after{display:none}#llms-students-table .name{text-align:left}.llms-reporting-tab-content{display:-webkit-box;display:-ms-flexbox;display:flex}.llms-reporting-tab-content>header:before,.llms-reporting-tab-content>header:after{content:" ";display:table}.llms-reporting-tab-content>header:after{clear:both}.llms-reporting-tab-content h3{margin-bottom:20px}.llms-reporting-tab-content .llms-reporting-tab-filter{float:right;position:relative;margin-right:.75em;width:180px;top:-3px}.llms-reporting-tab-content .llms-reporting-tab-main{-webkit-box-flex:3;-ms-flex:3;flex:3;max-width:75%}.llms-reporting-tab-content .llms-reporting-tab-side{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:20px}.llms-reporting-tab-content>.llms-table-wrap{-webkit-box-flex:1;-ms-flex:1;flex:1}.llms-reporting-widgets:before,.llms-reporting-widgets:after{content:" ";display:table}.llms-reporting-widgets:after{clear:both}.llms-reporting-widget{border-top:4px solid #466dd8;background:#fafafa;margin-bottom:10px;padding:30px}.llms-reporting-widget:before,.llms-reporting-widget:after{content:" ";display:table}.llms-reporting-widget:after{clear:both}.llms-reporting-widget .fa{color:#999;float:left;font-size:32px;margin-right:10px}.llms-reporting-widget strong{color:#333;font-size:20px;line-height:1.2}.llms-reporting-widget.llms-reporting-student-address strong{line-height:1.1}.llms-reporting-widget sup,.llms-reporting-widget .llms-price-currency-symbol{font-size:75%;position:relative;top:-4px;vertical-align:baseline}.llms-reporting-widget small{font-size:13px}.llms-reporting-widget small.compare{margin-left:5px}.llms-reporting-widget small.compare.positive{color:#4d8d3c}.llms-reporting-widget small.compare.negative{color:#bb231c}.llms-reporting-event{border-left:4px solid #555;background:#fafafa;font-size:11px;line-height:1.2;margin-bottom:.75em;padding:10px}.llms-reporting-event:before,.llms-reporting-event:after{content:" ";display:table}.llms-reporting-event:after{clear:both}.llms-reporting-event.color--blue{border-left-color:#466dd8}.llms-reporting-event.color--green,.llms-reporting-event._enrollment_trigger,.llms-reporting-event._is_complete.yes{border-left-color:#4d8d3c}.llms-reporting-event.color--purple,.llms-reporting-event._status.enrolled{border-left-color:#845ef7}.llms-reporting-event.color--red,.llms-reporting-event._status.expired,.llms-reporting-event._status.cancelled{border-left-color:#bb231c}.llms-reporting-event.color--orange,.llms-reporting-event._achievement_earned,.llms-reporting-event._certificate_earned,.llms-reporting-event._email_sent{border-left-color:#c05621}.llms-reporting-event time{color:#888}.llms-reporting-event .llms-student-avatar{margin-left:10px;float:right}.llms-reporting-event a{text-decoration:none;color:inherit}@media only screen and (min-width: 782px){.llms-reporting.wrap .llms-options-page-contents .llms-nav-tab-wrapper.llms-nav-secondary{margin-left:0;margin-right:0}}.llms-quiz-attempt-results{margin:0;padding:0;list-style-type:none}.llms-quiz-attempt-results .llms-quiz-attempt-question{background:#efefef;border-radius:6px;margin:0 0 15px;position:relative;list-style-type:none}.llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer{color:inherit;display:-webkit-box;display:-ms-flexbox;display:flex;gap:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:15px 35px 15px 15px;text-decoration:none}.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct,.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect{background:rgba(192,86,33,.2)}.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon,.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon{background-color:#c05621}.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct{background:rgba(77,141,60,.15)}.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon{background-color:#4d8d3c}.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect{background:rgba(187,35,28,.15)}.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon{background-color:#bb231c}.llms-quiz-attempt-results .llms-quiz-attempt-question pre{overflow:auto}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title{font-size:22px;margin:0;line-height:1.4}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points{line-height:1.4}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip{position:absolute;right:-12px;top:-2px}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon{color:rgba(255,255,255,.65);border-radius:50%;font-size:30px;height:40px;line-height:40px;text-align:center;width:40px}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main{display:none;padding:0 15px 15px}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label{font-weight:700;margin:0 0 10px;padding:0}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers{margin:0;padding:0}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{padding:0;margin:0 0 0 30px}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child{list-style-type:none;margin-left:0}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img{height:auto;max-width:200px}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section{border-top:2px solid rgba(255,255,255,.5);margin-top:20px;padding-top:20px}.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child{border-top:none;margin-top:0;padding-top:0}.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers,.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers{list-style-type:none;margin:0;padding:0}.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer,.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{display:inline-block;list-style-type:none;margin:0;padding:5px}.llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed{opacity:.5}.llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title{font-style:italic;font-weight:normal}.wrap.llms-reporting .llms-inside-wrap,.wrap.lifterlms-settings .llms-inside-wrap,.wrap.llms-status .llms-inside-wrap{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0 auto}.wrap.llms-reporting .llms-inside-wrap .llms-nav-text,.wrap.lifterlms-settings .llms-inside-wrap .llms-nav-text,.wrap.llms-status .llms-inside-wrap .llms-nav-text{margin:0 auto}.wrap.llms-reporting .llms-subheader .llms-save,.wrap.lifterlms-settings .llms-subheader .llms-save,.wrap.llms-status .llms-subheader .llms-save{-webkit-box-flex:1;-ms-flex:auto;flex:auto;text-align:right}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary,.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary,.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary{background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.15);box-shadow:0 1px 3px rgba(0,0,0,.15);margin:0 -20px 20px -10px}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items,.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items,.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items{padding-left:0}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover,.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover,.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover{background:#f0f0f1;color:#222}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link{background:#fafafa;color:#466dd8;border-top-color:#466dd8}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link{font-weight:700}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link,.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link,.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link{border-top:2px solid rgba(0,0,0,0);padding:14px}.wrap.llms-reporting .llms-setting-group,.wrap.lifterlms-settings .llms-setting-group,.wrap.llms-status .llms-setting-group{background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);margin:20px auto;padding:20px}.wrap.llms-reporting .llms-setting-group .llms-label,.wrap.lifterlms-settings .llms-setting-group .llms-label,.wrap.llms-status .llms-setting-group .llms-label{border-bottom:1px solid #efefef;font-weight:700;font-size:20px;padding:20px;margin:-20px -20px 20px}.wrap.llms-reporting .llms-setting-group .llms-label .llms-button-primary,.wrap.lifterlms-settings .llms-setting-group .llms-label .llms-button-primary,.wrap.llms-status .llms-setting-group .llms-label .llms-button-primary{margin-left:10px}.wrap.llms-reporting .llms-setting-group .llms-help-tooltip .dashicons,.wrap.lifterlms-settings .llms-setting-group .llms-help-tooltip .dashicons,.wrap.llms-status .llms-setting-group .llms-help-tooltip .dashicons{color:#444;cursor:help}.wrap.llms-reporting .llms-setting-group .form-table,.wrap.lifterlms-settings .llms-setting-group .form-table,.wrap.llms-status .llms-setting-group .form-table{margin:0}.wrap.llms-reporting .llms-setting-group .form-table tr:first-child .llms-subtitle,.wrap.lifterlms-settings .llms-setting-group .form-table tr:first-child .llms-subtitle,.wrap.llms-status .llms-setting-group .form-table tr:first-child .llms-subtitle{margin-top:0}.wrap.llms-reporting .llms-setting-group td[colspan="2"],.wrap.lifterlms-settings .llms-setting-group td[colspan="2"],.wrap.llms-status .llms-setting-group td[colspan="2"]{padding-top:0;padding-left:0}.wrap.llms-reporting .llms-setting-group tr.llms-disabled-field,.wrap.lifterlms-settings .llms-setting-group tr.llms-disabled-field,.wrap.llms-status .llms-setting-group tr.llms-disabled-field{opacity:.5;pointer-events:none}.wrap.llms-reporting .llms-setting-group p,.wrap.lifterlms-settings .llms-setting-group p,.wrap.llms-status .llms-setting-group p{font-size:14px}.wrap.llms-reporting .llms-setting-group input[type=text],.wrap.llms-reporting .llms-setting-group input[type=password],.wrap.llms-reporting .llms-setting-group input[type=datetime],.wrap.llms-reporting .llms-setting-group input[type=datetime-local],.wrap.llms-reporting .llms-setting-group input[type=date],.wrap.llms-reporting .llms-setting-group input[type=month],.wrap.llms-reporting .llms-setting-group input[type=time],.wrap.llms-reporting .llms-setting-group input[type=week],.wrap.llms-reporting .llms-setting-group input[type=number],.wrap.llms-reporting .llms-setting-group input[type=email],.wrap.llms-reporting .llms-setting-group input[type=url],.wrap.llms-reporting .llms-setting-group input[type=search],.wrap.llms-reporting .llms-setting-group input[type=tel],.wrap.llms-reporting .llms-setting-group input[type=color],.wrap.llms-reporting .llms-setting-group select,.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area),.wrap.lifterlms-settings .llms-setting-group input[type=text],.wrap.lifterlms-settings .llms-setting-group input[type=password],.wrap.lifterlms-settings .llms-setting-group input[type=datetime],.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local],.wrap.lifterlms-settings .llms-setting-group input[type=date],.wrap.lifterlms-settings .llms-setting-group input[type=month],.wrap.lifterlms-settings .llms-setting-group input[type=time],.wrap.lifterlms-settings .llms-setting-group input[type=week],.wrap.lifterlms-settings .llms-setting-group input[type=number],.wrap.lifterlms-settings .llms-setting-group input[type=email],.wrap.lifterlms-settings .llms-setting-group input[type=url],.wrap.lifterlms-settings .llms-setting-group input[type=search],.wrap.lifterlms-settings .llms-setting-group input[type=tel],.wrap.lifterlms-settings .llms-setting-group input[type=color],.wrap.lifterlms-settings .llms-setting-group select,.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area),.wrap.llms-status .llms-setting-group input[type=text],.wrap.llms-status .llms-setting-group input[type=password],.wrap.llms-status .llms-setting-group input[type=datetime],.wrap.llms-status .llms-setting-group input[type=datetime-local],.wrap.llms-status .llms-setting-group input[type=date],.wrap.llms-status .llms-setting-group input[type=month],.wrap.llms-status .llms-setting-group input[type=time],.wrap.llms-status .llms-setting-group input[type=week],.wrap.llms-status .llms-setting-group input[type=number],.wrap.llms-status .llms-setting-group input[type=email],.wrap.llms-status .llms-setting-group input[type=url],.wrap.llms-status .llms-setting-group input[type=search],.wrap.llms-status .llms-setting-group input[type=tel],.wrap.llms-status .llms-setting-group input[type=color],.wrap.llms-status .llms-setting-group select,.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area){width:50%}.wrap.llms-reporting .llms-setting-group input[type=text].medium,.wrap.llms-reporting .llms-setting-group input[type=password].medium,.wrap.llms-reporting .llms-setting-group input[type=datetime].medium,.wrap.llms-reporting .llms-setting-group input[type=datetime-local].medium,.wrap.llms-reporting .llms-setting-group input[type=date].medium,.wrap.llms-reporting .llms-setting-group input[type=month].medium,.wrap.llms-reporting .llms-setting-group input[type=time].medium,.wrap.llms-reporting .llms-setting-group input[type=week].medium,.wrap.llms-reporting .llms-setting-group input[type=number].medium,.wrap.llms-reporting .llms-setting-group input[type=email].medium,.wrap.llms-reporting .llms-setting-group input[type=url].medium,.wrap.llms-reporting .llms-setting-group input[type=search].medium,.wrap.llms-reporting .llms-setting-group input[type=tel].medium,.wrap.llms-reporting .llms-setting-group input[type=color].medium,.wrap.llms-reporting .llms-setting-group select.medium,.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).medium,.wrap.lifterlms-settings .llms-setting-group input[type=text].medium,.wrap.lifterlms-settings .llms-setting-group input[type=password].medium,.wrap.lifterlms-settings .llms-setting-group input[type=datetime].medium,.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].medium,.wrap.lifterlms-settings .llms-setting-group input[type=date].medium,.wrap.lifterlms-settings .llms-setting-group input[type=month].medium,.wrap.lifterlms-settings .llms-setting-group input[type=time].medium,.wrap.lifterlms-settings .llms-setting-group input[type=week].medium,.wrap.lifterlms-settings .llms-setting-group input[type=number].medium,.wrap.lifterlms-settings .llms-setting-group input[type=email].medium,.wrap.lifterlms-settings .llms-setting-group input[type=url].medium,.wrap.lifterlms-settings .llms-setting-group input[type=search].medium,.wrap.lifterlms-settings .llms-setting-group input[type=tel].medium,.wrap.lifterlms-settings .llms-setting-group input[type=color].medium,.wrap.lifterlms-settings .llms-setting-group select.medium,.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).medium,.wrap.llms-status .llms-setting-group input[type=text].medium,.wrap.llms-status .llms-setting-group input[type=password].medium,.wrap.llms-status .llms-setting-group input[type=datetime].medium,.wrap.llms-status .llms-setting-group input[type=datetime-local].medium,.wrap.llms-status .llms-setting-group input[type=date].medium,.wrap.llms-status .llms-setting-group input[type=month].medium,.wrap.llms-status .llms-setting-group input[type=time].medium,.wrap.llms-status .llms-setting-group input[type=week].medium,.wrap.llms-status .llms-setting-group input[type=number].medium,.wrap.llms-status .llms-setting-group input[type=email].medium,.wrap.llms-status .llms-setting-group input[type=url].medium,.wrap.llms-status .llms-setting-group input[type=search].medium,.wrap.llms-status .llms-setting-group input[type=tel].medium,.wrap.llms-status .llms-setting-group input[type=color].medium,.wrap.llms-status .llms-setting-group select.medium,.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).medium{width:30%}.wrap.llms-reporting .llms-setting-group input[type=text].small,.wrap.llms-reporting .llms-setting-group input[type=password].small,.wrap.llms-reporting .llms-setting-group input[type=datetime].small,.wrap.llms-reporting .llms-setting-group input[type=datetime-local].small,.wrap.llms-reporting .llms-setting-group input[type=date].small,.wrap.llms-reporting .llms-setting-group input[type=month].small,.wrap.llms-reporting .llms-setting-group input[type=time].small,.wrap.llms-reporting .llms-setting-group input[type=week].small,.wrap.llms-reporting .llms-setting-group input[type=number].small,.wrap.llms-reporting .llms-setting-group input[type=email].small,.wrap.llms-reporting .llms-setting-group input[type=url].small,.wrap.llms-reporting .llms-setting-group input[type=search].small,.wrap.llms-reporting .llms-setting-group input[type=tel].small,.wrap.llms-reporting .llms-setting-group input[type=color].small,.wrap.llms-reporting .llms-setting-group select.small,.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).small,.wrap.lifterlms-settings .llms-setting-group input[type=text].small,.wrap.lifterlms-settings .llms-setting-group input[type=password].small,.wrap.lifterlms-settings .llms-setting-group input[type=datetime].small,.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].small,.wrap.lifterlms-settings .llms-setting-group input[type=date].small,.wrap.lifterlms-settings .llms-setting-group input[type=month].small,.wrap.lifterlms-settings .llms-setting-group input[type=time].small,.wrap.lifterlms-settings .llms-setting-group input[type=week].small,.wrap.lifterlms-settings .llms-setting-group input[type=number].small,.wrap.lifterlms-settings .llms-setting-group input[type=email].small,.wrap.lifterlms-settings .llms-setting-group input[type=url].small,.wrap.lifterlms-settings .llms-setting-group input[type=search].small,.wrap.lifterlms-settings .llms-setting-group input[type=tel].small,.wrap.lifterlms-settings .llms-setting-group input[type=color].small,.wrap.lifterlms-settings .llms-setting-group select.small,.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).small,.wrap.llms-status .llms-setting-group input[type=text].small,.wrap.llms-status .llms-setting-group input[type=password].small,.wrap.llms-status .llms-setting-group input[type=datetime].small,.wrap.llms-status .llms-setting-group input[type=datetime-local].small,.wrap.llms-status .llms-setting-group input[type=date].small,.wrap.llms-status .llms-setting-group input[type=month].small,.wrap.llms-status .llms-setting-group input[type=time].small,.wrap.llms-status .llms-setting-group input[type=week].small,.wrap.llms-status .llms-setting-group input[type=number].small,.wrap.llms-status .llms-setting-group input[type=email].small,.wrap.llms-status .llms-setting-group input[type=url].small,.wrap.llms-status .llms-setting-group input[type=search].small,.wrap.llms-status .llms-setting-group input[type=tel].small,.wrap.llms-status .llms-setting-group input[type=color].small,.wrap.llms-status .llms-setting-group select.small,.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).small{width:20%}.wrap.llms-reporting .llms-setting-group input[type=text].tiny,.wrap.llms-reporting .llms-setting-group input[type=password].tiny,.wrap.llms-reporting .llms-setting-group input[type=datetime].tiny,.wrap.llms-reporting .llms-setting-group input[type=datetime-local].tiny,.wrap.llms-reporting .llms-setting-group input[type=date].tiny,.wrap.llms-reporting .llms-setting-group input[type=month].tiny,.wrap.llms-reporting .llms-setting-group input[type=time].tiny,.wrap.llms-reporting .llms-setting-group input[type=week].tiny,.wrap.llms-reporting .llms-setting-group input[type=number].tiny,.wrap.llms-reporting .llms-setting-group input[type=email].tiny,.wrap.llms-reporting .llms-setting-group input[type=url].tiny,.wrap.llms-reporting .llms-setting-group input[type=search].tiny,.wrap.llms-reporting .llms-setting-group input[type=tel].tiny,.wrap.llms-reporting .llms-setting-group input[type=color].tiny,.wrap.llms-reporting .llms-setting-group select.tiny,.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).tiny,.wrap.lifterlms-settings .llms-setting-group input[type=text].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=password].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=datetime].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=date].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=month].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=time].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=week].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=number].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=email].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=url].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=search].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=tel].tiny,.wrap.lifterlms-settings .llms-setting-group input[type=color].tiny,.wrap.lifterlms-settings .llms-setting-group select.tiny,.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).tiny,.wrap.llms-status .llms-setting-group input[type=text].tiny,.wrap.llms-status .llms-setting-group input[type=password].tiny,.wrap.llms-status .llms-setting-group input[type=datetime].tiny,.wrap.llms-status .llms-setting-group input[type=datetime-local].tiny,.wrap.llms-status .llms-setting-group input[type=date].tiny,.wrap.llms-status .llms-setting-group input[type=month].tiny,.wrap.llms-status .llms-setting-group input[type=time].tiny,.wrap.llms-status .llms-setting-group input[type=week].tiny,.wrap.llms-status .llms-setting-group input[type=number].tiny,.wrap.llms-status .llms-setting-group input[type=email].tiny,.wrap.llms-status .llms-setting-group input[type=url].tiny,.wrap.llms-status .llms-setting-group input[type=search].tiny,.wrap.llms-status .llms-setting-group input[type=tel].tiny,.wrap.llms-status .llms-setting-group input[type=color].tiny,.wrap.llms-status .llms-setting-group select.tiny,.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).tiny{width:10%}@media only screen and (min-width: 782px){.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link{background:#fff}}.wrap.llms-reporting #llms-mailhawk-connect,.wrap.lifterlms-settings #llms-mailhawk-connect,.wrap.llms-status #llms-mailhawk-connect{height:auto;margin:0 0 6px;position:relative}.wrap.llms-reporting #llms-mailhawk-connect .dashicons,.wrap.lifterlms-settings #llms-mailhawk-connect .dashicons,.wrap.llms-status #llms-mailhawk-connect .dashicons{margin:-4px 4px 0 0;vertical-align:middle}.wrap.llms-reporting #llms-sendwp-connect,.wrap.lifterlms-settings #llms-sendwp-connect,.wrap.llms-status #llms-sendwp-connect{height:auto;margin:0 0 6px;position:relative}.wrap.llms-reporting #llms-sendwp-connect .fa,.wrap.lifterlms-settings #llms-sendwp-connect .fa,.wrap.llms-status #llms-sendwp-connect .fa{margin-right:4px}@media only screen and (min-width: 782px){.wrap.lifterlms-settings .llms-subheader{height:40px;position:sticky;top:32px}.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary{margin:0 -20px 20px -22px}.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items{padding-left:10px}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary{margin:0 -20px 20px -22px}.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items{padding-left:10px}.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary{margin:0 -20px 20px -22px}.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items{padding-left:10px}}.wrap.llms-dashboard .llms-inside-wrap{padding-top:30px}.wrap.llms-dashboard #poststuff h2{padding:12px 20px}.wrap.llms-dashboard .llms-dashboard-activity h2{font-size:20px;font-weight:700;line-height:1.5;margin-top:0;text-align:center}.wrap.llms-dashboard .postbox{background-color:#fff;border:none;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.wrap.llms-dashboard .postbox .postbox-header{border-bottom-color:#efefef}.wrap.llms-dashboard .postbox .inside{padding:20px}.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap{margin-top:0}.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item{margin-top:0}.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item p{text-align:left}.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item footer.llms-actions{padding-top:0}.wrap.llms-dashboard #llms_dashboard_addons p{text-align:center}.wrap.llms-dashboard #llms_dashboard_addons p .llms-button-primary{display:inline-block;margin-top:15px}.wrap.llms-dashboard #llms_dashboard_quick_links ul{list-style:disc;margin:5px 0 0 20px}.wrap.llms-dashboard #llms_dashboard_quick_links ul li{font-size:15px;line-height:1.5}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links{display:grid;grid-template-columns:1fr;grid-gap:30px}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links a{display:inline-block}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list h3{margin:0 0 10px 0}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list ul{margin-bottom:20px}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list ul.llms-checklist{list-style:none;margin-left:0}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa{text-align:center;width:16px}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa-check{color:#008a20}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa-times{color:#d63638}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-primary,.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-secondary,.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-action{display:block;text-align:center}@media only screen and (min-width: 782px){.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links{grid-template-columns:1fr 1fr 1fr}}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links .llms-list h3{margin:0}.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links .llms-list h3 .dashicons{color:#aaa}@media only screen and (min-width: 782px){.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links{grid-template-columns:1fr 1fr 1fr 1fr}}.wrap.llms-dashboard #llms_dashboard_blog ul,.wrap.llms-dashboard #llms_dashboard_podcast ul{margin:0}.wrap.llms-dashboard #llms_dashboard_blog ul li,.wrap.llms-dashboard #llms_dashboard_podcast ul li{margin:0 0 15px 0}.wrap.llms-dashboard #llms_dashboard_blog ul li a,.wrap.llms-dashboard #llms_dashboard_podcast ul li a{display:block}.wrap.llms-dashboard #llms_dashboard_blog p,.wrap.llms-dashboard #llms_dashboard_podcast p{margin:15px 0;text-align:center}.wrap.llms-dashboard #llms_dashboard_blog p a,.wrap.llms-dashboard #llms_dashboard_podcast p a{display:inline-block}#llms_dashboard_widget .inside{margin:0;padding-bottom:8px}#llms_dashboard_widget .llms-dashboard-widget-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:12px}#llms_dashboard_widget .activity-block{padding-bottom:8px;border-color:#e8e8e8}#llms_dashboard_widget h3{margin-bottom:0}#llms_dashboard_widget .llms-charts-wrapper{display:none}#llms_dashboard_widget .llms-widget-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:8px;width:100%;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;padding:4px 0}#llms_dashboard_widget .llms-widget-row:before,#llms_dashboard_widget .llms-widget-row:after{display:none}#llms_dashboard_widget .llms-widget-1-4{padding:0;-webkit-box-flex:1;-ms-flex:1;flex:1}#llms_dashboard_widget .llms-widget{padding:8px 8px 12px;margin:0;border-radius:6px;border:1px solid #e8e8e8;-webkit-box-shadow:0px 2px 4px #f6f7f7;box-shadow:0px 2px 4px #f6f7f7;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}#llms_dashboard_widget .llms-label{font-size:14px;width:100%;-ms-flex-item-align:start;align-self:flex-start;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#llms_dashboard_widget .llms-widget-content{font-size:20px;margin:0}#llms_dashboard_widget .llms-widget-info-toggle{display:none}#llms_dashboard_widget a{border:0}#llms_dashboard_widget .subsubsub{color:#dcdcde}.llms-dashboard-widget-feed{margin:0 -12px;padding:0;background-color:#f6f7f7}.llms-dashboard-widget-feed li{margin:0;padding:8px 12px;border-bottom:1px solid #e8e8e8}.llms-dashboard-widget-feed span{display:block}.wrap.llms-resources .llms-inside-wrap{padding-top:30px}.wrap.llms-resources #poststuff #post-body.columns-2{margin-right:350px}.wrap.llms-resources #poststuff #post-body.columns-2 #side-sortables{width:330px}@media only screen and (max-width: 850px){.wrap.llms-resources #poststuff #post-body.columns-2 #side-sortables{width:auto}}.wrap.llms-resources #poststuff #postbox-container-1{float:right;margin-right:-350px;width:330px}.wrap.llms-resources #poststuff h2{padding:12px 20px}.wrap.llms-resources #poststuff .postbox{background-color:#fff;border:none;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.wrap.llms-resources #poststuff .postbox .postbox-header{border-bottom-color:#efefef}.wrap.llms-resources #poststuff .postbox .inside{margin:0;padding:20px}.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video p{font-size:15px;line-height:1.5;margin:0 0 40px 0}.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container{height:0;overflow:hidden;padding-top:30px;padding-bottom:56.25%;position:relative}.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container iframe,.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container object,.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container embed{left:0;height:100%;position:absolute;top:0;width:100%}.wrap.llms-resources #llms_dashboard_getting_started ul{margin:0 0 20px 0}.wrap.llms-resources #llms_dashboard_getting_started ul li{font-size:15px;line-height:1.5;margin-bottom:15px}.wrap.llms-resources #llms_dashboard_getting_started .llms-button-primary{display:block;margin-top:auto;max-width:300px;text-align:center}.wrap.llms-resources #llms_dashboard_resource_links ul{list-style:disc;margin:5px 0 0 20px}.wrap.llms-resources #llms_dashboard_resource_links ul li{font-size:15px;line-height:1.5}.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links{display:grid;grid-template-columns:1fr;grid-gap:60px}.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links a{display:inline-block}.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list h3{margin:0 0 10px 0}.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list h3 .dashicons{color:#aaa}.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list ul{margin-bottom:20px}.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-primary,.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-secondary,.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-action{display:block;margin-top:auto;max-width:300px;text-align:center}@media only screen and (min-width: 782px){.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links{grid-template-columns:1fr 1fr 1fr}}.llms-remarks .llms-remarks-field{height:120px;width:100%}.llms-remarks input[type=number]{width:60px}button[name=llms_quiz_attempt_action] .save{display:none}button[name=llms_quiz_attempt_action].grading .default{display:none}button[name=llms_quiz_attempt_action].grading .save{display:inline}.llms-form-fields{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields *{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields.flush .llms-form-field{padding:0 0 20px}.llms-form-fields label:not(.llms-field-html label){font-weight:700}.llms-form-fields .wp-block-columns,.llms-form-fields .wp-block-column{margin-bottom:0}.llms-form-heading{padding:0 10px 10px}.llms-form-field{float:left;padding:0 10px 20px;position:relative;width:100%}.llms-form-field label:empty:after{content:" "}.llms-form-field [type=text],.llms-form-field [type=password],.llms-form-field [type=email],.llms-form-field [type=url],.llms-form-field [type=tel],.llms-form-field [type=number]{background-color:#fefefe;background-clip:padding-box;border:1px solid #999;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:16px;line-height:1;padding:8px 12px;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;width:100%}.llms-form-field input:focus,.llms-form-field input:focus-visible{border-color:#6888df;outline:thin solid}.llms-form-field select{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background-color:#fefefe;border:1px solid #999;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#010101;padding:8px 12px;margin:0;width:100%;font-family:inherit;font-size:16px;cursor:inherit;line-height:1.6;z-index:1;outline:none;background-repeat:no-repeat;background-image:linear-gradient(45deg, transparent 50%, currentcolor 50%),linear-gradient(135deg, currentcolor 50%, transparent 50%);background-position:right 15px top 1.3rem,right 10px top 1.3rem;background-size:5px 5px,5px 5px}.llms-form-field select::-ms-expand{display:none}.llms-form-field select:focus{border:1px solid #6888df;outline:thin solid}.llms-form-field.valid input[type=date],.llms-form-field.valid input[type=time],.llms-form-field.valid input[type=datetime-local],.llms-form-field.valid input[type=week],.llms-form-field.valid input[type=month],.llms-form-field.valid input[type=text],.llms-form-field.valid input[type=email],.llms-form-field.valid input[type=url],.llms-form-field.valid input[type=password],.llms-form-field.valid input[type=search],.llms-form-field.valid input[type=tel],.llms-form-field.valid input[type=number],.llms-form-field.valid textarea,.llms-form-field.valid select{background:rgba(131,195,115,.3);border-color:#83c373}.llms-form-field.error input[type=date],.llms-form-field.error input[type=time],.llms-form-field.error input[type=datetime-local],.llms-form-field.error input[type=week],.llms-form-field.error input[type=month],.llms-form-field.error input[type=text],.llms-form-field.error input[type=email],.llms-form-field.error input[type=url],.llms-form-field.error input[type=password],.llms-form-field.error input[type=search],.llms-form-field.error input[type=tel],.llms-form-field.error input[type=number],.llms-form-field.error textarea,.llms-form-field.error select,.llms-form-field.invalid input[type=date],.llms-form-field.invalid input[type=time],.llms-form-field.invalid input[type=datetime-local],.llms-form-field.invalid input[type=week],.llms-form-field.invalid input[type=month],.llms-form-field.invalid input[type=text],.llms-form-field.invalid input[type=email],.llms-form-field.invalid input[type=url],.llms-form-field.invalid input[type=password],.llms-form-field.invalid input[type=search],.llms-form-field.invalid input[type=tel],.llms-form-field.invalid input[type=number],.llms-form-field.invalid textarea,.llms-form-field.invalid select{background:rgba(187,35,28,.3);border-color:#bb231c}.llms-form-field.llms-visually-hidden-field{display:none}.llms-form-field.align-right{text-align:right}@media screen and (min-width: 600px){.llms-form-field.llms-cols-1{width:8.3333333333%}.llms-form-field.llms-cols-2{width:16.6666666667%}.llms-form-field.llms-cols-3{width:25%}.llms-form-field.llms-cols-4{width:33.3333333333%}.llms-form-field.llms-cols-5{width:41.6666666667%}.llms-form-field.llms-cols-6{width:50%}.llms-form-field.llms-cols-7{width:58.3333333333%}.llms-form-field.llms-cols-8{width:66.6666666667%}.llms-form-field.llms-cols-9{width:75%}.llms-form-field.llms-cols-10{width:83.3333333333%}.llms-form-field.llms-cols-11{width:91.6666666667%}.llms-form-field.llms-cols-12{width:100%}}.llms-form-field.type-hidden{padding:0}.llms-form-field.type-radio input,.llms-form-field.type-radio label,.llms-form-field.type-checkbox input,.llms-form-field.type-checkbox label{display:inline-block;width:auto}.llms-form-field.type-radio input,.llms-form-field.type-checkbox input{margin-right:10px}.llms-form-field.type-radio label+.llms-description,.llms-form-field.type-checkbox label+.llms-description{display:block}.llms-form-field.type-radio:not(.is-group) input[type=radio]{position:absolute;opacity:0;visibility:none}.llms-form-field.type-radio:not(.is-group) label:before{background:#fafafa;background-position:-24px 0;background-repeat:no-repeat;border-radius:50%;-webkit-box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;content:"";cursor:pointer;display:inline-block;height:22px;margin-right:5px;position:relative;-webkit-transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);top:-3px;vertical-align:middle;width:22px;z-index:2}.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked+label:before{-webkit-transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);background-position:0 0;background-image:radial-gradient(ellipse at center, #466dd8 0%, #466dd8 40%, #fafafa 45%)}.llms-form-field .llms-input-group{margin-top:5px}.llms-form-field .llms-input-group .llms-form-field{padding:0 0 5px 5px}.llms-form-field.type-reset button:not(.auto),.llms-form-field.type-button button:not(.auto),.llms-form-field.type-submit button:not(.auto){width:100%}.llms-form-field .llms-description{font-size:14px;font-style:italic;line-height:18px}.llms-form-field .llms-required{color:#bb231c;margin-left:4px}.llms-form-field input,.llms-form-field textarea,.llms-form-field select{width:100%;margin-bottom:5px}.llms-form-field .select2-container .select2-selection--single{height:auto;padding:4px 6px}.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%}.llms-password-strength-meter{border:1px solid #dadada;display:none;font-size:10px;margin-top:-10px;padding:1px;position:relative;text-align:center}.llms-password-strength-meter:before{bottom:0;content:"";left:0;position:absolute;top:0;-webkit-transition:width .4s ease;transition:width .4s ease}.llms-password-strength-meter.mismatch,.llms-password-strength-meter.too-short,.llms-password-strength-meter.very-weak{border-color:#e35b5b}.llms-password-strength-meter.mismatch:before,.llms-password-strength-meter.too-short:before,.llms-password-strength-meter.very-weak:before{background:rgba(227,91,91,.25);width:25%}.llms-password-strength-meter.too-short:before{width:0}.llms-password-strength-meter.weak{border-color:#f78b53}.llms-password-strength-meter.weak:before{background:rgba(247,139,83,.25);width:50%}.llms-password-strength-meter.medium{border-color:#ffc733}.llms-password-strength-meter.medium:before{background:rgba(255,199,51,.25);width:75%}.llms-password-strength-meter.strong{border-color:#83c373}.llms-password-strength-meter.strong:before{background:rgba(131,195,115,.25);width:100%}.llms-password-strength-meter+.llms-description{display:block}/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:"FontAwesome";src:url("../fonts/fontawesome-webfont.eot?v=4.7.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-vcard:before,.fa-address-card:before{content:""}.fa-vcard-o:before,.fa-address-card-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
+/*# sourceMappingURL=../maps/css/admin.min.css.map */
diff --git a/assets/css/builder-rtl.css b/assets/css/builder-rtl.css
new file mode 100644
index 0000000000..e1a33dedcc
--- /dev/null
+++ b/assets/css/builder-rtl.css
@@ -0,0 +1,1597 @@
+@charset "UTF-8";
+body.admin_page_llms-course-builder {
+ background: #fff;
+}
+body.admin_page_llms-course-builder #adminmenumain {
+ display: none;
+}
+body.admin_page_llms-course-builder #wpbody-content {
+ padding-bottom: 0;
+}
+body.admin_page_llms-course-builder #wpfooter {
+ display: none;
+}
+body.admin_page_llms-course-builder #wpcontent, body.admin_page_llms-course-builder #wpfooter {
+ margin-right: 0;
+}
+body.admin_page_llms-course-builder .llms-button-secondary .fa {
+ margin-left: 5px;
+}
+body.admin_page_llms-course-builder .webui-popover .select2-container--default .select2-results__group {
+ font-size: 16px;
+}
+body.admin_page_llms-course-builder .webui-popover .select2-container--default .select2-results__option .select2-results__option {
+ padding-right: 2em;
+}
+
+.wrap.lifterlms.llms-builder {
+ margin: 0;
+ padding: 0;
+ position: relative;
+}
+.wrap.lifterlms.llms-builder.editor-active .llms-video-explainer {
+ display: none;
+}
+.wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {
+ padding: 10px;
+ width: calc(100% - 200px);
+ z-index: 3;
+}
+@media only screen and (min-width: 1200px) {
+ .wrap.lifterlms.llms-builder.editor-active .llms-builder-main {
+ width: 560px;
+ }
+ .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {
+ width: calc(100% - 640px);
+ }
+}
+@media only screen and (min-width: 1440px) {
+ .wrap.lifterlms.llms-builder.editor-active .llms-builder-main {
+ width: calc(100% - 780px);
+ }
+ .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {
+ width: 720px;
+ }
+}
+@media only screen and (min-width: 1680px) {
+ .wrap.lifterlms.llms-builder.editor-active .llms-builder-main {
+ width: calc(100% - 1000px);
+ }
+ .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {
+ width: 940px;
+ }
+}
+@media only screen and (max-width: 782px) {
+ .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {
+ position: absolute;
+ top: 0;
+ width: auto;
+ }
+}
+.wrap.lifterlms.llms-builder .llms-headline {
+ display: inline-block;
+ font-weight: 400;
+ margin: 0;
+ padding: 0;
+ -webkit-transition: width 0.3s ease-in-out;
+ transition: width 0.3s ease-in-out;
+ vertical-align: middle;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main {
+ padding: 30px 0 30px 30px;
+ position: relative;
+ width: calc(100% - 450px);
+ z-index: 2;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons {
+ display: inline-block;
+ position: relative;
+ vertical-align: middle;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons button {
+ background: none;
+ color: inherit;
+ border: none;
+ padding: 0;
+ cursor: pointer;
+ outline: inherit;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons-lesson-id {
+ vertical-align: top;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-course-header {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ gap: 15px;
+ position: relative;
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-course-header .llms-button-secondary {
+ margin-left: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections {
+ -webkit-box-shadow: 0 0 0 3px transparent;
+ box-shadow: 0 0 0 3px transparent;
+ min-height: 60px;
+ padding: 10px 0;
+ -webkit-transition: min-height 0.2s ease, -webkit-box-shadow 0.6s ease;
+ transition: min-height 0.2s ease, -webkit-box-shadow 0.6s ease;
+ transition: box-shadow 0.6s ease, min-height 0.2s ease;
+ transition: box-shadow 0.6s ease, min-height 0.2s ease, -webkit-box-shadow 0.6s ease;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections.dragging {
+ -webkit-box-shadow: 0 0 0 3px #466dd8;
+ box-shadow: 0 0 0 3px #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section {
+ background: #fff;
+ border: 1px solid #efefef;
+ border-radius: 6px;
+ -webkit-box-shadow: -2px 2px 8px rgba(0, 0, 0, 0.08);
+ box-shadow: -2px 2px 8px rgba(0, 0, 0, 0.08);
+ position: relative;
+ margin: 0 0 20px 0;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 15px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ padding: 20px 30px 20px 10px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 15px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-right {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 0px;
+ margin-top: -5px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-right .llms-action-icon {
+ padding: 5px 10px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-left {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 15px;
+}
+@media only screen and (min-width: 1200px) {
+ .wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-right,
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-left {
+ white-space: nowrap;
+ }
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.expanded .llms-lessons {
+ overflow: visible;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.selected .llms-drag-utility.drag-section {
+ border-color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.selected > .llms-builder-header .llms-headline {
+ font-weight: 400;
+ color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-footer {
+ border-top: 1px solid #efefef;
+ padding: 20px 30px 20px 20px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section:first-child:before {
+ top: 30px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section:last-child:before {
+ bottom: 55px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.expanded:last-child:before {
+ bottom: 86px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons {
+ -webkit-box-shadow: 0 0 0 3px transparent;
+ box-shadow: 0 0 0 3px transparent;
+ height: 0;
+ margin: 0;
+ padding: 0;
+ -webkit-transition: min-height 0.2s ease, -webkit-box-shadow 0.6s ease;
+ transition: min-height 0.2s ease, -webkit-box-shadow 0.6s ease;
+ transition: box-shadow 0.6s ease, min-height 0.2s ease;
+ transition: box-shadow 0.6s ease, min-height 0.2s ease, -webkit-box-shadow 0.6s ease;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.dragging {
+ -webkit-box-shadow: 0 0 0 3px #466dd8;
+ box-shadow: 0 0 0 3px #466dd8;
+ min-height: 60px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.expanded, .wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.drag-expanded {
+ height: auto;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.expanded li.llms-lesson, .wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.drag-expanded li.llms-lesson {
+ pointer-events: auto;
+ visibility: visible;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson {
+ background: #fff;
+ border-top: 1px solid #efefef;
+ margin: 0;
+ padding: 20px 30px 20px 10px;
+ position: relative;
+ pointer-events: none;
+ visibility: hidden;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.selected .llms-drag-utility.drag-lesson {
+ border-color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.selected > .llms-builder-header .llms-headline {
+ color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ gap: 15px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-headline {
+ font-weight: 700;
+ margin-right: 10px;
+ cursor: pointer;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ gap: 15px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-left {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 15px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-right {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 0;
+ margin-top: -5px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-right .llms-action-icon {
+ padding: 5px 10px;
+}
+@media only screen and (min-width: 1200px) {
+ .wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-right,
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-left {
+ white-space: nowrap;
+ }
+}
+@media only screen and (min-width: 1200px) {
+ .wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header > .llms-builder-header {
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ }
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section .llms-drag-utility {
+ background: #fff;
+ border: 2px solid #ccc;
+ border-radius: 50%;
+ height: 10px;
+ right: 13px;
+ position: absolute;
+ top: 24px;
+ width: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson .llms-drag-utility {
+ height: 6px;
+ right: 14px;
+ top: 25px !important;
+ width: 6px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover > .llms-drag-utility,
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover > .llms-drag-utility {
+ border-color: #fff;
+ cursor: move;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover > .llms-drag-utility:hover:after,
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover > .llms-drag-utility:hover:after {
+ color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover > .llms-drag-utility:after,
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover > .llms-drag-utility:after {
+ background: #fff;
+ content: "··\a··\a··";
+ color: #ccc;
+ display: block;
+ font-size: 36px;
+ height: 29px;
+ letter-spacing: -1px;
+ line-height: 8px;
+ right: -7px;
+ position: absolute;
+ text-align: center;
+ top: -12px;
+ width: 23px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.ui-sortable-helper, .wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.ui-draggable-dragging,
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.ui-sortable-helper,
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.ui-draggable-dragging {
+ border: 1px solid #ccc;
+ background: #fff;
+ -webkit-transform: rotate(-2deg);
+ transform: rotate(-2deg);
+ visibility: visible !important;
+ z-index: 999;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.llms-sortable-placeholder,
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.llms-sortable-placeholder {
+ border: 3px dashed #466dd8;
+ background: rgba(70, 109, 216, 0.3);
+ margin: 0 10px;
+ padding: 5px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.llms-sortable-placeholder:before,
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.llms-sortable-placeholder:before {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections > li.llms-lesson.ui-draggable-dragging .llms-drag-utility {
+ position: relative;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections > li.llms-lesson.ui-draggable-dragging .llms-drag-utility:after {
+ right: -35px;
+ top: -28px;
+}
+.wrap.lifterlms.llms-builder .llms-input-wrapper {
+ position: relative;
+}
+.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container {
+ font-size: inherit;
+ font-family: inherit;
+}
+.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-editor.ql-blank::before {
+ color: #a0a0a0;
+ right: 8px;
+ left: 8px;
+}
+.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-editor p {
+ font-size: inherit;
+ line-height: 1;
+}
+.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-tooltip {
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder .llms-input,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor {
+ border: none;
+ border-bottom: 2px dotted transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ cursor: text;
+ display: inline-block;
+ font-size: inherit;
+ font-weight: 700;
+ height: auto;
+ line-height: 1;
+ margin: 0 8px;
+ min-width: 60px;
+ padding: 0;
+ -webkit-transition: border 0.2s ease, -webkit-box-shadow 0.2s ease;
+ transition: border 0.2s ease, -webkit-box-shadow 0.2s ease;
+ transition: border 0.2s ease, box-shadow 0.2s ease;
+ transition: border 0.2s ease, box-shadow 0.2s ease, -webkit-box-shadow 0.2s ease;
+}
+.wrap.lifterlms.llms-builder .llms-input:empty:before,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:empty:before {
+ color: #a0a0a0;
+ content: attr(data-placeholder);
+}
+.wrap.lifterlms.llms-builder .llms-input:hover,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:hover {
+ border-bottom-color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-input[disabled],
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor[disabled] {
+ cursor: not-allowed;
+}
+.wrap.lifterlms.llms-builder .llms-input[disabled]:hover,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor[disabled]:hover {
+ border-bottom-color: transparent;
+}
+.wrap.lifterlms.llms-builder .llms-input:focus,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:focus {
+ background: #fff;
+ -webkit-box-shadow: 0 0 0 4px #fff, 0 0 0 6px #466dd8;
+ box-shadow: 0 0 0 4px #fff, 0 0 0 6px #466dd8;
+ border-bottom: none;
+ outline: none;
+}
+.wrap.lifterlms.llms-builder .llms-input b, .wrap.lifterlms.llms-builder .llms-input strong,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor b,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor strong {
+ font-weight: 700;
+}
+.wrap.lifterlms.llms-builder .llms-input.standard,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard {
+ border: 1px solid #e6e6e6;
+ margin: 2px;
+ padding: 5px 3px;
+}
+.wrap.lifterlms.llms-builder .llms-input.standard:hover,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard:hover {
+ border-color: #d6d6d6;
+}
+.wrap.lifterlms.llms-builder .llms-input.standard:focus,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard:focus {
+ -webkit-box-shadow: 0 0 0 2px #466dd8;
+ box-shadow: 0 0 0 2px #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-input.permalink,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.permalink {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor {
+ padding: 0 1px;
+}
+.wrap.lifterlms.llms-builder .llms-label {
+ font-weight: 500;
+}
+.wrap.lifterlms.llms-builder .llms-label .fa {
+ color: #aaa;
+ padding-right: 6px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-editor .llms-label {
+ float: right;
+ margin-left: 10px;
+ position: relative;
+ top: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-editor textarea {
+ border: none;
+ padding: 10px;
+ display: block;
+ width: 100%;
+}
+.wrap.lifterlms.llms-builder .llms-editable-image button.llms-add-image {
+ width: 130px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-image .llms-image {
+ display: inline-block;
+ position: relative;
+}
+.wrap.lifterlms.llms-builder .llms-editable-image .llms-image:hover .llms-action-icon {
+ opacity: 1;
+}
+.wrap.lifterlms.llms-builder .llms-editable-image .llms-image .llms-action-icon {
+ color: #fff;
+ font-size: 24px;
+ opacity: 0;
+ padding: 0;
+ position: absolute;
+ -webkit-transition: opacity 0.2s ease;
+ transition: opacity 0.2s ease;
+ left: 3px;
+ top: 1px;
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder .llms-editable-image .llms-image img {
+ display: block;
+ height: 100px;
+ max-width: 100%;
+ width: auto;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group {
+ background: #f4f4f4;
+ padding: 10px;
+ position: relative;
+ margin: 0 1px;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-label,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-label {
+ min-width: 100%;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-editable-input,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-editable-input {
+ -webkit-box-flex: 2;
+ -ms-flex: 2;
+ flex: 2;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-label--after,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-label--after {
+ color: #888;
+ min-width: auto;
+ font-size: 85%;
+ padding-right: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch {
+ display: block;
+ width: 100%;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:before, .wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:after,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:before,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:after {
+ content: " ";
+ display: table;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:after,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:after {
+ clear: both;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch .llms-label,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch .llms-label {
+ width: calc(100% - 34px);
+}
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-image,
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-video,
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-editor,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-image,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-video,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-editor {
+ margin-top: 2px;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard {
+ display: block;
+ width: 100%;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.two-digits, .wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.three-digits, .wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.four-digits,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.two-digits,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.three-digits,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.four-digits {
+ display: inline-block;
+}
+.wrap.lifterlms.llms-builder .llms-editable-number .llms-input {
+ color: #888;
+ min-width: 30px;
+ text-align: left;
+}
+.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.two-digits {
+ width: 30px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.three-digits {
+ width: 40px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.four-digits {
+ width: 60px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-number small {
+ color: #888;
+ text-transform: uppercase;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings {
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+}
+.wrap.lifterlms.llms-builder .llms-model-settings:before, .wrap.lifterlms.llms-builder .llms-model-settings:after {
+ content: " ";
+ display: table;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings:after {
+ clear: both;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header {
+ border-bottom: 1px solid #efefef;
+ padding: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header .fa-caret-up {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header .fa-caret-down {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-header .fa-caret-up {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-header .fa-caret-down {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-body {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-settings-group-header:before, .wrap.lifterlms.llms-builder .llms-settings-group-header:after {
+ content: " ";
+ display: table;
+}
+.wrap.lifterlms.llms-builder .llms-settings-group-header:after {
+ clear: both;
+}
+.wrap.lifterlms.llms-builder .llms-settings-group-header .llms-settings-group-title {
+ display: inline-block;
+ font-size: 16px;
+ font-weight: 700;
+ line-height: 1.5;
+ margin: 0 5px;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder .llms-settings-group-header .llms-settings-group-toggle {
+ float: left;
+ font-size: 18px;
+ padding: 2px;
+}
+.wrap.lifterlms.llms-builder .llms-settings-group-body {
+ padding: 16px;
+}
+.wrap.lifterlms.llms-builder .llms-settings-row {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ margin: 2px 0;
+}
+.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field,
+.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+}
+.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field:first-child,
+.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group:first-child {
+ margin-right: 0;
+}
+.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field:last-child,
+.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group:last-child {
+ margin-left: 0;
+}
+.wrap.lifterlms.llms-builder .llms-settings-row .llms-breaker {
+ margin: 2px 0;
+ width: 100%;
+}
+.wrap.lifterlms.llms-builder .llms-editable-select {
+ margin: 2px 0;
+}
+.wrap.lifterlms.llms-builder .llms-editable-select .select2-container--default.select2-container--focus .select2-selection--multiple {
+ border-color: #aaa;
+}
+.wrap.lifterlms.llms-builder .llms-editable-radio label {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-editable-radio.has-images input {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-editable-radio.has-images label {
+ display: inline-block;
+ margin: 0 3px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-radio.has-images label > span {
+ -webkit-transition: background 0.2s ease;
+ transition: background 0.2s ease;
+ display: inline-block;
+ padding: 3px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-radio.has-images img {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-editable-radio.has-images input:checked + span {
+ background: #466dd8;
+}
+.wrap.lifterlms.llms-builder .settings-field--disabled {
+ opacity: 0.5;
+}
+.wrap.lifterlms.llms-builder .llms-action-icon {
+ color: #666;
+ display: inline-block;
+ font-size: 13px;
+ text-decoration: none;
+}
+.wrap.lifterlms.llms-builder .llms-action-icon:hover {
+ color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-action-icon:hover.danger {
+ color: #bb231c;
+}
+.wrap.lifterlms.llms-builder .llms-action-icon.circle {
+ border: 2px solid #aaa;
+ border-radius: 50%;
+ font-size: 9px;
+ height: 8px;
+ line-height: 1;
+ padding: 5px;
+ text-align: center;
+ width: 8px;
+}
+.wrap.lifterlms.llms-builder .llms-action-icon.circle:hover {
+ border-color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-action-icon.circle:hover.danger {
+ border-color: #bb231c;
+}
+.wrap.lifterlms.llms-builder ul.llms-info-list {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ gap: 15px;
+ margin: 10px 8px 0 0;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item {
+ color: #666;
+ font-size: 13px;
+ margin: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active, .wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .llms-action-icon {
+ color: #466dd8;
+}
+.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .fa, .wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .llms-action-icon .fa {
+ margin-left: 5px;
+}
+.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item button {
+ background: none;
+ color: inherit;
+ border: none;
+ padding: 0;
+ cursor: pointer;
+ outline: inherit;
+}
+.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item button:hover {
+ text-decoration: underline;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar {
+ background: #e6e6e6;
+ bottom: 0;
+ overflow: hidden;
+ padding: 30px;
+ position: fixed;
+ -webkit-transition: width 0.3s ease-in-out;
+ transition: width 0.3s ease-in-out;
+ top: 32px;
+ left: 0;
+ width: 360px;
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul, .wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities li {
+ margin: 0;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 15px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul li {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul li:last-child {
+ margin-left: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility {
+ background: #efefef;
+ border: 1px solid #ccc;
+ border-radius: 8px;
+ color: inherit;
+ cursor: pointer;
+ display: block;
+ overflow: hidden;
+ padding: 6px 12px;
+ position: relative;
+ text-align: center;
+ width: 100%;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility:hover {
+ background: #fefefe;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility .fa {
+ background: #848484;
+ position: absolute;
+ right: 0;
+ top: 0;
+ padding: 7px;
+ color: #fff;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-sidebar-headline {
+ margin: 0 0 10px;
+ font-size: 22px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-elements-list {
+ margin-bottom: 30px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-elements-list li {
+ margin-bottom: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utility {
+ color: #444;
+ text-decoration: none;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button {
+ background: #466dd8;
+ border-radius: 8px;
+ border: none;
+ color: #fff;
+ cursor: pointer;
+ display: block;
+ margin: 0;
+ overflow: hidden;
+ padding: 17px 20px;
+ position: relative;
+ -webkit-transition: background 0.2s ease, color 0.2s ease;
+ transition: background 0.2s ease, color 0.2s ease;
+ text-align: center;
+ width: 100%;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button:hover {
+ background: #2b55cb;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary {
+ background: #efefef;
+ color: #444;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary:hover {
+ background: #fefefe;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary .fa {
+ background: #848484;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button .fa {
+ background: #1c3987;
+ border-radius: 0 4px 4px 0;
+ color: #fff;
+ display: block;
+ font-size: 20px;
+ padding: 15px 20px;
+ position: absolute;
+ top: 0;
+ right: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button[disabled=disabled] {
+ opacity: 0.4;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.small {
+ padding: 8px 46px 8px 10px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.small .fa {
+ font-size: 15px;
+ padding: 9px 10px;
+ width: 20px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.right.small {
+ padding-right: 10px;
+ padding-left: 46px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.right .fa {
+ border-radius: 4px 0 0 4px;
+ right: auto;
+ left: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor {
+ height: 100%;
+ min-height: 100%;
+ position: relative;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav {
+ background-color: #1c3987;
+ margin: 0;
+ padding: 8px 8px 0 0;
+ font-size: 0;
+ margin: -10px -10px 10px -10px;
+ position: relative;
+ z-index: 2;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+ position: relative;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item {
+ display: inline-block;
+ margin: 0 0 0 6px;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu:before {
+ border: 8px solid transparent;
+ border-right-color: #cacaca;
+ content: "";
+ position: absolute;
+ top: 11px;
+ right: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu .llms-editor-menu-item:hover > a,
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu .llms-editor-menu-item.active > a {
+ background: #dfdfdf;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item:hover > a {
+ background-color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active > a {
+ background-color: #e6e6e6;
+ color: #466dd8;
+ font-weight: 700;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active > a:focus {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active > .llms-editor-menu {
+ display: inline-block;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item a {
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ color: #FFF;
+ display: inline-block;
+ padding: 9px 18px;
+ text-decoration: none;
+ -webkit-transition: background 0.2s ease;
+ transition: background 0.2s ease;
+ font-size: 15px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right {
+ float: left;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right a, .wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right:hover {
+ background: transparent;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab {
+ display: none;
+ height: calc(100% - 90px);
+ overflow: scroll;
+ position: relative;
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz .llms-quiz-questions {
+ -webkit-box-flex: 1;
+ -ms-flex: 1 0 auto;
+ flex: 1 0 auto;
+ overflow: scroll;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz .llms-quiz-questions .llms-quiz-questions {
+ overflow: visible;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save {
+ bottom: 10px;
+ right: 10px;
+ position: absolute;
+ left: 10px;
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-builder-error {
+ background: #bb231c;
+ border-radius: 4px;
+ color: #fff;
+ display: inline-block;
+ font-style: italic;
+ padding: 5px 25px 7px 15px;
+ margin: 0 0 10px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-builder-error li {
+ margin: 0;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-save {
+ width: 75%;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-exit {
+ padding-right: 5px;
+ padding-left: 5px;
+ width: 23%;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button {
+ position: relative;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button i {
+ position: absolute;
+ right: 10px;
+ top: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button i .llms-spinner {
+ border-color: #fff;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status] .llms-status-indicator {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=saved] .status--saved {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=unsaved] {
+ background-color: #f8954f;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=unsaved] .status--unsaved {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=saving] .status--saving {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=error] .status--error {
+ display: block;
+}
+@media only screen and (max-width: 782px) {
+ .wrap.lifterlms.llms-builder .llms-builder-sidebar {
+ margin-left: 10px;
+ position: relative;
+ top: 0;
+ width: auto;
+ }
+ .wrap.lifterlms.llms-builder .llms-builder-main {
+ padding-left: 10px;
+ width: auto;
+ }
+}
+.wrap.lifterlms.llms-builder .select2-container {
+ z-index: 99999999;
+}
+.wrap.lifterlms.llms-builder .select2-results__option {
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder .select2-container--default .select2-results__option--highlighted[aria-selected] {
+ background: #466dd8;
+}
+.wrap.lifterlms.llms-builder .select2-container--default .select2-results__option--highlighted[aria-selected] .llms-existing-action {
+ color: #fff;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ padding: 5px 0 5px 5px;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info {
+ -webkit-box-flex: 6;
+ -ms-flex: 6;
+ flex: 6;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h4, .wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h5 {
+ margin: 0;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h4 {
+ font-weight: 400;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h5 {
+ font-weight: 300;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action {
+ color: #466dd8;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ text-align: center;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action .fa {
+ display: block;
+ font-size: 30px;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action small {
+ text-transform: uppercase;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-empty {
+ margin: 100px auto;
+ text-align: center;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-empty p {
+ font-size: 18px;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-empty button.llms-element-button {
+ max-width: 320px;
+ margin: 0 auto;
+}
+.wrap.lifterlms.llms-builder .llms-editor-tab.tab--quiz .llms-model-header .llms-model-title {
+ width: calc(100% - 310px);
+}
+.wrap.lifterlms.llms-builder .llms-editor-tab.tab--quiz .llms-model-header .llms-quiz-points {
+ float: right;
+ margin-left: 10px;
+ width: 100px;
+}
+.wrap.lifterlms.llms-builder .llms-model-header {
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ padding: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-model-header:before, .wrap.lifterlms.llms-builder .llms-model-header:after {
+ content: " ";
+ display: table;
+}
+.wrap.lifterlms.llms-builder .llms-model-header:after {
+ clear: both;
+}
+.wrap.lifterlms.llms-builder .llms-model-header .llms-model-title {
+ float: right;
+ margin-left: 10px;
+ width: calc(100% - 200px);
+}
+.wrap.lifterlms.llms-builder .llms-model-header .llms-model-title .llms-input {
+ width: calc(100% - 65px);
+}
+.wrap.lifterlms.llms-builder .llms-model-header .llms-model-status.llms-switch {
+ float: right;
+ margin-left: 10px;
+ position: relative;
+ text-align: left;
+ top: -2px;
+ width: 100px;
+}
+.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons {
+ float: right;
+ position: relative;
+ text-align: left;
+ width: 80px;
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons .llms-action-icon {
+ margin-right: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons .fa {
+ max-width: 15px;
+}
+.wrap.lifterlms.llms-builder .llms-model-header + .llms-model-settings.active {
+ margin-top: -10px;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings {
+ clear: both;
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings.active {
+ display: block;
+ margin-top: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-footer {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ margin: 0 5px;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button:first-child {
+ margin-right: 0;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button:last-child {
+ margin-left: 0;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button.llms-show-question-bank {
+ -webkit-box-flex: 2;
+ -ms-flex: 2;
+ flex: 2;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-tools {
+ display: none;
+ width: 100%;
+ position: relative;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank:before, .wrap.lifterlms.llms-builder ul.llms-question-bank:after {
+ content: " ";
+ display: table;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank:after {
+ clear: both;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header {
+ clear: both;
+ padding-top: 20px;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header:first-child {
+ padding-top: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header h4 {
+ font-size: 20px;
+ margin: 10px 5px;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ float: right;
+ margin: 0;
+ padding: 3px;
+ width: 33.3333%;
+ -webkit-transition: opacity 0.3s ease-in-out;
+ transition: opacity 0.3s ease-in-out;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type.filtered {
+ opacity: 0.3;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type .llms-type-unavailable {
+ display: block;
+ position: relative;
+ text-decoration: none;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type .llms-type-unavailable .llms-element-button {
+ opacity: 0.5;
+ pointer-events: none;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions {
+ margin: 10px 3px;
+ padding: 5px;
+ -webkit-transition: -webkit-box-shadow 0.6s ease;
+ transition: -webkit-box-shadow 0.6s ease;
+ transition: box-shadow 0.6s ease;
+ transition: box-shadow 0.6s ease, -webkit-box-shadow 0.6s ease;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions.dragging {
+ -webkit-box-shadow: 0 0 0 3px #466dd8;
+ box-shadow: 0 0 0 3px #466dd8;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions:empty:before {
+ background: #fff;
+ content: attr(data-empty-msg);
+ display: block;
+ font-size: 18px;
+ margin: 0 auto;
+ padding: 100px 0;
+ text-align: center;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question {
+ background: #fff;
+ margin: 0 0 3px;
+ padding: 15px 12px 10px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question:hover > .llms-builder-header .llms-action-icons {
+ opacity: 1;
+ pointer-events: auto;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions {
+ margin-right: 12px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions .llms-question {
+ border-bottom: 2px solid #e6e6e6;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions:empty:before {
+ content: attr(data-empty-msg);
+ display: block;
+ font-size: 18px;
+ text-align: center;
+ margin: 20px auto;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions li.llms-question.llms-sortable-placeholder.qtype--group {
+ display: none !important;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:before, .wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:after {
+ content: " ";
+ display: table;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:after {
+ clear: both;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header > * {
+ float: right;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-body {
+ display: none;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-body.active {
+ display: block;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp {
+ background: #466dd8;
+ border-radius: 4px;
+ color: #fff;
+ cursor: move;
+ font-size: 90%;
+ margin-top: -5px;
+ padding: 4px 10px 6px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp small, .wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp .fa {
+ line-height: 1.2;
+ vertical-align: middle;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp .fa {
+ margin-left: 4px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-headline {
+ width: calc(100% - 110px - 90px - 55px);
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-headline .ql-editor {
+ width: calc(100% - 16px);
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-action-icons {
+ width: 110px;
+ opacity: 0;
+ pointer-events: none;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-points {
+ width: 90px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features {
+ margin: 10px 0 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features:last-child {
+ margin: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features .llms-switch {
+ margin-left: 15px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-editable-video {
+ position: relative;
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-wrapper {
+ background: #f4f4f4;
+ margin: 2px 1px;
+ padding: 10px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header {
+ margin-bottom: 10px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:before, .wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:after {
+ content: " ";
+ display: table;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:after {
+ clear: both;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header .llms-switch {
+ float: left;
+ text-align: left;
+ width: 260px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices {
+ border: 3px solid #f4f4f4;
+ margin: -3px;
+ padding: 0;
+ -webkit-transition: -webkit-box-shadow 0.6s ease;
+ transition: -webkit-box-shadow 0.6s ease;
+ transition: box-shadow 0.6s ease;
+ transition: box-shadow 0.6s ease, -webkit-box-shadow 0.6s ease;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices.dragging {
+ -webkit-box-shadow: 0 0 0 3px #466dd8;
+ box-shadow: 0 0 0 3px #466dd8;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices.multi-choices li.llms-question-choice .llms-choice-id span {
+ border-radius: 4px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice {
+ margin: 0 0 5px;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice:last-child {
+ margin-bottom: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id input[type=checkbox] {
+ display: none;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id input[type=checkbox]:checked + .llms-marker {
+ background: #4d8d3c;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker {
+ border-radius: 50%;
+ background: #d0d0d0;
+ -webkit-box-shadow: inset 0 0 1px #848484;
+ box-shadow: inset 0 0 1px #848484;
+ color: #444;
+ display: inline-block;
+ font-size: 16px;
+ height: 20px;
+ line-height: 20px;
+ padding: 5px;
+ position: relative;
+ text-align: center;
+ -webkit-transition: background 0.1s ease;
+ transition: background 0.1s ease;
+ width: 20px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker .fa {
+ right: 7px;
+ opacity: 0;
+ position: absolute;
+ top: 7px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker.selectable:hover b {
+ opacity: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker.selectable:hover .fa {
+ opacity: 1;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-input-wrapper,
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image {
+ display: inline-block;
+ width: calc(100% - 55px - 35px - 5px);
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-input {
+ width: calc(100% - 16px);
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image .llms-image {
+ vertical-align: middle;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image .llms-image img {
+ height: 50px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-action-icons {
+ display: inline-block;
+ opacity: 1;
+ pointer-events: auto;
+ text-align: left;
+ width: 55px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice.llms-sortable-placeholder {
+ border: 3px dashed #466dd8 !important;
+ background: rgba(70, 109, 216, 0.3);
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice.ui-sortable-helper {
+ border: 1px solid #ccc;
+ background: #fff;
+ padding: 10px;
+ -webkit-transform: rotate(-2deg);
+ transform: rotate(-2deg);
+ z-index: 999;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.ui-sortable-helper,
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.ui-draggable-dragging {
+ border: 1px solid #ccc;
+ background: #fff;
+ -webkit-transform: rotate(-2deg);
+ transform: rotate(-2deg);
+ z-index: 999;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.llms-sortable-placeholder {
+ border: 3px dashed #466dd8 !important;
+ background: rgba(70, 109, 216, 0.3);
+}
+.wrap.lifterlms.llms-builder .llms-switch {
+ display: inline-block;
+ float: none;
+ width: auto;
+}
+.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox] {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox]:checked + .llms-switch-slider {
+ background: #4d8d3c;
+}
+.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox]:checked + .llms-switch-slider:after {
+ -webkit-transform: translateX(-14px);
+ transform: translateX(-14px);
+}
+.wrap.lifterlms.llms-builder .llms-switch .llms-label {
+ display: inline-block;
+ vertical-align: top;
+}
+.wrap.lifterlms.llms-builder .llms-switch .llms-switch-slider {
+ background: #e0e0e0;
+ border-radius: 8px;
+ display: inline-block;
+ height: 16px;
+ margin-top: 2px;
+ position: relative;
+ -webkit-transition: background 0.2s ease;
+ transition: background 0.2s ease;
+ vertical-align: top;
+ width: 30px;
+}
+.wrap.lifterlms.llms-builder .llms-switch .llms-switch-slider:after {
+ background: #fff;
+ border-radius: 8px;
+ content: "";
+ display: block;
+ height: 12px;
+ right: 2px;
+ position: relative;
+ -webkit-transition: -webkit-transform 0.2s ease;
+ transition: -webkit-transform 0.2s ease;
+ transition: transform 0.2s ease;
+ transition: transform 0.2s ease, -webkit-transform 0.2s ease;
+ top: 2px;
+ width: 12px;
+}
+.wrap.lifterlms.llms-builder .llms-video-explainer-trigger {
+ display: block;
+ margin: 40px 0 0;
+ cursor: pointer;
+ position: relative;
+ width: 100%;
+ -webkit-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+ color: initial;
+}
+.wrap.lifterlms.llms-builder .llms-video-explainer-trigger:hover {
+ color: currentColor;
+}
+.wrap.lifterlms.llms-builder .llms-video-explainer-trigger:after {
+ position: absolute;
+ inset: 0;
+ margin: auto;
+ pointer-events: none;
+ content: "▶";
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ clear: both;
+ height: 2em;
+ width: 2em;
+ border-radius: 4em;
+ border: 4px solid currentColor;
+ font-size: 2.5em;
+}
+.wrap.lifterlms.llms-builder .llms-video-explainer-trigger img {
+ display: block;
+ width: 100%;
+ border-radius: 4px;
+}
+
+.llms-multi-input .llms-input-wrapper {
+ width: 50%;
+ float: right;
+ margin-bottom: 6px;
+ font-size: 12px;
+}
+
+.llms-multi-input .llms-input-wrapper .llms-input {
+ font-size: 12px;
+ padding: 5px;
+}
diff --git a/assets/css/builder-rtl.min.css b/assets/css/builder-rtl.min.css
new file mode 100644
index 0000000000..cd7409b8bd
--- /dev/null
+++ b/assets/css/builder-rtl.min.css
@@ -0,0 +1 @@
+body.admin_page_llms-course-builder{background:#fff}body.admin_page_llms-course-builder #adminmenumain{display:none}body.admin_page_llms-course-builder #wpbody-content{padding-bottom:0}body.admin_page_llms-course-builder #wpfooter{display:none}body.admin_page_llms-course-builder #wpcontent,body.admin_page_llms-course-builder #wpfooter{margin-right:0}body.admin_page_llms-course-builder .llms-button-secondary .fa{margin-left:5px}body.admin_page_llms-course-builder .webui-popover .select2-container--default .select2-results__group{font-size:16px}body.admin_page_llms-course-builder .webui-popover .select2-container--default .select2-results__option .select2-results__option{padding-right:2em}.wrap.lifterlms.llms-builder{margin:0;padding:0;position:relative}.wrap.lifterlms.llms-builder.editor-active .llms-video-explainer{display:none}.wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar{padding:10px;width:calc(100% - 200px);z-index:3}@media only screen and (min-width: 1200px){.wrap.lifterlms.llms-builder.editor-active .llms-builder-main{width:560px}.wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar{width:calc(100% - 640px)}}@media only screen and (min-width: 1440px){.wrap.lifterlms.llms-builder.editor-active .llms-builder-main{width:calc(100% - 780px)}.wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar{width:720px}}@media only screen and (min-width: 1680px){.wrap.lifterlms.llms-builder.editor-active .llms-builder-main{width:calc(100% - 1000px)}.wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar{width:940px}}@media only screen and (max-width: 782px){.wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar{position:absolute;top:0;width:auto}}.wrap.lifterlms.llms-builder .llms-headline{display:inline-block;font-weight:400;margin:0;padding:0;-webkit-transition:width .3s ease-in-out;transition:width .3s ease-in-out;vertical-align:middle}.wrap.lifterlms.llms-builder .llms-builder-main{padding:30px 0 30px 30px;position:relative;width:calc(100% - 450px);z-index:2}.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons{display:inline-block;position:relative;vertical-align:middle}.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons button{background:none;color:inherit;border:none;padding:0;cursor:pointer;outline:inherit}.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons-lesson-id{vertical-align:top}.wrap.lifterlms.llms-builder .llms-builder-main .llms-course-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:15px;position:relative;z-index:1}.wrap.lifterlms.llms-builder .llms-builder-main .llms-course-header .llms-button-secondary{margin-left:10px}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections{-webkit-box-shadow:0 0 0 3px rgba(0,0,0,0);box-shadow:0 0 0 3px rgba(0,0,0,0);min-height:60px;padding:10px 0;-webkit-transition:min-height .2s ease,-webkit-box-shadow .6s ease;transition:min-height .2s ease,-webkit-box-shadow .6s ease;transition:box-shadow .6s ease,min-height .2s ease;transition:box-shadow .6s ease,min-height .2s ease,-webkit-box-shadow .6s ease}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections.dragging{-webkit-box-shadow:0 0 0 3px #466dd8;box-shadow:0 0 0 3px #466dd8}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section{background:#fff;border:1px solid #efefef;border-radius:6px;-webkit-box-shadow:-2px 2px 8px rgba(0,0,0,.08);box-shadow:-2px 2px 8px rgba(0,0,0,.08);position:relative;margin:0 0 20px 0;padding:0}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:15px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:20px 30px 20px 10px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-header .llms-action-icons{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:15px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-header .llms-action-icons .llms-action-icons-right{display:-webkit-box;display:-ms-flexbox;display:flex;gap:0px;margin-top:-5px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-header .llms-action-icons .llms-action-icons-right .llms-action-icon{padding:5px 10px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-header .llms-action-icons .llms-action-icons-left{display:-webkit-box;display:-ms-flexbox;display:flex;gap:15px}@media only screen and (min-width: 1200px){.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-header .llms-action-icons .llms-action-icons-right,.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-header .llms-action-icons .llms-action-icons-left{white-space:nowrap}}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.expanded .llms-lessons{overflow:visible}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.selected .llms-drag-utility.drag-section{border-color:#466dd8}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.selected>.llms-builder-header .llms-headline{font-weight:400;color:#466dd8}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-footer{border-top:1px solid #efefef;padding:20px 30px 20px 20px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section:first-child:before{top:30px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section:last-child:before{bottom:55px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.expanded:last-child:before{bottom:86px}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons{-webkit-box-shadow:0 0 0 3px rgba(0,0,0,0);box-shadow:0 0 0 3px rgba(0,0,0,0);height:0;margin:0;padding:0;-webkit-transition:min-height .2s ease,-webkit-box-shadow .6s ease;transition:min-height .2s ease,-webkit-box-shadow .6s ease;transition:box-shadow .6s ease,min-height .2s ease;transition:box-shadow .6s ease,min-height .2s ease,-webkit-box-shadow .6s ease}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.dragging{-webkit-box-shadow:0 0 0 3px #466dd8;box-shadow:0 0 0 3px #466dd8;min-height:60px}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.expanded,.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.drag-expanded{height:auto}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.expanded li.llms-lesson,.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.drag-expanded li.llms-lesson{pointer-events:auto;visibility:visible}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson{background:#fff;border-top:1px solid #efefef;margin:0;padding:20px 30px 20px 10px;position:relative;pointer-events:none;visibility:hidden}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.selected .llms-drag-utility.drag-lesson{border-color:#466dd8}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.selected>.llms-builder-header .llms-headline{color:#466dd8}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:15px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header .llms-headline{font-weight:700;margin-right:10px;cursor:pointer}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header .llms-action-icons{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;gap:15px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header .llms-action-icons .llms-action-icons-left{display:-webkit-box;display:-ms-flexbox;display:flex;gap:15px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header .llms-action-icons .llms-action-icons-right{display:-webkit-box;display:-ms-flexbox;display:flex;gap:0;margin-top:-5px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header .llms-action-icons .llms-action-icons-right .llms-action-icon{padding:5px 10px}@media only screen and (min-width: 1200px){.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header .llms-action-icons .llms-action-icons-right,.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header .llms-action-icons .llms-action-icons-left{white-space:nowrap}}@media only screen and (min-width: 1200px){.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header>.llms-builder-header{-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section .llms-drag-utility{background:#fff;border:2px solid #ccc;border-radius:50%;height:10px;right:13px;position:absolute;top:24px;width:10px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson .llms-drag-utility{height:6px;right:14px;top:25px !important;width:6px}.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover>.llms-drag-utility,.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover>.llms-drag-utility{border-color:#fff;cursor:move}.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover>.llms-drag-utility:hover:after,.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover>.llms-drag-utility:hover:after{color:#466dd8}.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover>.llms-drag-utility:after,.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover>.llms-drag-utility:after{background:#fff;content:"··\a··\a··";color:#ccc;display:block;font-size:36px;height:29px;letter-spacing:-1px;line-height:8px;right:-7px;position:absolute;text-align:center;top:-12px;width:23px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.ui-sortable-helper,.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.ui-draggable-dragging,.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.ui-sortable-helper,.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.ui-draggable-dragging{border:1px solid #ccc;background:#fff;-webkit-transform:rotate(-2deg);transform:rotate(-2deg);visibility:visible !important;z-index:999}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.llms-sortable-placeholder,.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.llms-sortable-placeholder{border:3px dashed #466dd8;background:rgba(70,109,216,.3);margin:0 10px;padding:5px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.llms-sortable-placeholder:before,.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.llms-sortable-placeholder:before{display:none}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections>li.llms-lesson.ui-draggable-dragging .llms-drag-utility{position:relative}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections>li.llms-lesson.ui-draggable-dragging .llms-drag-utility:after{right:-35px;top:-28px}.wrap.lifterlms.llms-builder .llms-input-wrapper{position:relative}.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container{font-size:inherit;font-family:inherit}.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-editor.ql-blank::before{color:#a0a0a0;right:8px;left:8px}.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-editor p{font-size:inherit;line-height:1}.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-tooltip{z-index:1}.wrap.lifterlms.llms-builder .llms-input,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor{border:none;border-bottom:2px dotted rgba(0,0,0,0);-webkit-box-shadow:none;box-shadow:none;cursor:text;display:inline-block;font-size:inherit;font-weight:700;height:auto;line-height:1;margin:0 8px;min-width:60px;padding:0;-webkit-transition:border .2s ease,-webkit-box-shadow .2s ease;transition:border .2s ease,-webkit-box-shadow .2s ease;transition:border .2s ease,box-shadow .2s ease;transition:border .2s ease,box-shadow .2s ease,-webkit-box-shadow .2s ease}.wrap.lifterlms.llms-builder .llms-input:empty:before,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:empty:before{color:#a0a0a0;content:attr(data-placeholder)}.wrap.lifterlms.llms-builder .llms-input:hover,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:hover{border-bottom-color:#466dd8}.wrap.lifterlms.llms-builder .llms-input[disabled],.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor[disabled]{cursor:not-allowed}.wrap.lifterlms.llms-builder .llms-input[disabled]:hover,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor[disabled]:hover{border-bottom-color:rgba(0,0,0,0)}.wrap.lifterlms.llms-builder .llms-input:focus,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:focus{background:#fff;-webkit-box-shadow:0 0 0 4px #fff,0 0 0 6px #466dd8;box-shadow:0 0 0 4px #fff,0 0 0 6px #466dd8;border-bottom:none;outline:none}.wrap.lifterlms.llms-builder .llms-input b,.wrap.lifterlms.llms-builder .llms-input strong,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor b,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor strong{font-weight:700}.wrap.lifterlms.llms-builder .llms-input.standard,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard{border:1px solid #e6e6e6;margin:2px;padding:5px 3px}.wrap.lifterlms.llms-builder .llms-input.standard:hover,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard:hover{border-color:#d6d6d6}.wrap.lifterlms.llms-builder .llms-input.standard:focus,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard:focus{-webkit-box-shadow:0 0 0 2px #466dd8;box-shadow:0 0 0 2px #466dd8}.wrap.lifterlms.llms-builder .llms-input.permalink,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.permalink{display:none}.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor{padding:0 1px}.wrap.lifterlms.llms-builder .llms-label{font-weight:500}.wrap.lifterlms.llms-builder .llms-label .fa{color:#aaa;padding-right:6px}.wrap.lifterlms.llms-builder .llms-editable-editor .llms-label{float:right;margin-left:10px;position:relative;top:10px}.wrap.lifterlms.llms-builder .llms-editable-editor textarea{border:none;padding:10px;display:block;width:100%}.wrap.lifterlms.llms-builder .llms-editable-image button.llms-add-image{width:130px}.wrap.lifterlms.llms-builder .llms-editable-image .llms-image{display:inline-block;position:relative}.wrap.lifterlms.llms-builder .llms-editable-image .llms-image:hover .llms-action-icon{opacity:1}.wrap.lifterlms.llms-builder .llms-editable-image .llms-image .llms-action-icon{color:#fff;font-size:24px;opacity:0;padding:0;position:absolute;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;left:3px;top:1px;z-index:1}.wrap.lifterlms.llms-builder .llms-editable-image .llms-image img{display:block;height:100px;max-width:100%;width:auto}.wrap.lifterlms.llms-builder .llms-settings-field,.wrap.lifterlms.llms-builder .llms-editable-toggle-group{background:#f4f4f4;padding:10px;position:relative;margin:0 1px}.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after,.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-label,.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-label{min-width:100%}.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-editable-input,.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-editable-input{-webkit-box-flex:2;-ms-flex:2;flex:2}.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-label--after,.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-label--after{color:#888;min-width:auto;font-size:85%;padding-right:10px}.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch{display:block;width:100%}.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:before,.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:after,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:before,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:after{content:" ";display:table}.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:after,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:after{clear:both}.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch .llms-label,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch .llms-label{width:calc(100% - 34px)}.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-image,.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-video,.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-editor,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-image,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-video,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-editor{margin-top:2px}.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard{display:block;width:100%}.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.two-digits,.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.three-digits,.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.four-digits,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.two-digits,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.three-digits,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.four-digits{display:inline-block}.wrap.lifterlms.llms-builder .llms-editable-number .llms-input{color:#888;min-width:30px;text-align:left}.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.two-digits{width:30px}.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.three-digits{width:40px}.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.four-digits{width:60px}.wrap.lifterlms.llms-builder .llms-editable-number small{color:#888;text-transform:uppercase}.wrap.lifterlms.llms-builder .llms-model-settings{background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.wrap.lifterlms.llms-builder .llms-model-settings:before,.wrap.lifterlms.llms-builder .llms-model-settings:after{content:" ";display:table}.wrap.lifterlms.llms-builder .llms-model-settings:after{clear:both}.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header{border-bottom:1px solid #efefef;padding:10px}.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header .fa-caret-up{display:block}.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header .fa-caret-down{display:none}.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-header .fa-caret-up{display:none}.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-header .fa-caret-down{display:block}.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-body{display:none}.wrap.lifterlms.llms-builder .llms-settings-group-header:before,.wrap.lifterlms.llms-builder .llms-settings-group-header:after{content:" ";display:table}.wrap.lifterlms.llms-builder .llms-settings-group-header:after{clear:both}.wrap.lifterlms.llms-builder .llms-settings-group-header .llms-settings-group-title{display:inline-block;font-size:16px;font-weight:700;line-height:1.5;margin:0 5px;padding:0}.wrap.lifterlms.llms-builder .llms-settings-group-header .llms-settings-group-toggle{float:left;font-size:18px;padding:2px}.wrap.lifterlms.llms-builder .llms-settings-group-body{padding:16px}.wrap.lifterlms.llms-builder .llms-settings-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:2px 0}.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field,.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group{-webkit-box-flex:1;-ms-flex:1;flex:1}.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field:first-child,.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group:first-child{margin-right:0}.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field:last-child,.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group:last-child{margin-left:0}.wrap.lifterlms.llms-builder .llms-settings-row .llms-breaker{margin:2px 0;width:100%}.wrap.lifterlms.llms-builder .llms-editable-select{margin:2px 0}.wrap.lifterlms.llms-builder .llms-editable-select .select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#aaa}.wrap.lifterlms.llms-builder .llms-editable-radio label{display:block}.wrap.lifterlms.llms-builder .llms-editable-radio.has-images input{display:none}.wrap.lifterlms.llms-builder .llms-editable-radio.has-images label{display:inline-block;margin:0 3px}.wrap.lifterlms.llms-builder .llms-editable-radio.has-images label>span{-webkit-transition:background .2s ease;transition:background .2s ease;display:inline-block;padding:3px}.wrap.lifterlms.llms-builder .llms-editable-radio.has-images img{display:block}.wrap.lifterlms.llms-builder .llms-editable-radio.has-images input:checked+span{background:#466dd8}.wrap.lifterlms.llms-builder .settings-field--disabled{opacity:.5}.wrap.lifterlms.llms-builder .llms-action-icon{color:#666;display:inline-block;font-size:13px;text-decoration:none}.wrap.lifterlms.llms-builder .llms-action-icon:hover{color:#466dd8}.wrap.lifterlms.llms-builder .llms-action-icon:hover.danger{color:#bb231c}.wrap.lifterlms.llms-builder .llms-action-icon.circle{border:2px solid #aaa;border-radius:50%;font-size:9px;height:8px;line-height:1;padding:5px;text-align:center;width:8px}.wrap.lifterlms.llms-builder .llms-action-icon.circle:hover{border-color:#466dd8}.wrap.lifterlms.llms-builder .llms-action-icon.circle:hover.danger{border-color:#bb231c}.wrap.lifterlms.llms-builder ul.llms-info-list{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:15px;margin:10px 8px 0 0;padding:0}.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item{color:#666;font-size:13px;margin:0}.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active,.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .llms-action-icon{color:#466dd8}.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .fa,.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .llms-action-icon .fa{margin-left:5px}.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item button{background:none;color:inherit;border:none;padding:0;cursor:pointer;outline:inherit}.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item button:hover{text-decoration:underline}.wrap.lifterlms.llms-builder .llms-builder-sidebar{background:#e6e6e6;bottom:0;overflow:hidden;padding:30px;position:fixed;-webkit-transition:width .3s ease-in-out;transition:width .3s ease-in-out;top:32px;left:0;width:360px;z-index:1}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul,.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities li{margin:0;padding:0}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul{display:-webkit-box;display:-ms-flexbox;display:flex;gap:15px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul li{-webkit-box-flex:1;-ms-flex:1;flex:1}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul li:last-child{margin-left:0}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility{background:#efefef;border:1px solid #ccc;border-radius:8px;color:inherit;cursor:pointer;display:block;overflow:hidden;padding:6px 12px;position:relative;text-align:center;width:100%}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility:hover{background:#fefefe}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility .fa{background:#848484;position:absolute;right:0;top:0;padding:7px;color:#fff}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-sidebar-headline{margin:0 0 10px;font-size:22px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-elements-list{margin-bottom:30px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-elements-list li{margin-bottom:10px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utility{color:#444;text-decoration:none}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button{background:#466dd8;border-radius:8px;border:none;color:#fff;cursor:pointer;display:block;margin:0;overflow:hidden;padding:17px 20px;position:relative;-webkit-transition:background .2s ease,color .2s ease;transition:background .2s ease,color .2s ease;text-align:center;width:100%}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button:hover{background:#2b55cb}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary{background:#efefef;color:#444}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary:hover{background:#fefefe}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary .fa{background:#848484}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button .fa{background:#1c3987;border-radius:0 4px 4px 0;color:#fff;display:block;font-size:20px;padding:15px 20px;position:absolute;top:0;right:0}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button[disabled=disabled]{opacity:.4}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.small{padding:8px 46px 8px 10px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.small .fa{font-size:15px;padding:9px 10px;width:20px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.right.small{padding-right:10px;padding-left:46px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.right .fa{border-radius:4px 0 0 4px;right:auto;left:0}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor{height:100%;min-height:100%;position:relative}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav{background-color:#1c3987;margin:0;padding:8px 8px 0 0;font-size:0;margin:-10px -10px 10px -10px;position:relative;z-index:2}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu{list-style-type:none;margin:0;padding:0;position:relative}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item{display:inline-block;margin:0 0 0 6px;padding:0}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item>.llms-editor-menu{display:none}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item>.llms-editor-menu:before{border:8px solid rgba(0,0,0,0);border-right-color:#cacaca;content:"";position:absolute;top:11px;right:0}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item>.llms-editor-menu .llms-editor-menu-item:hover>a,.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item>.llms-editor-menu .llms-editor-menu-item.active>a{background:#dfdfdf}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item:hover>a{background-color:#466dd8}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active>a{background-color:#e6e6e6;color:#466dd8;font-weight:700}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active>a:focus{-webkit-box-shadow:none;box-shadow:none}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active>.llms-editor-menu{display:inline-block}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item a{border-top-right-radius:4px;border-top-left-radius:4px;color:#fff;display:inline-block;padding:9px 18px;text-decoration:none;-webkit-transition:background .2s ease;transition:background .2s ease;font-size:15px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right{float:left}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right a,.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right:hover{background:rgba(0,0,0,0)}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab{display:none;height:calc(100% - 90px);overflow:scroll;position:relative;z-index:1}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active{display:block}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz .llms-quiz-questions{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;overflow:scroll}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz .llms-quiz-questions .llms-quiz-questions{overflow:visible}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save{bottom:10px;right:10px;position:absolute;left:10px;z-index:1}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-builder-error{background:#bb231c;border-radius:4px;color:#fff;display:inline-block;font-style:italic;padding:5px 25px 7px 15px;margin:0 0 10px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-builder-error li{margin:0;padding:0}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-save{width:75%}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-exit{padding-right:5px;padding-left:5px;width:23%}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button{position:relative}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button i{position:absolute;right:10px;top:10px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button i .llms-spinner{border-color:#fff}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status] .llms-status-indicator{display:none}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=saved] .status--saved{display:block}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=unsaved]{background-color:#f8954f}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=unsaved] .status--unsaved{display:block}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=saving] .status--saving{display:block}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=error] .status--error{display:block}@media only screen and (max-width: 782px){.wrap.lifterlms.llms-builder .llms-builder-sidebar{margin-left:10px;position:relative;top:0;width:auto}.wrap.lifterlms.llms-builder .llms-builder-main{padding-left:10px;width:auto}}.wrap.lifterlms.llms-builder .select2-container{z-index:99999999}.wrap.lifterlms.llms-builder .select2-results__option{padding:0}.wrap.lifterlms.llms-builder .select2-container--default .select2-results__option--highlighted[aria-selected]{background:#466dd8}.wrap.lifterlms.llms-builder .select2-container--default .select2-results__option--highlighted[aria-selected] .llms-existing-action{color:#fff}.wrap.lifterlms.llms-builder .llms-existing-lesson-result{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;padding:5px 0 5px 5px}.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info{-webkit-box-flex:6;-ms-flex:6;flex:6}.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h4,.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h5{margin:0}.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h4{font-weight:400}.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h5{font-weight:300}.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action{color:#466dd8;-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action .fa{display:block;font-size:30px}.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action small{text-transform:uppercase}.wrap.lifterlms.llms-builder .llms-quiz-empty{margin:100px auto;text-align:center}.wrap.lifterlms.llms-builder .llms-quiz-empty p{font-size:18px}.wrap.lifterlms.llms-builder .llms-quiz-empty button.llms-element-button{max-width:320px;margin:0 auto}.wrap.lifterlms.llms-builder .llms-editor-tab.tab--quiz .llms-model-header .llms-model-title{width:calc(100% - 310px)}.wrap.lifterlms.llms-builder .llms-editor-tab.tab--quiz .llms-model-header .llms-quiz-points{float:right;margin-left:10px;width:100px}.wrap.lifterlms.llms-builder .llms-model-header{background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);padding:10px}.wrap.lifterlms.llms-builder .llms-model-header:before,.wrap.lifterlms.llms-builder .llms-model-header:after{content:" ";display:table}.wrap.lifterlms.llms-builder .llms-model-header:after{clear:both}.wrap.lifterlms.llms-builder .llms-model-header .llms-model-title{float:right;margin-left:10px;width:calc(100% - 200px)}.wrap.lifterlms.llms-builder .llms-model-header .llms-model-title .llms-input{width:calc(100% - 65px)}.wrap.lifterlms.llms-builder .llms-model-header .llms-model-status.llms-switch{float:right;margin-left:10px;position:relative;text-align:left;top:-2px;width:100px}.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons{float:right;position:relative;text-align:left;width:80px;z-index:1}.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons .llms-action-icon{margin-right:10px}.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons .fa{max-width:15px}.wrap.lifterlms.llms-builder .llms-model-header+.llms-model-settings.active{margin-top:-10px}.wrap.lifterlms.llms-builder .llms-model-settings{clear:both;display:none}.wrap.lifterlms.llms-builder .llms-model-settings.active{display:block;margin-top:10px}.wrap.lifterlms.llms-builder .llms-quiz-footer{display:-webkit-box;display:-ms-flexbox;display:flex}.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button{-webkit-box-flex:1;-ms-flex:1;flex:1;margin:0 5px}.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button:first-child{margin-right:0}.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button:last-child{margin-left:0}.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button.llms-show-question-bank{-webkit-box-flex:2;-ms-flex:2;flex:2}.wrap.lifterlms.llms-builder .llms-quiz-tools{display:none;width:100%;position:relative}.wrap.lifterlms.llms-builder ul.llms-question-bank{list-style-type:none;margin:0;padding:0}.wrap.lifterlms.llms-builder ul.llms-question-bank:before,.wrap.lifterlms.llms-builder ul.llms-question-bank:after{content:" ";display:table}.wrap.lifterlms.llms-builder ul.llms-question-bank:after{clear:both}.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header{clear:both;padding-top:20px}.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header:first-child{padding-top:0}.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header h4{font-size:20px;margin:10px 5px}.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type{-webkit-box-sizing:border-box;box-sizing:border-box;float:right;margin:0;padding:3px;width:33.3333%;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type.filtered{opacity:.3}.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type .llms-type-unavailable{display:block;position:relative;text-decoration:none}.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type .llms-type-unavailable .llms-element-button{opacity:.5;pointer-events:none}.wrap.lifterlms.llms-builder ul.llms-quiz-questions{margin:10px 3px;padding:5px;-webkit-transition:-webkit-box-shadow .6s ease;transition:-webkit-box-shadow .6s ease;transition:box-shadow .6s ease;transition:box-shadow .6s ease, -webkit-box-shadow .6s ease;transition:box-shadow .6s ease,-webkit-box-shadow .6s ease}.wrap.lifterlms.llms-builder ul.llms-quiz-questions.dragging{-webkit-box-shadow:0 0 0 3px #466dd8;box-shadow:0 0 0 3px #466dd8}.wrap.lifterlms.llms-builder ul.llms-quiz-questions:empty:before{background:#fff;content:attr(data-empty-msg);display:block;font-size:18px;margin:0 auto;padding:100px 0;text-align:center}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question{background:#fff;margin:0 0 3px;padding:15px 12px 10px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question:hover>.llms-builder-header .llms-action-icons{opacity:1;pointer-events:auto}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions{margin-right:12px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions .llms-question{border-bottom:2px solid #e6e6e6}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions:empty:before{content:attr(data-empty-msg);display:block;font-size:18px;text-align:center;margin:20px auto}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions li.llms-question.llms-sortable-placeholder.qtype--group{display:none !important}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:before,.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:after{content:" ";display:table}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:after{clear:both}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header>*{float:right}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-body{display:none}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-body.active{display:block}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp{background:#466dd8;border-radius:4px;color:#fff;cursor:move;font-size:90%;margin-top:-5px;padding:4px 10px 6px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp small,.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp .fa{line-height:1.2;vertical-align:middle}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp .fa{margin-left:4px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-headline{width:calc(100% - 110px - 90px - 55px)}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-headline .ql-editor{width:calc(100% - 16px)}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-action-icons{width:110px;opacity:0;pointer-events:none}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-points{width:90px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features{margin:10px 0 0}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features:last-child{margin:0}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features .llms-switch{margin-left:15px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-editable-video{position:relative;z-index:1}.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-wrapper{background:#f4f4f4;margin:2px 1px;padding:10px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header{margin-bottom:10px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:before,.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:after{content:" ";display:table}.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:after{clear:both}.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header .llms-switch{float:left;text-align:left;width:260px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices{border:3px solid #f4f4f4;margin:-3px;padding:0;-webkit-transition:-webkit-box-shadow .6s ease;transition:-webkit-box-shadow .6s ease;transition:box-shadow .6s ease;transition:box-shadow .6s ease, -webkit-box-shadow .6s ease;transition:box-shadow .6s ease,-webkit-box-shadow .6s ease}.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices.dragging{-webkit-box-shadow:0 0 0 3px #466dd8;box-shadow:0 0 0 3px #466dd8}.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices.multi-choices li.llms-question-choice .llms-choice-id span{border-radius:4px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice{margin:0 0 5px;padding:0}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice:last-child{margin-bottom:0}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id input[type=checkbox]{display:none}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id input[type=checkbox]:checked+.llms-marker{background:#4d8d3c}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker{border-radius:50%;background:#d0d0d0;-webkit-box-shadow:inset 0 0 1px #848484;box-shadow:inset 0 0 1px #848484;color:#444;display:inline-block;font-size:16px;height:20px;line-height:20px;padding:5px;position:relative;text-align:center;-webkit-transition:background .1s ease;transition:background .1s ease;width:20px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker .fa{right:7px;opacity:0;position:absolute;top:7px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker.selectable:hover b{opacity:0}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker.selectable:hover .fa{opacity:1}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-input-wrapper,.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image{display:inline-block;width:calc(100% - 55px - 35px - 5px)}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-input{width:calc(100% - 16px)}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image .llms-image{vertical-align:middle}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image .llms-image img{height:50px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-action-icons{display:inline-block;opacity:1;pointer-events:auto;text-align:left;width:55px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice.llms-sortable-placeholder{border:3px dashed #466dd8 !important;background:rgba(70,109,216,.3)}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice.ui-sortable-helper{border:1px solid #ccc;background:#fff;padding:10px;-webkit-transform:rotate(-2deg);transform:rotate(-2deg);z-index:999}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.ui-sortable-helper,.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.ui-draggable-dragging{border:1px solid #ccc;background:#fff;-webkit-transform:rotate(-2deg);transform:rotate(-2deg);z-index:999}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.llms-sortable-placeholder{border:3px dashed #466dd8 !important;background:rgba(70,109,216,.3)}.wrap.lifterlms.llms-builder .llms-switch{display:inline-block;float:none;width:auto}.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox]{display:none}.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox]:checked+.llms-switch-slider{background:#4d8d3c}.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox]:checked+.llms-switch-slider:after{-webkit-transform:translateX(-14px);transform:translateX(-14px)}.wrap.lifterlms.llms-builder .llms-switch .llms-label{display:inline-block;vertical-align:top}.wrap.lifterlms.llms-builder .llms-switch .llms-switch-slider{background:#e0e0e0;border-radius:8px;display:inline-block;height:16px;margin-top:2px;position:relative;-webkit-transition:background .2s ease;transition:background .2s ease;vertical-align:top;width:30px}.wrap.lifterlms.llms-builder .llms-switch .llms-switch-slider:after{background:#fff;border-radius:8px;content:"";display:block;height:12px;right:2px;position:relative;-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease, -webkit-transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease;top:2px;width:12px}.wrap.lifterlms.llms-builder .llms-video-explainer-trigger{display:block;margin:40px 0 0;cursor:pointer;position:relative;width:100%;-webkit-transition:color .2s ease;transition:color .2s ease;color:initial}.wrap.lifterlms.llms-builder .llms-video-explainer-trigger:hover{color:currentColor}.wrap.lifterlms.llms-builder .llms-video-explainer-trigger:after{position:absolute;inset:0;margin:auto;pointer-events:none;content:"▶";display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;clear:both;height:2em;width:2em;border-radius:4em;border:4px solid currentColor;font-size:2.5em}.wrap.lifterlms.llms-builder .llms-video-explainer-trigger img{display:block;width:100%;border-radius:4px}.llms-multi-input .llms-input-wrapper{width:50%;float:right;margin-bottom:6px;font-size:12px}.llms-multi-input .llms-input-wrapper .llms-input{font-size:12px;padding:5px}
diff --git a/assets/css/builder.css b/assets/css/builder.css
new file mode 100644
index 0000000000..f0f0616a8d
--- /dev/null
+++ b/assets/css/builder.css
@@ -0,0 +1,1598 @@
+@charset "UTF-8";
+body.admin_page_llms-course-builder {
+ background: #fff;
+}
+body.admin_page_llms-course-builder #adminmenumain {
+ display: none;
+}
+body.admin_page_llms-course-builder #wpbody-content {
+ padding-bottom: 0;
+}
+body.admin_page_llms-course-builder #wpfooter {
+ display: none;
+}
+body.admin_page_llms-course-builder #wpcontent, body.admin_page_llms-course-builder #wpfooter {
+ margin-left: 0;
+}
+body.admin_page_llms-course-builder .llms-button-secondary .fa {
+ margin-right: 5px;
+}
+body.admin_page_llms-course-builder .webui-popover .select2-container--default .select2-results__group {
+ font-size: 16px;
+}
+body.admin_page_llms-course-builder .webui-popover .select2-container--default .select2-results__option .select2-results__option {
+ padding-left: 2em;
+}
+
+.wrap.lifterlms.llms-builder {
+ margin: 0;
+ padding: 0;
+ position: relative;
+}
+.wrap.lifterlms.llms-builder.editor-active .llms-video-explainer {
+ display: none;
+}
+.wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {
+ padding: 10px;
+ width: calc(100% - 200px);
+ z-index: 3;
+}
+@media only screen and (min-width: 1200px) {
+ .wrap.lifterlms.llms-builder.editor-active .llms-builder-main {
+ width: 560px;
+ }
+ .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {
+ width: calc(100% - 640px);
+ }
+}
+@media only screen and (min-width: 1440px) {
+ .wrap.lifterlms.llms-builder.editor-active .llms-builder-main {
+ width: calc(100% - 780px);
+ }
+ .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {
+ width: 720px;
+ }
+}
+@media only screen and (min-width: 1680px) {
+ .wrap.lifterlms.llms-builder.editor-active .llms-builder-main {
+ width: calc(100% - 1000px);
+ }
+ .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {
+ width: 940px;
+ }
+}
+@media only screen and (max-width: 782px) {
+ .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {
+ position: absolute;
+ top: 0;
+ width: auto;
+ }
+}
+.wrap.lifterlms.llms-builder .llms-headline {
+ display: inline-block;
+ font-weight: 400;
+ margin: 0;
+ padding: 0;
+ -webkit-transition: width 0.3s ease-in-out;
+ transition: width 0.3s ease-in-out;
+ vertical-align: middle;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main {
+ padding: 30px 30px 30px 0;
+ position: relative;
+ width: calc(100% - 450px);
+ z-index: 2;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons {
+ display: inline-block;
+ position: relative;
+ vertical-align: middle;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons button {
+ background: none;
+ color: inherit;
+ border: none;
+ padding: 0;
+ cursor: pointer;
+ outline: inherit;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons-lesson-id {
+ vertical-align: top;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-course-header {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ gap: 15px;
+ position: relative;
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-course-header .llms-button-secondary {
+ margin-right: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections {
+ -webkit-box-shadow: 0 0 0 3px transparent;
+ box-shadow: 0 0 0 3px transparent;
+ min-height: 60px;
+ padding: 10px 0;
+ -webkit-transition: min-height 0.2s ease, -webkit-box-shadow 0.6s ease;
+ transition: min-height 0.2s ease, -webkit-box-shadow 0.6s ease;
+ transition: box-shadow 0.6s ease, min-height 0.2s ease;
+ transition: box-shadow 0.6s ease, min-height 0.2s ease, -webkit-box-shadow 0.6s ease;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections.dragging {
+ -webkit-box-shadow: 0 0 0 3px #466dd8;
+ box-shadow: 0 0 0 3px #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section {
+ background: #fff;
+ border: 1px solid #efefef;
+ border-radius: 6px;
+ -webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.08);
+ box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.08);
+ position: relative;
+ margin: 0 0 20px 0;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 15px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ padding: 20px 10px 20px 30px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 15px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-right {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 0px;
+ margin-top: -5px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-right .llms-action-icon {
+ padding: 5px 10px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-left {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 15px;
+}
+@media only screen and (min-width: 1200px) {
+ .wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-right,
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-left {
+ white-space: nowrap;
+ }
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.expanded .llms-lessons {
+ overflow: visible;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.selected .llms-drag-utility.drag-section {
+ border-color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.selected > .llms-builder-header .llms-headline {
+ font-weight: 400;
+ color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-footer {
+ border-top: 1px solid #efefef;
+ padding: 20px 20px 20px 30px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section:first-child:before {
+ top: 30px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section:last-child:before {
+ bottom: 55px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.expanded:last-child:before {
+ bottom: 86px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons {
+ -webkit-box-shadow: 0 0 0 3px transparent;
+ box-shadow: 0 0 0 3px transparent;
+ height: 0;
+ margin: 0;
+ padding: 0;
+ -webkit-transition: min-height 0.2s ease, -webkit-box-shadow 0.6s ease;
+ transition: min-height 0.2s ease, -webkit-box-shadow 0.6s ease;
+ transition: box-shadow 0.6s ease, min-height 0.2s ease;
+ transition: box-shadow 0.6s ease, min-height 0.2s ease, -webkit-box-shadow 0.6s ease;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.dragging {
+ -webkit-box-shadow: 0 0 0 3px #466dd8;
+ box-shadow: 0 0 0 3px #466dd8;
+ min-height: 60px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.expanded, .wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.drag-expanded {
+ height: auto;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.expanded li.llms-lesson, .wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.drag-expanded li.llms-lesson {
+ pointer-events: auto;
+ visibility: visible;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson {
+ background: #fff;
+ border-top: 1px solid #efefef;
+ margin: 0;
+ padding: 20px 10px 20px 30px;
+ position: relative;
+ pointer-events: none;
+ visibility: hidden;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.selected .llms-drag-utility.drag-lesson {
+ border-color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.selected > .llms-builder-header .llms-headline {
+ color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ gap: 15px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-headline {
+ font-weight: 700;
+ margin-left: 10px;
+ cursor: pointer;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ gap: 15px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-left {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 15px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-right {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 0;
+ margin-top: -5px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-right .llms-action-icon {
+ padding: 5px 10px;
+}
+@media only screen and (min-width: 1200px) {
+ .wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-right,
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-left {
+ white-space: nowrap;
+ }
+}
+@media only screen and (min-width: 1200px) {
+ .wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header > .llms-builder-header {
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ }
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section .llms-drag-utility {
+ background: #fff;
+ border: 2px solid #ccc;
+ border-radius: 50%;
+ height: 10px;
+ left: 13px;
+ position: absolute;
+ top: 24px;
+ width: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson .llms-drag-utility {
+ height: 6px;
+ left: 14px;
+ top: 25px !important;
+ width: 6px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover > .llms-drag-utility,
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover > .llms-drag-utility {
+ border-color: #fff;
+ cursor: move;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover > .llms-drag-utility:hover:after,
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover > .llms-drag-utility:hover:after {
+ color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover > .llms-drag-utility:after,
+.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover > .llms-drag-utility:after {
+ background: #fff;
+ content: "··\a··\a··";
+ color: #ccc;
+ display: block;
+ font-size: 36px;
+ height: 29px;
+ letter-spacing: -1px;
+ line-height: 8px;
+ left: -7px;
+ position: absolute;
+ text-align: center;
+ top: -12px;
+ width: 23px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.ui-sortable-helper, .wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.ui-draggable-dragging,
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.ui-sortable-helper,
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.ui-draggable-dragging {
+ border: 1px solid #ccc;
+ background: #fff;
+ -webkit-transform: rotate(2deg);
+ transform: rotate(2deg);
+ visibility: visible !important;
+ z-index: 999;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.llms-sortable-placeholder,
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.llms-sortable-placeholder {
+ border: 3px dashed #466dd8;
+ background: rgba(70, 109, 216, 0.3);
+ margin: 0 10px;
+ padding: 5px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.llms-sortable-placeholder:before,
+.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.llms-sortable-placeholder:before {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections > li.llms-lesson.ui-draggable-dragging .llms-drag-utility {
+ position: relative;
+}
+.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections > li.llms-lesson.ui-draggable-dragging .llms-drag-utility:after {
+ left: -35px;
+ top: -28px;
+}
+.wrap.lifterlms.llms-builder .llms-input-wrapper {
+ position: relative;
+}
+.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container {
+ font-size: inherit;
+ font-family: inherit;
+}
+.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-editor.ql-blank::before {
+ color: #a0a0a0;
+ left: 8px;
+ right: 8px;
+}
+.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-editor p {
+ font-size: inherit;
+ line-height: 1;
+}
+.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-tooltip {
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder .llms-input,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor {
+ border: none;
+ border-bottom: 2px dotted transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ cursor: text;
+ display: inline-block;
+ font-size: inherit;
+ font-weight: 700;
+ height: auto;
+ line-height: 1;
+ margin: 0 8px;
+ min-width: 60px;
+ padding: 0;
+ -webkit-transition: border 0.2s ease, -webkit-box-shadow 0.2s ease;
+ transition: border 0.2s ease, -webkit-box-shadow 0.2s ease;
+ transition: border 0.2s ease, box-shadow 0.2s ease;
+ transition: border 0.2s ease, box-shadow 0.2s ease, -webkit-box-shadow 0.2s ease;
+}
+.wrap.lifterlms.llms-builder .llms-input:empty:before,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:empty:before {
+ color: #a0a0a0;
+ content: attr(data-placeholder);
+}
+.wrap.lifterlms.llms-builder .llms-input:hover,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:hover {
+ border-bottom-color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-input[disabled],
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor[disabled] {
+ cursor: not-allowed;
+}
+.wrap.lifterlms.llms-builder .llms-input[disabled]:hover,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor[disabled]:hover {
+ border-bottom-color: transparent;
+}
+.wrap.lifterlms.llms-builder .llms-input:focus,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:focus {
+ background: #fff;
+ -webkit-box-shadow: 0 0 0 4px #fff, 0 0 0 6px #466dd8;
+ box-shadow: 0 0 0 4px #fff, 0 0 0 6px #466dd8;
+ border-bottom: none;
+ outline: none;
+}
+.wrap.lifterlms.llms-builder .llms-input b, .wrap.lifterlms.llms-builder .llms-input strong,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor b,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor strong {
+ font-weight: 700;
+}
+.wrap.lifterlms.llms-builder .llms-input.standard,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard {
+ border: 1px solid #e6e6e6;
+ margin: 2px;
+ padding: 5px 3px;
+}
+.wrap.lifterlms.llms-builder .llms-input.standard:hover,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard:hover {
+ border-color: #d6d6d6;
+}
+.wrap.lifterlms.llms-builder .llms-input.standard:focus,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard:focus {
+ -webkit-box-shadow: 0 0 0 2px #466dd8;
+ box-shadow: 0 0 0 2px #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-input.permalink,
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.permalink {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor {
+ padding: 0 1px;
+}
+.wrap.lifterlms.llms-builder .llms-label {
+ font-weight: 500;
+}
+.wrap.lifterlms.llms-builder .llms-label .fa {
+ color: #aaa;
+ padding-left: 6px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-editor .llms-label {
+ float: left;
+ margin-right: 10px;
+ position: relative;
+ top: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-editor textarea {
+ border: none;
+ padding: 10px;
+ display: block;
+ width: 100%;
+}
+.wrap.lifterlms.llms-builder .llms-editable-image button.llms-add-image {
+ width: 130px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-image .llms-image {
+ display: inline-block;
+ position: relative;
+}
+.wrap.lifterlms.llms-builder .llms-editable-image .llms-image:hover .llms-action-icon {
+ opacity: 1;
+}
+.wrap.lifterlms.llms-builder .llms-editable-image .llms-image .llms-action-icon {
+ color: #fff;
+ font-size: 24px;
+ opacity: 0;
+ padding: 0;
+ position: absolute;
+ -webkit-transition: opacity 0.2s ease;
+ transition: opacity 0.2s ease;
+ right: 3px;
+ top: 1px;
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder .llms-editable-image .llms-image img {
+ display: block;
+ height: 100px;
+ max-width: 100%;
+ width: auto;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group {
+ background: #f4f4f4;
+ padding: 10px;
+ position: relative;
+ margin: 0 1px;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-label,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-label {
+ min-width: 100%;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-editable-input,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-editable-input {
+ -webkit-box-flex: 2;
+ -ms-flex: 2;
+ flex: 2;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-label--after,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-label--after {
+ color: #888;
+ min-width: auto;
+ font-size: 85%;
+ padding-left: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch {
+ display: block;
+ width: 100%;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:before, .wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:after,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:before,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:after {
+ content: " ";
+ display: table;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:after,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:after {
+ clear: both;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch .llms-label,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch .llms-label {
+ width: calc(100% - 34px);
+}
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-image,
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-video,
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-editor,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-image,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-video,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-editor {
+ margin-top: 2px;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard {
+ display: block;
+ width: 100%;
+}
+.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.two-digits, .wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.three-digits, .wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.four-digits,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.two-digits,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.three-digits,
+.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.four-digits {
+ display: inline-block;
+}
+.wrap.lifterlms.llms-builder .llms-editable-number .llms-input {
+ color: #888;
+ min-width: 30px;
+ text-align: right;
+}
+.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.two-digits {
+ width: 30px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.three-digits {
+ width: 40px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.four-digits {
+ width: 60px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-number small {
+ color: #888;
+ text-transform: uppercase;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings {
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+}
+.wrap.lifterlms.llms-builder .llms-model-settings:before, .wrap.lifterlms.llms-builder .llms-model-settings:after {
+ content: " ";
+ display: table;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings:after {
+ clear: both;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header {
+ border-bottom: 1px solid #efefef;
+ padding: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header .fa-caret-up {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header .fa-caret-down {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-header .fa-caret-up {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-header .fa-caret-down {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-body {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-settings-group-header:before, .wrap.lifterlms.llms-builder .llms-settings-group-header:after {
+ content: " ";
+ display: table;
+}
+.wrap.lifterlms.llms-builder .llms-settings-group-header:after {
+ clear: both;
+}
+.wrap.lifterlms.llms-builder .llms-settings-group-header .llms-settings-group-title {
+ display: inline-block;
+ font-size: 16px;
+ font-weight: 700;
+ line-height: 1.5;
+ margin: 0 5px;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder .llms-settings-group-header .llms-settings-group-toggle {
+ float: right;
+ font-size: 18px;
+ padding: 2px;
+}
+.wrap.lifterlms.llms-builder .llms-settings-group-body {
+ padding: 16px;
+}
+.wrap.lifterlms.llms-builder .llms-settings-row {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ margin: 2px 0;
+}
+.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field,
+.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+}
+.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field:first-child,
+.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group:first-child {
+ margin-left: 0;
+}
+.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field:last-child,
+.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group:last-child {
+ margin-right: 0;
+}
+.wrap.lifterlms.llms-builder .llms-settings-row .llms-breaker {
+ margin: 2px 0;
+ width: 100%;
+}
+.wrap.lifterlms.llms-builder .llms-editable-select {
+ margin: 2px 0;
+}
+.wrap.lifterlms.llms-builder .llms-editable-select .select2-container--default.select2-container--focus .select2-selection--multiple {
+ border-color: #aaa;
+}
+.wrap.lifterlms.llms-builder .llms-editable-radio label {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-editable-radio.has-images input {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-editable-radio.has-images label {
+ display: inline-block;
+ margin: 0 3px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-radio.has-images label > span {
+ -webkit-transition: background 0.2s ease;
+ transition: background 0.2s ease;
+ display: inline-block;
+ padding: 3px;
+}
+.wrap.lifterlms.llms-builder .llms-editable-radio.has-images img {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-editable-radio.has-images input:checked + span {
+ background: #466dd8;
+}
+.wrap.lifterlms.llms-builder .settings-field--disabled {
+ opacity: 0.5;
+}
+.wrap.lifterlms.llms-builder .llms-action-icon {
+ color: #666;
+ display: inline-block;
+ font-size: 13px;
+ text-decoration: none;
+}
+.wrap.lifterlms.llms-builder .llms-action-icon:hover {
+ color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-action-icon:hover.danger {
+ color: #bb231c;
+}
+.wrap.lifterlms.llms-builder .llms-action-icon.circle {
+ border: 2px solid #aaa;
+ border-radius: 50%;
+ font-size: 9px;
+ height: 8px;
+ line-height: 1;
+ padding: 5px;
+ text-align: center;
+ width: 8px;
+}
+.wrap.lifterlms.llms-builder .llms-action-icon.circle:hover {
+ border-color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-action-icon.circle:hover.danger {
+ border-color: #bb231c;
+}
+.wrap.lifterlms.llms-builder ul.llms-info-list {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ gap: 15px;
+ margin: 10px 0 0 8px;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item {
+ color: #666;
+ font-size: 13px;
+ margin: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active, .wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .llms-action-icon {
+ color: #466dd8;
+}
+.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .fa, .wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .llms-action-icon .fa {
+ margin-right: 5px;
+}
+.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item button {
+ background: none;
+ color: inherit;
+ border: none;
+ padding: 0;
+ cursor: pointer;
+ outline: inherit;
+}
+.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item button:hover {
+ text-decoration: underline;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar {
+ background: #e6e6e6;
+ bottom: 0;
+ overflow: hidden;
+ padding: 30px;
+ position: fixed;
+ -webkit-transition: width 0.3s ease-in-out;
+ transition: width 0.3s ease-in-out;
+ top: 32px;
+ right: 0;
+ width: 360px;
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul, .wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities li {
+ margin: 0;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 15px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul li {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul li:last-child {
+ margin-right: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility {
+ background: #efefef;
+ border: 1px solid #ccc;
+ border-radius: 8px;
+ color: inherit;
+ cursor: pointer;
+ display: block;
+ overflow: hidden;
+ padding: 6px 12px;
+ position: relative;
+ text-align: center;
+ width: 100%;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility:hover {
+ background: #fefefe;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility .fa {
+ background: #848484;
+ position: absolute;
+ left: 0;
+ top: 0;
+ padding: 7px;
+ color: #fff;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-sidebar-headline {
+ margin: 0 0 10px;
+ font-size: 22px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-elements-list {
+ margin-bottom: 30px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-elements-list li {
+ margin-bottom: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utility {
+ color: #444;
+ text-decoration: none;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button {
+ background: #466dd8;
+ border-radius: 8px;
+ border: none;
+ color: #fff;
+ cursor: pointer;
+ display: block;
+ margin: 0;
+ overflow: hidden;
+ padding: 17px 20px;
+ position: relative;
+ -webkit-transition: background 0.2s ease, color 0.2s ease;
+ transition: background 0.2s ease, color 0.2s ease;
+ text-align: center;
+ width: 100%;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button:hover {
+ background: #2b55cb;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary {
+ background: #efefef;
+ color: #444;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary:hover {
+ background: #fefefe;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary .fa {
+ background: #848484;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button .fa {
+ background: #1c3987;
+ border-radius: 4px 0 0 4px;
+ color: #fff;
+ display: block;
+ font-size: 20px;
+ padding: 15px 20px;
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button[disabled=disabled] {
+ opacity: 0.4;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.small {
+ padding: 8px 10px 8px 46px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.small .fa {
+ font-size: 15px;
+ padding: 9px 10px;
+ width: 20px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.right.small {
+ padding-left: 10px;
+ padding-right: 46px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.right .fa {
+ border-radius: 0 4px 4px 0;
+ left: auto;
+ right: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor {
+ height: 100%;
+ min-height: 100%;
+ position: relative;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav {
+ background-color: #1c3987;
+ margin: 0;
+ padding: 8px 0 0 8px;
+ font-size: 0;
+ margin: -10px -10px 10px -10px;
+ position: relative;
+ z-index: 2;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+ position: relative;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item {
+ display: inline-block;
+ margin: 0 6px 0 0;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu:before {
+ border: 8px solid transparent;
+ border-left-color: #cacaca;
+ content: "";
+ position: absolute;
+ top: 11px;
+ left: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu .llms-editor-menu-item:hover > a,
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu .llms-editor-menu-item.active > a {
+ background: #dfdfdf;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item:hover > a {
+ background-color: #466dd8;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active > a {
+ background-color: #e6e6e6;
+ color: #466dd8;
+ font-weight: 700;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active > a:focus {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active > .llms-editor-menu {
+ display: inline-block;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item a {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ color: #FFF;
+ display: inline-block;
+ padding: 9px 18px;
+ text-decoration: none;
+ -webkit-transition: background 0.2s ease;
+ transition: background 0.2s ease;
+ font-size: 15px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right {
+ float: right;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right a, .wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right:hover {
+ background: transparent;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab {
+ display: none;
+ height: calc(100% - 90px);
+ overflow: scroll;
+ position: relative;
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz .llms-quiz-questions {
+ -webkit-box-flex: 1;
+ -ms-flex: 1 0 auto;
+ flex: 1 0 auto;
+ overflow: scroll;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz .llms-quiz-questions .llms-quiz-questions {
+ overflow: visible;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save {
+ bottom: 10px;
+ left: 10px;
+ position: absolute;
+ right: 10px;
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-builder-error {
+ background: #bb231c;
+ border-radius: 4px;
+ color: #fff;
+ display: inline-block;
+ font-style: italic;
+ padding: 5px 15px 7px 25px;
+ margin: 0 0 10px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-builder-error li {
+ margin: 0;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-save {
+ width: 75%;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-exit {
+ padding-left: 5px;
+ padding-right: 5px;
+ width: 23%;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button {
+ position: relative;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button i {
+ position: absolute;
+ left: 10px;
+ top: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button i .llms-spinner {
+ border-color: #fff;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status] .llms-status-indicator {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=saved] .status--saved {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=unsaved] {
+ background-color: #f8954f;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=unsaved] .status--unsaved {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=saving] .status--saving {
+ display: block;
+}
+.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=error] .status--error {
+ display: block;
+}
+@media only screen and (max-width: 782px) {
+ .wrap.lifterlms.llms-builder .llms-builder-sidebar {
+ margin-right: 10px;
+ position: relative;
+ top: 0;
+ width: auto;
+ }
+ .wrap.lifterlms.llms-builder .llms-builder-main {
+ padding-right: 10px;
+ width: auto;
+ }
+}
+.wrap.lifterlms.llms-builder .select2-container {
+ z-index: 99999999;
+}
+.wrap.lifterlms.llms-builder .select2-results__option {
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder .select2-container--default .select2-results__option--highlighted[aria-selected] {
+ background: #466dd8;
+}
+.wrap.lifterlms.llms-builder .select2-container--default .select2-results__option--highlighted[aria-selected] .llms-existing-action {
+ color: #fff;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ padding: 5px 5px 5px 0;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info {
+ -webkit-box-flex: 6;
+ -ms-flex: 6;
+ flex: 6;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h4, .wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h5 {
+ margin: 0;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h4 {
+ font-weight: 400;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h5 {
+ font-weight: 300;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action {
+ color: #466dd8;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ text-align: center;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action .fa {
+ display: block;
+ font-size: 30px;
+}
+.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action small {
+ text-transform: uppercase;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-empty {
+ margin: 100px auto;
+ text-align: center;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-empty p {
+ font-size: 18px;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-empty button.llms-element-button {
+ max-width: 320px;
+ margin: 0 auto;
+}
+.wrap.lifterlms.llms-builder .llms-editor-tab.tab--quiz .llms-model-header .llms-model-title {
+ width: calc(100% - 310px);
+}
+.wrap.lifterlms.llms-builder .llms-editor-tab.tab--quiz .llms-model-header .llms-quiz-points {
+ float: left;
+ margin-right: 10px;
+ width: 100px;
+}
+.wrap.lifterlms.llms-builder .llms-model-header {
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
+ padding: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-model-header:before, .wrap.lifterlms.llms-builder .llms-model-header:after {
+ content: " ";
+ display: table;
+}
+.wrap.lifterlms.llms-builder .llms-model-header:after {
+ clear: both;
+}
+.wrap.lifterlms.llms-builder .llms-model-header .llms-model-title {
+ float: left;
+ margin-right: 10px;
+ width: calc(100% - 200px);
+}
+.wrap.lifterlms.llms-builder .llms-model-header .llms-model-title .llms-input {
+ width: calc(100% - 65px);
+}
+.wrap.lifterlms.llms-builder .llms-model-header .llms-model-status.llms-switch {
+ float: left;
+ margin-right: 10px;
+ position: relative;
+ text-align: right;
+ top: -2px;
+ width: 100px;
+}
+.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons {
+ float: left;
+ position: relative;
+ text-align: right;
+ width: 80px;
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons .llms-action-icon {
+ margin-left: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons .fa {
+ max-width: 15px;
+}
+.wrap.lifterlms.llms-builder .llms-model-header + .llms-model-settings.active {
+ margin-top: -10px;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings {
+ clear: both;
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-model-settings.active {
+ display: block;
+ margin-top: 10px;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-footer {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ margin: 0 5px;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button:first-child {
+ margin-left: 0;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button:last-child {
+ margin-right: 0;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button.llms-show-question-bank {
+ -webkit-box-flex: 2;
+ -ms-flex: 2;
+ flex: 2;
+}
+.wrap.lifterlms.llms-builder .llms-quiz-tools {
+ display: none;
+ width: 100%;
+ position: relative;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank:before, .wrap.lifterlms.llms-builder ul.llms-question-bank:after {
+ content: " ";
+ display: table;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank:after {
+ clear: both;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header {
+ clear: both;
+ padding-top: 20px;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header:first-child {
+ padding-top: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header h4 {
+ font-size: 20px;
+ margin: 10px 5px;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ float: left;
+ margin: 0;
+ padding: 3px;
+ width: 33.3333%;
+ -webkit-transition: opacity 0.3s ease-in-out;
+ transition: opacity 0.3s ease-in-out;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type.filtered {
+ opacity: 0.3;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type .llms-type-unavailable {
+ display: block;
+ position: relative;
+ text-decoration: none;
+}
+.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type .llms-type-unavailable .llms-element-button {
+ opacity: 0.5;
+ pointer-events: none;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions {
+ margin: 10px 3px;
+ padding: 5px;
+ -webkit-transition: -webkit-box-shadow 0.6s ease;
+ transition: -webkit-box-shadow 0.6s ease;
+ transition: box-shadow 0.6s ease;
+ transition: box-shadow 0.6s ease, -webkit-box-shadow 0.6s ease;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions.dragging {
+ -webkit-box-shadow: 0 0 0 3px #466dd8;
+ box-shadow: 0 0 0 3px #466dd8;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions:empty:before {
+ background: #fff;
+ content: attr(data-empty-msg);
+ display: block;
+ font-size: 18px;
+ margin: 0 auto;
+ padding: 100px 0;
+ text-align: center;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question {
+ background: #fff;
+ margin: 0 0 3px;
+ padding: 15px 12px 10px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question:hover > .llms-builder-header .llms-action-icons {
+ opacity: 1;
+ pointer-events: auto;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions {
+ margin-left: 12px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions .llms-question {
+ border-bottom: 2px solid #e6e6e6;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions:empty:before {
+ content: attr(data-empty-msg);
+ display: block;
+ font-size: 18px;
+ text-align: center;
+ margin: 20px auto;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions li.llms-question.llms-sortable-placeholder.qtype--group {
+ display: none !important;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:before, .wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:after {
+ content: " ";
+ display: table;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:after {
+ clear: both;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header > * {
+ float: left;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-body {
+ display: none;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-body.active {
+ display: block;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp {
+ background: #466dd8;
+ border-radius: 4px;
+ color: #fff;
+ cursor: move;
+ font-size: 90%;
+ margin-top: -5px;
+ padding: 4px 10px 6px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp small, .wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp .fa {
+ line-height: 1.2;
+ vertical-align: middle;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp .fa {
+ margin-right: 4px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-headline {
+ width: calc(100% - 110px - 90px - 55px);
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-headline .ql-editor {
+ width: calc(100% - 16px);
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-action-icons {
+ width: 110px;
+ opacity: 0;
+ pointer-events: none;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-points {
+ width: 90px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features {
+ margin: 10px 0 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features:last-child {
+ margin: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features .llms-switch {
+ margin-right: 15px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-editable-video {
+ position: relative;
+ z-index: 1;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-wrapper {
+ background: #f4f4f4;
+ margin: 2px 1px;
+ padding: 10px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header {
+ margin-bottom: 10px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:before, .wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:after {
+ content: " ";
+ display: table;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:after {
+ clear: both;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header .llms-switch {
+ float: right;
+ text-align: right;
+ width: 260px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices {
+ border: 3px solid #f4f4f4;
+ margin: -3px;
+ padding: 0;
+ -webkit-transition: -webkit-box-shadow 0.6s ease;
+ transition: -webkit-box-shadow 0.6s ease;
+ transition: box-shadow 0.6s ease;
+ transition: box-shadow 0.6s ease, -webkit-box-shadow 0.6s ease;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices.dragging {
+ -webkit-box-shadow: 0 0 0 3px #466dd8;
+ box-shadow: 0 0 0 3px #466dd8;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices.multi-choices li.llms-question-choice .llms-choice-id span {
+ border-radius: 4px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice {
+ margin: 0 0 5px;
+ padding: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice:last-child {
+ margin-bottom: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id input[type=checkbox] {
+ display: none;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id input[type=checkbox]:checked + .llms-marker {
+ background: #4d8d3c;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker {
+ border-radius: 50%;
+ background: #d0d0d0;
+ -webkit-box-shadow: inset 0 0 1px #848484;
+ box-shadow: inset 0 0 1px #848484;
+ color: #444;
+ display: inline-block;
+ font-size: 16px;
+ height: 20px;
+ line-height: 20px;
+ padding: 5px;
+ position: relative;
+ text-align: center;
+ -webkit-transition: background 0.1s ease;
+ transition: background 0.1s ease;
+ width: 20px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker .fa {
+ left: 7px;
+ opacity: 0;
+ position: absolute;
+ top: 7px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker.selectable:hover b {
+ opacity: 0;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker.selectable:hover .fa {
+ opacity: 1;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-input-wrapper,
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image {
+ display: inline-block;
+ width: calc(100% - 55px - 35px - 5px);
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-input {
+ width: calc(100% - 16px);
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image .llms-image {
+ vertical-align: middle;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image .llms-image img {
+ height: 50px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-action-icons {
+ display: inline-block;
+ opacity: 1;
+ pointer-events: auto;
+ text-align: right;
+ width: 55px;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice.llms-sortable-placeholder {
+ border: 3px dashed #466dd8 !important;
+ background: rgba(70, 109, 216, 0.3);
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice.ui-sortable-helper {
+ border: 1px solid #ccc;
+ background: #fff;
+ padding: 10px;
+ -webkit-transform: rotate(2deg);
+ transform: rotate(2deg);
+ z-index: 999;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.ui-sortable-helper,
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.ui-draggable-dragging {
+ border: 1px solid #ccc;
+ background: #fff;
+ -webkit-transform: rotate(2deg);
+ transform: rotate(2deg);
+ z-index: 999;
+}
+.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.llms-sortable-placeholder {
+ border: 3px dashed #466dd8 !important;
+ background: rgba(70, 109, 216, 0.3);
+}
+.wrap.lifterlms.llms-builder .llms-switch {
+ display: inline-block;
+ float: none;
+ width: auto;
+}
+.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox] {
+ display: none;
+}
+.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox]:checked + .llms-switch-slider {
+ background: #4d8d3c;
+}
+.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox]:checked + .llms-switch-slider:after {
+ -webkit-transform: translateX(14px);
+ transform: translateX(14px);
+}
+.wrap.lifterlms.llms-builder .llms-switch .llms-label {
+ display: inline-block;
+ vertical-align: top;
+}
+.wrap.lifterlms.llms-builder .llms-switch .llms-switch-slider {
+ background: #e0e0e0;
+ border-radius: 8px;
+ display: inline-block;
+ height: 16px;
+ margin-top: 2px;
+ position: relative;
+ -webkit-transition: background 0.2s ease;
+ transition: background 0.2s ease;
+ vertical-align: top;
+ width: 30px;
+}
+.wrap.lifterlms.llms-builder .llms-switch .llms-switch-slider:after {
+ background: #fff;
+ border-radius: 8px;
+ content: "";
+ display: block;
+ height: 12px;
+ left: 2px;
+ position: relative;
+ -webkit-transition: -webkit-transform 0.2s ease;
+ transition: -webkit-transform 0.2s ease;
+ transition: transform 0.2s ease;
+ transition: transform 0.2s ease, -webkit-transform 0.2s ease;
+ top: 2px;
+ width: 12px;
+}
+.wrap.lifterlms.llms-builder .llms-video-explainer-trigger {
+ display: block;
+ margin: 40px 0 0;
+ cursor: pointer;
+ position: relative;
+ width: 100%;
+ -webkit-transition: color 0.2s ease;
+ transition: color 0.2s ease;
+ color: initial;
+}
+.wrap.lifterlms.llms-builder .llms-video-explainer-trigger:hover {
+ color: currentColor;
+}
+.wrap.lifterlms.llms-builder .llms-video-explainer-trigger:after {
+ position: absolute;
+ inset: 0;
+ margin: auto;
+ pointer-events: none;
+ content: "▶";
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ clear: both;
+ height: 2em;
+ width: 2em;
+ border-radius: 4em;
+ border: 4px solid currentColor;
+ font-size: 2.5em;
+}
+.wrap.lifterlms.llms-builder .llms-video-explainer-trigger img {
+ display: block;
+ width: 100%;
+ border-radius: 4px;
+}
+
+.llms-multi-input .llms-input-wrapper {
+ width: 50%;
+ float: left;
+ margin-bottom: 6px;
+ font-size: 12px;
+}
+
+.llms-multi-input .llms-input-wrapper .llms-input {
+ font-size: 12px;
+ padding: 5px;
+}
+/*# sourceMappingURL=../maps/css/builder.css.map */
diff --git a/assets/css/builder.min.css b/assets/css/builder.min.css
new file mode 100644
index 0000000000..fc86f8cde5
--- /dev/null
+++ b/assets/css/builder.min.css
@@ -0,0 +1,2 @@
+body.admin_page_llms-course-builder{background:#fff}body.admin_page_llms-course-builder #adminmenumain{display:none}body.admin_page_llms-course-builder #wpbody-content{padding-bottom:0}body.admin_page_llms-course-builder #wpfooter{display:none}body.admin_page_llms-course-builder #wpcontent,body.admin_page_llms-course-builder #wpfooter{margin-left:0}body.admin_page_llms-course-builder .llms-button-secondary .fa{margin-right:5px}body.admin_page_llms-course-builder .webui-popover .select2-container--default .select2-results__group{font-size:16px}body.admin_page_llms-course-builder .webui-popover .select2-container--default .select2-results__option .select2-results__option{padding-left:2em}.wrap.lifterlms.llms-builder{margin:0;padding:0;position:relative}.wrap.lifterlms.llms-builder.editor-active .llms-video-explainer{display:none}.wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar{padding:10px;width:calc(100% - 200px);z-index:3}@media only screen and (min-width: 1200px){.wrap.lifterlms.llms-builder.editor-active .llms-builder-main{width:560px}.wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar{width:calc(100% - 640px)}}@media only screen and (min-width: 1440px){.wrap.lifterlms.llms-builder.editor-active .llms-builder-main{width:calc(100% - 780px)}.wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar{width:720px}}@media only screen and (min-width: 1680px){.wrap.lifterlms.llms-builder.editor-active .llms-builder-main{width:calc(100% - 1000px)}.wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar{width:940px}}@media only screen and (max-width: 782px){.wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar{position:absolute;top:0;width:auto}}.wrap.lifterlms.llms-builder .llms-headline{display:inline-block;font-weight:400;margin:0;padding:0;-webkit-transition:width .3s ease-in-out;transition:width .3s ease-in-out;vertical-align:middle}.wrap.lifterlms.llms-builder .llms-builder-main{padding:30px 30px 30px 0;position:relative;width:calc(100% - 450px);z-index:2}.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons{display:inline-block;position:relative;vertical-align:middle}.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons button{background:none;color:inherit;border:none;padding:0;cursor:pointer;outline:inherit}.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons-lesson-id{vertical-align:top}.wrap.lifterlms.llms-builder .llms-builder-main .llms-course-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:15px;position:relative;z-index:1}.wrap.lifterlms.llms-builder .llms-builder-main .llms-course-header .llms-button-secondary{margin-right:10px}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections{-webkit-box-shadow:0 0 0 3px rgba(0,0,0,0);box-shadow:0 0 0 3px rgba(0,0,0,0);min-height:60px;padding:10px 0;-webkit-transition:min-height .2s ease,-webkit-box-shadow .6s ease;transition:min-height .2s ease,-webkit-box-shadow .6s ease;transition:box-shadow .6s ease,min-height .2s ease;transition:box-shadow .6s ease,min-height .2s ease,-webkit-box-shadow .6s ease}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections.dragging{-webkit-box-shadow:0 0 0 3px #466dd8;box-shadow:0 0 0 3px #466dd8}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section{background:#fff;border:1px solid #efefef;border-radius:6px;-webkit-box-shadow:2px 2px 8px rgba(0,0,0,.08);box-shadow:2px 2px 8px rgba(0,0,0,.08);position:relative;margin:0 0 20px 0;padding:0}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:15px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:20px 10px 20px 30px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-header .llms-action-icons{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:15px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-header .llms-action-icons .llms-action-icons-right{display:-webkit-box;display:-ms-flexbox;display:flex;gap:0px;margin-top:-5px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-header .llms-action-icons .llms-action-icons-right .llms-action-icon{padding:5px 10px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-header .llms-action-icons .llms-action-icons-left{display:-webkit-box;display:-ms-flexbox;display:flex;gap:15px}@media only screen and (min-width: 1200px){.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-header .llms-action-icons .llms-action-icons-right,.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-header .llms-action-icons .llms-action-icons-left{white-space:nowrap}}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.expanded .llms-lessons{overflow:visible}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.selected .llms-drag-utility.drag-section{border-color:#466dd8}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.selected>.llms-builder-header .llms-headline{font-weight:400;color:#466dd8}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section>.llms-builder-footer{border-top:1px solid #efefef;padding:20px 20px 20px 30px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section:first-child:before{top:30px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section:last-child:before{bottom:55px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.expanded:last-child:before{bottom:86px}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons{-webkit-box-shadow:0 0 0 3px rgba(0,0,0,0);box-shadow:0 0 0 3px rgba(0,0,0,0);height:0;margin:0;padding:0;-webkit-transition:min-height .2s ease,-webkit-box-shadow .6s ease;transition:min-height .2s ease,-webkit-box-shadow .6s ease;transition:box-shadow .6s ease,min-height .2s ease;transition:box-shadow .6s ease,min-height .2s ease,-webkit-box-shadow .6s ease}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.dragging{-webkit-box-shadow:0 0 0 3px #466dd8;box-shadow:0 0 0 3px #466dd8;min-height:60px}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.expanded,.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.drag-expanded{height:auto}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.expanded li.llms-lesson,.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.drag-expanded li.llms-lesson{pointer-events:auto;visibility:visible}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson{background:#fff;border-top:1px solid #efefef;margin:0;padding:20px 10px 20px 30px;position:relative;pointer-events:none;visibility:hidden}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.selected .llms-drag-utility.drag-lesson{border-color:#466dd8}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.selected>.llms-builder-header .llms-headline{color:#466dd8}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:15px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header .llms-headline{font-weight:700;margin-left:10px;cursor:pointer}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header .llms-action-icons{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;gap:15px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header .llms-action-icons .llms-action-icons-left{display:-webkit-box;display:-ms-flexbox;display:flex;gap:15px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header .llms-action-icons .llms-action-icons-right{display:-webkit-box;display:-ms-flexbox;display:flex;gap:0;margin-top:-5px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header .llms-action-icons .llms-action-icons-right .llms-action-icon{padding:5px 10px}@media only screen and (min-width: 1200px){.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header .llms-action-icons .llms-action-icons-right,.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header .llms-action-icons .llms-action-icons-left{white-space:nowrap}}@media only screen and (min-width: 1200px){.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson>.llms-builder-header>.llms-builder-header{-ms-flex-wrap:nowrap;flex-wrap:nowrap}}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section .llms-drag-utility{background:#fff;border:2px solid #ccc;border-radius:50%;height:10px;left:13px;position:absolute;top:24px;width:10px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson .llms-drag-utility{height:6px;left:14px;top:25px !important;width:6px}.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover>.llms-drag-utility,.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover>.llms-drag-utility{border-color:#fff;cursor:move}.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover>.llms-drag-utility:hover:after,.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover>.llms-drag-utility:hover:after{color:#466dd8}.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover>.llms-drag-utility:after,.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover>.llms-drag-utility:after{background:#fff;content:"··\a··\a··";color:#ccc;display:block;font-size:36px;height:29px;letter-spacing:-1px;line-height:8px;left:-7px;position:absolute;text-align:center;top:-12px;width:23px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.ui-sortable-helper,.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.ui-draggable-dragging,.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.ui-sortable-helper,.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.ui-draggable-dragging{border:1px solid #ccc;background:#fff;-webkit-transform:rotate(2deg);transform:rotate(2deg);visibility:visible !important;z-index:999}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.llms-sortable-placeholder,.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.llms-sortable-placeholder{border:3px dashed #466dd8;background:rgba(70,109,216,.3);margin:0 10px;padding:5px}.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.llms-sortable-placeholder:before,.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.llms-sortable-placeholder:before{display:none}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections>li.llms-lesson.ui-draggable-dragging .llms-drag-utility{position:relative}.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections>li.llms-lesson.ui-draggable-dragging .llms-drag-utility:after{left:-35px;top:-28px}.wrap.lifterlms.llms-builder .llms-input-wrapper{position:relative}.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container{font-size:inherit;font-family:inherit}.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-editor.ql-blank::before{color:#a0a0a0;left:8px;right:8px}.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-editor p{font-size:inherit;line-height:1}.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-tooltip{z-index:1}.wrap.lifterlms.llms-builder .llms-input,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor{border:none;border-bottom:2px dotted rgba(0,0,0,0);-webkit-box-shadow:none;box-shadow:none;cursor:text;display:inline-block;font-size:inherit;font-weight:700;height:auto;line-height:1;margin:0 8px;min-width:60px;padding:0;-webkit-transition:border .2s ease,-webkit-box-shadow .2s ease;transition:border .2s ease,-webkit-box-shadow .2s ease;transition:border .2s ease,box-shadow .2s ease;transition:border .2s ease,box-shadow .2s ease,-webkit-box-shadow .2s ease}.wrap.lifterlms.llms-builder .llms-input:empty:before,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:empty:before{color:#a0a0a0;content:attr(data-placeholder)}.wrap.lifterlms.llms-builder .llms-input:hover,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:hover{border-bottom-color:#466dd8}.wrap.lifterlms.llms-builder .llms-input[disabled],.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor[disabled]{cursor:not-allowed}.wrap.lifterlms.llms-builder .llms-input[disabled]:hover,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor[disabled]:hover{border-bottom-color:rgba(0,0,0,0)}.wrap.lifterlms.llms-builder .llms-input:focus,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:focus{background:#fff;-webkit-box-shadow:0 0 0 4px #fff,0 0 0 6px #466dd8;box-shadow:0 0 0 4px #fff,0 0 0 6px #466dd8;border-bottom:none;outline:none}.wrap.lifterlms.llms-builder .llms-input b,.wrap.lifterlms.llms-builder .llms-input strong,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor b,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor strong{font-weight:700}.wrap.lifterlms.llms-builder .llms-input.standard,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard{border:1px solid #e6e6e6;margin:2px;padding:5px 3px}.wrap.lifterlms.llms-builder .llms-input.standard:hover,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard:hover{border-color:#d6d6d6}.wrap.lifterlms.llms-builder .llms-input.standard:focus,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard:focus{-webkit-box-shadow:0 0 0 2px #466dd8;box-shadow:0 0 0 2px #466dd8}.wrap.lifterlms.llms-builder .llms-input.permalink,.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.permalink{display:none}.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor{padding:0 1px}.wrap.lifterlms.llms-builder .llms-label{font-weight:500}.wrap.lifterlms.llms-builder .llms-label .fa{color:#aaa;padding-left:6px}.wrap.lifterlms.llms-builder .llms-editable-editor .llms-label{float:left;margin-right:10px;position:relative;top:10px}.wrap.lifterlms.llms-builder .llms-editable-editor textarea{border:none;padding:10px;display:block;width:100%}.wrap.lifterlms.llms-builder .llms-editable-image button.llms-add-image{width:130px}.wrap.lifterlms.llms-builder .llms-editable-image .llms-image{display:inline-block;position:relative}.wrap.lifterlms.llms-builder .llms-editable-image .llms-image:hover .llms-action-icon{opacity:1}.wrap.lifterlms.llms-builder .llms-editable-image .llms-image .llms-action-icon{color:#fff;font-size:24px;opacity:0;padding:0;position:absolute;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;right:3px;top:1px;z-index:1}.wrap.lifterlms.llms-builder .llms-editable-image .llms-image img{display:block;height:100px;max-width:100%;width:auto}.wrap.lifterlms.llms-builder .llms-settings-field,.wrap.lifterlms.llms-builder .llms-editable-toggle-group{background:#f4f4f4;padding:10px;position:relative;margin:0 1px}.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after,.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-label,.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-label{min-width:100%}.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-editable-input,.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-editable-input{-webkit-box-flex:2;-ms-flex:2;flex:2}.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-label--after,.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-label--after{color:#888;min-width:auto;font-size:85%;padding-left:10px}.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch{display:block;width:100%}.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:before,.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:after,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:before,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:after{content:" ";display:table}.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:after,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:after{clear:both}.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch .llms-label,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch .llms-label{width:calc(100% - 34px)}.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-image,.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-video,.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-editor,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-image,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-video,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-editor{margin-top:2px}.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard{display:block;width:100%}.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.two-digits,.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.three-digits,.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.four-digits,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.two-digits,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.three-digits,.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.four-digits{display:inline-block}.wrap.lifterlms.llms-builder .llms-editable-number .llms-input{color:#888;min-width:30px;text-align:right}.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.two-digits{width:30px}.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.three-digits{width:40px}.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.four-digits{width:60px}.wrap.lifterlms.llms-builder .llms-editable-number small{color:#888;text-transform:uppercase}.wrap.lifterlms.llms-builder .llms-model-settings{background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.wrap.lifterlms.llms-builder .llms-model-settings:before,.wrap.lifterlms.llms-builder .llms-model-settings:after{content:" ";display:table}.wrap.lifterlms.llms-builder .llms-model-settings:after{clear:both}.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header{border-bottom:1px solid #efefef;padding:10px}.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header .fa-caret-up{display:block}.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header .fa-caret-down{display:none}.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-header .fa-caret-up{display:none}.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-header .fa-caret-down{display:block}.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-body{display:none}.wrap.lifterlms.llms-builder .llms-settings-group-header:before,.wrap.lifterlms.llms-builder .llms-settings-group-header:after{content:" ";display:table}.wrap.lifterlms.llms-builder .llms-settings-group-header:after{clear:both}.wrap.lifterlms.llms-builder .llms-settings-group-header .llms-settings-group-title{display:inline-block;font-size:16px;font-weight:700;line-height:1.5;margin:0 5px;padding:0}.wrap.lifterlms.llms-builder .llms-settings-group-header .llms-settings-group-toggle{float:right;font-size:18px;padding:2px}.wrap.lifterlms.llms-builder .llms-settings-group-body{padding:16px}.wrap.lifterlms.llms-builder .llms-settings-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:2px 0}.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field,.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group{-webkit-box-flex:1;-ms-flex:1;flex:1}.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field:first-child,.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group:first-child{margin-left:0}.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field:last-child,.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group:last-child{margin-right:0}.wrap.lifterlms.llms-builder .llms-settings-row .llms-breaker{margin:2px 0;width:100%}.wrap.lifterlms.llms-builder .llms-editable-select{margin:2px 0}.wrap.lifterlms.llms-builder .llms-editable-select .select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#aaa}.wrap.lifterlms.llms-builder .llms-editable-radio label{display:block}.wrap.lifterlms.llms-builder .llms-editable-radio.has-images input{display:none}.wrap.lifterlms.llms-builder .llms-editable-radio.has-images label{display:inline-block;margin:0 3px}.wrap.lifterlms.llms-builder .llms-editable-radio.has-images label>span{-webkit-transition:background .2s ease;transition:background .2s ease;display:inline-block;padding:3px}.wrap.lifterlms.llms-builder .llms-editable-radio.has-images img{display:block}.wrap.lifterlms.llms-builder .llms-editable-radio.has-images input:checked+span{background:#466dd8}.wrap.lifterlms.llms-builder .settings-field--disabled{opacity:.5}.wrap.lifterlms.llms-builder .llms-action-icon{color:#666;display:inline-block;font-size:13px;text-decoration:none}.wrap.lifterlms.llms-builder .llms-action-icon:hover{color:#466dd8}.wrap.lifterlms.llms-builder .llms-action-icon:hover.danger{color:#bb231c}.wrap.lifterlms.llms-builder .llms-action-icon.circle{border:2px solid #aaa;border-radius:50%;font-size:9px;height:8px;line-height:1;padding:5px;text-align:center;width:8px}.wrap.lifterlms.llms-builder .llms-action-icon.circle:hover{border-color:#466dd8}.wrap.lifterlms.llms-builder .llms-action-icon.circle:hover.danger{border-color:#bb231c}.wrap.lifterlms.llms-builder ul.llms-info-list{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:15px;margin:10px 0 0 8px;padding:0}.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item{color:#666;font-size:13px;margin:0}.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active,.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .llms-action-icon{color:#466dd8}.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .fa,.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .llms-action-icon .fa{margin-right:5px}.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item button{background:none;color:inherit;border:none;padding:0;cursor:pointer;outline:inherit}.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item button:hover{text-decoration:underline}.wrap.lifterlms.llms-builder .llms-builder-sidebar{background:#e6e6e6;bottom:0;overflow:hidden;padding:30px;position:fixed;-webkit-transition:width .3s ease-in-out;transition:width .3s ease-in-out;top:32px;right:0;width:360px;z-index:1}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul,.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities li{margin:0;padding:0}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul{display:-webkit-box;display:-ms-flexbox;display:flex;gap:15px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul li{-webkit-box-flex:1;-ms-flex:1;flex:1}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul li:last-child{margin-right:0}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility{background:#efefef;border:1px solid #ccc;border-radius:8px;color:inherit;cursor:pointer;display:block;overflow:hidden;padding:6px 12px;position:relative;text-align:center;width:100%}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility:hover{background:#fefefe}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility .fa{background:#848484;position:absolute;left:0;top:0;padding:7px;color:#fff}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-sidebar-headline{margin:0 0 10px;font-size:22px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-elements-list{margin-bottom:30px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-elements-list li{margin-bottom:10px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utility{color:#444;text-decoration:none}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button{background:#466dd8;border-radius:8px;border:none;color:#fff;cursor:pointer;display:block;margin:0;overflow:hidden;padding:17px 20px;position:relative;-webkit-transition:background .2s ease,color .2s ease;transition:background .2s ease,color .2s ease;text-align:center;width:100%}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button:hover{background:#2b55cb}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary{background:#efefef;color:#444}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary:hover{background:#fefefe}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary .fa{background:#848484}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button .fa{background:#1c3987;border-radius:4px 0 0 4px;color:#fff;display:block;font-size:20px;padding:15px 20px;position:absolute;top:0;left:0}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button[disabled=disabled]{opacity:.4}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.small{padding:8px 10px 8px 46px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.small .fa{font-size:15px;padding:9px 10px;width:20px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.right.small{padding-left:10px;padding-right:46px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.right .fa{border-radius:0 4px 4px 0;left:auto;right:0}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor{height:100%;min-height:100%;position:relative}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav{background-color:#1c3987;margin:0;padding:8px 0 0 8px;font-size:0;margin:-10px -10px 10px -10px;position:relative;z-index:2}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu{list-style-type:none;margin:0;padding:0;position:relative}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item{display:inline-block;margin:0 6px 0 0;padding:0}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item>.llms-editor-menu{display:none}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item>.llms-editor-menu:before{border:8px solid rgba(0,0,0,0);border-left-color:#cacaca;content:"";position:absolute;top:11px;left:0}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item>.llms-editor-menu .llms-editor-menu-item:hover>a,.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item>.llms-editor-menu .llms-editor-menu-item.active>a{background:#dfdfdf}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item:hover>a{background-color:#466dd8}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active>a{background-color:#e6e6e6;color:#466dd8;font-weight:700}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active>a:focus{-webkit-box-shadow:none;box-shadow:none}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active>.llms-editor-menu{display:inline-block}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item a{border-top-left-radius:4px;border-top-right-radius:4px;color:#fff;display:inline-block;padding:9px 18px;text-decoration:none;-webkit-transition:background .2s ease;transition:background .2s ease;font-size:15px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right{float:right}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right a,.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right:hover{background:rgba(0,0,0,0)}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab{display:none;height:calc(100% - 90px);overflow:scroll;position:relative;z-index:1}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active{display:block}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz .llms-quiz-questions{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;overflow:scroll}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz .llms-quiz-questions .llms-quiz-questions{overflow:visible}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save{bottom:10px;left:10px;position:absolute;right:10px;z-index:1}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-builder-error{background:#bb231c;border-radius:4px;color:#fff;display:inline-block;font-style:italic;padding:5px 15px 7px 25px;margin:0 0 10px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-builder-error li{margin:0;padding:0}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-save{width:75%}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-exit{padding-left:5px;padding-right:5px;width:23%}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button{position:relative}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button i{position:absolute;left:10px;top:10px}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button i .llms-spinner{border-color:#fff}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status] .llms-status-indicator{display:none}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=saved] .status--saved{display:block}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=unsaved]{background-color:#f8954f}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=unsaved] .status--unsaved{display:block}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=saving] .status--saving{display:block}.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=error] .status--error{display:block}@media only screen and (max-width: 782px){.wrap.lifterlms.llms-builder .llms-builder-sidebar{margin-right:10px;position:relative;top:0;width:auto}.wrap.lifterlms.llms-builder .llms-builder-main{padding-right:10px;width:auto}}.wrap.lifterlms.llms-builder .select2-container{z-index:99999999}.wrap.lifterlms.llms-builder .select2-results__option{padding:0}.wrap.lifterlms.llms-builder .select2-container--default .select2-results__option--highlighted[aria-selected]{background:#466dd8}.wrap.lifterlms.llms-builder .select2-container--default .select2-results__option--highlighted[aria-selected] .llms-existing-action{color:#fff}.wrap.lifterlms.llms-builder .llms-existing-lesson-result{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;padding:5px 5px 5px 0}.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info{-webkit-box-flex:6;-ms-flex:6;flex:6}.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h4,.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h5{margin:0}.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h4{font-weight:400}.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h5{font-weight:300}.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action{color:#466dd8;-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action .fa{display:block;font-size:30px}.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action small{text-transform:uppercase}.wrap.lifterlms.llms-builder .llms-quiz-empty{margin:100px auto;text-align:center}.wrap.lifterlms.llms-builder .llms-quiz-empty p{font-size:18px}.wrap.lifterlms.llms-builder .llms-quiz-empty button.llms-element-button{max-width:320px;margin:0 auto}.wrap.lifterlms.llms-builder .llms-editor-tab.tab--quiz .llms-model-header .llms-model-title{width:calc(100% - 310px)}.wrap.lifterlms.llms-builder .llms-editor-tab.tab--quiz .llms-model-header .llms-quiz-points{float:left;margin-right:10px;width:100px}.wrap.lifterlms.llms-builder .llms-model-header{background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13);padding:10px}.wrap.lifterlms.llms-builder .llms-model-header:before,.wrap.lifterlms.llms-builder .llms-model-header:after{content:" ";display:table}.wrap.lifterlms.llms-builder .llms-model-header:after{clear:both}.wrap.lifterlms.llms-builder .llms-model-header .llms-model-title{float:left;margin-right:10px;width:calc(100% - 200px)}.wrap.lifterlms.llms-builder .llms-model-header .llms-model-title .llms-input{width:calc(100% - 65px)}.wrap.lifterlms.llms-builder .llms-model-header .llms-model-status.llms-switch{float:left;margin-right:10px;position:relative;text-align:right;top:-2px;width:100px}.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons{float:left;position:relative;text-align:right;width:80px;z-index:1}.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons .llms-action-icon{margin-left:10px}.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons .fa{max-width:15px}.wrap.lifterlms.llms-builder .llms-model-header+.llms-model-settings.active{margin-top:-10px}.wrap.lifterlms.llms-builder .llms-model-settings{clear:both;display:none}.wrap.lifterlms.llms-builder .llms-model-settings.active{display:block;margin-top:10px}.wrap.lifterlms.llms-builder .llms-quiz-footer{display:-webkit-box;display:-ms-flexbox;display:flex}.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button{-webkit-box-flex:1;-ms-flex:1;flex:1;margin:0 5px}.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button:first-child{margin-left:0}.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button:last-child{margin-right:0}.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button.llms-show-question-bank{-webkit-box-flex:2;-ms-flex:2;flex:2}.wrap.lifterlms.llms-builder .llms-quiz-tools{display:none;width:100%;position:relative}.wrap.lifterlms.llms-builder ul.llms-question-bank{list-style-type:none;margin:0;padding:0}.wrap.lifterlms.llms-builder ul.llms-question-bank:before,.wrap.lifterlms.llms-builder ul.llms-question-bank:after{content:" ";display:table}.wrap.lifterlms.llms-builder ul.llms-question-bank:after{clear:both}.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header{clear:both;padding-top:20px}.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header:first-child{padding-top:0}.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header h4{font-size:20px;margin:10px 5px}.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type{-webkit-box-sizing:border-box;box-sizing:border-box;float:left;margin:0;padding:3px;width:33.3333%;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type.filtered{opacity:.3}.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type .llms-type-unavailable{display:block;position:relative;text-decoration:none}.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type .llms-type-unavailable .llms-element-button{opacity:.5;pointer-events:none}.wrap.lifterlms.llms-builder ul.llms-quiz-questions{margin:10px 3px;padding:5px;-webkit-transition:-webkit-box-shadow .6s ease;transition:-webkit-box-shadow .6s ease;transition:box-shadow .6s ease;transition:box-shadow .6s ease, -webkit-box-shadow .6s ease;transition:box-shadow .6s ease,-webkit-box-shadow .6s ease}.wrap.lifterlms.llms-builder ul.llms-quiz-questions.dragging{-webkit-box-shadow:0 0 0 3px #466dd8;box-shadow:0 0 0 3px #466dd8}.wrap.lifterlms.llms-builder ul.llms-quiz-questions:empty:before{background:#fff;content:attr(data-empty-msg);display:block;font-size:18px;margin:0 auto;padding:100px 0;text-align:center}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question{background:#fff;margin:0 0 3px;padding:15px 12px 10px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question:hover>.llms-builder-header .llms-action-icons{opacity:1;pointer-events:auto}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions{margin-left:12px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions .llms-question{border-bottom:2px solid #e6e6e6}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions:empty:before{content:attr(data-empty-msg);display:block;font-size:18px;text-align:center;margin:20px auto}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions li.llms-question.llms-sortable-placeholder.qtype--group{display:none !important}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:before,.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:after{content:" ";display:table}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:after{clear:both}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header>*{float:left}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-body{display:none}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-body.active{display:block}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp{background:#466dd8;border-radius:4px;color:#fff;cursor:move;font-size:90%;margin-top:-5px;padding:4px 10px 6px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp small,.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp .fa{line-height:1.2;vertical-align:middle}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp .fa{margin-right:4px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-headline{width:calc(100% - 110px - 90px - 55px)}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-headline .ql-editor{width:calc(100% - 16px)}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-action-icons{width:110px;opacity:0;pointer-events:none}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-points{width:90px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features{margin:10px 0 0}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features:last-child{margin:0}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features .llms-switch{margin-right:15px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-editable-video{position:relative;z-index:1}.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-wrapper{background:#f4f4f4;margin:2px 1px;padding:10px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header{margin-bottom:10px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:before,.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:after{content:" ";display:table}.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:after{clear:both}.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header .llms-switch{float:right;text-align:right;width:260px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices{border:3px solid #f4f4f4;margin:-3px;padding:0;-webkit-transition:-webkit-box-shadow .6s ease;transition:-webkit-box-shadow .6s ease;transition:box-shadow .6s ease;transition:box-shadow .6s ease, -webkit-box-shadow .6s ease;transition:box-shadow .6s ease,-webkit-box-shadow .6s ease}.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices.dragging{-webkit-box-shadow:0 0 0 3px #466dd8;box-shadow:0 0 0 3px #466dd8}.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices.multi-choices li.llms-question-choice .llms-choice-id span{border-radius:4px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice{margin:0 0 5px;padding:0}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice:last-child{margin-bottom:0}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id input[type=checkbox]{display:none}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id input[type=checkbox]:checked+.llms-marker{background:#4d8d3c}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker{border-radius:50%;background:#d0d0d0;-webkit-box-shadow:inset 0 0 1px #848484;box-shadow:inset 0 0 1px #848484;color:#444;display:inline-block;font-size:16px;height:20px;line-height:20px;padding:5px;position:relative;text-align:center;-webkit-transition:background .1s ease;transition:background .1s ease;width:20px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker .fa{left:7px;opacity:0;position:absolute;top:7px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker.selectable:hover b{opacity:0}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker.selectable:hover .fa{opacity:1}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-input-wrapper,.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image{display:inline-block;width:calc(100% - 55px - 35px - 5px)}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-input{width:calc(100% - 16px)}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image .llms-image{vertical-align:middle}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image .llms-image img{height:50px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-action-icons{display:inline-block;opacity:1;pointer-events:auto;text-align:right;width:55px}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice.llms-sortable-placeholder{border:3px dashed #466dd8 !important;background:rgba(70,109,216,.3)}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice.ui-sortable-helper{border:1px solid #ccc;background:#fff;padding:10px;-webkit-transform:rotate(2deg);transform:rotate(2deg);z-index:999}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.ui-sortable-helper,.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.ui-draggable-dragging{border:1px solid #ccc;background:#fff;-webkit-transform:rotate(2deg);transform:rotate(2deg);z-index:999}.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.llms-sortable-placeholder{border:3px dashed #466dd8 !important;background:rgba(70,109,216,.3)}.wrap.lifterlms.llms-builder .llms-switch{display:inline-block;float:none;width:auto}.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox]{display:none}.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox]:checked+.llms-switch-slider{background:#4d8d3c}.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox]:checked+.llms-switch-slider:after{-webkit-transform:translateX(14px);transform:translateX(14px)}.wrap.lifterlms.llms-builder .llms-switch .llms-label{display:inline-block;vertical-align:top}.wrap.lifterlms.llms-builder .llms-switch .llms-switch-slider{background:#e0e0e0;border-radius:8px;display:inline-block;height:16px;margin-top:2px;position:relative;-webkit-transition:background .2s ease;transition:background .2s ease;vertical-align:top;width:30px}.wrap.lifterlms.llms-builder .llms-switch .llms-switch-slider:after{background:#fff;border-radius:8px;content:"";display:block;height:12px;left:2px;position:relative;-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease, -webkit-transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease;top:2px;width:12px}.wrap.lifterlms.llms-builder .llms-video-explainer-trigger{display:block;margin:40px 0 0;cursor:pointer;position:relative;width:100%;-webkit-transition:color .2s ease;transition:color .2s ease;color:initial}.wrap.lifterlms.llms-builder .llms-video-explainer-trigger:hover{color:currentColor}.wrap.lifterlms.llms-builder .llms-video-explainer-trigger:after{position:absolute;inset:0;margin:auto;pointer-events:none;content:"▶";display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;clear:both;height:2em;width:2em;border-radius:4em;border:4px solid currentColor;font-size:2.5em}.wrap.lifterlms.llms-builder .llms-video-explainer-trigger img{display:block;width:100%;border-radius:4px}.llms-multi-input .llms-input-wrapper{width:50%;float:left;margin-bottom:6px;font-size:12px}.llms-multi-input .llms-input-wrapper .llms-input{font-size:12px;padding:5px}
+/*# sourceMappingURL=../maps/css/builder.min.css.map */
diff --git a/assets/css/certificates-rtl.css b/assets/css/certificates-rtl.css
new file mode 100644
index 0000000000..a261b4c489
--- /dev/null
+++ b/assets/css/certificates-rtl.css
@@ -0,0 +1,122 @@
+/**
+ * Reset.
+ */
+body {
+ background-color: #fff;
+ background-image: none;
+ margin: 0 auto;
+}
+
+.header, .footer,
+.wrap-header, .wrap-footer,
+.site-header, .site-footer,
+.nav-primary, .primary-nav {
+ display: none;
+}
+
+.llms-certificate-container {
+ margin: 40px auto 0;
+}
+
+/**
+ * Legacy Template.
+ */
+.llms-certificate-container:not(.cert-template-v2) {
+ padding: 0;
+ overflow: hidden;
+}
+.llms-certificate-container:not(.cert-template-v2) .certificate-background {
+ position: relative;
+ z-index: 1;
+ width: 100%;
+ display: block;
+}
+.llms-certificate-container:not(.cert-template-v2) .llms_certificate,
+.llms-certificate-container:not(.cert-template-v2) .llms_my_certificate {
+ margin: 80px;
+ position: relative;
+ z-index: 2;
+}
+.llms-certificate-container:not(.cert-template-v2) h1:first-child {
+ text-align: center;
+}
+
+/**
+ * V2 Template
+ */
+.llms-certificate-wrapper {
+ margin: 0 auto;
+}
+
+.llms-certificate-container.cert-template-v2 {
+ width: 100%;
+ height: 100%;
+ background-size: 100% 100% !important;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.llms-certificate-container.cert-template-v2 .wp-block-columns .wp-block-column > * {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+}
+
+/**
+ * Certificate Actions Footer.
+ */
+.llms-print-certificate {
+ margin-top: 40px;
+ margin-bottom: 40px;
+ text-align: center;
+}
+.llms-print-certificate form {
+ display: inline;
+}
+
+@media print {
+ html, body {
+ -webkit-print-color-adjust: exact !important;
+ print-color-adjust: exact !important;
+ height: 100%;
+ overflow: hidden;
+ }
+ @page {
+ size: auto;
+ }
+ .no-print {
+ display: none;
+ }
+ body * {
+ visibility: hidden !important;
+ background: #fff none;
+ }
+ .site, .site-content {
+ overflow: visible;
+ }
+ header, aside, nav, footer {
+ display: none !important;
+ }
+ .single-llms_my_certificate .container,
+.single-llms_certificate .container {
+ width: 100%;
+ }
+ .llms-certificate-container,
+.llms-certificate-container * {
+ visibility: visible !important;
+ background: transparent none;
+ }
+ .llms-certificate-container:not(.cert-template-v2) {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ margin: 0 auto;
+ background: #fff none;
+ }
+ .llms-certificate-container.cert-template-v2 {
+ margin: 0 auto !important;
+ -webkit-print-color-adjust: exact !important;
+ print-color-adjust: exact !important;
+ -webkit-transform: scale(0.95);
+ transform: scale(0.95);
+ }
+}
diff --git a/assets/css/certificates-rtl.min.css b/assets/css/certificates-rtl.min.css
new file mode 100644
index 0000000000..997c1f2981
--- /dev/null
+++ b/assets/css/certificates-rtl.min.css
@@ -0,0 +1 @@
+body{background-color:#fff;background-image:none;margin:0 auto}.header,.footer,.wrap-header,.wrap-footer,.site-header,.site-footer,.nav-primary,.primary-nav{display:none}.llms-certificate-container{margin:40px auto 0}.llms-certificate-container:not(.cert-template-v2){padding:0;overflow:hidden}.llms-certificate-container:not(.cert-template-v2) .certificate-background{position:relative;z-index:1;width:100%;display:block}.llms-certificate-container:not(.cert-template-v2) .llms_certificate,.llms-certificate-container:not(.cert-template-v2) .llms_my_certificate{margin:80px;position:relative;z-index:2}.llms-certificate-container:not(.cert-template-v2) h1:first-child{text-align:center}.llms-certificate-wrapper{margin:0 auto}.llms-certificate-container.cert-template-v2{width:100%;height:100%;background-size:100% 100% !important;-webkit-box-sizing:border-box;box-sizing:border-box}.llms-certificate-container.cert-template-v2 .wp-block-columns .wp-block-column>*{margin-top:0 !important;margin-bottom:0 !important}.llms-print-certificate{margin-top:40px;margin-bottom:40px;text-align:center}.llms-print-certificate form{display:inline}@media print{html,body{-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important;height:100%;overflow:hidden}@page{size:auto}.no-print{display:none}body *{visibility:hidden !important;background:#fff none}.site,.site-content{overflow:visible}header,aside,nav,footer{display:none !important}.single-llms_my_certificate .container,.single-llms_certificate .container{width:100%}.llms-certificate-container,.llms-certificate-container *{visibility:visible !important;background:rgba(0,0,0,0) none}.llms-certificate-container:not(.cert-template-v2){position:absolute;top:0;right:0;left:0;margin:0 auto;background:#fff none}.llms-certificate-container.cert-template-v2{margin:0 auto !important;-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important;-webkit-transform:scale(0.95);transform:scale(0.95)}}
diff --git a/assets/css/certificates.css b/assets/css/certificates.css
new file mode 100644
index 0000000000..9e822cf762
--- /dev/null
+++ b/assets/css/certificates.css
@@ -0,0 +1,123 @@
+/**
+ * Reset.
+ */
+body {
+ background-color: #fff;
+ background-image: none;
+ margin: 0 auto;
+}
+
+.header, .footer,
+.wrap-header, .wrap-footer,
+.site-header, .site-footer,
+.nav-primary, .primary-nav {
+ display: none;
+}
+
+.llms-certificate-container {
+ margin: 40px auto 0;
+}
+
+/**
+ * Legacy Template.
+ */
+.llms-certificate-container:not(.cert-template-v2) {
+ padding: 0;
+ overflow: hidden;
+}
+.llms-certificate-container:not(.cert-template-v2) .certificate-background {
+ position: relative;
+ z-index: 1;
+ width: 100%;
+ display: block;
+}
+.llms-certificate-container:not(.cert-template-v2) .llms_certificate,
+.llms-certificate-container:not(.cert-template-v2) .llms_my_certificate {
+ margin: 80px;
+ position: relative;
+ z-index: 2;
+}
+.llms-certificate-container:not(.cert-template-v2) h1:first-child {
+ text-align: center;
+}
+
+/**
+ * V2 Template
+ */
+.llms-certificate-wrapper {
+ margin: 0 auto;
+}
+
+.llms-certificate-container.cert-template-v2 {
+ width: 100%;
+ height: 100%;
+ background-size: 100% 100% !important;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.llms-certificate-container.cert-template-v2 .wp-block-columns .wp-block-column > * {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+}
+
+/**
+ * Certificate Actions Footer.
+ */
+.llms-print-certificate {
+ margin-top: 40px;
+ margin-bottom: 40px;
+ text-align: center;
+}
+.llms-print-certificate form {
+ display: inline;
+}
+
+@media print {
+ html, body {
+ -webkit-print-color-adjust: exact !important;
+ print-color-adjust: exact !important;
+ height: 100%;
+ overflow: hidden;
+ }
+ @page {
+ size: auto;
+ }
+ .no-print {
+ display: none;
+ }
+ body * {
+ visibility: hidden !important;
+ background: #fff none;
+ }
+ .site, .site-content {
+ overflow: visible;
+ }
+ header, aside, nav, footer {
+ display: none !important;
+ }
+ .single-llms_my_certificate .container,
+.single-llms_certificate .container {
+ width: 100%;
+ }
+ .llms-certificate-container,
+.llms-certificate-container * {
+ visibility: visible !important;
+ background: transparent none;
+ }
+ .llms-certificate-container:not(.cert-template-v2) {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ margin: 0 auto;
+ background: #fff none;
+ }
+ .llms-certificate-container.cert-template-v2 {
+ margin: 0 auto !important;
+ -webkit-print-color-adjust: exact !important;
+ print-color-adjust: exact !important;
+ -webkit-transform: scale(0.95);
+ transform: scale(0.95);
+ }
+}
+/*# sourceMappingURL=../maps/css/certificates.css.map */
diff --git a/assets/css/certificates.min.css b/assets/css/certificates.min.css
new file mode 100644
index 0000000000..317f971da8
--- /dev/null
+++ b/assets/css/certificates.min.css
@@ -0,0 +1,2 @@
+body{background-color:#fff;background-image:none;margin:0 auto}.header,.footer,.wrap-header,.wrap-footer,.site-header,.site-footer,.nav-primary,.primary-nav{display:none}.llms-certificate-container{margin:40px auto 0}.llms-certificate-container:not(.cert-template-v2){padding:0;overflow:hidden}.llms-certificate-container:not(.cert-template-v2) .certificate-background{position:relative;z-index:1;width:100%;display:block}.llms-certificate-container:not(.cert-template-v2) .llms_certificate,.llms-certificate-container:not(.cert-template-v2) .llms_my_certificate{margin:80px;position:relative;z-index:2}.llms-certificate-container:not(.cert-template-v2) h1:first-child{text-align:center}.llms-certificate-wrapper{margin:0 auto}.llms-certificate-container.cert-template-v2{width:100%;height:100%;background-size:100% 100% !important;-webkit-box-sizing:border-box;box-sizing:border-box}.llms-certificate-container.cert-template-v2 .wp-block-columns .wp-block-column>*{margin-top:0 !important;margin-bottom:0 !important}.llms-print-certificate{margin-top:40px;margin-bottom:40px;text-align:center}.llms-print-certificate form{display:inline}@media print{html,body{-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important;height:100%;overflow:hidden}@page{size:auto}.no-print{display:none}body *{visibility:hidden !important;background:#fff none}.site,.site-content{overflow:visible}header,aside,nav,footer{display:none !important}.single-llms_my_certificate .container,.single-llms_certificate .container{width:100%}.llms-certificate-container,.llms-certificate-container *{visibility:visible !important;background:rgba(0,0,0,0) none}.llms-certificate-container:not(.cert-template-v2){position:absolute;top:0;left:0;right:0;margin:0 auto;background:#fff none}.llms-certificate-container.cert-template-v2{margin:0 auto !important;-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important;-webkit-transform:scale(0.95);transform:scale(0.95)}}
+/*# sourceMappingURL=../maps/css/certificates.min.css.map */
diff --git a/assets/css/editor-rtl.css b/assets/css/editor-rtl.css
new file mode 100644
index 0000000000..c429de7bc3
--- /dev/null
+++ b/assets/css/editor-rtl.css
@@ -0,0 +1,37 @@
+.llms-block-empty,
+.llms-block-error {
+ padding: 1em;
+ border: 1px solid #e0e0e0;
+ font-size: 16px;
+}
+
+.llms-block-empty {
+ font-style: italic;
+}
+
+.wp-block .llms-button-primary {
+ text-decoration: none;
+}
+
+.llms-navigation-link-settings .components-panel__row > .components-base-control {
+ width: 100%;
+}
+
+.llms-block-icon {
+ -webkit-transform: scale(0.75);
+ transform: scale(0.75);
+}
+
+.llms-loop-item .llms-video-wrapper {
+ aspect-ratio: 16/9;
+ position: relative;
+}
+.llms-loop-item .llms-video-wrapper iframe {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ right: 0;
+ top: 0;
+ -o-object-fit: cover;
+ object-fit: cover;
+}
diff --git a/assets/css/editor-rtl.min.css b/assets/css/editor-rtl.min.css
new file mode 100644
index 0000000000..46908fdc9e
--- /dev/null
+++ b/assets/css/editor-rtl.min.css
@@ -0,0 +1 @@
+.llms-block-empty,.llms-block-error{padding:1em;border:1px solid #e0e0e0;font-size:16px}.llms-block-empty{font-style:italic}.wp-block .llms-button-primary{text-decoration:none}.llms-navigation-link-settings .components-panel__row>.components-base-control{width:100%}.llms-block-icon{-webkit-transform:scale(0.75);transform:scale(0.75)}.llms-loop-item .llms-video-wrapper{aspect-ratio:16/9;position:relative}.llms-loop-item .llms-video-wrapper iframe{width:100%;height:100%;position:absolute;right:0;top:0;-o-object-fit:cover;object-fit:cover}
diff --git a/assets/css/editor.css b/assets/css/editor.css
new file mode 100644
index 0000000000..e8021d4299
--- /dev/null
+++ b/assets/css/editor.css
@@ -0,0 +1,38 @@
+.llms-block-empty,
+.llms-block-error {
+ padding: 1em;
+ border: 1px solid #e0e0e0;
+ font-size: 16px;
+}
+
+.llms-block-empty {
+ font-style: italic;
+}
+
+.wp-block .llms-button-primary {
+ text-decoration: none;
+}
+
+.llms-navigation-link-settings .components-panel__row > .components-base-control {
+ width: 100%;
+}
+
+.llms-block-icon {
+ -webkit-transform: scale(0.75);
+ transform: scale(0.75);
+}
+
+.llms-loop-item .llms-video-wrapper {
+ aspect-ratio: 16/9;
+ position: relative;
+}
+.llms-loop-item .llms-video-wrapper iframe {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 0;
+ -o-object-fit: cover;
+ object-fit: cover;
+}
+/*# sourceMappingURL=../maps/css/editor.css.map */
diff --git a/assets/css/editor.min.css b/assets/css/editor.min.css
new file mode 100644
index 0000000000..61f0909e95
--- /dev/null
+++ b/assets/css/editor.min.css
@@ -0,0 +1,2 @@
+.llms-block-empty,.llms-block-error{padding:1em;border:1px solid #e0e0e0;font-size:16px}.llms-block-empty{font-style:italic}.wp-block .llms-button-primary{text-decoration:none}.llms-navigation-link-settings .components-panel__row>.components-base-control{width:100%}.llms-block-icon{-webkit-transform:scale(0.75);transform:scale(0.75)}.llms-loop-item .llms-video-wrapper{aspect-ratio:16/9;position:relative}.llms-loop-item .llms-video-wrapper iframe{width:100%;height:100%;position:absolute;left:0;top:0;-o-object-fit:cover;object-fit:cover}
+/*# sourceMappingURL=../maps/css/editor.min.css.map */
diff --git a/assets/css/lifterlms-rtl.css b/assets/css/lifterlms-rtl.css
new file mode 100644
index 0000000000..6c53d47158
--- /dev/null
+++ b/assets/css/lifterlms-rtl.css
@@ -0,0 +1,6732 @@
+@charset "UTF-8";
+.llms-pagination ul:before, .llms-pagination ul:after,
+.llms-form-fields:before,
+.llms-checkout-cols-2:before,
+.llms-access-plans:before,
+.llms-loop-list:before,
+.llms-cols:before,
+.llms-form-fields:after,
+.llms-checkout-cols-2:after,
+.llms-access-plans:after,
+.llms-loop-list:after,
+.llms-cols:after {
+ content: " ";
+ display: table;
+}
+.llms-pagination ul:after,
+.llms-form-fields:after,
+.llms-checkout-cols-2:after,
+.llms-access-plans:after,
+.llms-loop-list:after,
+.llms-cols:after {
+ clear: both;
+}
+
+.llms-cols .llms-col {
+ width: 100%;
+}
+@media all and (min-width: 600px) {
+ .llms-cols [class*=llms-col-] {
+ float: right;
+ }
+}
+
+.llms-flex-cols {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+}
+.llms-flex-cols [class*=llms-col] {
+ -webkit-box-flex: 0;
+ -ms-flex: 0 1 auto;
+ flex: 0 1 auto;
+ width: 100%;
+}
+
+@media all and (min-width: 600px) {
+ .llms-cols .llms-col-1, .llms-flex-cols .llms-col-1 {
+ width: 100%;
+ }
+ .llms-cols .llms-col-2, .llms-flex-cols .llms-col-2 {
+ width: 50%;
+ }
+ .llms-cols .llms-col-3, .llms-flex-cols .llms-col-3 {
+ width: 33.3333333333%;
+ }
+ .llms-cols .llms-col-4, .llms-flex-cols .llms-col-4 {
+ width: 25%;
+ }
+ .llms-cols .llms-col-5, .llms-flex-cols .llms-col-5 {
+ width: 20%;
+ }
+ .llms-cols .llms-col-6, .llms-flex-cols .llms-col-6 {
+ width: 16.6666666667%;
+ }
+ .llms-cols .llms-col-7, .llms-flex-cols .llms-col-7 {
+ width: 14.2857142857%;
+ }
+ .llms-cols .llms-col-8, .llms-flex-cols .llms-col-8 {
+ width: 12.5%;
+ }
+ .llms-cols .llms-col-9, .llms-flex-cols .llms-col-9 {
+ width: 11.1111111111%;
+ }
+ .llms-cols .llms-col-10, .llms-flex-cols .llms-col-10 {
+ width: 10%;
+ }
+ .llms-cols .llms-col-11, .llms-flex-cols .llms-col-11 {
+ width: 9.0909090909%;
+ }
+ .llms-cols .llms-col-12, .llms-flex-cols .llms-col-12 {
+ width: 8.3333333333%;
+ }
+}
+.llms-button-action,
+.llms-button-danger,
+.llms-button-primary,
+.llms-button-secondary {
+ border: none;
+ border-radius: 8px;
+ color: #fefefe;
+ cursor: pointer;
+ display: inline-block;
+ font-size: 18px;
+ font-weight: 700;
+ text-decoration: none;
+ text-shadow: none;
+ line-height: 1;
+ margin: 0;
+ max-width: 100%;
+ padding: 12px 24px;
+ position: relative;
+ -webkit-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+}
+.llms-button-action:disabled,
+.llms-button-danger:disabled,
+.llms-button-primary:disabled,
+.llms-button-secondary:disabled {
+ opacity: 0.5;
+}
+.llms-button-action:hover, .llms-button-action:active,
+.llms-button-danger:hover,
+.llms-button-danger:active,
+.llms-button-primary:hover,
+.llms-button-primary:active,
+.llms-button-secondary:hover,
+.llms-button-secondary:active {
+ color: #fefefe;
+}
+.llms-button-action:focus,
+.llms-button-danger:focus,
+.llms-button-primary:focus,
+.llms-button-secondary:focus {
+ color: #fefefe;
+}
+.llms-button-action.auto,
+.llms-button-danger.auto,
+.llms-button-primary.auto,
+.llms-button-secondary.auto {
+ width: auto;
+}
+.llms-button-action.full,
+.llms-button-danger.full,
+.llms-button-primary.full,
+.llms-button-secondary.full {
+ display: block;
+ text-align: center;
+ width: 100%;
+}
+.llms-button-action.square,
+.llms-button-danger.square,
+.llms-button-primary.square,
+.llms-button-secondary.square {
+ padding: 12px;
+}
+.llms-button-action.small,
+.llms-button-danger.small,
+.llms-button-primary.small,
+.llms-button-secondary.small {
+ font-size: 13px;
+ padding: 8px 14px;
+}
+.llms-button-action.small.square,
+.llms-button-danger.small.square,
+.llms-button-primary.small.square,
+.llms-button-secondary.small.square {
+ padding: 8px;
+}
+.llms-button-action.large,
+.llms-button-danger.large,
+.llms-button-primary.large,
+.llms-button-secondary.large {
+ font-size: 18px;
+ line-height: 1.2;
+ padding: 16px 32px;
+}
+.llms-button-action.large.square,
+.llms-button-danger.large.square,
+.llms-button-primary.large.square,
+.llms-button-secondary.large.square {
+ padding: 16px;
+}
+.llms-button-action.large .fa,
+.llms-button-danger.large .fa,
+.llms-button-primary.large .fa,
+.llms-button-secondary.large .fa {
+ right: -7px;
+ position: relative;
+}
+
+/* Fix for cases where link color overrides the button color */
+a.llms-button-action,
+a.llms-button-danger,
+a.llms-button-primary {
+ color: #fefefe;
+}
+
+.llms-button-primary {
+ background: #466dd8;
+}
+.llms-button-primary:hover, .llms-button-primary.clicked {
+ background: #274eba;
+}
+.llms-button-primary:focus, .llms-button-primary:active {
+ background: #6888df;
+}
+
+.llms-button-secondary {
+ background: #e1e1e1;
+ color: #444;
+}
+.llms-button-secondary:hover {
+ color: #414141;
+ background: #cdcdcd;
+}
+.llms-button-secondary:focus, .llms-button-secondary:active {
+ color: #414141;
+ background: #ebebeb;
+}
+
+/* Fix for cases where link color overrides the button color */
+a.llms-button-secondary {
+ color: #444;
+}
+
+.llms-button-action {
+ background: #c05621;
+}
+.llms-button-action:hover, .llms-button-action.clicked {
+ background: #f67d28;
+}
+.llms-button-action:focus, .llms-button-action:active {
+ background: #faad76;
+}
+
+.llms-button-danger {
+ background: #bb231c;
+}
+.llms-button-danger:hover {
+ background: #981c17;
+}
+.llms-button-danger:focus, .llms-button-danger:active {
+ background: #cd261f;
+}
+
+.llms-button-outline {
+ background: transparent;
+ border: 3px solid #1D2327;
+ border-radius: 8px;
+ color: #1D2327;
+ cursor: pointer;
+ font-size: 16px;
+ font-weight: 700;
+ text-decoration: none;
+ text-shadow: none;
+ line-height: 1;
+ margin: 0;
+ max-width: 100%;
+ padding: 12px 24px;
+ position: relative;
+ -webkit-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+}
+.llms-button-outline:disabled {
+ opacity: 0.5;
+}
+.llms-button-outline:hover, .llms-button-outline:active {
+ color: #1D2327;
+}
+.llms-button-outline:focus {
+ color: #1D2327;
+}
+.llms-button-outline.auto {
+ width: auto;
+}
+.llms-button-outline.full {
+ display: block;
+ text-align: center;
+ width: 100%;
+}
+.llms-button-outline.square {
+ padding: 12px;
+}
+
+.llms-course-continue-button {
+ display: inline-block;
+}
+
+.llms-donut {
+ background-color: #f1f1f1;
+ background-image: none;
+ border-radius: 50%;
+ color: #466dd8;
+ height: 200px;
+ overflow: hidden;
+ position: relative;
+ width: 200px;
+}
+.llms-donut:before, .llms-donut:after {
+ content: " ";
+ display: table;
+}
+.llms-donut:after {
+ clear: both;
+}
+.llms-donut svg {
+ overflow: visible !important;
+ pointer-events: none;
+ width: 100%;
+}
+.llms-donut svg path {
+ fill: none;
+ stroke-width: 35px;
+ stroke: #466dd8;
+}
+.llms-donut.mini {
+ height: 36px;
+ width: 36px;
+}
+.llms-donut.mini .percentage {
+ font-size: 10px;
+}
+.llms-donut.small {
+ height: 100px;
+ width: 100px;
+}
+.llms-donut.small .percentage {
+ font-size: 18px;
+}
+.llms-donut.medium {
+ height: 130px;
+ width: 130px;
+}
+.llms-donut.medium .percentage {
+ font-size: 26px;
+}
+.llms-donut.large {
+ height: 260px;
+ width: 260px;
+}
+.llms-donut.large .percentage {
+ font-size: 48px;
+}
+.llms-donut .inside {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ background: #fff;
+ border-radius: 50%;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ height: 80%;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ right: 50%;
+ position: absolute;
+ text-align: center;
+ -webkit-transform: translate(50%, -50%);
+ transform: translate(50%, -50%);
+ width: 80%;
+ top: 50%;
+ z-index: 3;
+}
+.llms-donut .percentage {
+ line-height: 1.2;
+ font-size: 34px;
+}
+.llms-donut .caption {
+ font-size: 75%;
+}
+
+.lifterlms [data-tip],
+.lifterlms [data-title-default],
+.lifterlms [data-title-active],
+.llms-metabox [data-tip],
+.llms-metabox [data-title-default],
+.llms-metabox [data-title-active],
+.llms-mb-container [data-tip],
+.llms-mb-container [data-title-default],
+.llms-mb-container [data-title-active],
+.llms-quiz-wrapper [data-tip],
+.llms-quiz-wrapper [data-title-default],
+.llms-quiz-wrapper [data-title-active] {
+ position: relative;
+}
+.lifterlms [data-tip].tip--top-right:before,
+.lifterlms [data-title-default].tip--top-right:before,
+.lifterlms [data-title-active].tip--top-right:before,
+.llms-metabox [data-tip].tip--top-right:before,
+.llms-metabox [data-title-default].tip--top-right:before,
+.llms-metabox [data-title-active].tip--top-right:before,
+.llms-mb-container [data-tip].tip--top-right:before,
+.llms-mb-container [data-title-default].tip--top-right:before,
+.llms-mb-container [data-title-active].tip--top-right:before,
+.llms-quiz-wrapper [data-tip].tip--top-right:before,
+.llms-quiz-wrapper [data-title-default].tip--top-right:before,
+.llms-quiz-wrapper [data-title-active].tip--top-right:before {
+ bottom: 100%;
+ right: -10px;
+}
+.lifterlms [data-tip].tip--top-right:hover:before,
+.lifterlms [data-title-default].tip--top-right:hover:before,
+.lifterlms [data-title-active].tip--top-right:hover:before,
+.llms-metabox [data-tip].tip--top-right:hover:before,
+.llms-metabox [data-title-default].tip--top-right:hover:before,
+.llms-metabox [data-title-active].tip--top-right:hover:before,
+.llms-mb-container [data-tip].tip--top-right:hover:before,
+.llms-mb-container [data-title-default].tip--top-right:hover:before,
+.llms-mb-container [data-title-active].tip--top-right:hover:before,
+.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before {
+ bottom: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--top-right:after,
+.lifterlms [data-title-default].tip--top-right:after,
+.lifterlms [data-title-active].tip--top-right:after,
+.llms-metabox [data-tip].tip--top-right:after,
+.llms-metabox [data-title-default].tip--top-right:after,
+.llms-metabox [data-title-active].tip--top-right:after,
+.llms-mb-container [data-tip].tip--top-right:after,
+.llms-mb-container [data-title-default].tip--top-right:after,
+.llms-mb-container [data-title-active].tip--top-right:after,
+.llms-quiz-wrapper [data-tip].tip--top-right:after,
+.llms-quiz-wrapper [data-title-default].tip--top-right:after,
+.llms-quiz-wrapper [data-title-active].tip--top-right:after {
+ border-top-color: #444;
+ right: 6px;
+ top: 0;
+}
+.lifterlms [data-tip].tip--top-right:hover:after,
+.lifterlms [data-title-default].tip--top-right:hover:after,
+.lifterlms [data-title-active].tip--top-right:hover:after,
+.llms-metabox [data-tip].tip--top-right:hover:after,
+.llms-metabox [data-title-default].tip--top-right:hover:after,
+.llms-metabox [data-title-active].tip--top-right:hover:after,
+.llms-mb-container [data-tip].tip--top-right:hover:after,
+.llms-mb-container [data-title-default].tip--top-right:hover:after,
+.llms-mb-container [data-title-active].tip--top-right:hover:after,
+.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after {
+ top: -6px;
+}
+.lifterlms [data-tip].tip--top-left:before,
+.lifterlms [data-title-default].tip--top-left:before,
+.lifterlms [data-title-active].tip--top-left:before,
+.llms-metabox [data-tip].tip--top-left:before,
+.llms-metabox [data-title-default].tip--top-left:before,
+.llms-metabox [data-title-active].tip--top-left:before,
+.llms-mb-container [data-tip].tip--top-left:before,
+.llms-mb-container [data-title-default].tip--top-left:before,
+.llms-mb-container [data-title-active].tip--top-left:before,
+.llms-quiz-wrapper [data-tip].tip--top-left:before,
+.llms-quiz-wrapper [data-title-default].tip--top-left:before,
+.llms-quiz-wrapper [data-title-active].tip--top-left:before {
+ bottom: 100%;
+ left: -10px;
+}
+.lifterlms [data-tip].tip--top-left:hover:before,
+.lifterlms [data-title-default].tip--top-left:hover:before,
+.lifterlms [data-title-active].tip--top-left:hover:before,
+.llms-metabox [data-tip].tip--top-left:hover:before,
+.llms-metabox [data-title-default].tip--top-left:hover:before,
+.llms-metabox [data-title-active].tip--top-left:hover:before,
+.llms-mb-container [data-tip].tip--top-left:hover:before,
+.llms-mb-container [data-title-default].tip--top-left:hover:before,
+.llms-mb-container [data-title-active].tip--top-left:hover:before,
+.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before {
+ bottom: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--top-left:after,
+.lifterlms [data-title-default].tip--top-left:after,
+.lifterlms [data-title-active].tip--top-left:after,
+.llms-metabox [data-tip].tip--top-left:after,
+.llms-metabox [data-title-default].tip--top-left:after,
+.llms-metabox [data-title-active].tip--top-left:after,
+.llms-mb-container [data-tip].tip--top-left:after,
+.llms-mb-container [data-title-default].tip--top-left:after,
+.llms-mb-container [data-title-active].tip--top-left:after,
+.llms-quiz-wrapper [data-tip].tip--top-left:after,
+.llms-quiz-wrapper [data-title-default].tip--top-left:after,
+.llms-quiz-wrapper [data-title-active].tip--top-left:after {
+ border-top-color: #444;
+ left: 6px;
+ top: 0;
+}
+.lifterlms [data-tip].tip--top-left:hover:after,
+.lifterlms [data-title-default].tip--top-left:hover:after,
+.lifterlms [data-title-active].tip--top-left:hover:after,
+.llms-metabox [data-tip].tip--top-left:hover:after,
+.llms-metabox [data-title-default].tip--top-left:hover:after,
+.llms-metabox [data-title-active].tip--top-left:hover:after,
+.llms-mb-container [data-tip].tip--top-left:hover:after,
+.llms-mb-container [data-title-default].tip--top-left:hover:after,
+.llms-mb-container [data-title-active].tip--top-left:hover:after,
+.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after {
+ top: -6px;
+}
+.lifterlms [data-tip].tip--bottom-left:before,
+.lifterlms [data-title-default].tip--bottom-left:before,
+.lifterlms [data-title-active].tip--bottom-left:before,
+.llms-metabox [data-tip].tip--bottom-left:before,
+.llms-metabox [data-title-default].tip--bottom-left:before,
+.llms-metabox [data-title-active].tip--bottom-left:before,
+.llms-mb-container [data-tip].tip--bottom-left:before,
+.llms-mb-container [data-title-default].tip--bottom-left:before,
+.llms-mb-container [data-title-active].tip--bottom-left:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:before {
+ top: 100%;
+ left: -10px;
+}
+.lifterlms [data-tip].tip--bottom-left:hover:before,
+.lifterlms [data-title-default].tip--bottom-left:hover:before,
+.lifterlms [data-title-active].tip--bottom-left:hover:before,
+.llms-metabox [data-tip].tip--bottom-left:hover:before,
+.llms-metabox [data-title-default].tip--bottom-left:hover:before,
+.llms-metabox [data-title-active].tip--bottom-left:hover:before,
+.llms-mb-container [data-tip].tip--bottom-left:hover:before,
+.llms-mb-container [data-title-default].tip--bottom-left:hover:before,
+.llms-mb-container [data-title-active].tip--bottom-left:hover:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before {
+ top: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--bottom-left:after,
+.lifterlms [data-title-default].tip--bottom-left:after,
+.lifterlms [data-title-active].tip--bottom-left:after,
+.llms-metabox [data-tip].tip--bottom-left:after,
+.llms-metabox [data-title-default].tip--bottom-left:after,
+.llms-metabox [data-title-active].tip--bottom-left:after,
+.llms-mb-container [data-tip].tip--bottom-left:after,
+.llms-mb-container [data-title-default].tip--bottom-left:after,
+.llms-mb-container [data-title-active].tip--bottom-left:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:after {
+ border-bottom-color: #444;
+ left: 6px;
+ bottom: 0;
+}
+.lifterlms [data-tip].tip--bottom-left:hover:after,
+.lifterlms [data-title-default].tip--bottom-left:hover:after,
+.lifterlms [data-title-active].tip--bottom-left:hover:after,
+.llms-metabox [data-tip].tip--bottom-left:hover:after,
+.llms-metabox [data-title-default].tip--bottom-left:hover:after,
+.llms-metabox [data-title-active].tip--bottom-left:hover:after,
+.llms-mb-container [data-tip].tip--bottom-left:hover:after,
+.llms-mb-container [data-title-default].tip--bottom-left:hover:after,
+.llms-mb-container [data-title-active].tip--bottom-left:hover:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after {
+ bottom: -6px;
+}
+.lifterlms [data-tip].tip--bottom-right:before,
+.lifterlms [data-title-default].tip--bottom-right:before,
+.lifterlms [data-title-active].tip--bottom-right:before,
+.llms-metabox [data-tip].tip--bottom-right:before,
+.llms-metabox [data-title-default].tip--bottom-right:before,
+.llms-metabox [data-title-active].tip--bottom-right:before,
+.llms-mb-container [data-tip].tip--bottom-right:before,
+.llms-mb-container [data-title-default].tip--bottom-right:before,
+.llms-mb-container [data-title-active].tip--bottom-right:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:before {
+ top: 100%;
+ right: -10px;
+}
+.lifterlms [data-tip].tip--bottom-right:hover:before,
+.lifterlms [data-title-default].tip--bottom-right:hover:before,
+.lifterlms [data-title-active].tip--bottom-right:hover:before,
+.llms-metabox [data-tip].tip--bottom-right:hover:before,
+.llms-metabox [data-title-default].tip--bottom-right:hover:before,
+.llms-metabox [data-title-active].tip--bottom-right:hover:before,
+.llms-mb-container [data-tip].tip--bottom-right:hover:before,
+.llms-mb-container [data-title-default].tip--bottom-right:hover:before,
+.llms-mb-container [data-title-active].tip--bottom-right:hover:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before {
+ top: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--bottom-right:after,
+.lifterlms [data-title-default].tip--bottom-right:after,
+.lifterlms [data-title-active].tip--bottom-right:after,
+.llms-metabox [data-tip].tip--bottom-right:after,
+.llms-metabox [data-title-default].tip--bottom-right:after,
+.llms-metabox [data-title-active].tip--bottom-right:after,
+.llms-mb-container [data-tip].tip--bottom-right:after,
+.llms-mb-container [data-title-default].tip--bottom-right:after,
+.llms-mb-container [data-title-active].tip--bottom-right:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:after {
+ border-bottom-color: #444;
+ right: 6px;
+ bottom: 0;
+}
+.lifterlms [data-tip].tip--bottom-right:hover:after,
+.lifterlms [data-title-default].tip--bottom-right:hover:after,
+.lifterlms [data-title-active].tip--bottom-right:hover:after,
+.llms-metabox [data-tip].tip--bottom-right:hover:after,
+.llms-metabox [data-title-default].tip--bottom-right:hover:after,
+.llms-metabox [data-title-active].tip--bottom-right:hover:after,
+.llms-mb-container [data-tip].tip--bottom-right:hover:after,
+.llms-mb-container [data-title-default].tip--bottom-right:hover:after,
+.llms-mb-container [data-title-active].tip--bottom-right:hover:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after {
+ bottom: -6px;
+}
+.lifterlms [data-tip]:before,
+.lifterlms [data-title-default]:before,
+.lifterlms [data-title-active]:before,
+.llms-metabox [data-tip]:before,
+.llms-metabox [data-title-default]:before,
+.llms-metabox [data-title-active]:before,
+.llms-mb-container [data-tip]:before,
+.llms-mb-container [data-title-default]:before,
+.llms-mb-container [data-title-active]:before,
+.llms-quiz-wrapper [data-tip]:before,
+.llms-quiz-wrapper [data-title-default]:before,
+.llms-quiz-wrapper [data-title-active]:before {
+ background: #444;
+ border-radius: 4px;
+ color: #fff;
+ font-size: 13px;
+ line-height: 1.2;
+ padding: 8px;
+ max-width: 300px;
+ width: -webkit-max-content;
+ width: -moz-max-content;
+ width: max-content;
+}
+.lifterlms [data-tip]:after,
+.lifterlms [data-title-default]:after,
+.lifterlms [data-title-active]:after,
+.llms-metabox [data-tip]:after,
+.llms-metabox [data-title-default]:after,
+.llms-metabox [data-title-active]:after,
+.llms-mb-container [data-tip]:after,
+.llms-mb-container [data-title-default]:after,
+.llms-mb-container [data-title-active]:after,
+.llms-quiz-wrapper [data-tip]:after,
+.llms-quiz-wrapper [data-title-default]:after,
+.llms-quiz-wrapper [data-title-active]:after {
+ content: "";
+ border: 6px solid transparent;
+ height: 0;
+ width: 0;
+}
+.lifterlms [data-tip]:before, .lifterlms [data-tip]:after,
+.lifterlms [data-title-default]:before,
+.lifterlms [data-title-default]:after,
+.lifterlms [data-title-active]:before,
+.lifterlms [data-title-active]:after,
+.llms-metabox [data-tip]:before,
+.llms-metabox [data-tip]:after,
+.llms-metabox [data-title-default]:before,
+.llms-metabox [data-title-default]:after,
+.llms-metabox [data-title-active]:before,
+.llms-metabox [data-title-active]:after,
+.llms-mb-container [data-tip]:before,
+.llms-mb-container [data-tip]:after,
+.llms-mb-container [data-title-default]:before,
+.llms-mb-container [data-title-default]:after,
+.llms-mb-container [data-title-active]:before,
+.llms-mb-container [data-title-active]:after,
+.llms-quiz-wrapper [data-tip]:before,
+.llms-quiz-wrapper [data-tip]:after,
+.llms-quiz-wrapper [data-title-default]:before,
+.llms-quiz-wrapper [data-title-default]:after,
+.llms-quiz-wrapper [data-title-active]:before,
+.llms-quiz-wrapper [data-title-active]:after {
+ opacity: 0;
+ -webkit-transition: all 0.2s 0.1s ease;
+ transition: all 0.2s 0.1s ease;
+ position: absolute;
+ pointer-events: none;
+ visibility: hidden;
+}
+.lifterlms [data-tip]:hover:before, .lifterlms [data-tip]:hover:after,
+.lifterlms [data-title-default]:hover:before,
+.lifterlms [data-title-default]:hover:after,
+.lifterlms [data-title-active]:hover:before,
+.lifterlms [data-title-active]:hover:after,
+.llms-metabox [data-tip]:hover:before,
+.llms-metabox [data-tip]:hover:after,
+.llms-metabox [data-title-default]:hover:before,
+.llms-metabox [data-title-default]:hover:after,
+.llms-metabox [data-title-active]:hover:before,
+.llms-metabox [data-title-active]:hover:after,
+.llms-mb-container [data-tip]:hover:before,
+.llms-mb-container [data-tip]:hover:after,
+.llms-mb-container [data-title-default]:hover:before,
+.llms-mb-container [data-title-default]:hover:after,
+.llms-mb-container [data-title-active]:hover:before,
+.llms-mb-container [data-title-active]:hover:after,
+.llms-quiz-wrapper [data-tip]:hover:before,
+.llms-quiz-wrapper [data-tip]:hover:after,
+.llms-quiz-wrapper [data-title-default]:hover:before,
+.llms-quiz-wrapper [data-title-default]:hover:after,
+.llms-quiz-wrapper [data-title-active]:hover:before,
+.llms-quiz-wrapper [data-title-active]:hover:after {
+ opacity: 1;
+ -webkit-transition: all 0 0.1s ease;
+ transition: all 0 0.1s ease;
+ visibility: visible;
+ z-index: 99999999;
+}
+.lifterlms [data-tip]:before,
+.llms-metabox [data-tip]:before,
+.llms-mb-container [data-tip]:before,
+.llms-quiz-wrapper [data-tip]:before {
+ content: attr(data-tip);
+}
+.lifterlms [data-tip].active:before,
+.llms-metabox [data-tip].active:before,
+.llms-mb-container [data-tip].active:before,
+.llms-quiz-wrapper [data-tip].active:before {
+ content: attr(data-tip-active);
+}
+
+.llms-membership-image {
+ display: block;
+ margin: 0 auto;
+}
+
+.llms-course-image {
+ display: block;
+ margin: 0 auto;
+ max-width: 100%;
+}
+
+.llms-featured-image {
+ display: block;
+ margin: 0 auto;
+}
+
+.llms-image-thumb {
+ width: 150px;
+}
+
+.llms-video-wrapper .center-video {
+ height: auto;
+ max-width: 100%;
+ overflow: hidden;
+ position: relative;
+ padding-top: 56.25%;
+ text-align: center;
+}
+.llms-video-wrapper .center-video > .wp-video,
+.llms-video-wrapper .center-video .fluid-width-video-wrapper,
+.llms-video-wrapper .center-video iframe, .llms-video-wrapper .center-video object, .llms-video-wrapper .center-video embed {
+ height: 100%;
+ right: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+.llms-video-wrapper .center-video > .wp-video {
+ width: 100% !important;
+}
+.llms-video-wrapper .center-video .fluid-width-video-wrapper {
+ padding-top: 0 !important;
+}
+
+.clear {
+ clear: both;
+ width: 100%;
+}
+
+.llms-featured-image {
+ text-align: center;
+}
+
+#main-content .llms-payment-options p {
+ margin: 0;
+ font-size: 16px;
+}
+
+.llms-option {
+ display: block;
+ position: relative;
+ margin: 20px 0;
+ padding-right: 40px;
+ font-size: 16px;
+}
+.llms-option label {
+ cursor: pointer;
+ position: static;
+}
+
+.llms-option:first-child {
+ margin-top: 0;
+}
+
+.llms-option:last-child {
+ margin-bottom: 0;
+}
+
+#main-content .llms-option:last-child {
+ margin-bottom: 0;
+}
+
+.llms-option input[type=radio] {
+ display: block;
+ position: absolute;
+ top: 3px;
+ right: 0;
+ z-index: 0;
+}
+
+.llms-option input[type=radio] {
+ display: inline-block;
+}
+
+.llms-option input[type=radio] + label span.llms-radio {
+ display: none;
+}
+
+.llms-option input[type=radio] + label span.llms-radio {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ z-index: 20;
+ position: absolute;
+ top: 0;
+ right: -2px;
+ display: inline-block;
+ width: 24px;
+ height: 24px;
+ border-radius: 50%;
+ cursor: pointer;
+ vertical-align: middle;
+ -webkit-box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.5) 0 0 0 1px;
+ box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.5) 0 0 0 1px;
+ background: #efefef;
+ background-image: radial-gradient(ellipse at center, #bb231c 0%, #bb231c 40%, #efefef 45%);
+ background-repeat: no-repeat;
+ -webkit-transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);
+ transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);
+}
+
+.llms-option input[type=radio]:checked + label span.llms-radio {
+ -webkit-transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);
+ transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);
+}
+
+.llms-option input[type=radio] + label span.llms-radio {
+ background-position: -24px 0;
+}
+
+.llms-option input[type=radio]:checked + label span.llms-radio {
+ background-position: 100% 0;
+}
+
+.llms-option input[type=submit] {
+ border: none;
+ background: #bb231c;
+ color: #fff;
+ font-size: 20px;
+ padding: 10px 0;
+ border-radius: 3px;
+ cursor: pointer;
+ width: 100%;
+}
+
+.llms-styled-text {
+ padding: 14px 0;
+}
+
+.llms-notice-box {
+ border-radius: 3px;
+ z-index: 10;
+ margin: 10px 0;
+ padding: 15px 20px;
+ border: 1px solid #ccc;
+ list-style-type: none;
+ width: 100%;
+ overflow: auto;
+}
+.llms-notice-box input[type=text] {
+ height: auto;
+}
+.llms-notice-box .col-1-1 {
+ width: 100%;
+}
+.llms-notice-box .col-1-1 input[type=text] {
+ width: 100%;
+}
+.llms-notice-box .col-1-2 {
+ width: 50%;
+ float: right;
+}
+@media screen and (max-width: 768px) {
+ .llms-notice-box .col-1-2 {
+ width: 100%;
+ }
+}
+.llms-notice-box .col-1-3 {
+ width: 33%;
+ float: right;
+ margin-left: 10px;
+}
+.llms-notice-box .col-1-4 {
+ width: 25%;
+ float: right;
+ margin-left: 10px;
+}
+@media screen and (max-width: 768px) {
+ .llms-notice-box .col-1-4 {
+ width: 100%;
+ }
+}
+.llms-notice-box .col-1-6 {
+ width: 16.6%;
+ float: right;
+ margin-left: 10px;
+}
+.llms-notice-box .col-1-8 {
+ width: 11%;
+ float: left;
+}
+.llms-notice-box .llms-pad-right {
+ padding-left: 10px;
+}
+@media screen and (max-width: 768px) {
+ .llms-notice-box .llms-pad-right {
+ padding-left: 0;
+ }
+}
+
+input[type=text].cc_cvv,
+#cc_cvv {
+ margin-left: 0;
+ width: 23%;
+ float: left;
+}
+
+.llms-clear-box {
+ border-radius: 3px;
+ z-index: 10;
+ margin: 10px 0;
+ padding: 15px 20px;
+ list-style-type: none;
+ width: 100%;
+ overflow: auto;
+}
+
+.llms-price-label {
+ font-weight: normal;
+}
+
+.llms-final-price {
+ font-weight: bold;
+ float: left;
+}
+
+.llms-center-content {
+ text-align: center;
+}
+
+.llms-input-text {
+ background-color: #fff;
+ border: 1px solid #ddd;
+ color: #333;
+ font-size: 18px;
+ font-weight: 300;
+ padding: 16px;
+ width: 100%;
+}
+
+.llms-price {
+ margin-bottom: 0;
+ font-weight: bold;
+}
+
+.llms-price-loop {
+ margin-bottom: 0;
+ font-weight: bold;
+}
+
+.courses .entry {
+ padding: 0;
+}
+
+.list-view .site-content .llms-course-list .hentry, .list-view .site-content .llms-membership-list .hentry {
+ border-top: 0;
+ padding-top: 0;
+}
+
+.llms-content {
+ width: 100%;
+}
+
+.llms-lesson-button-wrapper {
+ width: 100%;
+ display: block;
+ clear: both;
+ text-align: center;
+}
+
+.llms-template-wrapper {
+ width: 100%;
+ display: block;
+ clear: both;
+}
+
+.llms-button-wrapper {
+ width: 100%;
+ display: block;
+ clear: both;
+ text-align: center;
+}
+
+.llms-styled-select {
+ border: 1px solid #ccc;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 3px;
+ overflow: hidden;
+ position: relative;
+}
+
+.llms-styled-select, .llms-styled-select select {
+ width: 100%;
+}
+
+select:focus {
+ outline: none;
+}
+
+.llms-styled-select select {
+ height: 34px;
+ padding: 5px 5px 5px 0;
+ background: transparent;
+ border: none;
+ -webkit-appearance: none;
+ font-size: 16px;
+ color: #444444;
+}
+
+@-moz-document url-prefix() {
+ .--ms-styled-select select {
+ width: 110%;
+ }
+}
+.llms-styled-select .fa-sort-desc {
+ position: absolute;
+ top: 0;
+ left: 12px;
+ font-size: 24px;
+ color: #ccc;
+}
+
+select::-ms-expand {
+ display: none;
+}
+
+_:-o-prefocus .llms-styled-select, .selector .llms-styled-select {
+ background: none;
+}
+
+.llms-form-item-wrapper {
+ margin-bottom: 1em;
+}
+
+/* Circle Graph */
+.llms-progress-circle {
+ position: relative;
+ width: 200px;
+ height: 200px;
+ float: right;
+}
+
+.llms-progress-circle-count {
+ top: 27%;
+ position: absolute;
+ width: 94%;
+ text-align: center;
+ color: #666;
+ font-size: 44px;
+}
+
+.llms-progress-circle svg {
+ position: absolute;
+ width: 200px;
+ height: 200px;
+}
+
+.llms-progress-circle circle {
+ fill: transparent;
+}
+
+svg .llms-background-circle {
+ fill: transparent;
+ stroke-width: 10px;
+ stroke: #f1f2f1;
+ stroke-dasharray: 430;
+}
+
+svg .llms-animated-circle {
+ fill: transparent;
+ stroke-width: 10px;
+ stroke: #e5554e;
+ stroke-dasharray: 430;
+ stroke-dashoffset: 410;
+}
+
+.llms-widget-syllabus .llms-lesson.current-lesson .lesson-title {
+ font-weight: 700;
+}
+.llms-widget-syllabus .section-header {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 5px;
+}
+.llms-widget-syllabus .section-header .llms-collapse-caret {
+ text-align: right;
+ width: 14px;
+}
+.llms-widget-syllabus .llms-lesson-complete, .llms-widget-syllabus .lesson-complete-placeholder {
+ font-size: 18px;
+ margin-left: 5px;
+ color: #ccc;
+}
+.llms-widget-syllabus .llms-lesson-complete.done, .llms-widget-syllabus .lesson-complete-placeholder.done {
+ color: #466dd8;
+}
+.llms-widget-syllabus .section-title {
+ font-weight: bold;
+}
+.llms-widget-syllabus .lesson-title a {
+ text-decoration: underline;
+}
+.llms-widget-syllabus .lesson-title.done a {
+ color: #666;
+ text-decoration: line-through;
+}
+.llms-widget-syllabus ul {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.llms-widget-syllabus ul li {
+ list-style-type: none;
+ margin: 0 0 10px 0;
+}
+.llms-widget-syllabus ul li ul {
+ margin: 0 0 15px 0;
+}
+.llms-widget-syllabus ul li ul li {
+ -webkit-box-align: start;
+ -ms-flex-align: start;
+ align-items: flex-start;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ margin: 0 0 10px 0;
+ padding: 0;
+}
+
+.llms-remove-coupon {
+ float: left;
+}
+
+/*.llms-lesson-link-locked, .llms-lesson-link-locked:hover {
+ background: #f1f1f1;
+ display: block;
+ color: #a6a6a6;
+ min-height: 85px;
+ padding: 15px;
+ text-decoration: none;
+ position: relative;
+}*/
+.llms-lesson-preview.is-complete .llms-lesson-link-locked {
+ padding-right: 75px;
+}
+
+.llms-lesson-tooltip {
+ display: none;
+ position: absolute;
+ color: #000000;
+ background-color: #c0c0c0;
+ padding: 0.25em;
+ border-radius: 2px;
+ z-index: 100;
+ top: 0;
+ right: 50%;
+ text-align: center;
+ -webkit-transform: translateX(50%) translateY(-100%);
+ transform: translateX(50%) translateY(-100%);
+}
+
+/* arrows - :after */
+.llms-lesson-tooltip:after {
+ content: "";
+ width: 0;
+ height: 0;
+ border-top: 8px solid #c0c0c0;
+ border-right: 8px solid transparent;
+ border-left: 8px solid transparent;
+ position: absolute;
+ bottom: -8px;
+ right: 50%;
+ -webkit-transform: translateX(50%);
+ transform: translateX(50%);
+}
+
+.llms-lesson-tooltip.active {
+ display: inline-block;
+}
+
+.llms-favorite-wrapper {
+ cursor: pointer;
+}
+.llms-favorite-wrapper .fa-heart {
+ color: #EF476F;
+}
+
+.llms-has-favorite .llms-parent-course-link {
+ display: inline-block;
+ margin-bottom: 20px;
+}
+.llms-has-favorite .llms-parent-course-link + .llms-favorite-wrapper {
+ float: left;
+ margin: 0;
+}
+
+.llms-syllabus-wrapper .llms-has-favorite {
+ text-align: right;
+}
+.llms-syllabus-wrapper .llms-has-favorite .llms-favorite-wrapper {
+ display: inline-block;
+}
+
+.llms-loop-list {
+ list-style: none;
+ margin: 0 -10px;
+ padding: 0;
+}
+@media all and (min-width: 600px) {
+ .llms-loop-list.cols-1 .llms-loop-item {
+ width: 100%;
+ }
+ .llms-loop-list.cols-2 .llms-loop-item {
+ width: 50%;
+ }
+ .llms-loop-list.cols-3 .llms-loop-item {
+ width: 33.3333333333%;
+ }
+ .llms-loop-list.cols-4 .llms-loop-item {
+ width: 25%;
+ }
+ .llms-loop-list.cols-5 .llms-loop-item {
+ width: 20%;
+ }
+ .llms-loop-list.cols-6 .llms-loop-item {
+ width: 16.6666666667%;
+ }
+}
+
+.llms-loop-item {
+ float: right;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+}
+
+.llms-loop-item-content {
+ background: #fefefe;
+ border: 1px solid #dedede;
+ border-radius: 6px;
+ overflow: hidden;
+ padding-bottom: 15px;
+ margin: 10px;
+}
+.llms-loop-item-content .llms-loop-link {
+ color: #010101;
+ display: block;
+ text-decoration: none;
+}
+.llms-loop-item-content .llms-loop-link:visited {
+ color: #010101;
+}
+.llms-loop-item-content .llms-featured-image {
+ display: block;
+ max-width: 100%;
+}
+.llms-loop-item-content .llms-loop-title {
+ color: #010101;
+ margin: 15px 0;
+}
+.llms-loop-item-content .llms-loop-title:hover {
+ color: #466dd8;
+}
+.llms-loop-item-content .llms-meta,
+.llms-loop-item-content .llms-author,
+.llms-loop-item-content .llms-loop-title {
+ padding: 0 15px;
+}
+.llms-loop-item-content .llms-meta,
+.llms-loop-item-content .llms-author {
+ color: #444;
+ display: block;
+ font-size: 14px;
+ margin-bottom: 10px;
+}
+.llms-loop-item-content .llms-meta:last-child,
+.llms-loop-item-content .llms-author:last-child {
+ margin-bottom: 0;
+}
+.llms-loop-item-content .llms-author {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 5px;
+}
+.llms-loop-item-content .llms-featured-img-wrap {
+ overflow: hidden;
+}
+.llms-loop-item-content p {
+ margin-bottom: 0;
+}
+.llms-loop-item-content .llms-progress {
+ margin: 0;
+ height: 0.4em;
+}
+.llms-loop-item-content .llms-progress .progress__indicator {
+ display: none;
+}
+.llms-loop-item-content .llms-progress .llms-progress-bar {
+ background-color: #f6f6f6;
+ left: 0;
+ top: 0;
+}
+
+.llms-meta-info {
+ margin: 40px 0;
+}
+.llms-meta-info .llms-meta-title {
+ margin: 0;
+}
+.llms-meta-info .llms-meta p {
+ margin-bottom: 0;
+}
+.llms-meta-info .llms-meta span {
+ font-weight: 700;
+}
+
+.llms-course-progress {
+ margin: 40px auto;
+ max-width: 480px;
+ text-align: center;
+}
+
+.llms-syllabus-wrapper {
+ margin: 20px 0;
+ text-align: right;
+}
+.llms-syllabus-wrapper .llms-section-title {
+ margin: 40px 0 10px;
+}
+.llms-syllabus-wrapper .llms-section-title + .llms-lesson-preview {
+ border-top: 1px solid #dedede;
+}
+
+.llms-lesson-preview {
+ border-left: 1px solid #dedede;
+ border-bottom: 1px solid #dedede;
+ border-right: 1px solid #dedede;
+ display: block;
+ margin: 0;
+ max-width: 100%;
+ position: relative;
+}
+.llms-lesson-preview.current-lesson .llms-lesson-title {
+ font-weight: 400;
+}
+.llms-lesson-preview .llms-lesson-link {
+ background: #fefefe;
+ color: #010101;
+ display: block;
+ padding: 15px;
+ text-decoration: none;
+ -webkit-transition: background-color 0.3s ease;
+ transition: background-color 0.3s ease;
+}
+.llms-lesson-preview .llms-lesson-link:hover {
+ background: #eaeaea;
+}
+.llms-lesson-preview .llms-lesson-link:visited {
+ color: #212121;
+}
+.llms-lesson-preview .llms-lesson-link.llms-lesson-link-locked {
+ background: #EFEFEF;
+ color: #666;
+}
+.llms-lesson-preview .llms-lesson-link.llms-lesson-link-locked:hover {
+ background: #dedede;
+}
+.llms-lesson-preview .llms-lesson-link .llms-lesson-preview-row {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: reverse;
+ -ms-flex-direction: row-reverse;
+ flex-direction: row-reverse;
+}
+.llms-lesson-preview .llms-lesson-thumbnail {
+ margin-bottom: 15px;
+}
+.llms-lesson-preview .llms-lesson-thumbnail img {
+ display: block;
+ height: auto;
+ width: 100%;
+}
+.llms-lesson-preview .llms-lesson-title {
+ font-weight: 700;
+ margin: 0 auto 5px;
+}
+.llms-lesson-preview .llms-lesson-title:last-child {
+ margin-bottom: 0;
+}
+.llms-lesson-preview .llms-lesson-excerpt {
+ margin-top: 5px;
+}
+.llms-lesson-preview .llms-lesson-excerpt p {
+ margin: 0 0 10px 0;
+ padding: 0;
+}
+.llms-lesson-preview .llms-lesson-excerpt p:last-of-type {
+ margin: 0;
+}
+.llms-lesson-preview .llms-main {
+ -webkit-box-flex: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+}
+.llms-lesson-preview .llms-extra {
+ min-width: 50px;
+ text-align: left;
+}
+.llms-lesson-preview .llms-lesson-counter,
+.llms-lesson-preview .llms-free-lesson-svg,
+.llms-lesson-preview .llms-lesson-complete,
+.llms-lesson-preview .llms-lesson-complete-placeholder {
+ display: block;
+}
+.llms-lesson-preview.is-free .llms-lesson-complete, .llms-lesson-preview.is-complete .llms-lesson-complete {
+ color: #466dd8;
+}
+.llms-lesson-preview.is-complete .llms-lesson-title:not(.llms-student-dashboard .llms-lesson-title):not(.llms-course-navigation .llms-lesson-title) {
+ text-decoration: line-through;
+}
+.llms-lesson-preview .llms-icon-free {
+ background: #466dd8;
+ border-radius: 6px;
+ color: #fefefe;
+ display: inline-block;
+ font-size: 14px;
+ font-weight: bold;
+ line-height: 1;
+ padding: 5px 8px 4px;
+ white-space: nowrap;
+}
+.llms-lesson-preview.is-incomplete .llms-lesson-complete {
+ color: #cacaca;
+}
+.llms-lesson-preview .llms-lesson-counter {
+ font-size: 16px;
+ margin-bottom: 5px;
+}
+.llms-lesson-preview .llms-free-lesson-svg {
+ fill: currentColor;
+ height: 23px;
+ width: 50px;
+}
+
+.llms-course-navigation {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 20px;
+}
+.llms-course-navigation .llms-prev-lesson,
+.llms-course-navigation .llms-next-lesson,
+.llms-course-navigation .llms-back-to-course {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+}
+.llms-course-navigation .llms-prev-lesson + .llms-back-to-course {
+ text-align: left;
+}
+.llms-course-navigation .llms-next-lesson .llms-lesson-preview .llms-lesson-link {
+ text-align: left;
+}
+.llms-course-navigation .llms-lesson-preview {
+ border: 1px solid #dedede;
+}
+.llms-course-navigation .llms-lesson-link {
+ display: block;
+}
+
+/* progress bar */
+.llms-progress {
+ clear: both;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: reverse;
+ -ms-flex-direction: row-reverse;
+ flex-direction: row-reverse;
+ position: relative;
+ height: 1em;
+ width: 100%;
+ margin: 15px 0;
+}
+
+.llms-progress .llms-progress-bar {
+ background-color: #dedede;
+ position: relative;
+ height: 0.4em;
+ top: 0.3em;
+ width: 100%;
+}
+
+.llms-progress .progress-bar-complete {
+ background-color: #ef476f;
+ height: 100%;
+}
+
+.progress__indicator {
+ float: left;
+ text-align: left;
+ height: 1em;
+ line-height: 1em;
+ margin-right: 5px;
+ white-space: nowrap;
+}
+
+.llms-author .name {
+ margin-right: 5px;
+}
+.llms-author .label {
+ margin-right: 5px;
+}
+.llms-author .avatar {
+ border-radius: 50%;
+}
+.llms-author .bio {
+ margin-top: 5px;
+}
+
+.llms-instructor-info {
+ margin: 40px 0;
+}
+.llms-instructor-info .llms-meta-title {
+ margin: 0;
+}
+.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author {
+ margin-right: 0;
+}
+.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author {
+ margin-left: 0;
+}
+.llms-instructor-info .llms-instructors .llms-author {
+ background: #fefefe;
+ border: 1px solid #dedede;
+ border-top: 4px solid #466dd8;
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ color: #010101;
+ text-align: center;
+ margin: 45px 0 0;
+ padding: 0 20px 20px;
+}
+.llms-instructor-info .llms-instructors .llms-author .avatar {
+ background: #466dd8;
+ border: 4px solid #466dd8;
+ display: block;
+ margin: -35px auto 10px;
+}
+.llms-instructor-info .llms-instructors .llms-author .llms-author-info {
+ display: block;
+}
+.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name {
+ font-weight: 700;
+}
+.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label {
+ font-size: 85%;
+}
+.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio {
+ font-size: 90%;
+ margin-bottom: 0;
+}
+
+.llms_review {
+ margin: 20px 0px;
+ padding: 10px;
+}
+.llms_review h5 {
+ font-size: 17px;
+ margin: 3px 0px;
+}
+.llms_review h6 {
+ font-size: 13px;
+}
+.llms_review p {
+ font-size: 15px;
+}
+
+.review_box [type=text] {
+ margin: 10px 0px;
+}
+.review_box h5 {
+ color: red;
+ display: none;
+}
+.review_box + .thank_you_box {
+ display: none;
+}
+
+.llms-notice {
+ background: rgba(70, 109, 216, 0.3);
+ border-color: #466dd8;
+ border-style: solid;
+ border-width: 1px;
+ border-radius: 6px;
+ padding: 15px;
+ margin-bottom: 40px;
+}
+.llms-notice a {
+ color: inherit;
+}
+.llms-notice p:last-child, .llms-notice ul:last-child {
+ margin-bottom: 0;
+}
+.llms-notice li {
+ list-style-type: none;
+}
+.llms-notice.llms-debug {
+ background: rgba(202, 202, 202, 0.3);
+ border-color: #cacaca;
+}
+.llms-notice.llms-error {
+ background: rgba(187, 35, 28, 0.15);
+ border-color: #bb231c;
+}
+.llms-notice.llms-success {
+ background: rgba(77, 141, 60, 0.15);
+ border-color: #4d8d3c;
+}
+
+.entry-content .llms-notice {
+ margin: 0 0 40px;
+}
+.entry-content .llms-notice li {
+ list-style-type: none;
+}
+
+ul.llms-achievements-loop,
+.lifterlms ul.llms-achievements-loop,
+ul.llms-certificates-loop,
+.lifterlms ul.llms-certificates-loop {
+ list-style-type: none;
+ margin: 0 -10px;
+ padding: 0;
+}
+ul.llms-achievements-loop:before, ul.llms-achievements-loop:after,
+.lifterlms ul.llms-achievements-loop:before,
+.lifterlms ul.llms-achievements-loop:after,
+ul.llms-certificates-loop:before,
+ul.llms-certificates-loop:after,
+.lifterlms ul.llms-certificates-loop:before,
+.lifterlms ul.llms-certificates-loop:after {
+ content: " ";
+ display: table;
+}
+ul.llms-achievements-loop:after,
+.lifterlms ul.llms-achievements-loop:after,
+ul.llms-certificates-loop:after,
+.lifterlms ul.llms-certificates-loop:after {
+ clear: both;
+}
+ul.llms-achievements-loop li.llms-achievement-loop-item,
+ul.llms-achievements-loop li.llms-certificate-loop-item,
+.lifterlms ul.llms-achievements-loop li.llms-achievement-loop-item,
+.lifterlms ul.llms-achievements-loop li.llms-certificate-loop-item,
+ul.llms-certificates-loop li.llms-achievement-loop-item,
+ul.llms-certificates-loop li.llms-certificate-loop-item,
+.lifterlms ul.llms-certificates-loop li.llms-achievement-loop-item,
+.lifterlms ul.llms-certificates-loop li.llms-certificate-loop-item {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ display: block;
+ float: right;
+ list-style-type: none;
+ margin: 0;
+ padding: 10px;
+ width: 100%;
+}
+@media all and (min-width: 600px) {
+ ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,
+ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,
+ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item {
+ width: 100%;
+ }
+ ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,
+ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,
+ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item {
+ width: 50%;
+ }
+ ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,
+ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,
+ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item {
+ width: 33.3333333333%;
+ }
+ ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,
+ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,
+ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item {
+ width: 25%;
+ }
+ ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,
+ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,
+ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item {
+ width: 20%;
+ }
+}
+
+.llms-achievement,
+.llms-certificate {
+ background: #fefefe;
+ border: none;
+ border-radius: 12px;
+ color: #010101;
+ display: block;
+ padding: 20px 0;
+ text-decoration: none;
+ width: 100%;
+}
+.llms-achievement:hover,
+.llms-certificate:hover {
+ background: #eaeaea;
+}
+.llms-achievement .llms-achievement-img,
+.llms-certificate .llms-achievement-img {
+ display: block;
+ margin: 0 auto;
+ max-width: 80%;
+}
+.llms-achievement .llms-achievement-title,
+.llms-certificate .llms-achievement-title {
+ color: #010101;
+ font-size: 16px;
+ margin: 0;
+ padding: 10px;
+ text-align: center;
+}
+.llms-achievement .llms-certificate-title,
+.llms-certificate .llms-certificate-title {
+ color: #010101;
+ font-size: 16px;
+ margin: 0;
+ padding: 0 0 10px;
+}
+.llms-achievement .llms-achievement-info,
+.llms-achievement .llms-achievement-date,
+.llms-certificate .llms-achievement-info,
+.llms-certificate .llms-achievement-date {
+ display: none;
+}
+.llms-achievement .llms-achievement-content,
+.llms-certificate .llms-achievement-content {
+ padding: 20px;
+}
+.llms-achievement .llms-achievement-content:empty,
+.llms-certificate .llms-achievement-content:empty {
+ padding: 0;
+}
+.llms-achievement .llms-achievement-content *:last-child,
+.llms-certificate .llms-achievement-content *:last-child {
+ margin-bottom: 0;
+}
+
+.llms-certificate {
+ border: 4px double #dedede;
+ padding: 20px 10px;
+ background: #fefefe;
+ text-align: center;
+}
+.llms-certificate:hover {
+ background: #fefefe;
+ border-color: #eaeaea;
+}
+
+.llms-achievement-modal .llms-achievement {
+ background: #fff;
+}
+.llms-achievement-modal .llms-achievement-info {
+ display: block;
+}
+.llms-achievement-modal .llms-achievement-title {
+ display: none;
+}
+
+.llms-notification {
+ background: #fefefe;
+ -webkit-box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;
+ box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;
+ border-top: 4px solid #466dd8;
+ color: #010101;
+ opacity: 0;
+ padding: 12px;
+ position: fixed;
+ left: -800px;
+ top: 24px;
+ -webkit-transition: opacity 0.4s ease-in-out, left 0.4s ease-in-out;
+ transition: opacity 0.4s ease-in-out, left 0.4s ease-in-out;
+ visibility: hidden;
+ width: auto;
+ z-index: 9999999;
+}
+.llms-notification:before, .llms-notification:after {
+ content: " ";
+ display: table;
+}
+.llms-notification:after {
+ clear: both;
+}
+.llms-notification.visible {
+ right: 12px;
+ opacity: 1;
+ left: 12px;
+ -webkit-transition: opacity 0.4s ease-in-out, left 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
+ transition: opacity 0.4s ease-in-out, left 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
+ transition: opacity 0.4s ease-in-out, left 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, transform 0.2s ease-in-out;
+ transition: opacity 0.4s ease-in-out, left 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
+ visibility: visible;
+}
+.llms-notification.visible:hover .llms-notification-dismiss {
+ opacity: 1;
+}
+.llms-notification .llms-notification-content {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+}
+.llms-notification .llms-notification-main {
+ -ms-flex-item-align: start;
+ align-self: flex-start;
+ -webkit-box-flex: 4;
+ -ms-flex: 4;
+ flex: 4;
+ -webkit-box-ordinal-group: 3;
+ -ms-flex-order: 2;
+ order: 2;
+}
+.llms-notification .llms-notification-title {
+ color: #010101;
+ font-size: 18px;
+ margin: 0;
+}
+.llms-notification .llms-notification-body {
+ font-size: 14px;
+ line-height: 1.4;
+}
+.llms-notification .llms-notification-body p, .llms-notification .llms-notification-body li {
+ font-size: inherit;
+}
+.llms-notification .llms-notification-body p {
+ margin-bottom: 8px;
+}
+.llms-notification .llms-notification-body p img {
+ max-width: 100%;
+}
+.llms-notification .llms-notification-body .llms-mini-cert {
+ background: #f6f6f6;
+ border: 1px solid #d0d0d0;
+ -webkit-box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;
+ box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;
+ padding: 16px 16px 24px;
+ margin-top: 12px;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert-title {
+ font-size: 16px;
+ font-weight: 700;
+ margin: 12px auto;
+ text-align: center;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body {
+ width: 100%;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(1) {
+ width: 65%;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(2) {
+ width: 35%;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(3) {
+ width: 85%;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(4) {
+ width: 75%;
+ margin-top: 18px;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(5) {
+ width: 70%;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(6) {
+ margin-right: 12px;
+ margin-bottom: -24px;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(7) {
+ width: 65%;
+ margin-left: 12px;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-line {
+ border-radius: 2px;
+ height: 8px;
+ background: #b0b0b0;
+ background-image: -webkit-gradient(linear, right top, left top, from(#b0b0b0), color-stop(20%, #a0a0a0), color-stop(40%, #b0b0b0), to(#b0b0b0));
+ background-image: linear-gradient(to left, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100%);
+ background-repeat: no-repeat;
+ margin: 4px auto;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-dot {
+ background: #b0b0b0;
+ border-radius: 50%;
+ display: inline-block;
+ content: "";
+ height: 24px;
+ width: 24px;
+}
+.llms-notification .llms-notification-body .llms-mini-cert p {
+ margin-bottom: 0;
+}
+.llms-notification .llms-notification-aside {
+ -ms-flex-item-align: start;
+ align-self: flex-start;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ margin-left: 12px;
+ -webkit-box-ordinal-group: 2;
+ -ms-flex-order: 1;
+ order: 1;
+}
+.llms-notification .llms-notification-icon {
+ display: block;
+ max-width: 64px;
+}
+.llms-notification .llms-notification-footer {
+ border-top: 1px solid #e5e5e5;
+ font-size: 12px;
+ margin-top: 12px;
+ padding: 6px 6px 0;
+ text-align: left;
+}
+.llms-notification .llms-notification-footer a {
+ color: #010101;
+}
+.llms-notification .llms-notification-dismiss {
+ color: #bb231c;
+ cursor: pointer;
+ font-size: 22px;
+ position: absolute;
+ left: 10px;
+ top: 8px;
+ -webkit-transition: opacity 0.4s ease-in-out;
+ transition: opacity 0.4s ease-in-out;
+}
+
+.llms-sd-notification-center .llms-notification-list,
+.llms-sd-notification-center .llms-notification-list-item {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.llms-sd-notification-center .llms-notification-list-item:hover .llms-notification {
+ background: #fcfcfc;
+}
+.llms-sd-notification-center .llms-notification {
+ opacity: 1;
+ border-top: 1px solid #e5e5e5;
+ right: auto;
+ padding: 24px;
+ position: relative;
+ left: auto;
+ top: auto;
+ visibility: visible;
+ width: auto;
+}
+.llms-sd-notification-center .llms-notification .llms-notification-aside {
+ max-width: 64px;
+}
+.llms-sd-notification-center .llms-notification .llms-notification-footer {
+ border: none;
+ padding: 0;
+ text-align: right;
+}
+.llms-sd-notification-center .llms-notification .llms-progress {
+ display: none !important;
+}
+.llms-sd-notification-center .llms-notification .llms-notification-date {
+ color: #515151;
+ float: right;
+ margin-left: 6px;
+}
+.llms-sd-notification-center .llms-notification .llms-mini-cert {
+ margin: 0 auto;
+ max-width: 380px;
+}
+
+@media all and (min-width: 480px) {
+ .llms-notification {
+ left: -800px;
+ width: 360px;
+ }
+ .llms-notification.visible {
+ right: auto;
+ left: 24px;
+ }
+ .llms-notification .llms-notification-dismiss {
+ opacity: 0;
+ }
+}
+.llms-pagination ul {
+ list-style-type: none;
+ margin: 40px 0;
+ padding: 0;
+}
+.llms-pagination ul li {
+ float: right;
+}
+.llms-pagination ul li a {
+ border-bottom: 0;
+ text-decoration: none;
+}
+.llms-pagination ul li .page-numbers {
+ padding: 0.5em;
+ text-decoration: underline;
+}
+.llms-pagination ul li .page-numbers.current {
+ text-decoration: none;
+}
+
+.llms-tooltip {
+ background: #2a2a2a;
+ border-radius: 4px;
+ color: #fff;
+ font-size: 14px;
+ line-height: 1.2;
+ opacity: 0;
+ top: -20px;
+ padding: 8px 12px;
+ right: 50%;
+ position: absolute;
+ pointer-events: none;
+ -webkit-transform: translateX(50%);
+ transform: translateX(50%);
+ -webkit-transition: opacity 0.2s ease, top 0.2s ease;
+ transition: opacity 0.2s ease, top 0.2s ease;
+ max-width: 320px;
+}
+.llms-tooltip.show {
+ top: -28px;
+ opacity: 1;
+}
+.llms-tooltip:after {
+ bottom: -8px;
+ border-top: 8px solid #2a2a2a;
+ border-right: 8px solid transparent;
+ border-left: 8px solid transparent;
+ content: "";
+ height: 0;
+ right: 50%;
+ position: absolute;
+ -webkit-transform: translateX(50%);
+ transform: translateX(50%);
+ width: 0;
+}
+
+.webui-popover-title {
+ font-size: initial;
+ font-weight: initial;
+ line-height: initial;
+}
+
+.webui-popover-inverse .webui-popover-inner .close {
+ color: #fff;
+ opacity: 0.6;
+ text-shadow: none;
+}
+.webui-popover-inverse .webui-popover-inner .close:hover {
+ opacity: 0.8;
+}
+.webui-popover-inverse .webui-popover-content a {
+ color: #fff;
+ text-decoration: underline;
+}
+.webui-popover-inverse .webui-popover-content a:hover {
+ text-decoration: none;
+}
+
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results {
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question {
+ background: #efefef;
+ border-radius: 6px;
+ margin: 0 0 15px;
+ position: relative;
+ list-style-type: none;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer {
+ color: inherit;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 10px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ padding: 15px 15px 15px 35px;
+ text-decoration: none;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect {
+ background: rgba(192, 86, 33, 0.2);
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon {
+ background-color: #c05621;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct {
+ background: rgba(77, 141, 60, 0.15);
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon {
+ background-color: #4d8d3c;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect {
+ background: rgba(187, 35, 28, 0.15);
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon {
+ background-color: #bb231c;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question pre {
+ overflow: auto;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title {
+ font-size: 22px;
+ margin: 0;
+ line-height: 1.4;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points {
+ line-height: 1.4;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip {
+ position: absolute;
+ left: -12px;
+ top: -2px;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon {
+ color: rgba(255, 255, 255, 0.65);
+ border-radius: 50%;
+ font-size: 30px;
+ height: 40px;
+ line-height: 40px;
+ text-align: center;
+ width: 40px;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main {
+ display: none;
+ padding: 0 15px 15px;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label {
+ font-weight: 700;
+ margin: 0 0 10px;
+ padding: 0;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers {
+ margin: 0;
+ padding: 0;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {
+ padding: 0;
+ margin: 0 30px 0 0;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child {
+ list-style-type: none;
+ margin-right: 0;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img {
+ height: auto;
+ max-width: 200px;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section {
+ border-top: 2px solid rgba(255, 255, 255, 0.5);
+ margin-top: 20px;
+ padding-top: 20px;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child {
+ border-top: none;
+ margin-top: 0;
+ padding-top: 0;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0;
+ padding: 5px;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed {
+ opacity: 0.5;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title {
+ font-style: italic;
+ font-weight: normal;
+}
+.single-llms_quiz .llms-return {
+ margin-bottom: 10px;
+}
+.single-llms_quiz .llms-quiz-results:before, .single-llms_quiz .llms-quiz-results:after {
+ content: " ";
+ display: table;
+}
+.single-llms_quiz .llms-quiz-results:after {
+ clear: both;
+}
+.single-llms_quiz .llms-quiz-results .llms-donut.passing {
+ color: #4d8d3c;
+}
+.single-llms_quiz .llms-quiz-results .llms-donut.passing svg path {
+ stroke: #4d8d3c;
+}
+.single-llms_quiz .llms-quiz-results .llms-donut.pending {
+ color: #555;
+}
+.single-llms_quiz .llms-quiz-results .llms-donut.pending svg path {
+ stroke: #555;
+}
+.single-llms_quiz .llms-quiz-results .llms-donut.failing {
+ color: #bb231c;
+}
+.single-llms_quiz .llms-quiz-results .llms-donut.failing svg path {
+ stroke: #bb231c;
+}
+.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside,
+.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,
+.single-llms_quiz .llms-quiz-results .llms-quiz-results-history {
+ margin-bottom: 20px;
+}
+@media all and (min-width: 600px) {
+ .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside {
+ float: right;
+ width: 220px;
+ }
+ .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside + .llms-quiz-results-main {
+ float: left;
+ width: calc(100% - 300px);
+ }
+ .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside + .llms-quiz-results-main + .llms-quiz-results-history {
+ float: left;
+ width: calc(100% - 300px);
+ }
+ .single-llms_quiz .llms-quiz-results .llms-quiz-results-history {
+ clear: left;
+ }
+}
+.single-llms_quiz ul.llms-quiz-meta-info {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.single-llms_quiz ul.llms-quiz-meta-info li {
+ list-style-type: none;
+ margin: 10px 0 0;
+ padding: 0;
+}
+.single-llms_quiz ul.llms-quiz-meta-info {
+ margin-bottom: 10px;
+}
+.single-llms_quiz .llms-quiz-buttons {
+ margin-top: 10px;
+ text-align: right;
+}
+.single-llms_quiz .llms-quiz-buttons form {
+ display: inline-block;
+}
+
+.llms-quiz-question-wrapper {
+ min-height: 140px;
+ position: relative;
+}
+.llms-quiz-question-wrapper .llms-quiz-loading {
+ bottom: 20px;
+ right: 0;
+ position: absolute;
+ left: 0;
+ text-align: center;
+ z-index: 1;
+}
+.llms-quiz-question-wrapper .llms-question-image img {
+ height: auto;
+ max-width: 100%;
+}
+
+.llms-quiz-ui {
+ position: relative;
+}
+.llms-quiz-ui .llms-quiz-header {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ margin: 0 0 40px;
+}
+.llms-quiz-ui .llms-progress {
+ background-color: #dedede;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ height: 8px;
+ margin: 0;
+ overflow: hidden;
+}
+.llms-quiz-ui .llms-progress .progress-bar-complete {
+ -webkit-transition: width 0.3s ease-in;
+ transition: width 0.3s ease-in;
+ width: 0;
+}
+.llms-quiz-ui .llms-error {
+ background: rgba(187, 35, 28, 0.15);
+ border: 1px solid #bb231c;
+ border-radius: 6px;
+ margin: 20px 0;
+ padding: 15px;
+}
+.llms-quiz-ui .llms-error:before, .llms-quiz-ui .llms-error:after {
+ content: " ";
+ display: table;
+}
+.llms-quiz-ui .llms-error:after {
+ clear: both;
+}
+.llms-quiz-ui .llms-error a {
+ color: #bb231c;
+ float: left;
+ font-size: 22px;
+ line-height: 1;
+ text-decoration: none;
+}
+.llms-quiz-ui .llms-quiz-counter {
+ display: none;
+ color: #6a6a6a;
+ float: left;
+ font-size: 18px;
+}
+.llms-quiz-ui .llms-quiz-counter .llms-sep {
+ margin: 0 5px;
+}
+.llms-quiz-ui .llms-quiz-nav {
+ margin-top: 20px;
+}
+.llms-quiz-ui .llms-quiz-nav button {
+ margin: 0 0 0 10px;
+}
+
+.llms-question-wrapper .llms-question-text {
+ font-size: 30px;
+ font-weight: 400;
+ margin-bottom: 15px;
+}
+.llms-question-wrapper ol.llms-question-choices {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice {
+ border-bottom: 1px solid #e8e8e8;
+ margin: 0;
+ padding: 0;
+ position: relative;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice:last-child {
+ border-bottom: none;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture {
+ border-bottom: none;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture label {
+ display: inline-block;
+ padding: 0;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-marker {
+ bottom: 10px;
+ margin: 0;
+ position: absolute;
+ left: 10px;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image {
+ margin: 2px;
+ padding: 20px;
+ -webkit-transition: background 0.4s ease;
+ transition: background 0.4s ease;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image img {
+ display: block;
+ height: auto;
+ width: 100%;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture input:checked ~ .llms-choice-image {
+ background: #efefef;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice input {
+ display: none;
+ right: 0;
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ visibility: hidden;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice label {
+ display: block;
+ margin: 0;
+ padding: 10px 20px;
+ position: relative;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .iterator {
+ display: none;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .fa {
+ display: inline;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker {
+ background: #fefefe;
+ color: #010101;
+ display: inline-block;
+ font-size: 20px;
+ height: 40px;
+ line-height: 40px;
+ margin-left: 10px;
+ text-align: center;
+ -webkit-transition: all 0.2s ease;
+ transition: all 0.2s ease;
+ vertical-align: middle;
+ width: 40px;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker .fa {
+ display: none;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--lister, .llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--checkbox {
+ border-radius: 4px;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--radio {
+ border-radius: 50%;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker {
+ background: #ef476f;
+ color: #fff;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .iterator {
+ display: none;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .fa {
+ display: inline;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text {
+ display: inline-block;
+ font-size: 18px;
+ font-weight: 400;
+ line-height: 1.6;
+ margin: 0;
+ padding: 0;
+ vertical-align: middle;
+ width: calc(100% - 60px);
+}
+
+.llms-quiz-timer {
+ background: #fff;
+ border: 1px solid #4d8d3c;
+ border-radius: 4px;
+ color: #4d8d3c;
+ float: left;
+ font-size: 18px;
+ line-height: 1;
+ margin-right: 20px;
+ padding: 8px 12px;
+ position: relative;
+ white-space: nowrap;
+ z-index: 1;
+}
+.llms-quiz-timer.color-half {
+ border-color: #c05621;
+ color: #c05621;
+}
+.llms-quiz-timer.color-empty {
+ border-color: #bb231c;
+ color: #bb231c;
+}
+.llms-quiz-timer .llms-tiles {
+ display: inline-block;
+ margin-right: 5px;
+}
+
+.voucher-expand {
+ display: none;
+}
+
+@media all and (min-width: 600px) {
+ .llms-access-plans.cols-1 .llms-access-plan {
+ width: 100%;
+ }
+ .llms-access-plans.cols-2 .llms-access-plan {
+ width: 50%;
+ }
+ .llms-access-plans.cols-3 .llms-access-plan {
+ width: 33.3333333333%;
+ }
+ .llms-access-plans.cols-4 .llms-access-plan {
+ width: 25%;
+ }
+ .llms-access-plans.cols-5 .llms-access-plan {
+ width: 20%;
+ }
+}
+
+.llms-free-enroll-form {
+ margin-bottom: 0;
+}
+
+.llms-access-plan {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ float: right;
+ text-align: center;
+ width: 100%;
+}
+.llms-access-plan .llms-access-plan-content,
+.llms-access-plan .llms-access-plan-footer {
+ background: #f1f1f1;
+}
+.llms-access-plan.featured .llms-access-plan-featured {
+ background: #466dd8;
+ border-top-right-radius: 6px;
+ border-top-left-radius: 6px;
+}
+.llms-access-plan.featured .llms-access-plan-content {
+ border-radius: 0;
+}
+.llms-access-plan.featured .llms-access-plan-title {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.llms-access-plan.featured .llms-access-plan-footer,
+.llms-access-plan.featured .llms-access-plan-content {
+ border-right: 3px solid #466dd8;
+ border-left: 3px solid #466dd8;
+}
+.llms-access-plan.featured .llms-access-plan-footer {
+ border-bottom-color: #466dd8;
+}
+.llms-access-plan.on-sale .price-regular {
+ text-decoration: line-through;
+}
+.llms-access-plan.on-sale .price-regular .lifterlms-price {
+ font-weight: 400;
+}
+.llms-access-plan .stamp {
+ background: #466dd8;
+ border-radius: 6px;
+ color: #fefefe;
+ display: inline-block;
+ font-size: 14px;
+ font-style: normal;
+ font-weight: bold;
+ line-height: 1;
+ padding: 5px 8px 4px;
+}
+
+.llms-access-plan-featured {
+ color: #fff;
+ font-size: 14px;
+ font-weight: 700;
+ letter-spacing: 1px;
+ margin: 0 2px 0 2px;
+ padding: 5px 0 0;
+}
+
+.llms-access-plan-content {
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+ margin: 0 2px 0;
+ overflow: hidden;
+}
+.llms-access-plan-content .llms-access-plan-pricing {
+ color: #010101;
+ padding: 20px 0 0;
+}
+.llms-access-plan-content .llms-form-fields {
+ padding: 10px;
+}
+
+.llms-access-plan-title {
+ background: #466dd8;
+ color: #fefefe;
+ margin: 0;
+ padding: 10px 15px;
+}
+
+.llms-access-plan-pricing .llms-price-currency-symbol {
+ font-size: 14px;
+ vertical-align: top;
+}
+
+.llms-access-plan-price .lifterlms-price {
+ font-weight: 700;
+}
+.llms-access-plan-price.sale {
+ padding: 5px 0;
+ border-top: 1px solid #d0d0d0;
+ border-bottom: 1px solid #d0d0d0;
+}
+
+.llms-access-plan-trial,
+.llms-access-plan-schedule,
+.llms-access-plan-sale-end,
+.llms-access-plan-expiration {
+ font-size: 16px;
+}
+
+.llms-access-plan-description {
+ color: #010101;
+ font-size: 16px;
+ padding: 10px 10px 0;
+}
+.llms-access-plan-description ul {
+ margin: 0;
+}
+.llms-access-plan-description ul li {
+ border-bottom: 1px solid #d0d0d0;
+ list-style-type: none;
+}
+.llms-access-plan-description ul li:last-child {
+ border-bottom: none;
+}
+.llms-access-plan-description div:last-child, .llms-access-plan-description img:last-child, .llms-access-plan-description p:last-child, .llms-access-plan-description ul:last-child, .llms-access-plan-description li:last-child {
+ margin-bottom: 0;
+}
+
+.llms-access-plan-restrictions {
+ margin-top: 20px;
+}
+.llms-access-plan-restrictions .stamp {
+ vertical-align: baseline;
+}
+.llms-access-plan-restrictions ul {
+ margin: 5px 0 0 0;
+ padding: 0;
+}
+.llms-access-plan-restrictions ul li {
+ font-size: 14px;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.llms-access-plan-restrictions a {
+ color: #c05621;
+}
+.llms-access-plan-restrictions a:hover {
+ color: #f67d28;
+}
+
+.llms-access-plan-footer {
+ border-bottom: 3px solid #f1f1f1;
+ border-bottom-right-radius: 6px;
+ border-bottom-left-radius: 6px;
+ padding: 15px;
+ margin: 0 2px 2px 2px;
+}
+.llms-access-plan-footer .button {
+ display: inline-block;
+}
+.llms-access-plan-footer .llms-access-plan-pricing {
+ padding: 0 0 10px;
+}
+
+.webui-popover-content .llms-members-only-restrictions {
+ text-align: center;
+}
+.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li, .webui-popover-content .llms-members-only-restrictions p {
+ margin: 0;
+ padding: 0;
+}
+.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li {
+ list-style-type: none;
+}
+.webui-popover-content .llms-members-only-restrictions li {
+ padding: 8px 0;
+ border-top: 1px solid #3b3b3b;
+}
+.webui-popover-content .llms-members-only-restrictions li:first-child {
+ border-top: none;
+}
+.webui-popover-content .llms-members-only-restrictions li a {
+ display: block;
+}
+
+.llms-checkout-wrapper .llms-person-login-form-wrapper {
+ margin-bottom: 40px;
+}
+.llms-checkout-wrapper form.llms-login {
+ display: none;
+}
+.llms-checkout-wrapper .llms-form-heading {
+ margin: 0 0 20px;
+}
+
+.llms-checkout {
+ position: relative;
+}
+
+.llms-checkout-cols-2.llms-col-2 section {
+ background-color: #fefefe;
+ border: 1px solid #ccc;
+ border-radius: 12px;
+ padding: 20px;
+}
+.llms-checkout-cols-2.llms-col-2 section .llms-form-heading {
+ padding: 0;
+}
+@media all and (min-width: 800px) {
+ .llms-checkout-cols-2 .llms-checkout-col {
+ float: right;
+ }
+ .llms-checkout-cols-2 .llms-checkout-col.llms-col-1 {
+ margin-left: 20px;
+ width: calc(58% - 20px);
+ }
+ .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 {
+ margin-right: 20px;
+ width: calc(42% - 20px);
+ }
+ .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 button {
+ width: 100%;
+ }
+}
+
+.llms-checkout-section {
+ margin-bottom: 40px;
+ position: relative;
+}
+
+.llms-checkout-section-content.llms-form-fields {
+ margin: 0px;
+}
+.llms-checkout-section-content .llms-label {
+ font-weight: 400;
+}
+.llms-checkout-section-content .llms-order-summary {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.llms-checkout-section-content .llms-order-summary li {
+ list-style-type: none;
+ margin: 0 0 15px 0;
+}
+.llms-checkout-section-content .llms-order-summary :not(.llms-label) {
+ font-weight: 700;
+}
+.llms-checkout-section-content .llms-order-summary li.llms-pricing.on-sale .price-regular, .llms-checkout-section-content .llms-order-summary li.llms-pricing.has-coupon .price-regular {
+ text-decoration: line-through;
+}
+.llms-checkout-section-content .llms-coupon-wrapper {
+ border-top: 1px solid #dedede;
+ margin-top: 20px;
+ padding-top: 20px;
+}
+.llms-checkout-section-content .llms-coupon-wrapper .llms-coupon-entry {
+ display: none;
+ margin-top: 20px;
+}
+
+.llms-form-field.llms-payment-gateway-option {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 8px;
+}
+.llms-form-field.llms-payment-gateway-option label + span.llms-description {
+ display: inline-block;
+ margin-right: 5px;
+}
+.llms-form-field.llms-payment-gateway-option .llms-description a {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ text-decoration: none;
+}
+.llms-form-field.llms-payment-gateway-option .llms-description img {
+ display: inline;
+ max-height: 22px;
+ vertical-align: middle;
+}
+
+.llms-checkout-wrapper ul.llms-payment-gateways {
+ margin: 5px 0 0;
+ padding: 0;
+}
+
+ul.llms-payment-gateways {
+ list-style-type: none;
+}
+ul.llms-payment-gateways li:last-child:after {
+ border-bottom: 1px solid #dedede;
+ content: "";
+ display: block;
+ margin: 20px 0;
+}
+ul.llms-payment-gateways .llms-payment-gateway {
+ margin-bottom: 30px;
+ list-style-type: none;
+}
+ul.llms-payment-gateways .llms-payment-gateway:last-child {
+ margin-bottom: none;
+}
+ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-payment-gateway-option label {
+ font-weight: 700;
+}
+ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields {
+ display: block;
+}
+ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields .llms-notice {
+ margin-right: 10px;
+ margin-left: 10px;
+}
+ul.llms-payment-gateways .llms-payment-gateway .llms-form-field {
+ padding-bottom: 0;
+}
+ul.llms-payment-gateways .llms-gateway-description {
+ margin-right: 40px;
+}
+ul.llms-payment-gateways .llms-gateway-fields {
+ display: none;
+ margin: 5px 0 20px;
+}
+ul.llms-payment-gateways .llms-payment-gateway-error {
+ padding: 0 10px;
+}
+
+.llms-checkout-confirm {
+ margin: 0;
+}
+
+.llms-payment-method {
+ margin: 10px 10px 0;
+}
+
+.llms-gateway-description p {
+ font-size: 14px;
+ font-style: italic;
+ margin: 0;
+}
+
+.llms-form-fields {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.llms-form-fields * {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.llms-form-fields.flush .llms-form-field {
+ padding: 0 0 20px;
+}
+.llms-form-fields label:not(.llms-field-html label) {
+ font-weight: 700;
+}
+.llms-form-fields .wp-block-columns, .llms-form-fields .wp-block-column {
+ margin-bottom: 0;
+}
+
+.llms-form-heading {
+ padding: 0 10px 10px;
+}
+
+.llms-form-field {
+ float: right;
+ padding: 0 10px 20px;
+ position: relative;
+ width: 100%;
+}
+.llms-form-field label:empty:after {
+ content: " ";
+}
+.llms-form-field [type=text],
+.llms-form-field [type=password],
+.llms-form-field [type=email],
+.llms-form-field [type=url],
+.llms-form-field [type=tel],
+.llms-form-field [type=number] {
+ background-color: #fefefe;
+ background-clip: padding-box;
+ border: 1px solid #999;
+ border-radius: 6px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ font-size: 16px;
+ line-height: 1;
+ padding: 8px 12px;
+ -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ width: 100%;
+}
+.llms-form-field input:focus,
+.llms-form-field input:focus-visible {
+ border-color: #6888df;
+ outline: thin solid;
+}
+.llms-form-field select {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ -ms-appearance: none;
+ appearance: none;
+ background-color: #fefefe;
+ border: 1px solid #999;
+ border-radius: 6px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #010101;
+ padding: 8px 12px;
+ margin: 0;
+ width: 100%;
+ font-family: inherit;
+ font-size: 16px;
+ cursor: inherit;
+ line-height: 1.6;
+ z-index: 1;
+ outline: none;
+ background-repeat: no-repeat;
+ background-image: linear-gradient(-45deg, transparent 50%, currentcolor 50%), linear-gradient(-135deg, currentcolor 50%, transparent 50%);
+ background-position: left 15px top 1.3rem, left 10px top 1.3rem;
+ background-size: 5px 5px, 5px 5px;
+}
+.llms-form-field select::-ms-expand {
+ display: none;
+}
+.llms-form-field select:focus {
+ border: 1px solid #6888df;
+ outline: thin solid;
+}
+.llms-form-field.valid input[type=date], .llms-form-field.valid input[type=time], .llms-form-field.valid input[type=datetime-local], .llms-form-field.valid input[type=week], .llms-form-field.valid input[type=month], .llms-form-field.valid input[type=text], .llms-form-field.valid input[type=email], .llms-form-field.valid input[type=url], .llms-form-field.valid input[type=password], .llms-form-field.valid input[type=search], .llms-form-field.valid input[type=tel], .llms-form-field.valid input[type=number], .llms-form-field.valid textarea, .llms-form-field.valid select {
+ background: rgba(131, 195, 115, 0.3);
+ border-color: #83c373;
+}
+.llms-form-field.error input[type=date], .llms-form-field.error input[type=time], .llms-form-field.error input[type=datetime-local], .llms-form-field.error input[type=week], .llms-form-field.error input[type=month], .llms-form-field.error input[type=text], .llms-form-field.error input[type=email], .llms-form-field.error input[type=url], .llms-form-field.error input[type=password], .llms-form-field.error input[type=search], .llms-form-field.error input[type=tel], .llms-form-field.error input[type=number], .llms-form-field.error textarea, .llms-form-field.error select, .llms-form-field.invalid input[type=date], .llms-form-field.invalid input[type=time], .llms-form-field.invalid input[type=datetime-local], .llms-form-field.invalid input[type=week], .llms-form-field.invalid input[type=month], .llms-form-field.invalid input[type=text], .llms-form-field.invalid input[type=email], .llms-form-field.invalid input[type=url], .llms-form-field.invalid input[type=password], .llms-form-field.invalid input[type=search], .llms-form-field.invalid input[type=tel], .llms-form-field.invalid input[type=number], .llms-form-field.invalid textarea, .llms-form-field.invalid select {
+ background: rgba(187, 35, 28, 0.3);
+ border-color: #bb231c;
+}
+.llms-form-field.llms-visually-hidden-field {
+ display: none;
+}
+.llms-form-field.align-right {
+ text-align: left;
+}
+@media screen and (min-width: 600px) {
+ .llms-form-field.llms-cols-1 {
+ width: 8.3333333333%;
+ }
+ .llms-form-field.llms-cols-2 {
+ width: 16.6666666667%;
+ }
+ .llms-form-field.llms-cols-3 {
+ width: 25%;
+ }
+ .llms-form-field.llms-cols-4 {
+ width: 33.3333333333%;
+ }
+ .llms-form-field.llms-cols-5 {
+ width: 41.6666666667%;
+ }
+ .llms-form-field.llms-cols-6 {
+ width: 50%;
+ }
+ .llms-form-field.llms-cols-7 {
+ width: 58.3333333333%;
+ }
+ .llms-form-field.llms-cols-8 {
+ width: 66.6666666667%;
+ }
+ .llms-form-field.llms-cols-9 {
+ width: 75%;
+ }
+ .llms-form-field.llms-cols-10 {
+ width: 83.3333333333%;
+ }
+ .llms-form-field.llms-cols-11 {
+ width: 91.6666666667%;
+ }
+ .llms-form-field.llms-cols-12 {
+ width: 100%;
+ }
+}
+.llms-form-field.type-hidden {
+ padding: 0;
+}
+.llms-form-field.type-radio input,
+.llms-form-field.type-radio label, .llms-form-field.type-checkbox input,
+.llms-form-field.type-checkbox label {
+ display: inline-block;
+ width: auto;
+}
+.llms-form-field.type-radio input, .llms-form-field.type-checkbox input {
+ margin-left: 10px;
+}
+.llms-form-field.type-radio label + .llms-description, .llms-form-field.type-checkbox label + .llms-description {
+ display: block;
+}
+.llms-form-field.type-radio:not(.is-group) input[type=radio] {
+ position: absolute;
+ opacity: 0;
+ visibility: none;
+}
+.llms-form-field.type-radio:not(.is-group) label:before {
+ background: #fafafa;
+ background-position: -24px 0;
+ background-repeat: no-repeat;
+ border-radius: 50%;
+ -webkit-box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.35) 0 0 0 1px;
+ box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.35) 0 0 0 1px;
+ content: "";
+ cursor: pointer;
+ display: inline-block;
+ height: 22px;
+ margin-left: 5px;
+ position: relative;
+ -webkit-transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);
+ transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);
+ top: -3px;
+ vertical-align: middle;
+ width: 22px;
+ z-index: 2;
+}
+.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked + label:before {
+ -webkit-transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);
+ transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);
+ background-position: 100% 0;
+ background-image: radial-gradient(ellipse at center, #466dd8 0%, #466dd8 40%, #fafafa 45%);
+}
+.llms-form-field .llms-input-group {
+ margin-top: 5px;
+}
+.llms-form-field .llms-input-group .llms-form-field {
+ padding: 0 5px 5px 0;
+}
+.llms-form-field.type-reset button:not(.auto), .llms-form-field.type-button button:not(.auto), .llms-form-field.type-submit button:not(.auto) {
+ width: 100%;
+}
+.llms-form-field .llms-description {
+ font-size: 14px;
+ font-style: italic;
+ line-height: 18px;
+}
+.llms-form-field .llms-required {
+ color: #bb231c;
+ margin-right: 4px;
+}
+.llms-form-field input, .llms-form-field textarea, .llms-form-field select {
+ width: 100%;
+ margin-bottom: 5px;
+}
+.llms-form-field .select2-container .select2-selection--single {
+ height: auto;
+ padding: 4px 6px;
+}
+.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow {
+ height: 100%;
+}
+
+.llms-password-strength-meter {
+ border: 1px solid #dadada;
+ display: none;
+ font-size: 10px;
+ margin-top: -10px;
+ padding: 1px;
+ position: relative;
+ text-align: center;
+}
+.llms-password-strength-meter:before {
+ bottom: 0;
+ content: "";
+ right: 0;
+ position: absolute;
+ top: 0;
+ -webkit-transition: width 0.4s ease;
+ transition: width 0.4s ease;
+}
+.llms-password-strength-meter.mismatch, .llms-password-strength-meter.too-short, .llms-password-strength-meter.very-weak {
+ border-color: #e35b5b;
+}
+.llms-password-strength-meter.mismatch:before, .llms-password-strength-meter.too-short:before, .llms-password-strength-meter.very-weak:before {
+ background: rgba(227, 91, 91, 0.25);
+ width: 25%;
+}
+.llms-password-strength-meter.too-short:before {
+ width: 0;
+}
+.llms-password-strength-meter.weak {
+ border-color: #f78b53;
+}
+.llms-password-strength-meter.weak:before {
+ background: rgba(247, 139, 83, 0.25);
+ width: 50%;
+}
+.llms-password-strength-meter.medium {
+ border-color: #ffc733;
+}
+.llms-password-strength-meter.medium:before {
+ background: rgba(255, 199, 51, 0.25);
+ width: 75%;
+}
+.llms-password-strength-meter.strong {
+ border-color: #83c373;
+}
+.llms-password-strength-meter.strong:before {
+ background: rgba(131, 195, 115, 0.25);
+ width: 100%;
+}
+.llms-password-strength-meter + .llms-description {
+ display: block;
+}
+
+.llms-widget-syllabus--collapsible .llms-section .section-header {
+ cursor: pointer;
+}
+.llms-widget-syllabus--collapsible .llms-section.llms-section--opened .llms-collapse-caret .fa-caret-right {
+ display: none;
+}
+.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-collapse-caret .fa-caret-down {
+ display: none;
+}
+.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-lesson {
+ display: none;
+}
+.llms-widget-syllabus--collapsible .llms-syllabus-footer {
+ text-align: right;
+}
+
+.llms-student-dashboard {
+ /**
+ * Dashboard Home
+ */
+}
+.llms-student-dashboard .llms-sd-title {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 15px;
+ margin: 40px 0 20px 0;
+}
+.llms-student-dashboard .llms-sd-title small {
+ font-size: 18px;
+}
+.llms-student-dashboard .llms-sd-title small + a {
+ text-decoration: none;
+}
+.llms-student-dashboard .llms-sd-items {
+ list-style-type: none;
+ margin: 0 0 25px 0;
+ padding: 0;
+}
+.llms-student-dashboard .llms-sd-item {
+ display: inline-block;
+ list-style-type: none;
+ margin: 5px 0;
+ padding: 0;
+}
+.llms-student-dashboard .llms-sd-item:last-child .llms-sep {
+ display: none;
+}
+.llms-student-dashboard .llms-sd-item .llms-sep {
+ color: #666;
+ margin: 0 5px;
+}
+.llms-student-dashboard .llms-sd-section {
+ margin-bottom: 40px;
+}
+.llms-student-dashboard .llms-sd-section h2 {
+ margin: 0 0 15px 0;
+}
+.llms-student-dashboard .llms-sd-section .llms-sd-section-title {
+ margin: 0;
+ padding: 0;
+}
+.llms-student-dashboard .llms-sd-section .llms-sd-section-title:first-child {
+ margin: 0 0 10px 0;
+}
+.llms-student-dashboard .llms-sd-section .llms-sd-section-footer {
+ margin-top: 10px;
+}
+.llms-student-dashboard .llms-sd-section .llms-sd-section-footer a.llms-button-secondary {
+ display: inline-block;
+}
+.llms-student-dashboard .llms-sd-section .llms-certificates-loop {
+ margin: 0 -10px 0 0;
+}
+.llms-student-dashboard .llms-sd-section .llms-certificate {
+ padding: 20px 0;
+}
+.llms-student-dashboard .orders-table {
+ border: 1px solid #dedede;
+ border-spacing: 0;
+ width: 100%;
+}
+.llms-student-dashboard .orders-table thead {
+ display: none;
+}
+.llms-student-dashboard .orders-table thead th, .llms-student-dashboard .orders-table thead td {
+ font-weight: 700;
+}
+@media all and (min-width: 600px) {
+ .llms-student-dashboard .orders-table thead {
+ display: table-header-group;
+ }
+}
+.llms-student-dashboard .orders-table tbody tr:nth-child(odd) td, .llms-student-dashboard .orders-table tbody tr:nth-child(odd) th {
+ background: #f9f9f9;
+}
+.llms-student-dashboard .orders-table tbody tr:last-child {
+ border-bottom-width: 0;
+}
+.llms-student-dashboard .orders-table tfoot tr {
+ background: #f9f9f9;
+}
+.llms-student-dashboard .orders-table tfoot th, .llms-student-dashboard .orders-table tfoot td {
+ padding: 10px;
+ text-align: left;
+}
+.llms-student-dashboard .orders-table tfoot th:last-child, .llms-student-dashboard .orders-table tfoot td:last-child {
+ border-bottom-width: 0;
+}
+.llms-student-dashboard .orders-table th {
+ font-weight: 700;
+}
+.llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {
+ border-color: #dedede;
+ border-style: solid;
+ border-width: 0;
+ display: block;
+ padding: 15px 20px;
+ text-align: center;
+}
+.llms-student-dashboard .orders-table th .llms-button-primary, .llms-student-dashboard .orders-table td .llms-button-primary {
+ display: inline-block;
+}
+.llms-student-dashboard .orders-table th:last-child, .llms-student-dashboard .orders-table td:last-child {
+ border-bottom-width: 1px;
+}
+.llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {
+ content: attr(data-label);
+}
+@media all and (min-width: 600px) {
+ .llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {
+ border-bottom-width: 1px;
+ display: table-cell;
+ text-align: right;
+ }
+ .llms-student-dashboard .orders-table th:first-child, .llms-student-dashboard .orders-table td:first-child {
+ width: 220px;
+ }
+ .llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {
+ display: none;
+ }
+}
+@media all and (min-width: 600px) {
+ .llms-student-dashboard .orders-table.transactions th:first-child {
+ width: auto;
+ }
+}
+.llms-student-dashboard .llms-status {
+ border-radius: 6px;
+ display: inline-block;
+ font-size: 13px;
+ font-weight: 700;
+ line-height: 1.4;
+ padding: 2px 6px;
+ vertical-align: middle;
+}
+.llms-student-dashboard .llms-status.llms-size--large {
+ font-size: 105%;
+ padding: 6px 12px;
+}
+.llms-student-dashboard .llms-status.llms-active, .llms-student-dashboard .llms-status.llms-completed, .llms-student-dashboard .llms-status.llms-pass, .llms-student-dashboard .llms-status.llms-txn-succeeded {
+ color: #4d8d3c;
+ background-color: rgba(77, 141, 60, 0.15);
+}
+.llms-student-dashboard .llms-status.llms-fail, .llms-student-dashboard .llms-status.llms-failed, .llms-student-dashboard .llms-status.llms-expired, .llms-student-dashboard .llms-status.llms-cancelled, .llms-student-dashboard .llms-status.llms-txn-failed {
+ color: #bb231c;
+ background-color: rgba(187, 35, 28, 0.15);
+}
+.llms-student-dashboard .llms-status.llms-incomplete, .llms-student-dashboard .llms-status.llms-on-hold, .llms-student-dashboard .llms-status.llms-pending, .llms-student-dashboard .llms-status.llms-pending-cancel, .llms-student-dashboard .llms-status.llms-refunded, .llms-student-dashboard .llms-status.llms-txn-pending, .llms-student-dashboard .llms-status.llms-txn-refunded {
+ color: #c05621;
+ background-color: rgba(192, 86, 33, 0.15);
+}
+.llms-student-dashboard .order-title .llms-status {
+ font-size: 18px;
+}
+.llms-student-dashboard .llms-person-form-wrapper .llms-change-password {
+ display: none;
+}
+@media all and (min-width: 600px) {
+ .llms-student-dashboard .order-primary {
+ float: right;
+ width: 68%;
+ }
+}
+@media all and (min-width: 600px) {
+ .llms-student-dashboard .order-secondary {
+ float: right;
+ width: 32%;
+ }
+}
+.llms-student-dashboard .order-secondary form {
+ margin-bottom: 0;
+}
+@media all and (min-width: 600px) {
+ .llms-student-dashboard .llms-view-order.llms-stack-cols .order-primary,
+.llms-student-dashboard .llms-view-order.llms-stack-cols .order-secondary {
+ float: none;
+ width: 100%;
+ }
+}
+.llms-student-dashboard .llms-switch-payment-source .llms-notice,
+.llms-student-dashboard .llms-switch-payment-source .entry-content .llms-notice {
+ margin-right: 10px;
+ margin-left: 10px;
+}
+.llms-student-dashboard .llms-switch-payment-source-main {
+ border: none;
+ display: none;
+ margin: 0;
+}
+.llms-student-dashboard .llms-switch-payment-source-main ul.llms-payment-gateways {
+ padding: 10px 15px 0;
+ margin: 0;
+}
+.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method,
+.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary {
+ padding: 0 25px 10px;
+ margin: 0;
+ list-style-type: none;
+}
+.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method li,
+.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary li {
+ list-style-type: none;
+}
+.llms-student-dashboard.dashboard .llms-sd-section {
+ border: 1px solid #dedede;
+ border-radius: 6px;
+ padding: 20px;
+ margin-bottom: 40px;
+}
+.llms-student-dashboard .llms-loop-list {
+ margin: 0 -10px;
+}
+
+.logged-in .llms-sd-layout-columns {
+ -webkit-box-align: start;
+ -ms-flex-align: start;
+ align-items: start;
+}
+@media all and (min-width: 600px) {
+ .logged-in .llms-sd-layout-columns {
+ display: grid;
+ grid-gap: 25px;
+ grid-template-areas: "nav header" "nav tab";
+ grid-template-columns: 200px 1fr;
+ grid-template-rows: auto 1fr;
+ }
+}
+.logged-in .llms-sd-layout-columns .llms-sd-nav {
+ grid-area: nav;
+}
+@media all and (min-width: 600px) {
+ .logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item {
+ display: block;
+ float: none;
+ }
+ .logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item a {
+ display: block;
+ padding: 10px 0;
+ }
+ .logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item .llms-sep {
+ display: none;
+ }
+}
+.logged-in .llms-sd-layout-columns .llms-sd-header {
+ grid-area: header;
+}
+.logged-in .llms-sd-layout-columns .llms-sd-tab {
+ grid-area: tab;
+}
+
+.llms-sd-grades .llms-table .llms-progress {
+ display: block;
+ margin: 0;
+}
+.llms-sd-grades .llms-table .llms-progress .llms-progress-bar {
+ top: 0;
+ height: 1.4em;
+}
+.llms-sd-grades .llms-table .llms-progress .progress__indicator {
+ font-size: 1em;
+ position: relative;
+ left: 0.4em;
+ top: 0.2em;
+ z-index: 1;
+}
+
+.llms-table.llms-single-course-grades tbody tr:first-child td, .llms-table.llms-single-course-grades tbody tr:first-child th {
+ background-color: #eaeaea;
+}
+.llms-table.llms-single-course-grades th {
+ font-weight: 400;
+ text-align: right;
+}
+.llms-table.llms-single-course-grades td .llms-donut {
+ display: inline-block;
+ vertical-align: middle;
+}
+.llms-table.llms-single-course-grades td .llms-status {
+ margin-left: 4px;
+}
+.llms-table.llms-single-course-grades td .llms-donut + .llms-status {
+ margin-right: 4px;
+}
+.llms-table.llms-single-course-grades th.llms-section_title {
+ font-size: 110%;
+ font-weight: 700;
+}
+.llms-table.llms-single-course-grades td.llms-lesson_title {
+ max-width: 40%;
+}
+.llms-table.llms-single-course-grades td.llms-associated_quiz .llms-donut {
+ display: inline-block;
+ margin-left: 5px;
+ vertical-align: middle;
+}
+.llms-table.llms-single-course-grades td.llms-lesson_title a[href="#"] {
+ pointer-events: none;
+}
+.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] {
+ color: inherit;
+ position: relative;
+}
+.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip {
+ max-width: 380px;
+ width: 380px;
+}
+.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip.show {
+ top: -54px;
+}
+
+.llms-sd-widgets {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+}
+.llms-sd-widgets .llms-sd-widget {
+ background: #fefefe;
+ border: 1px solid #dedede;
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ margin: 10px 10px 20px;
+ padding: 0 0 20px;
+}
+.llms-sd-widgets .llms-sd-widget:first-child {
+ margin-right: 0;
+}
+.llms-sd-widgets .llms-sd-widget:last-child {
+ margin-left: 0;
+}
+.llms-sd-widgets .llms-sd-widget .llms-sd-widget-title {
+ background: #466dd8;
+ color: #fff;
+ font-size: 18px;
+ line-height: 1;
+ margin: 0 0 20px;
+ padding: 10px;
+}
+.llms-sd-widgets .llms-sd-widget .llms-sd-widget-empty {
+ font-size: 14px;
+ font-style: italic;
+ opacity: 0.5;
+ text-align: center;
+}
+.llms-sd-widgets .llms-sd-widget .llms-donut {
+ margin: 0 auto;
+}
+.llms-sd-widgets .llms-sd-widget .llms-sd-date {
+ opacity: 0.8;
+ text-align: center;
+ font-size: 22px;
+ line-height: 1.1;
+}
+.llms-sd-widgets .llms-sd-widget .llms-sd-date span {
+ display: block;
+}
+.llms-sd-widgets .llms-sd-widget .llms-sd-date span.day {
+ font-size: 52px;
+}
+.llms-sd-widgets .llms-sd-widget .llms-sd-date span.diff {
+ font-size: 12px;
+ font-style: italic;
+ margin-top: 8px;
+ opacity: 0.75;
+}
+.llms-sd-widgets .llms-sd-widget .llms-achievement {
+ background: transparent;
+ margin: 0 auto;
+ max-width: 120px;
+}
+.llms-sd-widgets .llms-sd-widget .llms-achievement .llms-achievement-title {
+ display: none;
+}
+
+.redeem-voucher .form-row label {
+ display: block;
+ font-weight: 700;
+}
+.redeem-voucher .form-row input[type=text] {
+ background-color: #fefefe;
+ background-clip: padding-box;
+ border: 1px solid #999;
+ border-radius: 6px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ font-size: 16px;
+ line-height: 1;
+ padding: 8px 12px;
+ -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+}
+
+.llms-sd-pagination {
+ margin-top: 24px;
+}
+.llms-sd-pagination:before, .llms-sd-pagination:after {
+ content: " ";
+ display: table;
+}
+.llms-sd-pagination:after {
+ clear: both;
+}
+.llms-sd-pagination .llms-button-secondary {
+ display: inline-block;
+}
+.llms-sd-pagination .llms-button-secondary.prev {
+ float: right;
+}
+.llms-sd-pagination .llms-button-secondary.next {
+ float: left;
+}
+
+.llms-sd-notification-center {
+ background: #fefefe;
+ border: 1px solid #dedede;
+ border-radius: 6px;
+ padding: 20px;
+}
+.llms-sd-notification-center .llms-notification-list-item .llms-notification {
+ z-index: 1;
+}
+.llms-sd-notification-center .llms-notification-list-item .llms-notification:hover {
+ background-color: inherit;
+}
+
+.llms-table {
+ border: 1px solid #dedede;
+ border-spacing: 0;
+ width: 100%;
+}
+.llms-table thead th, .llms-table thead td {
+ font-weight: 700;
+}
+.llms-table tbody tr:nth-child(odd) td, .llms-table tbody tr:nth-child(odd) th {
+ background: #f9f9f9;
+}
+.llms-table tbody tr:last-child {
+ border-bottom-width: 0;
+}
+.llms-table tfoot tr {
+ background: #f9f9f9;
+}
+.llms-table tfoot tr .llms-pagination .page-numbers {
+ margin: 0;
+}
+.llms-table tfoot tr .llms-table-sort {
+ text-align: left;
+}
+.llms-table tfoot tr .llms-table-sort form, .llms-table tfoot tr .llms-table-sort select, .llms-table tfoot tr .llms-table-sort input, .llms-table tfoot tr .llms-table-sort button {
+ margin: 0;
+}
+.llms-table th {
+ font-weight: 700;
+}
+.llms-table th, .llms-table td {
+ border-bottom: 1px solid #dedede;
+ padding: 15px 20px;
+}
+.llms-table th:first-child, .llms-table td:first-child {
+ padding-right: 12px;
+}
+.llms-table th:last-child, .llms-table td:last-child {
+ padding-left: 12px;
+}
+
+#page .llms-table tfoot label {
+ display: inline;
+}
+
+#page .llms-table tfoot select {
+ height: auto;
+}
+
+/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+/* FONT PATH
+ * -------------------------- */
+@font-face {
+ font-family: "FontAwesome";
+ src: url("../fonts/fontawesome-webfont.eot?v=4.7.0");
+ src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+.fa {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+ font-size: 1.33333333em;
+ line-height: 0.75em;
+ vertical-align: -15%;
+}
+
+.fa-2x {
+ font-size: 2em;
+}
+
+.fa-3x {
+ font-size: 3em;
+}
+
+.fa-4x {
+ font-size: 4em;
+}
+
+.fa-5x {
+ font-size: 5em;
+}
+
+.fa-fw {
+ width: 1.28571429em;
+ text-align: center;
+}
+
+.fa-ul {
+ padding-right: 0;
+ margin-right: 2.14285714em;
+ list-style-type: none;
+}
+
+.fa-ul > li {
+ position: relative;
+}
+
+.fa-li {
+ position: absolute;
+ right: -2.14285714em;
+ width: 2.14285714em;
+ top: 0.14285714em;
+ text-align: center;
+}
+
+.fa-li.fa-lg {
+ right: -1.85714286em;
+}
+
+.fa-border {
+ padding: 0.2em 0.25em 0.15em;
+ border: solid 0.08em #eeeeee;
+ border-radius: 0.1em;
+}
+
+.fa-pull-left {
+ float: right;
+}
+
+.fa-pull-right {
+ float: left;
+}
+
+.fa.fa-pull-left {
+ margin-left: 0.3em;
+}
+
+.fa.fa-pull-right {
+ margin-right: 0.3em;
+}
+
+/* Deprecated as of 4.4.0 */
+.pull-right {
+ float: left;
+}
+
+.pull-left {
+ float: right;
+}
+
+.fa.pull-left {
+ margin-left: 0.3em;
+}
+
+.fa.pull-right {
+ margin-right: 0.3em;
+}
+
+.fa-spin {
+ -webkit-animation: fa-spin 2s infinite linear;
+ animation: fa-spin 2s infinite linear;
+}
+
+.fa-pulse {
+ -webkit-animation: fa-spin 1s infinite steps(8);
+ animation: fa-spin 1s infinite steps(8);
+}
+
+@-webkit-keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(-359deg);
+ transform: rotate(-359deg);
+ }
+}
+@keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(-359deg);
+ transform: rotate(-359deg);
+ }
+}
+.fa-rotate-90 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
+ -webkit-transform: rotate(-90deg);
+ transform: rotate(-90deg);
+}
+
+.fa-rotate-180 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
+ -webkit-transform: rotate(-180deg);
+ transform: rotate(-180deg);
+}
+
+.fa-rotate-270 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
+ -webkit-transform: rotate(-270deg);
+ transform: rotate(-270deg);
+}
+
+.fa-flip-horizontal {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
+ -webkit-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+.fa-flip-vertical {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
+ -webkit-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+ -webkit-filter: none;
+ filter: none;
+}
+
+.fa-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+
+.fa-stack-1x,
+.fa-stack-2x {
+ position: absolute;
+ right: 0;
+ width: 100%;
+ text-align: center;
+}
+
+.fa-stack-1x {
+ line-height: inherit;
+}
+
+.fa-stack-2x {
+ font-size: 2em;
+}
+
+.fa-inverse {
+ color: #ffffff;
+}
+
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+.fa-glass:before {
+ content: "\f000";
+}
+
+.fa-music:before {
+ content: "\f001";
+}
+
+.fa-search:before {
+ content: "\f002";
+}
+
+.fa-envelope-o:before {
+ content: "\f003";
+}
+
+.fa-heart:before {
+ content: "\f004";
+}
+
+.fa-star:before {
+ content: "\f005";
+}
+
+.fa-star-o:before {
+ content: "\f006";
+}
+
+.fa-user:before {
+ content: "\f007";
+}
+
+.fa-film:before {
+ content: "\f008";
+}
+
+.fa-th-large:before {
+ content: "\f009";
+}
+
+.fa-th:before {
+ content: "\f00a";
+}
+
+.fa-th-list:before {
+ content: "\f00b";
+}
+
+.fa-check:before {
+ content: "\f00c";
+}
+
+.fa-remove:before,
+.fa-close:before,
+.fa-times:before {
+ content: "\f00d";
+}
+
+.fa-search-plus:before {
+ content: "\f00e";
+}
+
+.fa-search-minus:before {
+ content: "\f010";
+}
+
+.fa-power-off:before {
+ content: "\f011";
+}
+
+.fa-signal:before {
+ content: "\f012";
+}
+
+.fa-gear:before,
+.fa-cog:before {
+ content: "\f013";
+}
+
+.fa-trash-o:before {
+ content: "\f014";
+}
+
+.fa-home:before {
+ content: "\f015";
+}
+
+.fa-file-o:before {
+ content: "\f016";
+}
+
+.fa-clock-o:before {
+ content: "\f017";
+}
+
+.fa-road:before {
+ content: "\f018";
+}
+
+.fa-download:before {
+ content: "\f019";
+}
+
+.fa-arrow-circle-o-down:before {
+ content: "\f01a";
+}
+
+.fa-arrow-circle-o-up:before {
+ content: "\f01b";
+}
+
+.fa-inbox:before {
+ content: "\f01c";
+}
+
+.fa-play-circle-o:before {
+ content: "\f01d";
+}
+
+.fa-rotate-right:before,
+.fa-repeat:before {
+ content: "\f01e";
+}
+
+.fa-refresh:before {
+ content: "\f021";
+}
+
+.fa-list-alt:before {
+ content: "\f022";
+}
+
+.fa-lock:before {
+ content: "\f023";
+}
+
+.fa-flag:before {
+ content: "\f024";
+}
+
+.fa-headphones:before {
+ content: "\f025";
+}
+
+.fa-volume-off:before {
+ content: "\f026";
+}
+
+.fa-volume-down:before {
+ content: "\f027";
+}
+
+.fa-volume-up:before {
+ content: "\f028";
+}
+
+.fa-qrcode:before {
+ content: "\f029";
+}
+
+.fa-barcode:before {
+ content: "\f02a";
+}
+
+.fa-tag:before {
+ content: "\f02b";
+}
+
+.fa-tags:before {
+ content: "\f02c";
+}
+
+.fa-book:before {
+ content: "\f02d";
+}
+
+.fa-bookmark:before {
+ content: "\f02e";
+}
+
+.fa-print:before {
+ content: "\f02f";
+}
+
+.fa-camera:before {
+ content: "\f030";
+}
+
+.fa-font:before {
+ content: "\f031";
+}
+
+.fa-bold:before {
+ content: "\f032";
+}
+
+.fa-italic:before {
+ content: "\f033";
+}
+
+.fa-text-height:before {
+ content: "\f034";
+}
+
+.fa-text-width:before {
+ content: "\f035";
+}
+
+.fa-align-left:before {
+ content: "\f036";
+}
+
+.fa-align-center:before {
+ content: "\f037";
+}
+
+.fa-align-right:before {
+ content: "\f038";
+}
+
+.fa-align-justify:before {
+ content: "\f039";
+}
+
+.fa-list:before {
+ content: "\f03a";
+}
+
+.fa-dedent:before,
+.fa-outdent:before {
+ content: "\f03b";
+}
+
+.fa-indent:before {
+ content: "\f03c";
+}
+
+.fa-video-camera:before {
+ content: "\f03d";
+}
+
+.fa-photo:before,
+.fa-image:before,
+.fa-picture-o:before {
+ content: "\f03e";
+}
+
+.fa-pencil:before {
+ content: "\f040";
+}
+
+.fa-map-marker:before {
+ content: "\f041";
+}
+
+.fa-adjust:before {
+ content: "\f042";
+}
+
+.fa-tint:before {
+ content: "\f043";
+}
+
+.fa-edit:before,
+.fa-pencil-square-o:before {
+ content: "\f044";
+}
+
+.fa-share-square-o:before {
+ content: "\f045";
+}
+
+.fa-check-square-o:before {
+ content: "\f046";
+}
+
+.fa-arrows:before {
+ content: "\f047";
+}
+
+.fa-step-backward:before {
+ content: "\f048";
+}
+
+.fa-fast-backward:before {
+ content: "\f049";
+}
+
+.fa-backward:before {
+ content: "\f04a";
+}
+
+.fa-play:before {
+ content: "\f04b";
+}
+
+.fa-pause:before {
+ content: "\f04c";
+}
+
+.fa-stop:before {
+ content: "\f04d";
+}
+
+.fa-forward:before {
+ content: "\f04e";
+}
+
+.fa-fast-forward:before {
+ content: "\f050";
+}
+
+.fa-step-forward:before {
+ content: "\f051";
+}
+
+.fa-eject:before {
+ content: "\f052";
+}
+
+.fa-chevron-left:before {
+ content: "\f053";
+}
+
+.fa-chevron-right:before {
+ content: "\f054";
+}
+
+.fa-plus-circle:before {
+ content: "\f055";
+}
+
+.fa-minus-circle:before {
+ content: "\f056";
+}
+
+.fa-times-circle:before {
+ content: "\f057";
+}
+
+.fa-check-circle:before {
+ content: "\f058";
+}
+
+.fa-question-circle:before {
+ content: "\f059";
+}
+
+.fa-info-circle:before {
+ content: "\f05a";
+}
+
+.fa-crosshairs:before {
+ content: "\f05b";
+}
+
+.fa-times-circle-o:before {
+ content: "\f05c";
+}
+
+.fa-check-circle-o:before {
+ content: "\f05d";
+}
+
+.fa-ban:before {
+ content: "\f05e";
+}
+
+.fa-arrow-left:before {
+ content: "\f060";
+}
+
+.fa-arrow-right:before {
+ content: "\f061";
+}
+
+.fa-arrow-up:before {
+ content: "\f062";
+}
+
+.fa-arrow-down:before {
+ content: "\f063";
+}
+
+.fa-mail-forward:before,
+.fa-share:before {
+ content: "\f064";
+}
+
+.fa-expand:before {
+ content: "\f065";
+}
+
+.fa-compress:before {
+ content: "\f066";
+}
+
+.fa-plus:before {
+ content: "\f067";
+}
+
+.fa-minus:before {
+ content: "\f068";
+}
+
+.fa-asterisk:before {
+ content: "\f069";
+}
+
+.fa-exclamation-circle:before {
+ content: "\f06a";
+}
+
+.fa-gift:before {
+ content: "\f06b";
+}
+
+.fa-leaf:before {
+ content: "\f06c";
+}
+
+.fa-fire:before {
+ content: "\f06d";
+}
+
+.fa-eye:before {
+ content: "\f06e";
+}
+
+.fa-eye-slash:before {
+ content: "\f070";
+}
+
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+ content: "\f071";
+}
+
+.fa-plane:before {
+ content: "\f072";
+}
+
+.fa-calendar:before {
+ content: "\f073";
+}
+
+.fa-random:before {
+ content: "\f074";
+}
+
+.fa-comment:before {
+ content: "\f075";
+}
+
+.fa-magnet:before {
+ content: "\f076";
+}
+
+.fa-chevron-up:before {
+ content: "\f077";
+}
+
+.fa-chevron-down:before {
+ content: "\f078";
+}
+
+.fa-retweet:before {
+ content: "\f079";
+}
+
+.fa-shopping-cart:before {
+ content: "\f07a";
+}
+
+.fa-folder:before {
+ content: "\f07b";
+}
+
+.fa-folder-open:before {
+ content: "\f07c";
+}
+
+.fa-arrows-v:before {
+ content: "\f07d";
+}
+
+.fa-arrows-h:before {
+ content: "\f07e";
+}
+
+.fa-bar-chart-o:before,
+.fa-bar-chart:before {
+ content: "\f080";
+}
+
+.fa-twitter-square:before {
+ content: "\f081";
+}
+
+.fa-facebook-square:before {
+ content: "\f082";
+}
+
+.fa-camera-retro:before {
+ content: "\f083";
+}
+
+.fa-key:before {
+ content: "\f084";
+}
+
+.fa-gears:before,
+.fa-cogs:before {
+ content: "\f085";
+}
+
+.fa-comments:before {
+ content: "\f086";
+}
+
+.fa-thumbs-o-up:before {
+ content: "\f087";
+}
+
+.fa-thumbs-o-down:before {
+ content: "\f088";
+}
+
+.fa-star-half:before {
+ content: "\f089";
+}
+
+.fa-heart-o:before {
+ content: "\f08a";
+}
+
+.fa-sign-out:before {
+ content: "\f08b";
+}
+
+.fa-linkedin-square:before {
+ content: "\f08c";
+}
+
+.fa-thumb-tack:before {
+ content: "\f08d";
+}
+
+.fa-external-link:before {
+ content: "\f08e";
+}
+
+.fa-sign-in:before {
+ content: "\f090";
+}
+
+.fa-trophy:before {
+ content: "\f091";
+}
+
+.fa-github-square:before {
+ content: "\f092";
+}
+
+.fa-upload:before {
+ content: "\f093";
+}
+
+.fa-lemon-o:before {
+ content: "\f094";
+}
+
+.fa-phone:before {
+ content: "\f095";
+}
+
+.fa-square-o:before {
+ content: "\f096";
+}
+
+.fa-bookmark-o:before {
+ content: "\f097";
+}
+
+.fa-phone-square:before {
+ content: "\f098";
+}
+
+.fa-twitter:before {
+ content: "\f099";
+}
+
+.fa-facebook-f:before,
+.fa-facebook:before {
+ content: "\f09a";
+}
+
+.fa-github:before {
+ content: "\f09b";
+}
+
+.fa-unlock:before {
+ content: "\f09c";
+}
+
+.fa-credit-card:before {
+ content: "\f09d";
+}
+
+.fa-feed:before,
+.fa-rss:before {
+ content: "\f09e";
+}
+
+.fa-hdd-o:before {
+ content: "\f0a0";
+}
+
+.fa-bullhorn:before {
+ content: "\f0a1";
+}
+
+.fa-bell:before {
+ content: "\f0f3";
+}
+
+.fa-certificate:before {
+ content: "\f0a3";
+}
+
+.fa-hand-o-right:before {
+ content: "\f0a4";
+}
+
+.fa-hand-o-left:before {
+ content: "\f0a5";
+}
+
+.fa-hand-o-up:before {
+ content: "\f0a6";
+}
+
+.fa-hand-o-down:before {
+ content: "\f0a7";
+}
+
+.fa-arrow-circle-left:before {
+ content: "\f0a8";
+}
+
+.fa-arrow-circle-right:before {
+ content: "\f0a9";
+}
+
+.fa-arrow-circle-up:before {
+ content: "\f0aa";
+}
+
+.fa-arrow-circle-down:before {
+ content: "\f0ab";
+}
+
+.fa-globe:before {
+ content: "\f0ac";
+}
+
+.fa-wrench:before {
+ content: "\f0ad";
+}
+
+.fa-tasks:before {
+ content: "\f0ae";
+}
+
+.fa-filter:before {
+ content: "\f0b0";
+}
+
+.fa-briefcase:before {
+ content: "\f0b1";
+}
+
+.fa-arrows-alt:before {
+ content: "\f0b2";
+}
+
+.fa-group:before,
+.fa-users:before {
+ content: "\f0c0";
+}
+
+.fa-chain:before,
+.fa-link:before {
+ content: "\f0c1";
+}
+
+.fa-cloud:before {
+ content: "\f0c2";
+}
+
+.fa-flask:before {
+ content: "\f0c3";
+}
+
+.fa-cut:before,
+.fa-scissors:before {
+ content: "\f0c4";
+}
+
+.fa-copy:before,
+.fa-files-o:before {
+ content: "\f0c5";
+}
+
+.fa-paperclip:before {
+ content: "\f0c6";
+}
+
+.fa-save:before,
+.fa-floppy-o:before {
+ content: "\f0c7";
+}
+
+.fa-square:before {
+ content: "\f0c8";
+}
+
+.fa-navicon:before,
+.fa-reorder:before,
+.fa-bars:before {
+ content: "\f0c9";
+}
+
+.fa-list-ul:before {
+ content: "\f0ca";
+}
+
+.fa-list-ol:before {
+ content: "\f0cb";
+}
+
+.fa-strikethrough:before {
+ content: "\f0cc";
+}
+
+.fa-underline:before {
+ content: "\f0cd";
+}
+
+.fa-table:before {
+ content: "\f0ce";
+}
+
+.fa-magic:before {
+ content: "\f0d0";
+}
+
+.fa-truck:before {
+ content: "\f0d1";
+}
+
+.fa-pinterest:before {
+ content: "\f0d2";
+}
+
+.fa-pinterest-square:before {
+ content: "\f0d3";
+}
+
+.fa-google-plus-square:before {
+ content: "\f0d4";
+}
+
+.fa-google-plus:before {
+ content: "\f0d5";
+}
+
+.fa-money:before {
+ content: "\f0d6";
+}
+
+.fa-caret-down:before {
+ content: "\f0d7";
+}
+
+.fa-caret-up:before {
+ content: "\f0d8";
+}
+
+.fa-caret-left:before {
+ content: "\f0d9";
+}
+
+.fa-caret-right:before {
+ content: "\f0da";
+}
+
+.fa-columns:before {
+ content: "\f0db";
+}
+
+.fa-unsorted:before,
+.fa-sort:before {
+ content: "\f0dc";
+}
+
+.fa-sort-down:before,
+.fa-sort-desc:before {
+ content: "\f0dd";
+}
+
+.fa-sort-up:before,
+.fa-sort-asc:before {
+ content: "\f0de";
+}
+
+.fa-envelope:before {
+ content: "\f0e0";
+}
+
+.fa-linkedin:before {
+ content: "\f0e1";
+}
+
+.fa-rotate-left:before,
+.fa-undo:before {
+ content: "\f0e2";
+}
+
+.fa-legal:before,
+.fa-gavel:before {
+ content: "\f0e3";
+}
+
+.fa-dashboard:before,
+.fa-tachometer:before {
+ content: "\f0e4";
+}
+
+.fa-comment-o:before {
+ content: "\f0e5";
+}
+
+.fa-comments-o:before {
+ content: "\f0e6";
+}
+
+.fa-flash:before,
+.fa-bolt:before {
+ content: "\f0e7";
+}
+
+.fa-sitemap:before {
+ content: "\f0e8";
+}
+
+.fa-umbrella:before {
+ content: "\f0e9";
+}
+
+.fa-paste:before,
+.fa-clipboard:before {
+ content: "\f0ea";
+}
+
+.fa-lightbulb-o:before {
+ content: "\f0eb";
+}
+
+.fa-exchange:before {
+ content: "\f0ec";
+}
+
+.fa-cloud-download:before {
+ content: "\f0ed";
+}
+
+.fa-cloud-upload:before {
+ content: "\f0ee";
+}
+
+.fa-user-md:before {
+ content: "\f0f0";
+}
+
+.fa-stethoscope:before {
+ content: "\f0f1";
+}
+
+.fa-suitcase:before {
+ content: "\f0f2";
+}
+
+.fa-bell-o:before {
+ content: "\f0a2";
+}
+
+.fa-coffee:before {
+ content: "\f0f4";
+}
+
+.fa-cutlery:before {
+ content: "\f0f5";
+}
+
+.fa-file-text-o:before {
+ content: "\f0f6";
+}
+
+.fa-building-o:before {
+ content: "\f0f7";
+}
+
+.fa-hospital-o:before {
+ content: "\f0f8";
+}
+
+.fa-ambulance:before {
+ content: "\f0f9";
+}
+
+.fa-medkit:before {
+ content: "\f0fa";
+}
+
+.fa-fighter-jet:before {
+ content: "\f0fb";
+}
+
+.fa-beer:before {
+ content: "\f0fc";
+}
+
+.fa-h-square:before {
+ content: "\f0fd";
+}
+
+.fa-plus-square:before {
+ content: "\f0fe";
+}
+
+.fa-angle-double-left:before {
+ content: "\f100";
+}
+
+.fa-angle-double-right:before {
+ content: "\f101";
+}
+
+.fa-angle-double-up:before {
+ content: "\f102";
+}
+
+.fa-angle-double-down:before {
+ content: "\f103";
+}
+
+.fa-angle-left:before {
+ content: "\f104";
+}
+
+.fa-angle-right:before {
+ content: "\f105";
+}
+
+.fa-angle-up:before {
+ content: "\f106";
+}
+
+.fa-angle-down:before {
+ content: "\f107";
+}
+
+.fa-desktop:before {
+ content: "\f108";
+}
+
+.fa-laptop:before {
+ content: "\f109";
+}
+
+.fa-tablet:before {
+ content: "\f10a";
+}
+
+.fa-mobile-phone:before,
+.fa-mobile:before {
+ content: "\f10b";
+}
+
+.fa-circle-o:before {
+ content: "\f10c";
+}
+
+.fa-quote-left:before {
+ content: "\f10d";
+}
+
+.fa-quote-right:before {
+ content: "\f10e";
+}
+
+.fa-spinner:before {
+ content: "\f110";
+}
+
+.fa-circle:before {
+ content: "\f111";
+}
+
+.fa-mail-reply:before,
+.fa-reply:before {
+ content: "\f112";
+}
+
+.fa-github-alt:before {
+ content: "\f113";
+}
+
+.fa-folder-o:before {
+ content: "\f114";
+}
+
+.fa-folder-open-o:before {
+ content: "\f115";
+}
+
+.fa-smile-o:before {
+ content: "\f118";
+}
+
+.fa-frown-o:before {
+ content: "\f119";
+}
+
+.fa-meh-o:before {
+ content: "\f11a";
+}
+
+.fa-gamepad:before {
+ content: "\f11b";
+}
+
+.fa-keyboard-o:before {
+ content: "\f11c";
+}
+
+.fa-flag-o:before {
+ content: "\f11d";
+}
+
+.fa-flag-checkered:before {
+ content: "\f11e";
+}
+
+.fa-terminal:before {
+ content: "\f120";
+}
+
+.fa-code:before {
+ content: "\f121";
+}
+
+.fa-mail-reply-all:before,
+.fa-reply-all:before {
+ content: "\f122";
+}
+
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+ content: "\f123";
+}
+
+.fa-location-arrow:before {
+ content: "\f124";
+}
+
+.fa-crop:before {
+ content: "\f125";
+}
+
+.fa-code-fork:before {
+ content: "\f126";
+}
+
+.fa-unlink:before,
+.fa-chain-broken:before {
+ content: "\f127";
+}
+
+.fa-question:before {
+ content: "\f128";
+}
+
+.fa-info:before {
+ content: "\f129";
+}
+
+.fa-exclamation:before {
+ content: "\f12a";
+}
+
+.fa-superscript:before {
+ content: "\f12b";
+}
+
+.fa-subscript:before {
+ content: "\f12c";
+}
+
+.fa-eraser:before {
+ content: "\f12d";
+}
+
+.fa-puzzle-piece:before {
+ content: "\f12e";
+}
+
+.fa-microphone:before {
+ content: "\f130";
+}
+
+.fa-microphone-slash:before {
+ content: "\f131";
+}
+
+.fa-shield:before {
+ content: "\f132";
+}
+
+.fa-calendar-o:before {
+ content: "\f133";
+}
+
+.fa-fire-extinguisher:before {
+ content: "\f134";
+}
+
+.fa-rocket:before {
+ content: "\f135";
+}
+
+.fa-maxcdn:before {
+ content: "\f136";
+}
+
+.fa-chevron-circle-left:before {
+ content: "\f137";
+}
+
+.fa-chevron-circle-right:before {
+ content: "\f138";
+}
+
+.fa-chevron-circle-up:before {
+ content: "\f139";
+}
+
+.fa-chevron-circle-down:before {
+ content: "\f13a";
+}
+
+.fa-html5:before {
+ content: "\f13b";
+}
+
+.fa-css3:before {
+ content: "\f13c";
+}
+
+.fa-anchor:before {
+ content: "\f13d";
+}
+
+.fa-unlock-alt:before {
+ content: "\f13e";
+}
+
+.fa-bullseye:before {
+ content: "\f140";
+}
+
+.fa-ellipsis-h:before {
+ content: "\f141";
+}
+
+.fa-ellipsis-v:before {
+ content: "\f142";
+}
+
+.fa-rss-square:before {
+ content: "\f143";
+}
+
+.fa-play-circle:before {
+ content: "\f144";
+}
+
+.fa-ticket:before {
+ content: "\f145";
+}
+
+.fa-minus-square:before {
+ content: "\f146";
+}
+
+.fa-minus-square-o:before {
+ content: "\f147";
+}
+
+.fa-level-up:before {
+ content: "\f148";
+}
+
+.fa-level-down:before {
+ content: "\f149";
+}
+
+.fa-check-square:before {
+ content: "\f14a";
+}
+
+.fa-pencil-square:before {
+ content: "\f14b";
+}
+
+.fa-external-link-square:before {
+ content: "\f14c";
+}
+
+.fa-share-square:before {
+ content: "\f14d";
+}
+
+.fa-compass:before {
+ content: "\f14e";
+}
+
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+ content: "\f150";
+}
+
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+ content: "\f151";
+}
+
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+ content: "\f152";
+}
+
+.fa-euro:before,
+.fa-eur:before {
+ content: "\f153";
+}
+
+.fa-gbp:before {
+ content: "\f154";
+}
+
+.fa-dollar:before,
+.fa-usd:before {
+ content: "\f155";
+}
+
+.fa-rupee:before,
+.fa-inr:before {
+ content: "\f156";
+}
+
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+ content: "\f157";
+}
+
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+ content: "\f158";
+}
+
+.fa-won:before,
+.fa-krw:before {
+ content: "\f159";
+}
+
+.fa-bitcoin:before,
+.fa-btc:before {
+ content: "\f15a";
+}
+
+.fa-file:before {
+ content: "\f15b";
+}
+
+.fa-file-text:before {
+ content: "\f15c";
+}
+
+.fa-sort-alpha-asc:before {
+ content: "\f15d";
+}
+
+.fa-sort-alpha-desc:before {
+ content: "\f15e";
+}
+
+.fa-sort-amount-asc:before {
+ content: "\f160";
+}
+
+.fa-sort-amount-desc:before {
+ content: "\f161";
+}
+
+.fa-sort-numeric-asc:before {
+ content: "\f162";
+}
+
+.fa-sort-numeric-desc:before {
+ content: "\f163";
+}
+
+.fa-thumbs-up:before {
+ content: "\f164";
+}
+
+.fa-thumbs-down:before {
+ content: "\f165";
+}
+
+.fa-youtube-square:before {
+ content: "\f166";
+}
+
+.fa-youtube:before {
+ content: "\f167";
+}
+
+.fa-xing:before {
+ content: "\f168";
+}
+
+.fa-xing-square:before {
+ content: "\f169";
+}
+
+.fa-youtube-play:before {
+ content: "\f16a";
+}
+
+.fa-dropbox:before {
+ content: "\f16b";
+}
+
+.fa-stack-overflow:before {
+ content: "\f16c";
+}
+
+.fa-instagram:before {
+ content: "\f16d";
+}
+
+.fa-flickr:before {
+ content: "\f16e";
+}
+
+.fa-adn:before {
+ content: "\f170";
+}
+
+.fa-bitbucket:before {
+ content: "\f171";
+}
+
+.fa-bitbucket-square:before {
+ content: "\f172";
+}
+
+.fa-tumblr:before {
+ content: "\f173";
+}
+
+.fa-tumblr-square:before {
+ content: "\f174";
+}
+
+.fa-long-arrow-down:before {
+ content: "\f175";
+}
+
+.fa-long-arrow-up:before {
+ content: "\f176";
+}
+
+.fa-long-arrow-left:before {
+ content: "\f177";
+}
+
+.fa-long-arrow-right:before {
+ content: "\f178";
+}
+
+.fa-apple:before {
+ content: "\f179";
+}
+
+.fa-windows:before {
+ content: "\f17a";
+}
+
+.fa-android:before {
+ content: "\f17b";
+}
+
+.fa-linux:before {
+ content: "\f17c";
+}
+
+.fa-dribbble:before {
+ content: "\f17d";
+}
+
+.fa-skype:before {
+ content: "\f17e";
+}
+
+.fa-foursquare:before {
+ content: "\f180";
+}
+
+.fa-trello:before {
+ content: "\f181";
+}
+
+.fa-female:before {
+ content: "\f182";
+}
+
+.fa-male:before {
+ content: "\f183";
+}
+
+.fa-gittip:before,
+.fa-gratipay:before {
+ content: "\f184";
+}
+
+.fa-sun-o:before {
+ content: "\f185";
+}
+
+.fa-moon-o:before {
+ content: "\f186";
+}
+
+.fa-archive:before {
+ content: "\f187";
+}
+
+.fa-bug:before {
+ content: "\f188";
+}
+
+.fa-vk:before {
+ content: "\f189";
+}
+
+.fa-weibo:before {
+ content: "\f18a";
+}
+
+.fa-renren:before {
+ content: "\f18b";
+}
+
+.fa-pagelines:before {
+ content: "\f18c";
+}
+
+.fa-stack-exchange:before {
+ content: "\f18d";
+}
+
+.fa-arrow-circle-o-right:before {
+ content: "\f18e";
+}
+
+.fa-arrow-circle-o-left:before {
+ content: "\f190";
+}
+
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+ content: "\f191";
+}
+
+.fa-dot-circle-o:before {
+ content: "\f192";
+}
+
+.fa-wheelchair:before {
+ content: "\f193";
+}
+
+.fa-vimeo-square:before {
+ content: "\f194";
+}
+
+.fa-turkish-lira:before,
+.fa-try:before {
+ content: "\f195";
+}
+
+.fa-plus-square-o:before {
+ content: "\f196";
+}
+
+.fa-space-shuttle:before {
+ content: "\f197";
+}
+
+.fa-slack:before {
+ content: "\f198";
+}
+
+.fa-envelope-square:before {
+ content: "\f199";
+}
+
+.fa-wordpress:before {
+ content: "\f19a";
+}
+
+.fa-openid:before {
+ content: "\f19b";
+}
+
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before {
+ content: "\f19c";
+}
+
+.fa-mortar-board:before,
+.fa-graduation-cap:before {
+ content: "\f19d";
+}
+
+.fa-yahoo:before {
+ content: "\f19e";
+}
+
+.fa-google:before {
+ content: "\f1a0";
+}
+
+.fa-reddit:before {
+ content: "\f1a1";
+}
+
+.fa-reddit-square:before {
+ content: "\f1a2";
+}
+
+.fa-stumbleupon-circle:before {
+ content: "\f1a3";
+}
+
+.fa-stumbleupon:before {
+ content: "\f1a4";
+}
+
+.fa-delicious:before {
+ content: "\f1a5";
+}
+
+.fa-digg:before {
+ content: "\f1a6";
+}
+
+.fa-pied-piper-pp:before {
+ content: "\f1a7";
+}
+
+.fa-pied-piper-alt:before {
+ content: "\f1a8";
+}
+
+.fa-drupal:before {
+ content: "\f1a9";
+}
+
+.fa-joomla:before {
+ content: "\f1aa";
+}
+
+.fa-language:before {
+ content: "\f1ab";
+}
+
+.fa-fax:before {
+ content: "\f1ac";
+}
+
+.fa-building:before {
+ content: "\f1ad";
+}
+
+.fa-child:before {
+ content: "\f1ae";
+}
+
+.fa-paw:before {
+ content: "\f1b0";
+}
+
+.fa-spoon:before {
+ content: "\f1b1";
+}
+
+.fa-cube:before {
+ content: "\f1b2";
+}
+
+.fa-cubes:before {
+ content: "\f1b3";
+}
+
+.fa-behance:before {
+ content: "\f1b4";
+}
+
+.fa-behance-square:before {
+ content: "\f1b5";
+}
+
+.fa-steam:before {
+ content: "\f1b6";
+}
+
+.fa-steam-square:before {
+ content: "\f1b7";
+}
+
+.fa-recycle:before {
+ content: "\f1b8";
+}
+
+.fa-automobile:before,
+.fa-car:before {
+ content: "\f1b9";
+}
+
+.fa-cab:before,
+.fa-taxi:before {
+ content: "\f1ba";
+}
+
+.fa-tree:before {
+ content: "\f1bb";
+}
+
+.fa-spotify:before {
+ content: "\f1bc";
+}
+
+.fa-deviantart:before {
+ content: "\f1bd";
+}
+
+.fa-soundcloud:before {
+ content: "\f1be";
+}
+
+.fa-database:before {
+ content: "\f1c0";
+}
+
+.fa-file-pdf-o:before {
+ content: "\f1c1";
+}
+
+.fa-file-word-o:before {
+ content: "\f1c2";
+}
+
+.fa-file-excel-o:before {
+ content: "\f1c3";
+}
+
+.fa-file-powerpoint-o:before {
+ content: "\f1c4";
+}
+
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before {
+ content: "\f1c5";
+}
+
+.fa-file-zip-o:before,
+.fa-file-archive-o:before {
+ content: "\f1c6";
+}
+
+.fa-file-sound-o:before,
+.fa-file-audio-o:before {
+ content: "\f1c7";
+}
+
+.fa-file-movie-o:before,
+.fa-file-video-o:before {
+ content: "\f1c8";
+}
+
+.fa-file-code-o:before {
+ content: "\f1c9";
+}
+
+.fa-vine:before {
+ content: "\f1ca";
+}
+
+.fa-codepen:before {
+ content: "\f1cb";
+}
+
+.fa-jsfiddle:before {
+ content: "\f1cc";
+}
+
+.fa-life-bouy:before,
+.fa-life-buoy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before {
+ content: "\f1cd";
+}
+
+.fa-circle-o-notch:before {
+ content: "\f1ce";
+}
+
+.fa-ra:before,
+.fa-resistance:before,
+.fa-rebel:before {
+ content: "\f1d0";
+}
+
+.fa-ge:before,
+.fa-empire:before {
+ content: "\f1d1";
+}
+
+.fa-git-square:before {
+ content: "\f1d2";
+}
+
+.fa-git:before {
+ content: "\f1d3";
+}
+
+.fa-y-combinator-square:before,
+.fa-yc-square:before,
+.fa-hacker-news:before {
+ content: "\f1d4";
+}
+
+.fa-tencent-weibo:before {
+ content: "\f1d5";
+}
+
+.fa-qq:before {
+ content: "\f1d6";
+}
+
+.fa-wechat:before,
+.fa-weixin:before {
+ content: "\f1d7";
+}
+
+.fa-send:before,
+.fa-paper-plane:before {
+ content: "\f1d8";
+}
+
+.fa-send-o:before,
+.fa-paper-plane-o:before {
+ content: "\f1d9";
+}
+
+.fa-history:before {
+ content: "\f1da";
+}
+
+.fa-circle-thin:before {
+ content: "\f1db";
+}
+
+.fa-header:before {
+ content: "\f1dc";
+}
+
+.fa-paragraph:before {
+ content: "\f1dd";
+}
+
+.fa-sliders:before {
+ content: "\f1de";
+}
+
+.fa-share-alt:before {
+ content: "\f1e0";
+}
+
+.fa-share-alt-square:before {
+ content: "\f1e1";
+}
+
+.fa-bomb:before {
+ content: "\f1e2";
+}
+
+.fa-soccer-ball-o:before,
+.fa-futbol-o:before {
+ content: "\f1e3";
+}
+
+.fa-tty:before {
+ content: "\f1e4";
+}
+
+.fa-binoculars:before {
+ content: "\f1e5";
+}
+
+.fa-plug:before {
+ content: "\f1e6";
+}
+
+.fa-slideshare:before {
+ content: "\f1e7";
+}
+
+.fa-twitch:before {
+ content: "\f1e8";
+}
+
+.fa-yelp:before {
+ content: "\f1e9";
+}
+
+.fa-newspaper-o:before {
+ content: "\f1ea";
+}
+
+.fa-wifi:before {
+ content: "\f1eb";
+}
+
+.fa-calculator:before {
+ content: "\f1ec";
+}
+
+.fa-paypal:before {
+ content: "\f1ed";
+}
+
+.fa-google-wallet:before {
+ content: "\f1ee";
+}
+
+.fa-cc-visa:before {
+ content: "\f1f0";
+}
+
+.fa-cc-mastercard:before {
+ content: "\f1f1";
+}
+
+.fa-cc-discover:before {
+ content: "\f1f2";
+}
+
+.fa-cc-amex:before {
+ content: "\f1f3";
+}
+
+.fa-cc-paypal:before {
+ content: "\f1f4";
+}
+
+.fa-cc-stripe:before {
+ content: "\f1f5";
+}
+
+.fa-bell-slash:before {
+ content: "\f1f6";
+}
+
+.fa-bell-slash-o:before {
+ content: "\f1f7";
+}
+
+.fa-trash:before {
+ content: "\f1f8";
+}
+
+.fa-copyright:before {
+ content: "\f1f9";
+}
+
+.fa-at:before {
+ content: "\f1fa";
+}
+
+.fa-eyedropper:before {
+ content: "\f1fb";
+}
+
+.fa-paint-brush:before {
+ content: "\f1fc";
+}
+
+.fa-birthday-cake:before {
+ content: "\f1fd";
+}
+
+.fa-area-chart:before {
+ content: "\f1fe";
+}
+
+.fa-pie-chart:before {
+ content: "\f200";
+}
+
+.fa-line-chart:before {
+ content: "\f201";
+}
+
+.fa-lastfm:before {
+ content: "\f202";
+}
+
+.fa-lastfm-square:before {
+ content: "\f203";
+}
+
+.fa-toggle-off:before {
+ content: "\f204";
+}
+
+.fa-toggle-on:before {
+ content: "\f205";
+}
+
+.fa-bicycle:before {
+ content: "\f206";
+}
+
+.fa-bus:before {
+ content: "\f207";
+}
+
+.fa-ioxhost:before {
+ content: "\f208";
+}
+
+.fa-angellist:before {
+ content: "\f209";
+}
+
+.fa-cc:before {
+ content: "\f20a";
+}
+
+.fa-shekel:before,
+.fa-sheqel:before,
+.fa-ils:before {
+ content: "\f20b";
+}
+
+.fa-meanpath:before {
+ content: "\f20c";
+}
+
+.fa-buysellads:before {
+ content: "\f20d";
+}
+
+.fa-connectdevelop:before {
+ content: "\f20e";
+}
+
+.fa-dashcube:before {
+ content: "\f210";
+}
+
+.fa-forumbee:before {
+ content: "\f211";
+}
+
+.fa-leanpub:before {
+ content: "\f212";
+}
+
+.fa-sellsy:before {
+ content: "\f213";
+}
+
+.fa-shirtsinbulk:before {
+ content: "\f214";
+}
+
+.fa-simplybuilt:before {
+ content: "\f215";
+}
+
+.fa-skyatlas:before {
+ content: "\f216";
+}
+
+.fa-cart-plus:before {
+ content: "\f217";
+}
+
+.fa-cart-arrow-down:before {
+ content: "\f218";
+}
+
+.fa-diamond:before {
+ content: "\f219";
+}
+
+.fa-ship:before {
+ content: "\f21a";
+}
+
+.fa-user-secret:before {
+ content: "\f21b";
+}
+
+.fa-motorcycle:before {
+ content: "\f21c";
+}
+
+.fa-street-view:before {
+ content: "\f21d";
+}
+
+.fa-heartbeat:before {
+ content: "\f21e";
+}
+
+.fa-venus:before {
+ content: "\f221";
+}
+
+.fa-mars:before {
+ content: "\f222";
+}
+
+.fa-mercury:before {
+ content: "\f223";
+}
+
+.fa-intersex:before,
+.fa-transgender:before {
+ content: "\f224";
+}
+
+.fa-transgender-alt:before {
+ content: "\f225";
+}
+
+.fa-venus-double:before {
+ content: "\f226";
+}
+
+.fa-mars-double:before {
+ content: "\f227";
+}
+
+.fa-venus-mars:before {
+ content: "\f228";
+}
+
+.fa-mars-stroke:before {
+ content: "\f229";
+}
+
+.fa-mars-stroke-v:before {
+ content: "\f22a";
+}
+
+.fa-mars-stroke-h:before {
+ content: "\f22b";
+}
+
+.fa-neuter:before {
+ content: "\f22c";
+}
+
+.fa-genderless:before {
+ content: "\f22d";
+}
+
+.fa-facebook-official:before {
+ content: "\f230";
+}
+
+.fa-pinterest-p:before {
+ content: "\f231";
+}
+
+.fa-whatsapp:before {
+ content: "\f232";
+}
+
+.fa-server:before {
+ content: "\f233";
+}
+
+.fa-user-plus:before {
+ content: "\f234";
+}
+
+.fa-user-times:before {
+ content: "\f235";
+}
+
+.fa-hotel:before,
+.fa-bed:before {
+ content: "\f236";
+}
+
+.fa-viacoin:before {
+ content: "\f237";
+}
+
+.fa-train:before {
+ content: "\f238";
+}
+
+.fa-subway:before {
+ content: "\f239";
+}
+
+.fa-medium:before {
+ content: "\f23a";
+}
+
+.fa-yc:before,
+.fa-y-combinator:before {
+ content: "\f23b";
+}
+
+.fa-optin-monster:before {
+ content: "\f23c";
+}
+
+.fa-opencart:before {
+ content: "\f23d";
+}
+
+.fa-expeditedssl:before {
+ content: "\f23e";
+}
+
+.fa-battery-4:before,
+.fa-battery:before,
+.fa-battery-full:before {
+ content: "\f240";
+}
+
+.fa-battery-3:before,
+.fa-battery-three-quarters:before {
+ content: "\f241";
+}
+
+.fa-battery-2:before,
+.fa-battery-half:before {
+ content: "\f242";
+}
+
+.fa-battery-1:before,
+.fa-battery-quarter:before {
+ content: "\f243";
+}
+
+.fa-battery-0:before,
+.fa-battery-empty:before {
+ content: "\f244";
+}
+
+.fa-mouse-pointer:before {
+ content: "\f245";
+}
+
+.fa-i-cursor:before {
+ content: "\f246";
+}
+
+.fa-object-group:before {
+ content: "\f247";
+}
+
+.fa-object-ungroup:before {
+ content: "\f248";
+}
+
+.fa-sticky-note:before {
+ content: "\f249";
+}
+
+.fa-sticky-note-o:before {
+ content: "\f24a";
+}
+
+.fa-cc-jcb:before {
+ content: "\f24b";
+}
+
+.fa-cc-diners-club:before {
+ content: "\f24c";
+}
+
+.fa-clone:before {
+ content: "\f24d";
+}
+
+.fa-balance-scale:before {
+ content: "\f24e";
+}
+
+.fa-hourglass-o:before {
+ content: "\f250";
+}
+
+.fa-hourglass-1:before,
+.fa-hourglass-start:before {
+ content: "\f251";
+}
+
+.fa-hourglass-2:before,
+.fa-hourglass-half:before {
+ content: "\f252";
+}
+
+.fa-hourglass-3:before,
+.fa-hourglass-end:before {
+ content: "\f253";
+}
+
+.fa-hourglass:before {
+ content: "\f254";
+}
+
+.fa-hand-grab-o:before,
+.fa-hand-rock-o:before {
+ content: "\f255";
+}
+
+.fa-hand-stop-o:before,
+.fa-hand-paper-o:before {
+ content: "\f256";
+}
+
+.fa-hand-scissors-o:before {
+ content: "\f257";
+}
+
+.fa-hand-lizard-o:before {
+ content: "\f258";
+}
+
+.fa-hand-spock-o:before {
+ content: "\f259";
+}
+
+.fa-hand-pointer-o:before {
+ content: "\f25a";
+}
+
+.fa-hand-peace-o:before {
+ content: "\f25b";
+}
+
+.fa-trademark:before {
+ content: "\f25c";
+}
+
+.fa-registered:before {
+ content: "\f25d";
+}
+
+.fa-creative-commons:before {
+ content: "\f25e";
+}
+
+.fa-gg:before {
+ content: "\f260";
+}
+
+.fa-gg-circle:before {
+ content: "\f261";
+}
+
+.fa-tripadvisor:before {
+ content: "\f262";
+}
+
+.fa-odnoklassniki:before {
+ content: "\f263";
+}
+
+.fa-odnoklassniki-square:before {
+ content: "\f264";
+}
+
+.fa-get-pocket:before {
+ content: "\f265";
+}
+
+.fa-wikipedia-w:before {
+ content: "\f266";
+}
+
+.fa-safari:before {
+ content: "\f267";
+}
+
+.fa-chrome:before {
+ content: "\f268";
+}
+
+.fa-firefox:before {
+ content: "\f269";
+}
+
+.fa-opera:before {
+ content: "\f26a";
+}
+
+.fa-internet-explorer:before {
+ content: "\f26b";
+}
+
+.fa-tv:before,
+.fa-television:before {
+ content: "\f26c";
+}
+
+.fa-contao:before {
+ content: "\f26d";
+}
+
+.fa-500px:before {
+ content: "\f26e";
+}
+
+.fa-amazon:before {
+ content: "\f270";
+}
+
+.fa-calendar-plus-o:before {
+ content: "\f271";
+}
+
+.fa-calendar-minus-o:before {
+ content: "\f272";
+}
+
+.fa-calendar-times-o:before {
+ content: "\f273";
+}
+
+.fa-calendar-check-o:before {
+ content: "\f274";
+}
+
+.fa-industry:before {
+ content: "\f275";
+}
+
+.fa-map-pin:before {
+ content: "\f276";
+}
+
+.fa-map-signs:before {
+ content: "\f277";
+}
+
+.fa-map-o:before {
+ content: "\f278";
+}
+
+.fa-map:before {
+ content: "\f279";
+}
+
+.fa-commenting:before {
+ content: "\f27a";
+}
+
+.fa-commenting-o:before {
+ content: "\f27b";
+}
+
+.fa-houzz:before {
+ content: "\f27c";
+}
+
+.fa-vimeo:before {
+ content: "\f27d";
+}
+
+.fa-black-tie:before {
+ content: "\f27e";
+}
+
+.fa-fonticons:before {
+ content: "\f280";
+}
+
+.fa-reddit-alien:before {
+ content: "\f281";
+}
+
+.fa-edge:before {
+ content: "\f282";
+}
+
+.fa-credit-card-alt:before {
+ content: "\f283";
+}
+
+.fa-codiepie:before {
+ content: "\f284";
+}
+
+.fa-modx:before {
+ content: "\f285";
+}
+
+.fa-fort-awesome:before {
+ content: "\f286";
+}
+
+.fa-usb:before {
+ content: "\f287";
+}
+
+.fa-product-hunt:before {
+ content: "\f288";
+}
+
+.fa-mixcloud:before {
+ content: "\f289";
+}
+
+.fa-scribd:before {
+ content: "\f28a";
+}
+
+.fa-pause-circle:before {
+ content: "\f28b";
+}
+
+.fa-pause-circle-o:before {
+ content: "\f28c";
+}
+
+.fa-stop-circle:before {
+ content: "\f28d";
+}
+
+.fa-stop-circle-o:before {
+ content: "\f28e";
+}
+
+.fa-shopping-bag:before {
+ content: "\f290";
+}
+
+.fa-shopping-basket:before {
+ content: "\f291";
+}
+
+.fa-hashtag:before {
+ content: "\f292";
+}
+
+.fa-bluetooth:before {
+ content: "\f293";
+}
+
+.fa-bluetooth-b:before {
+ content: "\f294";
+}
+
+.fa-percent:before {
+ content: "\f295";
+}
+
+.fa-gitlab:before {
+ content: "\f296";
+}
+
+.fa-wpbeginner:before {
+ content: "\f297";
+}
+
+.fa-wpforms:before {
+ content: "\f298";
+}
+
+.fa-envira:before {
+ content: "\f299";
+}
+
+.fa-universal-access:before {
+ content: "\f29a";
+}
+
+.fa-wheelchair-alt:before {
+ content: "\f29b";
+}
+
+.fa-question-circle-o:before {
+ content: "\f29c";
+}
+
+.fa-blind:before {
+ content: "\f29d";
+}
+
+.fa-audio-description:before {
+ content: "\f29e";
+}
+
+.fa-volume-control-phone:before {
+ content: "\f2a0";
+}
+
+.fa-braille:before {
+ content: "\f2a1";
+}
+
+.fa-assistive-listening-systems:before {
+ content: "\f2a2";
+}
+
+.fa-asl-interpreting:before,
+.fa-american-sign-language-interpreting:before {
+ content: "\f2a3";
+}
+
+.fa-deafness:before,
+.fa-hard-of-hearing:before,
+.fa-deaf:before {
+ content: "\f2a4";
+}
+
+.fa-glide:before {
+ content: "\f2a5";
+}
+
+.fa-glide-g:before {
+ content: "\f2a6";
+}
+
+.fa-signing:before,
+.fa-sign-language:before {
+ content: "\f2a7";
+}
+
+.fa-low-vision:before {
+ content: "\f2a8";
+}
+
+.fa-viadeo:before {
+ content: "\f2a9";
+}
+
+.fa-viadeo-square:before {
+ content: "\f2aa";
+}
+
+.fa-snapchat:before {
+ content: "\f2ab";
+}
+
+.fa-snapchat-ghost:before {
+ content: "\f2ac";
+}
+
+.fa-snapchat-square:before {
+ content: "\f2ad";
+}
+
+.fa-pied-piper:before {
+ content: "\f2ae";
+}
+
+.fa-first-order:before {
+ content: "\f2b0";
+}
+
+.fa-yoast:before {
+ content: "\f2b1";
+}
+
+.fa-themeisle:before {
+ content: "\f2b2";
+}
+
+.fa-google-plus-circle:before,
+.fa-google-plus-official:before {
+ content: "\f2b3";
+}
+
+.fa-fa:before,
+.fa-font-awesome:before {
+ content: "\f2b4";
+}
+
+.fa-handshake-o:before {
+ content: "\f2b5";
+}
+
+.fa-envelope-open:before {
+ content: "\f2b6";
+}
+
+.fa-envelope-open-o:before {
+ content: "\f2b7";
+}
+
+.fa-linode:before {
+ content: "\f2b8";
+}
+
+.fa-address-book:before {
+ content: "\f2b9";
+}
+
+.fa-address-book-o:before {
+ content: "\f2ba";
+}
+
+.fa-vcard:before,
+.fa-address-card:before {
+ content: "\f2bb";
+}
+
+.fa-vcard-o:before,
+.fa-address-card-o:before {
+ content: "\f2bc";
+}
+
+.fa-user-circle:before {
+ content: "\f2bd";
+}
+
+.fa-user-circle-o:before {
+ content: "\f2be";
+}
+
+.fa-user-o:before {
+ content: "\f2c0";
+}
+
+.fa-id-badge:before {
+ content: "\f2c1";
+}
+
+.fa-drivers-license:before,
+.fa-id-card:before {
+ content: "\f2c2";
+}
+
+.fa-drivers-license-o:before,
+.fa-id-card-o:before {
+ content: "\f2c3";
+}
+
+.fa-quora:before {
+ content: "\f2c4";
+}
+
+.fa-free-code-camp:before {
+ content: "\f2c5";
+}
+
+.fa-telegram:before {
+ content: "\f2c6";
+}
+
+.fa-thermometer-4:before,
+.fa-thermometer:before,
+.fa-thermometer-full:before {
+ content: "\f2c7";
+}
+
+.fa-thermometer-3:before,
+.fa-thermometer-three-quarters:before {
+ content: "\f2c8";
+}
+
+.fa-thermometer-2:before,
+.fa-thermometer-half:before {
+ content: "\f2c9";
+}
+
+.fa-thermometer-1:before,
+.fa-thermometer-quarter:before {
+ content: "\f2ca";
+}
+
+.fa-thermometer-0:before,
+.fa-thermometer-empty:before {
+ content: "\f2cb";
+}
+
+.fa-shower:before {
+ content: "\f2cc";
+}
+
+.fa-bathtub:before,
+.fa-s15:before,
+.fa-bath:before {
+ content: "\f2cd";
+}
+
+.fa-podcast:before {
+ content: "\f2ce";
+}
+
+.fa-window-maximize:before {
+ content: "\f2d0";
+}
+
+.fa-window-minimize:before {
+ content: "\f2d1";
+}
+
+.fa-window-restore:before {
+ content: "\f2d2";
+}
+
+.fa-times-rectangle:before,
+.fa-window-close:before {
+ content: "\f2d3";
+}
+
+.fa-times-rectangle-o:before,
+.fa-window-close-o:before {
+ content: "\f2d4";
+}
+
+.fa-bandcamp:before {
+ content: "\f2d5";
+}
+
+.fa-grav:before {
+ content: "\f2d6";
+}
+
+.fa-etsy:before {
+ content: "\f2d7";
+}
+
+.fa-imdb:before {
+ content: "\f2d8";
+}
+
+.fa-ravelry:before {
+ content: "\f2d9";
+}
+
+.fa-eercast:before {
+ content: "\f2da";
+}
+
+.fa-microchip:before {
+ content: "\f2db";
+}
+
+.fa-snowflake-o:before {
+ content: "\f2dc";
+}
+
+.fa-superpowers:before {
+ content: "\f2dd";
+}
+
+.fa-wpexplorer:before {
+ content: "\f2de";
+}
+
+.fa-meetup:before {
+ content: "\f2e0";
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
diff --git a/assets/css/lifterlms-rtl.min.css b/assets/css/lifterlms-rtl.min.css
new file mode 100644
index 0000000000..d89d3197c0
--- /dev/null
+++ b/assets/css/lifterlms-rtl.min.css
@@ -0,0 +1,4 @@
+.llms-pagination ul:before,.llms-pagination ul:after,.llms-form-fields:before,.llms-checkout-cols-2:before,.llms-access-plans:before,.llms-loop-list:before,.llms-cols:before,.llms-form-fields:after,.llms-checkout-cols-2:after,.llms-access-plans:after,.llms-loop-list:after,.llms-cols:after{content:" ";display:table}.llms-pagination ul:after,.llms-form-fields:after,.llms-checkout-cols-2:after,.llms-access-plans:after,.llms-loop-list:after,.llms-cols:after{clear:both}.llms-cols .llms-col{width:100%}@media all and (min-width: 600px){.llms-cols [class*=llms-col-]{float:right}}.llms-flex-cols{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.llms-flex-cols [class*=llms-col]{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:100%}@media all and (min-width: 600px){.llms-cols .llms-col-1,.llms-flex-cols .llms-col-1{width:100%}.llms-cols .llms-col-2,.llms-flex-cols .llms-col-2{width:50%}.llms-cols .llms-col-3,.llms-flex-cols .llms-col-3{width:33.3333333333%}.llms-cols .llms-col-4,.llms-flex-cols .llms-col-4{width:25%}.llms-cols .llms-col-5,.llms-flex-cols .llms-col-5{width:20%}.llms-cols .llms-col-6,.llms-flex-cols .llms-col-6{width:16.6666666667%}.llms-cols .llms-col-7,.llms-flex-cols .llms-col-7{width:14.2857142857%}.llms-cols .llms-col-8,.llms-flex-cols .llms-col-8{width:12.5%}.llms-cols .llms-col-9,.llms-flex-cols .llms-col-9{width:11.1111111111%}.llms-cols .llms-col-10,.llms-flex-cols .llms-col-10{width:10%}.llms-cols .llms-col-11,.llms-flex-cols .llms-col-11{width:9.0909090909%}.llms-cols .llms-col-12,.llms-flex-cols .llms-col-12{width:8.3333333333%}}.llms-button-action,.llms-button-danger,.llms-button-primary,.llms-button-secondary{border:none;border-radius:8px;color:#fefefe;cursor:pointer;display:inline-block;font-size:18px;font-weight:700;text-decoration:none;text-shadow:none;line-height:1;margin:0;max-width:100%;padding:12px 24px;position:relative;-webkit-transition:all .5s ease;transition:all .5s ease}.llms-button-action:disabled,.llms-button-danger:disabled,.llms-button-primary:disabled,.llms-button-secondary:disabled{opacity:.5}.llms-button-action:hover,.llms-button-action:active,.llms-button-danger:hover,.llms-button-danger:active,.llms-button-primary:hover,.llms-button-primary:active,.llms-button-secondary:hover,.llms-button-secondary:active{color:#fefefe}.llms-button-action:focus,.llms-button-danger:focus,.llms-button-primary:focus,.llms-button-secondary:focus{color:#fefefe}.llms-button-action.auto,.llms-button-danger.auto,.llms-button-primary.auto,.llms-button-secondary.auto{width:auto}.llms-button-action.full,.llms-button-danger.full,.llms-button-primary.full,.llms-button-secondary.full{display:block;text-align:center;width:100%}.llms-button-action.square,.llms-button-danger.square,.llms-button-primary.square,.llms-button-secondary.square{padding:12px}.llms-button-action.small,.llms-button-danger.small,.llms-button-primary.small,.llms-button-secondary.small{font-size:13px;padding:8px 14px}.llms-button-action.small.square,.llms-button-danger.small.square,.llms-button-primary.small.square,.llms-button-secondary.small.square{padding:8px}.llms-button-action.large,.llms-button-danger.large,.llms-button-primary.large,.llms-button-secondary.large{font-size:18px;line-height:1.2;padding:16px 32px}.llms-button-action.large.square,.llms-button-danger.large.square,.llms-button-primary.large.square,.llms-button-secondary.large.square{padding:16px}.llms-button-action.large .fa,.llms-button-danger.large .fa,.llms-button-primary.large .fa,.llms-button-secondary.large .fa{right:-7px;position:relative}a.llms-button-action,a.llms-button-danger,a.llms-button-primary{color:#fefefe}.llms-button-primary{background:#466dd8}.llms-button-primary:hover,.llms-button-primary.clicked{background:#274eba}.llms-button-primary:focus,.llms-button-primary:active{background:#6888df}.llms-button-secondary{background:#e1e1e1;color:#444}.llms-button-secondary:hover{color:#414141;background:#cdcdcd}.llms-button-secondary:focus,.llms-button-secondary:active{color:#414141;background:#ebebeb}a.llms-button-secondary{color:#444}.llms-button-action{background:#c05621}.llms-button-action:hover,.llms-button-action.clicked{background:#f67d28}.llms-button-action:focus,.llms-button-action:active{background:#faad76}.llms-button-danger{background:#bb231c}.llms-button-danger:hover{background:#981c17}.llms-button-danger:focus,.llms-button-danger:active{background:#cd261f}.llms-button-outline{background:rgba(0,0,0,0);border:3px solid #1d2327;border-radius:8px;color:#1d2327;cursor:pointer;font-size:16px;font-weight:700;text-decoration:none;text-shadow:none;line-height:1;margin:0;max-width:100%;padding:12px 24px;position:relative;-webkit-transition:all .5s ease;transition:all .5s ease}.llms-button-outline:disabled{opacity:.5}.llms-button-outline:hover,.llms-button-outline:active{color:#1d2327}.llms-button-outline:focus{color:#1d2327}.llms-button-outline.auto{width:auto}.llms-button-outline.full{display:block;text-align:center;width:100%}.llms-button-outline.square{padding:12px}.llms-course-continue-button{display:inline-block}.llms-donut{background-color:#f1f1f1;background-image:none;border-radius:50%;color:#466dd8;height:200px;overflow:hidden;position:relative;width:200px}.llms-donut:before,.llms-donut:after{content:" ";display:table}.llms-donut:after{clear:both}.llms-donut svg{overflow:visible !important;pointer-events:none;width:100%}.llms-donut svg path{fill:none;stroke-width:35px;stroke:#466dd8}.llms-donut.mini{height:36px;width:36px}.llms-donut.mini .percentage{font-size:10px}.llms-donut.small{height:100px;width:100px}.llms-donut.small .percentage{font-size:18px}.llms-donut.medium{height:130px;width:130px}.llms-donut.medium .percentage{font-size:26px}.llms-donut.large{height:260px;width:260px}.llms-donut.large .percentage{font-size:48px}.llms-donut .inside{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;border-radius:50%;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;height:80%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;right:50%;position:absolute;text-align:center;-webkit-transform:translate(50%, -50%);transform:translate(50%, -50%);width:80%;top:50%;z-index:3}.llms-donut .percentage{line-height:1.2;font-size:34px}.llms-donut .caption{font-size:75%}.lifterlms [data-tip],.lifterlms [data-title-default],.lifterlms [data-title-active],.llms-metabox [data-tip],.llms-metabox [data-title-default],.llms-metabox [data-title-active],.llms-mb-container [data-tip],.llms-mb-container [data-title-default],.llms-mb-container [data-title-active],.llms-quiz-wrapper [data-tip],.llms-quiz-wrapper [data-title-default],.llms-quiz-wrapper [data-title-active]{position:relative}.lifterlms [data-tip].tip--top-right:before,.lifterlms [data-title-default].tip--top-right:before,.lifterlms [data-title-active].tip--top-right:before,.llms-metabox [data-tip].tip--top-right:before,.llms-metabox [data-title-default].tip--top-right:before,.llms-metabox [data-title-active].tip--top-right:before,.llms-mb-container [data-tip].tip--top-right:before,.llms-mb-container [data-title-default].tip--top-right:before,.llms-mb-container [data-title-active].tip--top-right:before,.llms-quiz-wrapper [data-tip].tip--top-right:before,.llms-quiz-wrapper [data-title-default].tip--top-right:before,.llms-quiz-wrapper [data-title-active].tip--top-right:before{bottom:100%;right:-10px}.lifterlms [data-tip].tip--top-right:hover:before,.lifterlms [data-title-default].tip--top-right:hover:before,.lifterlms [data-title-active].tip--top-right:hover:before,.llms-metabox [data-tip].tip--top-right:hover:before,.llms-metabox [data-title-default].tip--top-right:hover:before,.llms-metabox [data-title-active].tip--top-right:hover:before,.llms-mb-container [data-tip].tip--top-right:hover:before,.llms-mb-container [data-title-default].tip--top-right:hover:before,.llms-mb-container [data-title-active].tip--top-right:hover:before,.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-right:after,.lifterlms [data-title-default].tip--top-right:after,.lifterlms [data-title-active].tip--top-right:after,.llms-metabox [data-tip].tip--top-right:after,.llms-metabox [data-title-default].tip--top-right:after,.llms-metabox [data-title-active].tip--top-right:after,.llms-mb-container [data-tip].tip--top-right:after,.llms-mb-container [data-title-default].tip--top-right:after,.llms-mb-container [data-title-active].tip--top-right:after,.llms-quiz-wrapper [data-tip].tip--top-right:after,.llms-quiz-wrapper [data-title-default].tip--top-right:after,.llms-quiz-wrapper [data-title-active].tip--top-right:after{border-top-color:#444;right:6px;top:0}.lifterlms [data-tip].tip--top-right:hover:after,.lifterlms [data-title-default].tip--top-right:hover:after,.lifterlms [data-title-active].tip--top-right:hover:after,.llms-metabox [data-tip].tip--top-right:hover:after,.llms-metabox [data-title-default].tip--top-right:hover:after,.llms-metabox [data-title-active].tip--top-right:hover:after,.llms-mb-container [data-tip].tip--top-right:hover:after,.llms-mb-container [data-title-default].tip--top-right:hover:after,.llms-mb-container [data-title-active].tip--top-right:hover:after,.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after{top:-6px}.lifterlms [data-tip].tip--top-left:before,.lifterlms [data-title-default].tip--top-left:before,.lifterlms [data-title-active].tip--top-left:before,.llms-metabox [data-tip].tip--top-left:before,.llms-metabox [data-title-default].tip--top-left:before,.llms-metabox [data-title-active].tip--top-left:before,.llms-mb-container [data-tip].tip--top-left:before,.llms-mb-container [data-title-default].tip--top-left:before,.llms-mb-container [data-title-active].tip--top-left:before,.llms-quiz-wrapper [data-tip].tip--top-left:before,.llms-quiz-wrapper [data-title-default].tip--top-left:before,.llms-quiz-wrapper [data-title-active].tip--top-left:before{bottom:100%;left:-10px}.lifterlms [data-tip].tip--top-left:hover:before,.lifterlms [data-title-default].tip--top-left:hover:before,.lifterlms [data-title-active].tip--top-left:hover:before,.llms-metabox [data-tip].tip--top-left:hover:before,.llms-metabox [data-title-default].tip--top-left:hover:before,.llms-metabox [data-title-active].tip--top-left:hover:before,.llms-mb-container [data-tip].tip--top-left:hover:before,.llms-mb-container [data-title-default].tip--top-left:hover:before,.llms-mb-container [data-title-active].tip--top-left:hover:before,.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-left:after,.lifterlms [data-title-default].tip--top-left:after,.lifterlms [data-title-active].tip--top-left:after,.llms-metabox [data-tip].tip--top-left:after,.llms-metabox [data-title-default].tip--top-left:after,.llms-metabox [data-title-active].tip--top-left:after,.llms-mb-container [data-tip].tip--top-left:after,.llms-mb-container [data-title-default].tip--top-left:after,.llms-mb-container [data-title-active].tip--top-left:after,.llms-quiz-wrapper [data-tip].tip--top-left:after,.llms-quiz-wrapper [data-title-default].tip--top-left:after,.llms-quiz-wrapper [data-title-active].tip--top-left:after{border-top-color:#444;left:6px;top:0}.lifterlms [data-tip].tip--top-left:hover:after,.lifterlms [data-title-default].tip--top-left:hover:after,.lifterlms [data-title-active].tip--top-left:hover:after,.llms-metabox [data-tip].tip--top-left:hover:after,.llms-metabox [data-title-default].tip--top-left:hover:after,.llms-metabox [data-title-active].tip--top-left:hover:after,.llms-mb-container [data-tip].tip--top-left:hover:after,.llms-mb-container [data-title-default].tip--top-left:hover:after,.llms-mb-container [data-title-active].tip--top-left:hover:after,.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after{top:-6px}.lifterlms [data-tip].tip--bottom-left:before,.lifterlms [data-title-default].tip--bottom-left:before,.lifterlms [data-title-active].tip--bottom-left:before,.llms-metabox [data-tip].tip--bottom-left:before,.llms-metabox [data-title-default].tip--bottom-left:before,.llms-metabox [data-title-active].tip--bottom-left:before,.llms-mb-container [data-tip].tip--bottom-left:before,.llms-mb-container [data-title-default].tip--bottom-left:before,.llms-mb-container [data-title-active].tip--bottom-left:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:before{top:100%;left:-10px}.lifterlms [data-tip].tip--bottom-left:hover:before,.lifterlms [data-title-default].tip--bottom-left:hover:before,.lifterlms [data-title-active].tip--bottom-left:hover:before,.llms-metabox [data-tip].tip--bottom-left:hover:before,.llms-metabox [data-title-default].tip--bottom-left:hover:before,.llms-metabox [data-title-active].tip--bottom-left:hover:before,.llms-mb-container [data-tip].tip--bottom-left:hover:before,.llms-mb-container [data-title-default].tip--bottom-left:hover:before,.llms-mb-container [data-title-active].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-left:after,.lifterlms [data-title-default].tip--bottom-left:after,.lifterlms [data-title-active].tip--bottom-left:after,.llms-metabox [data-tip].tip--bottom-left:after,.llms-metabox [data-title-default].tip--bottom-left:after,.llms-metabox [data-title-active].tip--bottom-left:after,.llms-mb-container [data-tip].tip--bottom-left:after,.llms-mb-container [data-title-default].tip--bottom-left:after,.llms-mb-container [data-title-active].tip--bottom-left:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:after{border-bottom-color:#444;left:6px;bottom:0}.lifterlms [data-tip].tip--bottom-left:hover:after,.lifterlms [data-title-default].tip--bottom-left:hover:after,.lifterlms [data-title-active].tip--bottom-left:hover:after,.llms-metabox [data-tip].tip--bottom-left:hover:after,.llms-metabox [data-title-default].tip--bottom-left:hover:after,.llms-metabox [data-title-active].tip--bottom-left:hover:after,.llms-mb-container [data-tip].tip--bottom-left:hover:after,.llms-mb-container [data-title-default].tip--bottom-left:hover:after,.llms-mb-container [data-title-active].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after{bottom:-6px}.lifterlms [data-tip].tip--bottom-right:before,.lifterlms [data-title-default].tip--bottom-right:before,.lifterlms [data-title-active].tip--bottom-right:before,.llms-metabox [data-tip].tip--bottom-right:before,.llms-metabox [data-title-default].tip--bottom-right:before,.llms-metabox [data-title-active].tip--bottom-right:before,.llms-mb-container [data-tip].tip--bottom-right:before,.llms-mb-container [data-title-default].tip--bottom-right:before,.llms-mb-container [data-title-active].tip--bottom-right:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:before{top:100%;right:-10px}.lifterlms [data-tip].tip--bottom-right:hover:before,.lifterlms [data-title-default].tip--bottom-right:hover:before,.lifterlms [data-title-active].tip--bottom-right:hover:before,.llms-metabox [data-tip].tip--bottom-right:hover:before,.llms-metabox [data-title-default].tip--bottom-right:hover:before,.llms-metabox [data-title-active].tip--bottom-right:hover:before,.llms-mb-container [data-tip].tip--bottom-right:hover:before,.llms-mb-container [data-title-default].tip--bottom-right:hover:before,.llms-mb-container [data-title-active].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-right:after,.lifterlms [data-title-default].tip--bottom-right:after,.lifterlms [data-title-active].tip--bottom-right:after,.llms-metabox [data-tip].tip--bottom-right:after,.llms-metabox [data-title-default].tip--bottom-right:after,.llms-metabox [data-title-active].tip--bottom-right:after,.llms-mb-container [data-tip].tip--bottom-right:after,.llms-mb-container [data-title-default].tip--bottom-right:after,.llms-mb-container [data-title-active].tip--bottom-right:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:after{border-bottom-color:#444;right:6px;bottom:0}.lifterlms [data-tip].tip--bottom-right:hover:after,.lifterlms [data-title-default].tip--bottom-right:hover:after,.lifterlms [data-title-active].tip--bottom-right:hover:after,.llms-metabox [data-tip].tip--bottom-right:hover:after,.llms-metabox [data-title-default].tip--bottom-right:hover:after,.llms-metabox [data-title-active].tip--bottom-right:hover:after,.llms-mb-container [data-tip].tip--bottom-right:hover:after,.llms-mb-container [data-title-default].tip--bottom-right:hover:after,.llms-mb-container [data-title-active].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after{bottom:-6px}.lifterlms [data-tip]:before,.lifterlms [data-title-default]:before,.lifterlms [data-title-active]:before,.llms-metabox [data-tip]:before,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-active]:before,.llms-mb-container [data-tip]:before,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-active]:before,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-active]:before{background:#444;border-radius:4px;color:#fff;font-size:13px;line-height:1.2;padding:8px;max-width:300px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.lifterlms [data-tip]:after,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:after{content:"";border:6px solid rgba(0,0,0,0);height:0;width:0}.lifterlms [data-tip]:before,.lifterlms [data-tip]:after,.lifterlms [data-title-default]:before,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:before,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:before,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:before,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:before,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:before,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:before,.llms-quiz-wrapper [data-title-active]:after{opacity:0;-webkit-transition:all .2s .1s ease;transition:all .2s .1s ease;position:absolute;pointer-events:none;visibility:hidden}.lifterlms [data-tip]:hover:before,.lifterlms [data-tip]:hover:after,.lifterlms [data-title-default]:hover:before,.lifterlms [data-title-default]:hover:after,.lifterlms [data-title-active]:hover:before,.lifterlms [data-title-active]:hover:after,.llms-metabox [data-tip]:hover:before,.llms-metabox [data-tip]:hover:after,.llms-metabox [data-title-default]:hover:before,.llms-metabox [data-title-default]:hover:after,.llms-metabox [data-title-active]:hover:before,.llms-metabox [data-title-active]:hover:after,.llms-mb-container [data-tip]:hover:before,.llms-mb-container [data-tip]:hover:after,.llms-mb-container [data-title-default]:hover:before,.llms-mb-container [data-title-default]:hover:after,.llms-mb-container [data-title-active]:hover:before,.llms-mb-container [data-title-active]:hover:after,.llms-quiz-wrapper [data-tip]:hover:before,.llms-quiz-wrapper [data-tip]:hover:after,.llms-quiz-wrapper [data-title-default]:hover:before,.llms-quiz-wrapper [data-title-default]:hover:after,.llms-quiz-wrapper [data-title-active]:hover:before,.llms-quiz-wrapper [data-title-active]:hover:after{opacity:1;-webkit-transition:all 0 .1s ease;transition:all 0 .1s ease;visibility:visible;z-index:99999999}.lifterlms [data-tip]:before,.llms-metabox [data-tip]:before,.llms-mb-container [data-tip]:before,.llms-quiz-wrapper [data-tip]:before{content:attr(data-tip)}.lifterlms [data-tip].active:before,.llms-metabox [data-tip].active:before,.llms-mb-container [data-tip].active:before,.llms-quiz-wrapper [data-tip].active:before{content:attr(data-tip-active)}.llms-membership-image{display:block;margin:0 auto}.llms-course-image{display:block;margin:0 auto;max-width:100%}.llms-featured-image{display:block;margin:0 auto}.llms-image-thumb{width:150px}.llms-video-wrapper .center-video{height:auto;max-width:100%;overflow:hidden;position:relative;padding-top:56.25%;text-align:center}.llms-video-wrapper .center-video>.wp-video,.llms-video-wrapper .center-video .fluid-width-video-wrapper,.llms-video-wrapper .center-video iframe,.llms-video-wrapper .center-video object,.llms-video-wrapper .center-video embed{height:100%;right:0;position:absolute;top:0;width:100%}.llms-video-wrapper .center-video>.wp-video{width:100% !important}.llms-video-wrapper .center-video .fluid-width-video-wrapper{padding-top:0 !important}.clear{clear:both;width:100%}.llms-featured-image{text-align:center}#main-content .llms-payment-options p{margin:0;font-size:16px}.llms-option{display:block;position:relative;margin:20px 0;padding-right:40px;font-size:16px}.llms-option label{cursor:pointer;position:static}.llms-option:first-child{margin-top:0}.llms-option:last-child{margin-bottom:0}#main-content .llms-option:last-child{margin-bottom:0}.llms-option input[type=radio]{display:block;position:absolute;top:3px;right:0;z-index:0}.llms-option input[type=radio]{display:inline-block}.llms-option input[type=radio]+label span.llms-radio{display:none}.llms-option input[type=radio]+label span.llms-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:20;position:absolute;top:0;right:-2px;display:inline-block;width:24px;height:24px;border-radius:50%;cursor:pointer;vertical-align:middle;-webkit-box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.5) 0 0 0 1px;box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.5) 0 0 0 1px;background:#efefef;background-image:radial-gradient(ellipse at center, #bb231c 0%, #bb231c 40%, #efefef 45%);background-repeat:no-repeat;-webkit-transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);transition:background-position .15s cubic-bezier(0.8, 0, 1, 1)}.llms-option input[type=radio]:checked+label span.llms-radio{-webkit-transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1)}.llms-option input[type=radio]+label span.llms-radio{background-position:-24px 0}.llms-option input[type=radio]:checked+label span.llms-radio{background-position:100% 0}.llms-option input[type=submit]{border:none;background:#bb231c;color:#fff;font-size:20px;padding:10px 0;border-radius:3px;cursor:pointer;width:100%}.llms-styled-text{padding:14px 0}.llms-notice-box{border-radius:3px;z-index:10;margin:10px 0;padding:15px 20px;border:1px solid #ccc;list-style-type:none;width:100%;overflow:auto}.llms-notice-box input[type=text]{height:auto}.llms-notice-box .col-1-1{width:100%}.llms-notice-box .col-1-1 input[type=text]{width:100%}.llms-notice-box .col-1-2{width:50%;float:right}@media screen and (max-width: 768px){.llms-notice-box .col-1-2{width:100%}}.llms-notice-box .col-1-3{width:33%;float:right;margin-left:10px}.llms-notice-box .col-1-4{width:25%;float:right;margin-left:10px}@media screen and (max-width: 768px){.llms-notice-box .col-1-4{width:100%}}.llms-notice-box .col-1-6{width:16.6%;float:right;margin-left:10px}.llms-notice-box .col-1-8{width:11%;float:left}.llms-notice-box .llms-pad-right{padding-left:10px}@media screen and (max-width: 768px){.llms-notice-box .llms-pad-right{padding-left:0}}input[type=text].cc_cvv,#cc_cvv{margin-left:0;width:23%;float:left}.llms-clear-box{border-radius:3px;z-index:10;margin:10px 0;padding:15px 20px;list-style-type:none;width:100%;overflow:auto}.llms-price-label{font-weight:normal}.llms-final-price{font-weight:bold;float:left}.llms-center-content{text-align:center}.llms-input-text{background-color:#fff;border:1px solid #ddd;color:#333;font-size:18px;font-weight:300;padding:16px;width:100%}.llms-price{margin-bottom:0;font-weight:bold}.llms-price-loop{margin-bottom:0;font-weight:bold}.courses .entry{padding:0}.list-view .site-content .llms-course-list .hentry,.list-view .site-content .llms-membership-list .hentry{border-top:0;padding-top:0}.llms-content{width:100%}.llms-lesson-button-wrapper{width:100%;display:block;clear:both;text-align:center}.llms-template-wrapper{width:100%;display:block;clear:both}.llms-button-wrapper{width:100%;display:block;clear:both;text-align:center}.llms-styled-select{border:1px solid #ccc;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px;overflow:hidden;position:relative}.llms-styled-select,.llms-styled-select select{width:100%}select:focus{outline:none}.llms-styled-select select{height:34px;padding:5px 5px 5px 0;background:rgba(0,0,0,0);border:none;-webkit-appearance:none;font-size:16px;color:#444}@-moz-document url-prefix(){.--ms-styled-select select{width:110%}}.llms-styled-select .fa-sort-desc{position:absolute;top:0;left:12px;font-size:24px;color:#ccc}select::-ms-expand{display:none}_:-o-prefocus .llms-styled-select,.selector .llms-styled-select{background:none}.llms-form-item-wrapper{margin-bottom:1em}.llms-progress-circle{position:relative;width:200px;height:200px;float:right}.llms-progress-circle-count{top:27%;position:absolute;width:94%;text-align:center;color:#666;font-size:44px}.llms-progress-circle svg{position:absolute;width:200px;height:200px}.llms-progress-circle circle{fill:rgba(0,0,0,0)}svg .llms-background-circle{fill:rgba(0,0,0,0);stroke-width:10px;stroke:#f1f2f1;stroke-dasharray:430}svg .llms-animated-circle{fill:rgba(0,0,0,0);stroke-width:10px;stroke:#e5554e;stroke-dasharray:430;stroke-dashoffset:410}.llms-widget-syllabus .llms-lesson.current-lesson .lesson-title{font-weight:700}.llms-widget-syllabus .section-header{display:-webkit-box;display:-ms-flexbox;display:flex;gap:5px}.llms-widget-syllabus .section-header .llms-collapse-caret{text-align:right;width:14px}.llms-widget-syllabus .llms-lesson-complete,.llms-widget-syllabus .lesson-complete-placeholder{font-size:18px;margin-left:5px;color:#ccc}.llms-widget-syllabus .llms-lesson-complete.done,.llms-widget-syllabus .lesson-complete-placeholder.done{color:#466dd8}.llms-widget-syllabus .section-title{font-weight:bold}.llms-widget-syllabus .lesson-title a{text-decoration:underline}.llms-widget-syllabus .lesson-title.done a{color:#666;text-decoration:line-through}.llms-widget-syllabus ul{list-style-type:none;margin:0;padding:0}.llms-widget-syllabus ul li{list-style-type:none;margin:0 0 10px 0}.llms-widget-syllabus ul li ul{margin:0 0 15px 0}.llms-widget-syllabus ul li ul li{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 0 10px 0;padding:0}.llms-remove-coupon{float:left}.llms-lesson-preview.is-complete .llms-lesson-link-locked{padding-right:75px}.llms-lesson-tooltip{display:none;position:absolute;color:#000;background-color:silver;padding:.25em;border-radius:2px;z-index:100;top:0;right:50%;text-align:center;-webkit-transform:translateX(50%) translateY(-100%);transform:translateX(50%) translateY(-100%)}.llms-lesson-tooltip:after{content:"";width:0;height:0;border-top:8px solid silver;border-right:8px solid rgba(0,0,0,0);border-left:8px solid rgba(0,0,0,0);position:absolute;bottom:-8px;right:50%;-webkit-transform:translateX(50%);transform:translateX(50%)}.llms-lesson-tooltip.active{display:inline-block}.llms-favorite-wrapper{cursor:pointer}.llms-favorite-wrapper .fa-heart{color:#ef476f}.llms-has-favorite .llms-parent-course-link{display:inline-block;margin-bottom:20px}.llms-has-favorite .llms-parent-course-link+.llms-favorite-wrapper{float:left;margin:0}.llms-syllabus-wrapper .llms-has-favorite{text-align:right}.llms-syllabus-wrapper .llms-has-favorite .llms-favorite-wrapper{display:inline-block}.llms-loop-list{list-style:none;margin:0 -10px;padding:0}@media all and (min-width: 600px){.llms-loop-list.cols-1 .llms-loop-item{width:100%}.llms-loop-list.cols-2 .llms-loop-item{width:50%}.llms-loop-list.cols-3 .llms-loop-item{width:33.3333333333%}.llms-loop-list.cols-4 .llms-loop-item{width:25%}.llms-loop-list.cols-5 .llms-loop-item{width:20%}.llms-loop-list.cols-6 .llms-loop-item{width:16.6666666667%}}.llms-loop-item{float:right;list-style:none;margin:0;padding:0;width:100%}.llms-loop-item-content{background:#fefefe;border:1px solid #dedede;border-radius:6px;overflow:hidden;padding-bottom:15px;margin:10px}.llms-loop-item-content .llms-loop-link{color:#010101;display:block;text-decoration:none}.llms-loop-item-content .llms-loop-link:visited{color:#010101}.llms-loop-item-content .llms-featured-image{display:block;max-width:100%}.llms-loop-item-content .llms-loop-title{color:#010101;margin:15px 0}.llms-loop-item-content .llms-loop-title:hover{color:#466dd8}.llms-loop-item-content .llms-meta,.llms-loop-item-content .llms-author,.llms-loop-item-content .llms-loop-title{padding:0 15px}.llms-loop-item-content .llms-meta,.llms-loop-item-content .llms-author{color:#444;display:block;font-size:14px;margin-bottom:10px}.llms-loop-item-content .llms-meta:last-child,.llms-loop-item-content .llms-author:last-child{margin-bottom:0}.llms-loop-item-content .llms-author{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:5px}.llms-loop-item-content .llms-featured-img-wrap{overflow:hidden}.llms-loop-item-content p{margin-bottom:0}.llms-loop-item-content .llms-progress{margin:0;height:.4em}.llms-loop-item-content .llms-progress .progress__indicator{display:none}.llms-loop-item-content .llms-progress .llms-progress-bar{background-color:#f6f6f6;left:0;top:0}.llms-meta-info{margin:40px 0}.llms-meta-info .llms-meta-title{margin:0}.llms-meta-info .llms-meta p{margin-bottom:0}.llms-meta-info .llms-meta span{font-weight:700}.llms-course-progress{margin:40px auto;max-width:480px;text-align:center}.llms-syllabus-wrapper{margin:20px 0;text-align:right}.llms-syllabus-wrapper .llms-section-title{margin:40px 0 10px}.llms-syllabus-wrapper .llms-section-title+.llms-lesson-preview{border-top:1px solid #dedede}.llms-lesson-preview{border-left:1px solid #dedede;border-bottom:1px solid #dedede;border-right:1px solid #dedede;display:block;margin:0;max-width:100%;position:relative}.llms-lesson-preview.current-lesson .llms-lesson-title{font-weight:400}.llms-lesson-preview .llms-lesson-link{background:#fefefe;color:#010101;display:block;padding:15px;text-decoration:none;-webkit-transition:background-color .3s ease;transition:background-color .3s ease}.llms-lesson-preview .llms-lesson-link:hover{background:#eaeaea}.llms-lesson-preview .llms-lesson-link:visited{color:#212121}.llms-lesson-preview .llms-lesson-link.llms-lesson-link-locked{background:#efefef;color:#666}.llms-lesson-preview .llms-lesson-link.llms-lesson-link-locked:hover{background:#dedede}.llms-lesson-preview .llms-lesson-link .llms-lesson-preview-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.llms-lesson-preview .llms-lesson-thumbnail{margin-bottom:15px}.llms-lesson-preview .llms-lesson-thumbnail img{display:block;height:auto;width:100%}.llms-lesson-preview .llms-lesson-title{font-weight:700;margin:0 auto 5px}.llms-lesson-preview .llms-lesson-title:last-child{margin-bottom:0}.llms-lesson-preview .llms-lesson-excerpt{margin-top:5px}.llms-lesson-preview .llms-lesson-excerpt p{margin:0 0 10px 0;padding:0}.llms-lesson-preview .llms-lesson-excerpt p:last-of-type{margin:0}.llms-lesson-preview .llms-main{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.llms-lesson-preview .llms-extra{min-width:50px;text-align:left}.llms-lesson-preview .llms-lesson-counter,.llms-lesson-preview .llms-free-lesson-svg,.llms-lesson-preview .llms-lesson-complete,.llms-lesson-preview .llms-lesson-complete-placeholder{display:block}.llms-lesson-preview.is-free .llms-lesson-complete,.llms-lesson-preview.is-complete .llms-lesson-complete{color:#466dd8}.llms-lesson-preview.is-complete .llms-lesson-title:not(.llms-student-dashboard .llms-lesson-title):not(.llms-course-navigation .llms-lesson-title){text-decoration:line-through}.llms-lesson-preview .llms-icon-free{background:#466dd8;border-radius:6px;color:#fefefe;display:inline-block;font-size:14px;font-weight:bold;line-height:1;padding:5px 8px 4px;white-space:nowrap}.llms-lesson-preview.is-incomplete .llms-lesson-complete{color:#cacaca}.llms-lesson-preview .llms-lesson-counter{font-size:16px;margin-bottom:5px}.llms-lesson-preview .llms-free-lesson-svg{fill:currentColor;height:23px;width:50px}.llms-course-navigation{display:-webkit-box;display:-ms-flexbox;display:flex;gap:20px}.llms-course-navigation .llms-prev-lesson,.llms-course-navigation .llms-next-lesson,.llms-course-navigation .llms-back-to-course{-webkit-box-flex:1;-ms-flex:1;flex:1}.llms-course-navigation .llms-prev-lesson+.llms-back-to-course{text-align:left}.llms-course-navigation .llms-next-lesson .llms-lesson-preview .llms-lesson-link{text-align:left}.llms-course-navigation .llms-lesson-preview{border:1px solid #dedede}.llms-course-navigation .llms-lesson-link{display:block}.llms-progress{clear:both;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;position:relative;height:1em;width:100%;margin:15px 0}.llms-progress .llms-progress-bar{background-color:#dedede;position:relative;height:.4em;top:.3em;width:100%}.llms-progress .progress-bar-complete{background-color:#ef476f;height:100%}.progress__indicator{float:left;text-align:left;height:1em;line-height:1em;margin-right:5px;white-space:nowrap}.llms-author .name{margin-right:5px}.llms-author .label{margin-right:5px}.llms-author .avatar{border-radius:50%}.llms-author .bio{margin-top:5px}.llms-instructor-info{margin:40px 0}.llms-instructor-info .llms-meta-title{margin:0}.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author{margin-right:0}.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author{margin-left:0}.llms-instructor-info .llms-instructors .llms-author{background:#fefefe;border:1px solid #dedede;border-top:4px solid #466dd8;border-bottom-left-radius:6px;border-bottom-right-radius:6px;color:#010101;text-align:center;margin:45px 0 0;padding:0 20px 20px}.llms-instructor-info .llms-instructors .llms-author .avatar{background:#466dd8;border:4px solid #466dd8;display:block;margin:-35px auto 10px}.llms-instructor-info .llms-instructors .llms-author .llms-author-info{display:block}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name{font-weight:700}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label{font-size:85%}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio{font-size:90%;margin-bottom:0}.llms_review{margin:20px 0px;padding:10px}.llms_review h5{font-size:17px;margin:3px 0px}.llms_review h6{font-size:13px}.llms_review p{font-size:15px}.review_box [type=text]{margin:10px 0px}.review_box h5{color:red;display:none}.review_box+.thank_you_box{display:none}.llms-notice{background:rgba(70,109,216,.3);border-color:#466dd8;border-style:solid;border-width:1px;border-radius:6px;padding:15px;margin-bottom:40px}.llms-notice a{color:inherit}.llms-notice p:last-child,.llms-notice ul:last-child{margin-bottom:0}.llms-notice li{list-style-type:none}.llms-notice.llms-debug{background:rgba(202,202,202,.3);border-color:#cacaca}.llms-notice.llms-error{background:rgba(187,35,28,.15);border-color:#bb231c}.llms-notice.llms-success{background:rgba(77,141,60,.15);border-color:#4d8d3c}.entry-content .llms-notice{margin:0 0 40px}.entry-content .llms-notice li{list-style-type:none}ul.llms-achievements-loop,.lifterlms ul.llms-achievements-loop,ul.llms-certificates-loop,.lifterlms ul.llms-certificates-loop{list-style-type:none;margin:0 -10px;padding:0}ul.llms-achievements-loop:before,ul.llms-achievements-loop:after,.lifterlms ul.llms-achievements-loop:before,.lifterlms ul.llms-achievements-loop:after,ul.llms-certificates-loop:before,ul.llms-certificates-loop:after,.lifterlms ul.llms-certificates-loop:before,.lifterlms ul.llms-certificates-loop:after{content:" ";display:table}ul.llms-achievements-loop:after,.lifterlms ul.llms-achievements-loop:after,ul.llms-certificates-loop:after,.lifterlms ul.llms-certificates-loop:after{clear:both}ul.llms-achievements-loop li.llms-achievement-loop-item,ul.llms-achievements-loop li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop li.llms-certificate-loop-item,ul.llms-certificates-loop li.llms-achievement-loop-item,ul.llms-certificates-loop li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop li.llms-certificate-loop-item{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;float:right;list-style-type:none;margin:0;padding:10px;width:100%}@media all and (min-width: 600px){ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item{width:100%}ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item{width:50%}ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item{width:33.3333333333%}ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item{width:25%}ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item{width:20%}}.llms-achievement,.llms-certificate{background:#fefefe;border:none;border-radius:12px;color:#010101;display:block;padding:20px 0;text-decoration:none;width:100%}.llms-achievement:hover,.llms-certificate:hover{background:#eaeaea}.llms-achievement .llms-achievement-img,.llms-certificate .llms-achievement-img{display:block;margin:0 auto;max-width:80%}.llms-achievement .llms-achievement-title,.llms-certificate .llms-achievement-title{color:#010101;font-size:16px;margin:0;padding:10px;text-align:center}.llms-achievement .llms-certificate-title,.llms-certificate .llms-certificate-title{color:#010101;font-size:16px;margin:0;padding:0 0 10px}.llms-achievement .llms-achievement-info,.llms-achievement .llms-achievement-date,.llms-certificate .llms-achievement-info,.llms-certificate .llms-achievement-date{display:none}.llms-achievement .llms-achievement-content,.llms-certificate .llms-achievement-content{padding:20px}.llms-achievement .llms-achievement-content:empty,.llms-certificate .llms-achievement-content:empty{padding:0}.llms-achievement .llms-achievement-content *:last-child,.llms-certificate .llms-achievement-content *:last-child{margin-bottom:0}.llms-certificate{border:4px double #dedede;padding:20px 10px;background:#fefefe;text-align:center}.llms-certificate:hover{background:#fefefe;border-color:#eaeaea}.llms-achievement-modal .llms-achievement{background:#fff}.llms-achievement-modal .llms-achievement-info{display:block}.llms-achievement-modal .llms-achievement-title{display:none}.llms-notification{background:#fefefe;-webkit-box-shadow:0 1px 2px -2px #333,0 1px 1px -1px #333;box-shadow:0 1px 2px -2px #333,0 1px 1px -1px #333;border-top:4px solid #466dd8;color:#010101;opacity:0;padding:12px;position:fixed;left:-800px;top:24px;-webkit-transition:opacity .4s ease-in-out,left .4s ease-in-out;transition:opacity .4s ease-in-out,left .4s ease-in-out;visibility:hidden;width:auto;z-index:9999999}.llms-notification:before,.llms-notification:after{content:" ";display:table}.llms-notification:after{clear:both}.llms-notification.visible{right:12px;opacity:1;left:12px;-webkit-transition:opacity .4s ease-in-out,left .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,-webkit-transform .2s ease-in-out;transition:opacity .4s ease-in-out,left .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,-webkit-transform .2s ease-in-out;transition:opacity .4s ease-in-out,left .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,transform .2s ease-in-out;transition:opacity .4s ease-in-out,left .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,transform .2s ease-in-out,-webkit-transform .2s ease-in-out;visibility:visible}.llms-notification.visible:hover .llms-notification-dismiss{opacity:1}.llms-notification .llms-notification-content{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.llms-notification .llms-notification-main{-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:4;-ms-flex:4;flex:4;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.llms-notification .llms-notification-title{color:#010101;font-size:18px;margin:0}.llms-notification .llms-notification-body{font-size:14px;line-height:1.4}.llms-notification .llms-notification-body p,.llms-notification .llms-notification-body li{font-size:inherit}.llms-notification .llms-notification-body p{margin-bottom:8px}.llms-notification .llms-notification-body p img{max-width:100%}.llms-notification .llms-notification-body .llms-mini-cert{background:#f6f6f6;border:1px solid #d0d0d0;-webkit-box-shadow:inset 0 0 0 3px #fefefe,inset 0 0 0 4px #dedede;box-shadow:inset 0 0 0 3px #fefefe,inset 0 0 0 4px #dedede;padding:16px 16px 24px;margin-top:12px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert-title{font-size:16px;font-weight:700;margin:12px auto;text-align:center}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body{width:100%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(1){width:65%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(2){width:35%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(3){width:85%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(4){width:75%;margin-top:18px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(5){width:70%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(6){margin-right:12px;margin-bottom:-24px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(7){width:65%;margin-left:12px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-line{border-radius:2px;height:8px;background:#b0b0b0;background-image:-webkit-gradient(linear, right top, left top, from(#b0b0b0), color-stop(20%, #a0a0a0), color-stop(40%, #b0b0b0), to(#b0b0b0));background-image:linear-gradient(to left, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100%);background-repeat:no-repeat;margin:4px auto}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-dot{background:#b0b0b0;border-radius:50%;display:inline-block;content:"";height:24px;width:24px}.llms-notification .llms-notification-body .llms-mini-cert p{margin-bottom:0}.llms-notification .llms-notification-aside{-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:12px;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.llms-notification .llms-notification-icon{display:block;max-width:64px}.llms-notification .llms-notification-footer{border-top:1px solid #e5e5e5;font-size:12px;margin-top:12px;padding:6px 6px 0;text-align:left}.llms-notification .llms-notification-footer a{color:#010101}.llms-notification .llms-notification-dismiss{color:#bb231c;cursor:pointer;font-size:22px;position:absolute;left:10px;top:8px;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out}.llms-sd-notification-center .llms-notification-list,.llms-sd-notification-center .llms-notification-list-item{list-style-type:none;margin:0;padding:0}.llms-sd-notification-center .llms-notification-list-item:hover .llms-notification{background:#fcfcfc}.llms-sd-notification-center .llms-notification{opacity:1;border-top:1px solid #e5e5e5;right:auto;padding:24px;position:relative;left:auto;top:auto;visibility:visible;width:auto}.llms-sd-notification-center .llms-notification .llms-notification-aside{max-width:64px}.llms-sd-notification-center .llms-notification .llms-notification-footer{border:none;padding:0;text-align:right}.llms-sd-notification-center .llms-notification .llms-progress{display:none !important}.llms-sd-notification-center .llms-notification .llms-notification-date{color:#515151;float:right;margin-left:6px}.llms-sd-notification-center .llms-notification .llms-mini-cert{margin:0 auto;max-width:380px}@media all and (min-width: 480px){.llms-notification{left:-800px;width:360px}.llms-notification.visible{right:auto;left:24px}.llms-notification .llms-notification-dismiss{opacity:0}}.llms-pagination ul{list-style-type:none;margin:40px 0;padding:0}.llms-pagination ul li{float:right}.llms-pagination ul li a{border-bottom:0;text-decoration:none}.llms-pagination ul li .page-numbers{padding:.5em;text-decoration:underline}.llms-pagination ul li .page-numbers.current{text-decoration:none}.llms-tooltip{background:#2a2a2a;border-radius:4px;color:#fff;font-size:14px;line-height:1.2;opacity:0;top:-20px;padding:8px 12px;right:50%;position:absolute;pointer-events:none;-webkit-transform:translateX(50%);transform:translateX(50%);-webkit-transition:opacity .2s ease,top .2s ease;transition:opacity .2s ease,top .2s ease;max-width:320px}.llms-tooltip.show{top:-28px;opacity:1}.llms-tooltip:after{bottom:-8px;border-top:8px solid #2a2a2a;border-right:8px solid rgba(0,0,0,0);border-left:8px solid rgba(0,0,0,0);content:"";height:0;right:50%;position:absolute;-webkit-transform:translateX(50%);transform:translateX(50%);width:0}.webui-popover-title{font-size:initial;font-weight:initial;line-height:initial}.webui-popover-inverse .webui-popover-inner .close{color:#fff;opacity:.6;text-shadow:none}.webui-popover-inverse .webui-popover-inner .close:hover{opacity:.8}.webui-popover-inverse .webui-popover-content a{color:#fff;text-decoration:underline}.webui-popover-inverse .webui-popover-content a:hover{text-decoration:none}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results{margin:0;padding:0;list-style-type:none}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question{background:#efefef;border-radius:6px;margin:0 0 15px;position:relative;list-style-type:none}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer{color:inherit;display:-webkit-box;display:-ms-flexbox;display:flex;gap:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:15px 15px 15px 35px;text-decoration:none}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct,.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect{background:rgba(192,86,33,.2)}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon,.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon{background-color:#c05621}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct{background:rgba(77,141,60,.15)}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon{background-color:#4d8d3c}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect{background:rgba(187,35,28,.15)}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon{background-color:#bb231c}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question pre{overflow:auto}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title{font-size:22px;margin:0;line-height:1.4}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points{line-height:1.4}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip{position:absolute;left:-12px;top:-2px}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon{color:rgba(255,255,255,.65);border-radius:50%;font-size:30px;height:40px;line-height:40px;text-align:center;width:40px}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main{display:none;padding:0 15px 15px}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label{font-weight:700;margin:0 0 10px;padding:0}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers{margin:0;padding:0}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{padding:0;margin:0 30px 0 0}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child{list-style-type:none;margin-right:0}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img{height:auto;max-width:200px}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section{border-top:2px solid rgba(255,255,255,.5);margin-top:20px;padding-top:20px}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child{border-top:none;margin-top:0;padding-top:0}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers,.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers{list-style-type:none;margin:0;padding:0}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer,.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{display:inline-block;list-style-type:none;margin:0;padding:5px}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed{opacity:.5}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title{font-style:italic;font-weight:normal}.single-llms_quiz .llms-return{margin-bottom:10px}.single-llms_quiz .llms-quiz-results:before,.single-llms_quiz .llms-quiz-results:after{content:" ";display:table}.single-llms_quiz .llms-quiz-results:after{clear:both}.single-llms_quiz .llms-quiz-results .llms-donut.passing{color:#4d8d3c}.single-llms_quiz .llms-quiz-results .llms-donut.passing svg path{stroke:#4d8d3c}.single-llms_quiz .llms-quiz-results .llms-donut.pending{color:#555}.single-llms_quiz .llms-quiz-results .llms-donut.pending svg path{stroke:#555}.single-llms_quiz .llms-quiz-results .llms-donut.failing{color:#bb231c}.single-llms_quiz .llms-quiz-results .llms-donut.failing svg path{stroke:#bb231c}.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside,.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,.single-llms_quiz .llms-quiz-results .llms-quiz-results-history{margin-bottom:20px}@media all and (min-width: 600px){.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside{float:right;width:220px}.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside+.llms-quiz-results-main{float:left;width:calc(100% - 300px)}.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside+.llms-quiz-results-main+.llms-quiz-results-history{float:left;width:calc(100% - 300px)}.single-llms_quiz .llms-quiz-results .llms-quiz-results-history{clear:left}}.single-llms_quiz ul.llms-quiz-meta-info{list-style-type:none;margin:0;padding:0}.single-llms_quiz ul.llms-quiz-meta-info li{list-style-type:none;margin:10px 0 0;padding:0}.single-llms_quiz ul.llms-quiz-meta-info{margin-bottom:10px}.single-llms_quiz .llms-quiz-buttons{margin-top:10px;text-align:right}.single-llms_quiz .llms-quiz-buttons form{display:inline-block}.llms-quiz-question-wrapper{min-height:140px;position:relative}.llms-quiz-question-wrapper .llms-quiz-loading{bottom:20px;right:0;position:absolute;left:0;text-align:center;z-index:1}.llms-quiz-question-wrapper .llms-question-image img{height:auto;max-width:100%}.llms-quiz-ui{position:relative}.llms-quiz-ui .llms-quiz-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 0 40px}.llms-quiz-ui .llms-progress{background-color:#dedede;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;height:8px;margin:0;overflow:hidden}.llms-quiz-ui .llms-progress .progress-bar-complete{-webkit-transition:width .3s ease-in;transition:width .3s ease-in;width:0}.llms-quiz-ui .llms-error{background:rgba(187,35,28,.15);border:1px solid #bb231c;border-radius:6px;margin:20px 0;padding:15px}.llms-quiz-ui .llms-error:before,.llms-quiz-ui .llms-error:after{content:" ";display:table}.llms-quiz-ui .llms-error:after{clear:both}.llms-quiz-ui .llms-error a{color:#bb231c;float:left;font-size:22px;line-height:1;text-decoration:none}.llms-quiz-ui .llms-quiz-counter{display:none;color:#6a6a6a;float:left;font-size:18px}.llms-quiz-ui .llms-quiz-counter .llms-sep{margin:0 5px}.llms-quiz-ui .llms-quiz-nav{margin-top:20px}.llms-quiz-ui .llms-quiz-nav button{margin:0 0 0 10px}.llms-question-wrapper .llms-question-text{font-size:30px;font-weight:400;margin-bottom:15px}.llms-question-wrapper ol.llms-question-choices{list-style-type:none;margin:0;padding:0}.llms-question-wrapper ol.llms-question-choices li.llms-choice{border-bottom:1px solid #e8e8e8;margin:0;padding:0;position:relative}.llms-question-wrapper ol.llms-question-choices li.llms-choice:last-child{border-bottom:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture{border-bottom:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture label{display:inline-block;padding:0}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-marker{bottom:10px;margin:0;position:absolute;left:10px}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image{margin:2px;padding:20px;-webkit-transition:background .4s ease;transition:background .4s ease}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image img{display:block;height:auto;width:100%}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture input:checked~.llms-choice-image{background:#efefef}.llms-question-wrapper ol.llms-question-choices li.llms-choice input{display:none;right:0;pointer-events:none;position:absolute;top:0;visibility:hidden}.llms-question-wrapper ol.llms-question-choices li.llms-choice label{display:block;margin:0;padding:10px 20px;position:relative}.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .iterator{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .fa{display:inline}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker{background:#fefefe;color:#010101;display:inline-block;font-size:20px;height:40px;line-height:40px;margin-left:10px;text-align:center;-webkit-transition:all .2s ease;transition:all .2s ease;vertical-align:middle;width:40px}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker .fa{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--lister,.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--checkbox{border-radius:4px}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--radio{border-radius:50%}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker{background:#ef476f;color:#fff}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker .iterator{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker .fa{display:inline}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text{display:inline-block;font-size:18px;font-weight:400;line-height:1.6;margin:0;padding:0;vertical-align:middle;width:calc(100% - 60px)}.llms-quiz-timer{background:#fff;border:1px solid #4d8d3c;border-radius:4px;color:#4d8d3c;float:left;font-size:18px;line-height:1;margin-right:20px;padding:8px 12px;position:relative;white-space:nowrap;z-index:1}.llms-quiz-timer.color-half{border-color:#c05621;color:#c05621}.llms-quiz-timer.color-empty{border-color:#bb231c;color:#bb231c}.llms-quiz-timer .llms-tiles{display:inline-block;margin-right:5px}.voucher-expand{display:none}@media all and (min-width: 600px){.llms-access-plans.cols-1 .llms-access-plan{width:100%}.llms-access-plans.cols-2 .llms-access-plan{width:50%}.llms-access-plans.cols-3 .llms-access-plan{width:33.3333333333%}.llms-access-plans.cols-4 .llms-access-plan{width:25%}.llms-access-plans.cols-5 .llms-access-plan{width:20%}}.llms-free-enroll-form{margin-bottom:0}.llms-access-plan{-webkit-box-sizing:border-box;box-sizing:border-box;float:right;text-align:center;width:100%}.llms-access-plan .llms-access-plan-content,.llms-access-plan .llms-access-plan-footer{background:#f1f1f1}.llms-access-plan.featured .llms-access-plan-featured{background:#466dd8;border-top-right-radius:6px;border-top-left-radius:6px}.llms-access-plan.featured .llms-access-plan-content{border-radius:0}.llms-access-plan.featured .llms-access-plan-title{border-top-right-radius:0;border-top-left-radius:0}.llms-access-plan.featured .llms-access-plan-footer,.llms-access-plan.featured .llms-access-plan-content{border-right:3px solid #466dd8;border-left:3px solid #466dd8}.llms-access-plan.featured .llms-access-plan-footer{border-bottom-color:#466dd8}.llms-access-plan.on-sale .price-regular{text-decoration:line-through}.llms-access-plan.on-sale .price-regular .lifterlms-price{font-weight:400}.llms-access-plan .stamp{background:#466dd8;border-radius:6px;color:#fefefe;display:inline-block;font-size:14px;font-style:normal;font-weight:bold;line-height:1;padding:5px 8px 4px}.llms-access-plan-featured{color:#fff;font-size:14px;font-weight:700;letter-spacing:1px;margin:0 2px 0 2px;padding:5px 0 0}.llms-access-plan-content{border-top-left-radius:6px;border-top-right-radius:6px;margin:0 2px 0;overflow:hidden}.llms-access-plan-content .llms-access-plan-pricing{color:#010101;padding:20px 0 0}.llms-access-plan-content .llms-form-fields{padding:10px}.llms-access-plan-title{background:#466dd8;color:#fefefe;margin:0;padding:10px 15px}.llms-access-plan-pricing .llms-price-currency-symbol{font-size:14px;vertical-align:top}.llms-access-plan-price .lifterlms-price{font-weight:700}.llms-access-plan-price.sale{padding:5px 0;border-top:1px solid #d0d0d0;border-bottom:1px solid #d0d0d0}.llms-access-plan-trial,.llms-access-plan-schedule,.llms-access-plan-sale-end,.llms-access-plan-expiration{font-size:16px}.llms-access-plan-description{color:#010101;font-size:16px;padding:10px 10px 0}.llms-access-plan-description ul{margin:0}.llms-access-plan-description ul li{border-bottom:1px solid #d0d0d0;list-style-type:none}.llms-access-plan-description ul li:last-child{border-bottom:none}.llms-access-plan-description div:last-child,.llms-access-plan-description img:last-child,.llms-access-plan-description p:last-child,.llms-access-plan-description ul:last-child,.llms-access-plan-description li:last-child{margin-bottom:0}.llms-access-plan-restrictions{margin-top:20px}.llms-access-plan-restrictions .stamp{vertical-align:baseline}.llms-access-plan-restrictions ul{margin:5px 0 0 0;padding:0}.llms-access-plan-restrictions ul li{font-size:14px;list-style-type:none;margin:0;padding:0}.llms-access-plan-restrictions a{color:#c05621}.llms-access-plan-restrictions a:hover{color:#f67d28}.llms-access-plan-footer{border-bottom:3px solid #f1f1f1;border-bottom-right-radius:6px;border-bottom-left-radius:6px;padding:15px;margin:0 2px 2px 2px}.llms-access-plan-footer .button{display:inline-block}.llms-access-plan-footer .llms-access-plan-pricing{padding:0 0 10px}.webui-popover-content .llms-members-only-restrictions{text-align:center}.webui-popover-content .llms-members-only-restrictions ul,.webui-popover-content .llms-members-only-restrictions ol,.webui-popover-content .llms-members-only-restrictions li,.webui-popover-content .llms-members-only-restrictions p{margin:0;padding:0}.webui-popover-content .llms-members-only-restrictions ul,.webui-popover-content .llms-members-only-restrictions ol,.webui-popover-content .llms-members-only-restrictions li{list-style-type:none}.webui-popover-content .llms-members-only-restrictions li{padding:8px 0;border-top:1px solid #3b3b3b}.webui-popover-content .llms-members-only-restrictions li:first-child{border-top:none}.webui-popover-content .llms-members-only-restrictions li a{display:block}.llms-checkout-wrapper .llms-person-login-form-wrapper{margin-bottom:40px}.llms-checkout-wrapper form.llms-login{display:none}.llms-checkout-wrapper .llms-form-heading{margin:0 0 20px}.llms-checkout{position:relative}.llms-checkout-cols-2.llms-col-2 section{background-color:#fefefe;border:1px solid #ccc;border-radius:12px;padding:20px}.llms-checkout-cols-2.llms-col-2 section .llms-form-heading{padding:0}@media all and (min-width: 800px){.llms-checkout-cols-2 .llms-checkout-col{float:right}.llms-checkout-cols-2 .llms-checkout-col.llms-col-1{margin-left:20px;width:calc(58% - 20px)}.llms-checkout-cols-2 .llms-checkout-col.llms-col-2{margin-right:20px;width:calc(42% - 20px)}.llms-checkout-cols-2 .llms-checkout-col.llms-col-2 button{width:100%}}.llms-checkout-section{margin-bottom:40px;position:relative}.llms-checkout-section-content.llms-form-fields{margin:0px}.llms-checkout-section-content .llms-label{font-weight:400}.llms-checkout-section-content .llms-order-summary{list-style-type:none;margin:0;padding:0}.llms-checkout-section-content .llms-order-summary li{list-style-type:none;margin:0 0 15px 0}.llms-checkout-section-content .llms-order-summary :not(.llms-label){font-weight:700}.llms-checkout-section-content .llms-order-summary li.llms-pricing.on-sale .price-regular,.llms-checkout-section-content .llms-order-summary li.llms-pricing.has-coupon .price-regular{text-decoration:line-through}.llms-checkout-section-content .llms-coupon-wrapper{border-top:1px solid #dedede;margin-top:20px;padding-top:20px}.llms-checkout-section-content .llms-coupon-wrapper .llms-coupon-entry{display:none;margin-top:20px}.llms-form-field.llms-payment-gateway-option{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:8px}.llms-form-field.llms-payment-gateway-option label+span.llms-description{display:inline-block;margin-right:5px}.llms-form-field.llms-payment-gateway-option .llms-description a{border:none;-webkit-box-shadow:none;box-shadow:none;text-decoration:none}.llms-form-field.llms-payment-gateway-option .llms-description img{display:inline;max-height:22px;vertical-align:middle}.llms-checkout-wrapper ul.llms-payment-gateways{margin:5px 0 0;padding:0}ul.llms-payment-gateways{list-style-type:none}ul.llms-payment-gateways li:last-child:after{border-bottom:1px solid #dedede;content:"";display:block;margin:20px 0}ul.llms-payment-gateways .llms-payment-gateway{margin-bottom:30px;list-style-type:none}ul.llms-payment-gateways .llms-payment-gateway:last-child{margin-bottom:none}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-payment-gateway-option label{font-weight:700}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields{display:block}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields .llms-notice{margin-right:10px;margin-left:10px}ul.llms-payment-gateways .llms-payment-gateway .llms-form-field{padding-bottom:0}ul.llms-payment-gateways .llms-gateway-description{margin-right:40px}ul.llms-payment-gateways .llms-gateway-fields{display:none;margin:5px 0 20px}ul.llms-payment-gateways .llms-payment-gateway-error{padding:0 10px}.llms-checkout-confirm{margin:0}.llms-payment-method{margin:10px 10px 0}.llms-gateway-description p{font-size:14px;font-style:italic;margin:0}.llms-form-fields{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields *{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields.flush .llms-form-field{padding:0 0 20px}.llms-form-fields label:not(.llms-field-html label){font-weight:700}.llms-form-fields .wp-block-columns,.llms-form-fields .wp-block-column{margin-bottom:0}.llms-form-heading{padding:0 10px 10px}.llms-form-field{float:right;padding:0 10px 20px;position:relative;width:100%}.llms-form-field label:empty:after{content:" "}.llms-form-field [type=text],.llms-form-field [type=password],.llms-form-field [type=email],.llms-form-field [type=url],.llms-form-field [type=tel],.llms-form-field [type=number]{background-color:#fefefe;background-clip:padding-box;border:1px solid #999;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:16px;line-height:1;padding:8px 12px;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;width:100%}.llms-form-field input:focus,.llms-form-field input:focus-visible{border-color:#6888df;outline:thin solid}.llms-form-field select{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background-color:#fefefe;border:1px solid #999;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#010101;padding:8px 12px;margin:0;width:100%;font-family:inherit;font-size:16px;cursor:inherit;line-height:1.6;z-index:1;outline:none;background-repeat:no-repeat;background-image:linear-gradient(-45deg, transparent 50%, currentcolor 50%),linear-gradient(-135deg, currentcolor 50%, transparent 50%);background-position:left 15px top 1.3rem,left 10px top 1.3rem;background-size:5px 5px,5px 5px}.llms-form-field select::-ms-expand{display:none}.llms-form-field select:focus{border:1px solid #6888df;outline:thin solid}.llms-form-field.valid input[type=date],.llms-form-field.valid input[type=time],.llms-form-field.valid input[type=datetime-local],.llms-form-field.valid input[type=week],.llms-form-field.valid input[type=month],.llms-form-field.valid input[type=text],.llms-form-field.valid input[type=email],.llms-form-field.valid input[type=url],.llms-form-field.valid input[type=password],.llms-form-field.valid input[type=search],.llms-form-field.valid input[type=tel],.llms-form-field.valid input[type=number],.llms-form-field.valid textarea,.llms-form-field.valid select{background:rgba(131,195,115,.3);border-color:#83c373}.llms-form-field.error input[type=date],.llms-form-field.error input[type=time],.llms-form-field.error input[type=datetime-local],.llms-form-field.error input[type=week],.llms-form-field.error input[type=month],.llms-form-field.error input[type=text],.llms-form-field.error input[type=email],.llms-form-field.error input[type=url],.llms-form-field.error input[type=password],.llms-form-field.error input[type=search],.llms-form-field.error input[type=tel],.llms-form-field.error input[type=number],.llms-form-field.error textarea,.llms-form-field.error select,.llms-form-field.invalid input[type=date],.llms-form-field.invalid input[type=time],.llms-form-field.invalid input[type=datetime-local],.llms-form-field.invalid input[type=week],.llms-form-field.invalid input[type=month],.llms-form-field.invalid input[type=text],.llms-form-field.invalid input[type=email],.llms-form-field.invalid input[type=url],.llms-form-field.invalid input[type=password],.llms-form-field.invalid input[type=search],.llms-form-field.invalid input[type=tel],.llms-form-field.invalid input[type=number],.llms-form-field.invalid textarea,.llms-form-field.invalid select{background:rgba(187,35,28,.3);border-color:#bb231c}.llms-form-field.llms-visually-hidden-field{display:none}.llms-form-field.align-right{text-align:left}@media screen and (min-width: 600px){.llms-form-field.llms-cols-1{width:8.3333333333%}.llms-form-field.llms-cols-2{width:16.6666666667%}.llms-form-field.llms-cols-3{width:25%}.llms-form-field.llms-cols-4{width:33.3333333333%}.llms-form-field.llms-cols-5{width:41.6666666667%}.llms-form-field.llms-cols-6{width:50%}.llms-form-field.llms-cols-7{width:58.3333333333%}.llms-form-field.llms-cols-8{width:66.6666666667%}.llms-form-field.llms-cols-9{width:75%}.llms-form-field.llms-cols-10{width:83.3333333333%}.llms-form-field.llms-cols-11{width:91.6666666667%}.llms-form-field.llms-cols-12{width:100%}}.llms-form-field.type-hidden{padding:0}.llms-form-field.type-radio input,.llms-form-field.type-radio label,.llms-form-field.type-checkbox input,.llms-form-field.type-checkbox label{display:inline-block;width:auto}.llms-form-field.type-radio input,.llms-form-field.type-checkbox input{margin-left:10px}.llms-form-field.type-radio label+.llms-description,.llms-form-field.type-checkbox label+.llms-description{display:block}.llms-form-field.type-radio:not(.is-group) input[type=radio]{position:absolute;opacity:0;visibility:none}.llms-form-field.type-radio:not(.is-group) label:before{background:#fafafa;background-position:-24px 0;background-repeat:no-repeat;border-radius:50%;-webkit-box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;content:"";cursor:pointer;display:inline-block;height:22px;margin-left:5px;position:relative;-webkit-transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);top:-3px;vertical-align:middle;width:22px;z-index:2}.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked+label:before{-webkit-transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);background-position:100% 0;background-image:radial-gradient(ellipse at center, #466dd8 0%, #466dd8 40%, #fafafa 45%)}.llms-form-field .llms-input-group{margin-top:5px}.llms-form-field .llms-input-group .llms-form-field{padding:0 5px 5px 0}.llms-form-field.type-reset button:not(.auto),.llms-form-field.type-button button:not(.auto),.llms-form-field.type-submit button:not(.auto){width:100%}.llms-form-field .llms-description{font-size:14px;font-style:italic;line-height:18px}.llms-form-field .llms-required{color:#bb231c;margin-right:4px}.llms-form-field input,.llms-form-field textarea,.llms-form-field select{width:100%;margin-bottom:5px}.llms-form-field .select2-container .select2-selection--single{height:auto;padding:4px 6px}.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%}.llms-password-strength-meter{border:1px solid #dadada;display:none;font-size:10px;margin-top:-10px;padding:1px;position:relative;text-align:center}.llms-password-strength-meter:before{bottom:0;content:"";right:0;position:absolute;top:0;-webkit-transition:width .4s ease;transition:width .4s ease}.llms-password-strength-meter.mismatch,.llms-password-strength-meter.too-short,.llms-password-strength-meter.very-weak{border-color:#e35b5b}.llms-password-strength-meter.mismatch:before,.llms-password-strength-meter.too-short:before,.llms-password-strength-meter.very-weak:before{background:rgba(227,91,91,.25);width:25%}.llms-password-strength-meter.too-short:before{width:0}.llms-password-strength-meter.weak{border-color:#f78b53}.llms-password-strength-meter.weak:before{background:rgba(247,139,83,.25);width:50%}.llms-password-strength-meter.medium{border-color:#ffc733}.llms-password-strength-meter.medium:before{background:rgba(255,199,51,.25);width:75%}.llms-password-strength-meter.strong{border-color:#83c373}.llms-password-strength-meter.strong:before{background:rgba(131,195,115,.25);width:100%}.llms-password-strength-meter+.llms-description{display:block}.llms-widget-syllabus--collapsible .llms-section .section-header{cursor:pointer}.llms-widget-syllabus--collapsible .llms-section.llms-section--opened .llms-collapse-caret .fa-caret-right{display:none}.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-collapse-caret .fa-caret-down{display:none}.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-lesson{display:none}.llms-widget-syllabus--collapsible .llms-syllabus-footer{text-align:right}.llms-student-dashboard .llms-sd-title{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:15px;margin:40px 0 20px 0}.llms-student-dashboard .llms-sd-title small{font-size:18px}.llms-student-dashboard .llms-sd-title small+a{text-decoration:none}.llms-student-dashboard .llms-sd-items{list-style-type:none;margin:0 0 25px 0;padding:0}.llms-student-dashboard .llms-sd-item{display:inline-block;list-style-type:none;margin:5px 0;padding:0}.llms-student-dashboard .llms-sd-item:last-child .llms-sep{display:none}.llms-student-dashboard .llms-sd-item .llms-sep{color:#666;margin:0 5px}.llms-student-dashboard .llms-sd-section{margin-bottom:40px}.llms-student-dashboard .llms-sd-section h2{margin:0 0 15px 0}.llms-student-dashboard .llms-sd-section .llms-sd-section-title{margin:0;padding:0}.llms-student-dashboard .llms-sd-section .llms-sd-section-title:first-child{margin:0 0 10px 0}.llms-student-dashboard .llms-sd-section .llms-sd-section-footer{margin-top:10px}.llms-student-dashboard .llms-sd-section .llms-sd-section-footer a.llms-button-secondary{display:inline-block}.llms-student-dashboard .llms-sd-section .llms-certificates-loop{margin:0 -10px 0 0}.llms-student-dashboard .llms-sd-section .llms-certificate{padding:20px 0}.llms-student-dashboard .orders-table{border:1px solid #dedede;border-spacing:0;width:100%}.llms-student-dashboard .orders-table thead{display:none}.llms-student-dashboard .orders-table thead th,.llms-student-dashboard .orders-table thead td{font-weight:700}@media all and (min-width: 600px){.llms-student-dashboard .orders-table thead{display:table-header-group}}.llms-student-dashboard .orders-table tbody tr:nth-child(odd) td,.llms-student-dashboard .orders-table tbody tr:nth-child(odd) th{background:#f9f9f9}.llms-student-dashboard .orders-table tbody tr:last-child{border-bottom-width:0}.llms-student-dashboard .orders-table tfoot tr{background:#f9f9f9}.llms-student-dashboard .orders-table tfoot th,.llms-student-dashboard .orders-table tfoot td{padding:10px;text-align:left}.llms-student-dashboard .orders-table tfoot th:last-child,.llms-student-dashboard .orders-table tfoot td:last-child{border-bottom-width:0}.llms-student-dashboard .orders-table th{font-weight:700}.llms-student-dashboard .orders-table th,.llms-student-dashboard .orders-table td{border-color:#dedede;border-style:solid;border-width:0;display:block;padding:15px 20px;text-align:center}.llms-student-dashboard .orders-table th .llms-button-primary,.llms-student-dashboard .orders-table td .llms-button-primary{display:inline-block}.llms-student-dashboard .orders-table th:last-child,.llms-student-dashboard .orders-table td:last-child{border-bottom-width:1px}.llms-student-dashboard .orders-table th:before,.llms-student-dashboard .orders-table td:before{content:attr(data-label)}@media all and (min-width: 600px){.llms-student-dashboard .orders-table th,.llms-student-dashboard .orders-table td{border-bottom-width:1px;display:table-cell;text-align:right}.llms-student-dashboard .orders-table th:first-child,.llms-student-dashboard .orders-table td:first-child{width:220px}.llms-student-dashboard .orders-table th:before,.llms-student-dashboard .orders-table td:before{display:none}}@media all and (min-width: 600px){.llms-student-dashboard .orders-table.transactions th:first-child{width:auto}}.llms-student-dashboard .llms-status{border-radius:6px;display:inline-block;font-size:13px;font-weight:700;line-height:1.4;padding:2px 6px;vertical-align:middle}.llms-student-dashboard .llms-status.llms-size--large{font-size:105%;padding:6px 12px}.llms-student-dashboard .llms-status.llms-active,.llms-student-dashboard .llms-status.llms-completed,.llms-student-dashboard .llms-status.llms-pass,.llms-student-dashboard .llms-status.llms-txn-succeeded{color:#4d8d3c;background-color:rgba(77,141,60,.15)}.llms-student-dashboard .llms-status.llms-fail,.llms-student-dashboard .llms-status.llms-failed,.llms-student-dashboard .llms-status.llms-expired,.llms-student-dashboard .llms-status.llms-cancelled,.llms-student-dashboard .llms-status.llms-txn-failed{color:#bb231c;background-color:rgba(187,35,28,.15)}.llms-student-dashboard .llms-status.llms-incomplete,.llms-student-dashboard .llms-status.llms-on-hold,.llms-student-dashboard .llms-status.llms-pending,.llms-student-dashboard .llms-status.llms-pending-cancel,.llms-student-dashboard .llms-status.llms-refunded,.llms-student-dashboard .llms-status.llms-txn-pending,.llms-student-dashboard .llms-status.llms-txn-refunded{color:#c05621;background-color:rgba(192,86,33,.15)}.llms-student-dashboard .order-title .llms-status{font-size:18px}.llms-student-dashboard .llms-person-form-wrapper .llms-change-password{display:none}@media all and (min-width: 600px){.llms-student-dashboard .order-primary{float:right;width:68%}}@media all and (min-width: 600px){.llms-student-dashboard .order-secondary{float:right;width:32%}}.llms-student-dashboard .order-secondary form{margin-bottom:0}@media all and (min-width: 600px){.llms-student-dashboard .llms-view-order.llms-stack-cols .order-primary,.llms-student-dashboard .llms-view-order.llms-stack-cols .order-secondary{float:none;width:100%}}.llms-student-dashboard .llms-switch-payment-source .llms-notice,.llms-student-dashboard .llms-switch-payment-source .entry-content .llms-notice{margin-right:10px;margin-left:10px}.llms-student-dashboard .llms-switch-payment-source-main{border:none;display:none;margin:0}.llms-student-dashboard .llms-switch-payment-source-main ul.llms-payment-gateways{padding:10px 15px 0;margin:0}.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method,.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary{padding:0 25px 10px;margin:0;list-style-type:none}.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method li,.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary li{list-style-type:none}.llms-student-dashboard.dashboard .llms-sd-section{border:1px solid #dedede;border-radius:6px;padding:20px;margin-bottom:40px}.llms-student-dashboard .llms-loop-list{margin:0 -10px}.logged-in .llms-sd-layout-columns{-webkit-box-align:start;-ms-flex-align:start;align-items:start}@media all and (min-width: 600px){.logged-in .llms-sd-layout-columns{display:grid;grid-gap:25px;grid-template-areas:"nav header" "nav tab";grid-template-columns:200px 1fr;grid-template-rows:auto 1fr}}.logged-in .llms-sd-layout-columns .llms-sd-nav{grid-area:nav}@media all and (min-width: 600px){.logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item{display:block;float:none}.logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item a{display:block;padding:10px 0}.logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item .llms-sep{display:none}}.logged-in .llms-sd-layout-columns .llms-sd-header{grid-area:header}.logged-in .llms-sd-layout-columns .llms-sd-tab{grid-area:tab}.llms-sd-grades .llms-table .llms-progress{display:block;margin:0}.llms-sd-grades .llms-table .llms-progress .llms-progress-bar{top:0;height:1.4em}.llms-sd-grades .llms-table .llms-progress .progress__indicator{font-size:1em;position:relative;left:.4em;top:.2em;z-index:1}.llms-table.llms-single-course-grades tbody tr:first-child td,.llms-table.llms-single-course-grades tbody tr:first-child th{background-color:#eaeaea}.llms-table.llms-single-course-grades th{font-weight:400;text-align:right}.llms-table.llms-single-course-grades td .llms-donut{display:inline-block;vertical-align:middle}.llms-table.llms-single-course-grades td .llms-status{margin-left:4px}.llms-table.llms-single-course-grades td .llms-donut+.llms-status{margin-right:4px}.llms-table.llms-single-course-grades th.llms-section_title{font-size:110%;font-weight:700}.llms-table.llms-single-course-grades td.llms-lesson_title{max-width:40%}.llms-table.llms-single-course-grades td.llms-associated_quiz .llms-donut{display:inline-block;margin-left:5px;vertical-align:middle}.llms-table.llms-single-course-grades td.llms-lesson_title a[href="#"]{pointer-events:none}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"]{color:inherit;position:relative}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip{max-width:380px;width:380px}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip.show{top:-54px}.llms-sd-widgets{display:-webkit-box;display:-ms-flexbox;display:flex}.llms-sd-widgets .llms-sd-widget{background:#fefefe;border:1px solid #dedede;border-bottom-left-radius:6px;border-bottom-right-radius:6px;-webkit-box-flex:1;-ms-flex:1;flex:1;margin:10px 10px 20px;padding:0 0 20px}.llms-sd-widgets .llms-sd-widget:first-child{margin-right:0}.llms-sd-widgets .llms-sd-widget:last-child{margin-left:0}.llms-sd-widgets .llms-sd-widget .llms-sd-widget-title{background:#466dd8;color:#fff;font-size:18px;line-height:1;margin:0 0 20px;padding:10px}.llms-sd-widgets .llms-sd-widget .llms-sd-widget-empty{font-size:14px;font-style:italic;opacity:.5;text-align:center}.llms-sd-widgets .llms-sd-widget .llms-donut{margin:0 auto}.llms-sd-widgets .llms-sd-widget .llms-sd-date{opacity:.8;text-align:center;font-size:22px;line-height:1.1}.llms-sd-widgets .llms-sd-widget .llms-sd-date span{display:block}.llms-sd-widgets .llms-sd-widget .llms-sd-date span.day{font-size:52px}.llms-sd-widgets .llms-sd-widget .llms-sd-date span.diff{font-size:12px;font-style:italic;margin-top:8px;opacity:.75}.llms-sd-widgets .llms-sd-widget .llms-achievement{background:rgba(0,0,0,0);margin:0 auto;max-width:120px}.llms-sd-widgets .llms-sd-widget .llms-achievement .llms-achievement-title{display:none}.redeem-voucher .form-row label{display:block;font-weight:700}.redeem-voucher .form-row input[type=text]{background-color:#fefefe;background-clip:padding-box;border:1px solid #999;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:16px;line-height:1;padding:8px 12px;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}.llms-sd-pagination{margin-top:24px}.llms-sd-pagination:before,.llms-sd-pagination:after{content:" ";display:table}.llms-sd-pagination:after{clear:both}.llms-sd-pagination .llms-button-secondary{display:inline-block}.llms-sd-pagination .llms-button-secondary.prev{float:right}.llms-sd-pagination .llms-button-secondary.next{float:left}.llms-sd-notification-center{background:#fefefe;border:1px solid #dedede;border-radius:6px;padding:20px}.llms-sd-notification-center .llms-notification-list-item .llms-notification{z-index:1}.llms-sd-notification-center .llms-notification-list-item .llms-notification:hover{background-color:inherit}.llms-table{border:1px solid #dedede;border-spacing:0;width:100%}.llms-table thead th,.llms-table thead td{font-weight:700}.llms-table tbody tr:nth-child(odd) td,.llms-table tbody tr:nth-child(odd) th{background:#f9f9f9}.llms-table tbody tr:last-child{border-bottom-width:0}.llms-table tfoot tr{background:#f9f9f9}.llms-table tfoot tr .llms-pagination .page-numbers{margin:0}.llms-table tfoot tr .llms-table-sort{text-align:left}.llms-table tfoot tr .llms-table-sort form,.llms-table tfoot tr .llms-table-sort select,.llms-table tfoot tr .llms-table-sort input,.llms-table tfoot tr .llms-table-sort button{margin:0}.llms-table th{font-weight:700}.llms-table th,.llms-table td{border-bottom:1px solid #dedede;padding:15px 20px}.llms-table th:first-child,.llms-table td:first-child{padding-right:12px}.llms-table th:last-child,.llms-table td:last-child{padding-left:12px}#page .llms-table tfoot label{display:inline}#page .llms-table tfoot select{height:auto}/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:"FontAwesome";src:url("../fonts/fontawesome-webfont.eot?v=4.7.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-right:0;margin-right:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;right:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{right:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:right}.fa-pull-right{float:left}.fa.fa-pull-left{margin-left:.3em}.fa.fa-pull-right{margin-right:.3em}.pull-right{float:left}.pull-left{float:right}.fa.pull-left{margin-left:.3em}.fa.pull-right{margin-right:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(-270deg);transform:rotate(-270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;right:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-vcard:before,.fa-address-card:before{content:""}.fa-vcard-o:before,.fa-address-card-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
diff --git a/assets/css/lifterlms.css b/assets/css/lifterlms.css
new file mode 100644
index 0000000000..0080c8b258
--- /dev/null
+++ b/assets/css/lifterlms.css
@@ -0,0 +1,6733 @@
+@charset "UTF-8";
+.llms-pagination ul:before, .llms-pagination ul:after,
+.llms-form-fields:before,
+.llms-checkout-cols-2:before,
+.llms-access-plans:before,
+.llms-loop-list:before,
+.llms-cols:before,
+.llms-form-fields:after,
+.llms-checkout-cols-2:after,
+.llms-access-plans:after,
+.llms-loop-list:after,
+.llms-cols:after {
+ content: " ";
+ display: table;
+}
+.llms-pagination ul:after,
+.llms-form-fields:after,
+.llms-checkout-cols-2:after,
+.llms-access-plans:after,
+.llms-loop-list:after,
+.llms-cols:after {
+ clear: both;
+}
+
+.llms-cols .llms-col {
+ width: 100%;
+}
+@media all and (min-width: 600px) {
+ .llms-cols [class*=llms-col-] {
+ float: left;
+ }
+}
+
+.llms-flex-cols {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap;
+}
+.llms-flex-cols [class*=llms-col] {
+ -webkit-box-flex: 0;
+ -ms-flex: 0 1 auto;
+ flex: 0 1 auto;
+ width: 100%;
+}
+
+@media all and (min-width: 600px) {
+ .llms-cols .llms-col-1, .llms-flex-cols .llms-col-1 {
+ width: 100%;
+ }
+ .llms-cols .llms-col-2, .llms-flex-cols .llms-col-2 {
+ width: 50%;
+ }
+ .llms-cols .llms-col-3, .llms-flex-cols .llms-col-3 {
+ width: 33.3333333333%;
+ }
+ .llms-cols .llms-col-4, .llms-flex-cols .llms-col-4 {
+ width: 25%;
+ }
+ .llms-cols .llms-col-5, .llms-flex-cols .llms-col-5 {
+ width: 20%;
+ }
+ .llms-cols .llms-col-6, .llms-flex-cols .llms-col-6 {
+ width: 16.6666666667%;
+ }
+ .llms-cols .llms-col-7, .llms-flex-cols .llms-col-7 {
+ width: 14.2857142857%;
+ }
+ .llms-cols .llms-col-8, .llms-flex-cols .llms-col-8 {
+ width: 12.5%;
+ }
+ .llms-cols .llms-col-9, .llms-flex-cols .llms-col-9 {
+ width: 11.1111111111%;
+ }
+ .llms-cols .llms-col-10, .llms-flex-cols .llms-col-10 {
+ width: 10%;
+ }
+ .llms-cols .llms-col-11, .llms-flex-cols .llms-col-11 {
+ width: 9.0909090909%;
+ }
+ .llms-cols .llms-col-12, .llms-flex-cols .llms-col-12 {
+ width: 8.3333333333%;
+ }
+}
+.llms-button-action,
+.llms-button-danger,
+.llms-button-primary,
+.llms-button-secondary {
+ border: none;
+ border-radius: 8px;
+ color: #fefefe;
+ cursor: pointer;
+ display: inline-block;
+ font-size: 18px;
+ font-weight: 700;
+ text-decoration: none;
+ text-shadow: none;
+ line-height: 1;
+ margin: 0;
+ max-width: 100%;
+ padding: 12px 24px;
+ position: relative;
+ -webkit-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+}
+.llms-button-action:disabled,
+.llms-button-danger:disabled,
+.llms-button-primary:disabled,
+.llms-button-secondary:disabled {
+ opacity: 0.5;
+}
+.llms-button-action:hover, .llms-button-action:active,
+.llms-button-danger:hover,
+.llms-button-danger:active,
+.llms-button-primary:hover,
+.llms-button-primary:active,
+.llms-button-secondary:hover,
+.llms-button-secondary:active {
+ color: #fefefe;
+}
+.llms-button-action:focus,
+.llms-button-danger:focus,
+.llms-button-primary:focus,
+.llms-button-secondary:focus {
+ color: #fefefe;
+}
+.llms-button-action.auto,
+.llms-button-danger.auto,
+.llms-button-primary.auto,
+.llms-button-secondary.auto {
+ width: auto;
+}
+.llms-button-action.full,
+.llms-button-danger.full,
+.llms-button-primary.full,
+.llms-button-secondary.full {
+ display: block;
+ text-align: center;
+ width: 100%;
+}
+.llms-button-action.square,
+.llms-button-danger.square,
+.llms-button-primary.square,
+.llms-button-secondary.square {
+ padding: 12px;
+}
+.llms-button-action.small,
+.llms-button-danger.small,
+.llms-button-primary.small,
+.llms-button-secondary.small {
+ font-size: 13px;
+ padding: 8px 14px;
+}
+.llms-button-action.small.square,
+.llms-button-danger.small.square,
+.llms-button-primary.small.square,
+.llms-button-secondary.small.square {
+ padding: 8px;
+}
+.llms-button-action.large,
+.llms-button-danger.large,
+.llms-button-primary.large,
+.llms-button-secondary.large {
+ font-size: 18px;
+ line-height: 1.2;
+ padding: 16px 32px;
+}
+.llms-button-action.large.square,
+.llms-button-danger.large.square,
+.llms-button-primary.large.square,
+.llms-button-secondary.large.square {
+ padding: 16px;
+}
+.llms-button-action.large .fa,
+.llms-button-danger.large .fa,
+.llms-button-primary.large .fa,
+.llms-button-secondary.large .fa {
+ left: -7px;
+ position: relative;
+}
+
+/* Fix for cases where link color overrides the button color */
+a.llms-button-action,
+a.llms-button-danger,
+a.llms-button-primary {
+ color: #fefefe;
+}
+
+.llms-button-primary {
+ background: #466dd8;
+}
+.llms-button-primary:hover, .llms-button-primary.clicked {
+ background: #274eba;
+}
+.llms-button-primary:focus, .llms-button-primary:active {
+ background: #6888df;
+}
+
+.llms-button-secondary {
+ background: #e1e1e1;
+ color: #444;
+}
+.llms-button-secondary:hover {
+ color: #414141;
+ background: #cdcdcd;
+}
+.llms-button-secondary:focus, .llms-button-secondary:active {
+ color: #414141;
+ background: #ebebeb;
+}
+
+/* Fix for cases where link color overrides the button color */
+a.llms-button-secondary {
+ color: #444;
+}
+
+.llms-button-action {
+ background: #c05621;
+}
+.llms-button-action:hover, .llms-button-action.clicked {
+ background: #f67d28;
+}
+.llms-button-action:focus, .llms-button-action:active {
+ background: #faad76;
+}
+
+.llms-button-danger {
+ background: #bb231c;
+}
+.llms-button-danger:hover {
+ background: #981c17;
+}
+.llms-button-danger:focus, .llms-button-danger:active {
+ background: #cd261f;
+}
+
+.llms-button-outline {
+ background: transparent;
+ border: 3px solid #1D2327;
+ border-radius: 8px;
+ color: #1D2327;
+ cursor: pointer;
+ font-size: 16px;
+ font-weight: 700;
+ text-decoration: none;
+ text-shadow: none;
+ line-height: 1;
+ margin: 0;
+ max-width: 100%;
+ padding: 12px 24px;
+ position: relative;
+ -webkit-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+}
+.llms-button-outline:disabled {
+ opacity: 0.5;
+}
+.llms-button-outline:hover, .llms-button-outline:active {
+ color: #1D2327;
+}
+.llms-button-outline:focus {
+ color: #1D2327;
+}
+.llms-button-outline.auto {
+ width: auto;
+}
+.llms-button-outline.full {
+ display: block;
+ text-align: center;
+ width: 100%;
+}
+.llms-button-outline.square {
+ padding: 12px;
+}
+
+.llms-course-continue-button {
+ display: inline-block;
+}
+
+.llms-donut {
+ background-color: #f1f1f1;
+ background-image: none;
+ border-radius: 50%;
+ color: #466dd8;
+ height: 200px;
+ overflow: hidden;
+ position: relative;
+ width: 200px;
+}
+.llms-donut:before, .llms-donut:after {
+ content: " ";
+ display: table;
+}
+.llms-donut:after {
+ clear: both;
+}
+.llms-donut svg {
+ overflow: visible !important;
+ pointer-events: none;
+ width: 100%;
+}
+.llms-donut svg path {
+ fill: none;
+ stroke-width: 35px;
+ stroke: #466dd8;
+}
+.llms-donut.mini {
+ height: 36px;
+ width: 36px;
+}
+.llms-donut.mini .percentage {
+ font-size: 10px;
+}
+.llms-donut.small {
+ height: 100px;
+ width: 100px;
+}
+.llms-donut.small .percentage {
+ font-size: 18px;
+}
+.llms-donut.medium {
+ height: 130px;
+ width: 130px;
+}
+.llms-donut.medium .percentage {
+ font-size: 26px;
+}
+.llms-donut.large {
+ height: 260px;
+ width: 260px;
+}
+.llms-donut.large .percentage {
+ font-size: 48px;
+}
+.llms-donut .inside {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ background: #fff;
+ border-radius: 50%;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ height: 80%;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ left: 50%;
+ position: absolute;
+ text-align: center;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ width: 80%;
+ top: 50%;
+ z-index: 3;
+}
+.llms-donut .percentage {
+ line-height: 1.2;
+ font-size: 34px;
+}
+.llms-donut .caption {
+ font-size: 75%;
+}
+
+.lifterlms [data-tip],
+.lifterlms [data-title-default],
+.lifterlms [data-title-active],
+.llms-metabox [data-tip],
+.llms-metabox [data-title-default],
+.llms-metabox [data-title-active],
+.llms-mb-container [data-tip],
+.llms-mb-container [data-title-default],
+.llms-mb-container [data-title-active],
+.llms-quiz-wrapper [data-tip],
+.llms-quiz-wrapper [data-title-default],
+.llms-quiz-wrapper [data-title-active] {
+ position: relative;
+}
+.lifterlms [data-tip].tip--top-right:before,
+.lifterlms [data-title-default].tip--top-right:before,
+.lifterlms [data-title-active].tip--top-right:before,
+.llms-metabox [data-tip].tip--top-right:before,
+.llms-metabox [data-title-default].tip--top-right:before,
+.llms-metabox [data-title-active].tip--top-right:before,
+.llms-mb-container [data-tip].tip--top-right:before,
+.llms-mb-container [data-title-default].tip--top-right:before,
+.llms-mb-container [data-title-active].tip--top-right:before,
+.llms-quiz-wrapper [data-tip].tip--top-right:before,
+.llms-quiz-wrapper [data-title-default].tip--top-right:before,
+.llms-quiz-wrapper [data-title-active].tip--top-right:before {
+ bottom: 100%;
+ left: -10px;
+}
+.lifterlms [data-tip].tip--top-right:hover:before,
+.lifterlms [data-title-default].tip--top-right:hover:before,
+.lifterlms [data-title-active].tip--top-right:hover:before,
+.llms-metabox [data-tip].tip--top-right:hover:before,
+.llms-metabox [data-title-default].tip--top-right:hover:before,
+.llms-metabox [data-title-active].tip--top-right:hover:before,
+.llms-mb-container [data-tip].tip--top-right:hover:before,
+.llms-mb-container [data-title-default].tip--top-right:hover:before,
+.llms-mb-container [data-title-active].tip--top-right:hover:before,
+.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before {
+ bottom: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--top-right:after,
+.lifterlms [data-title-default].tip--top-right:after,
+.lifterlms [data-title-active].tip--top-right:after,
+.llms-metabox [data-tip].tip--top-right:after,
+.llms-metabox [data-title-default].tip--top-right:after,
+.llms-metabox [data-title-active].tip--top-right:after,
+.llms-mb-container [data-tip].tip--top-right:after,
+.llms-mb-container [data-title-default].tip--top-right:after,
+.llms-mb-container [data-title-active].tip--top-right:after,
+.llms-quiz-wrapper [data-tip].tip--top-right:after,
+.llms-quiz-wrapper [data-title-default].tip--top-right:after,
+.llms-quiz-wrapper [data-title-active].tip--top-right:after {
+ border-top-color: #444;
+ left: 6px;
+ top: 0;
+}
+.lifterlms [data-tip].tip--top-right:hover:after,
+.lifterlms [data-title-default].tip--top-right:hover:after,
+.lifterlms [data-title-active].tip--top-right:hover:after,
+.llms-metabox [data-tip].tip--top-right:hover:after,
+.llms-metabox [data-title-default].tip--top-right:hover:after,
+.llms-metabox [data-title-active].tip--top-right:hover:after,
+.llms-mb-container [data-tip].tip--top-right:hover:after,
+.llms-mb-container [data-title-default].tip--top-right:hover:after,
+.llms-mb-container [data-title-active].tip--top-right:hover:after,
+.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after {
+ top: -6px;
+}
+.lifterlms [data-tip].tip--top-left:before,
+.lifterlms [data-title-default].tip--top-left:before,
+.lifterlms [data-title-active].tip--top-left:before,
+.llms-metabox [data-tip].tip--top-left:before,
+.llms-metabox [data-title-default].tip--top-left:before,
+.llms-metabox [data-title-active].tip--top-left:before,
+.llms-mb-container [data-tip].tip--top-left:before,
+.llms-mb-container [data-title-default].tip--top-left:before,
+.llms-mb-container [data-title-active].tip--top-left:before,
+.llms-quiz-wrapper [data-tip].tip--top-left:before,
+.llms-quiz-wrapper [data-title-default].tip--top-left:before,
+.llms-quiz-wrapper [data-title-active].tip--top-left:before {
+ bottom: 100%;
+ right: -10px;
+}
+.lifterlms [data-tip].tip--top-left:hover:before,
+.lifterlms [data-title-default].tip--top-left:hover:before,
+.lifterlms [data-title-active].tip--top-left:hover:before,
+.llms-metabox [data-tip].tip--top-left:hover:before,
+.llms-metabox [data-title-default].tip--top-left:hover:before,
+.llms-metabox [data-title-active].tip--top-left:hover:before,
+.llms-mb-container [data-tip].tip--top-left:hover:before,
+.llms-mb-container [data-title-default].tip--top-left:hover:before,
+.llms-mb-container [data-title-active].tip--top-left:hover:before,
+.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before {
+ bottom: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--top-left:after,
+.lifterlms [data-title-default].tip--top-left:after,
+.lifterlms [data-title-active].tip--top-left:after,
+.llms-metabox [data-tip].tip--top-left:after,
+.llms-metabox [data-title-default].tip--top-left:after,
+.llms-metabox [data-title-active].tip--top-left:after,
+.llms-mb-container [data-tip].tip--top-left:after,
+.llms-mb-container [data-title-default].tip--top-left:after,
+.llms-mb-container [data-title-active].tip--top-left:after,
+.llms-quiz-wrapper [data-tip].tip--top-left:after,
+.llms-quiz-wrapper [data-title-default].tip--top-left:after,
+.llms-quiz-wrapper [data-title-active].tip--top-left:after {
+ border-top-color: #444;
+ right: 6px;
+ top: 0;
+}
+.lifterlms [data-tip].tip--top-left:hover:after,
+.lifterlms [data-title-default].tip--top-left:hover:after,
+.lifterlms [data-title-active].tip--top-left:hover:after,
+.llms-metabox [data-tip].tip--top-left:hover:after,
+.llms-metabox [data-title-default].tip--top-left:hover:after,
+.llms-metabox [data-title-active].tip--top-left:hover:after,
+.llms-mb-container [data-tip].tip--top-left:hover:after,
+.llms-mb-container [data-title-default].tip--top-left:hover:after,
+.llms-mb-container [data-title-active].tip--top-left:hover:after,
+.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after {
+ top: -6px;
+}
+.lifterlms [data-tip].tip--bottom-left:before,
+.lifterlms [data-title-default].tip--bottom-left:before,
+.lifterlms [data-title-active].tip--bottom-left:before,
+.llms-metabox [data-tip].tip--bottom-left:before,
+.llms-metabox [data-title-default].tip--bottom-left:before,
+.llms-metabox [data-title-active].tip--bottom-left:before,
+.llms-mb-container [data-tip].tip--bottom-left:before,
+.llms-mb-container [data-title-default].tip--bottom-left:before,
+.llms-mb-container [data-title-active].tip--bottom-left:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:before {
+ top: 100%;
+ right: -10px;
+}
+.lifterlms [data-tip].tip--bottom-left:hover:before,
+.lifterlms [data-title-default].tip--bottom-left:hover:before,
+.lifterlms [data-title-active].tip--bottom-left:hover:before,
+.llms-metabox [data-tip].tip--bottom-left:hover:before,
+.llms-metabox [data-title-default].tip--bottom-left:hover:before,
+.llms-metabox [data-title-active].tip--bottom-left:hover:before,
+.llms-mb-container [data-tip].tip--bottom-left:hover:before,
+.llms-mb-container [data-title-default].tip--bottom-left:hover:before,
+.llms-mb-container [data-title-active].tip--bottom-left:hover:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before {
+ top: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--bottom-left:after,
+.lifterlms [data-title-default].tip--bottom-left:after,
+.lifterlms [data-title-active].tip--bottom-left:after,
+.llms-metabox [data-tip].tip--bottom-left:after,
+.llms-metabox [data-title-default].tip--bottom-left:after,
+.llms-metabox [data-title-active].tip--bottom-left:after,
+.llms-mb-container [data-tip].tip--bottom-left:after,
+.llms-mb-container [data-title-default].tip--bottom-left:after,
+.llms-mb-container [data-title-active].tip--bottom-left:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:after {
+ border-bottom-color: #444;
+ right: 6px;
+ bottom: 0;
+}
+.lifterlms [data-tip].tip--bottom-left:hover:after,
+.lifterlms [data-title-default].tip--bottom-left:hover:after,
+.lifterlms [data-title-active].tip--bottom-left:hover:after,
+.llms-metabox [data-tip].tip--bottom-left:hover:after,
+.llms-metabox [data-title-default].tip--bottom-left:hover:after,
+.llms-metabox [data-title-active].tip--bottom-left:hover:after,
+.llms-mb-container [data-tip].tip--bottom-left:hover:after,
+.llms-mb-container [data-title-default].tip--bottom-left:hover:after,
+.llms-mb-container [data-title-active].tip--bottom-left:hover:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after {
+ bottom: -6px;
+}
+.lifterlms [data-tip].tip--bottom-right:before,
+.lifterlms [data-title-default].tip--bottom-right:before,
+.lifterlms [data-title-active].tip--bottom-right:before,
+.llms-metabox [data-tip].tip--bottom-right:before,
+.llms-metabox [data-title-default].tip--bottom-right:before,
+.llms-metabox [data-title-active].tip--bottom-right:before,
+.llms-mb-container [data-tip].tip--bottom-right:before,
+.llms-mb-container [data-title-default].tip--bottom-right:before,
+.llms-mb-container [data-title-active].tip--bottom-right:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:before {
+ top: 100%;
+ left: -10px;
+}
+.lifterlms [data-tip].tip--bottom-right:hover:before,
+.lifterlms [data-title-default].tip--bottom-right:hover:before,
+.lifterlms [data-title-active].tip--bottom-right:hover:before,
+.llms-metabox [data-tip].tip--bottom-right:hover:before,
+.llms-metabox [data-title-default].tip--bottom-right:hover:before,
+.llms-metabox [data-title-active].tip--bottom-right:hover:before,
+.llms-mb-container [data-tip].tip--bottom-right:hover:before,
+.llms-mb-container [data-title-default].tip--bottom-right:hover:before,
+.llms-mb-container [data-title-active].tip--bottom-right:hover:before,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before {
+ top: calc(100% + 6px);
+}
+.lifterlms [data-tip].tip--bottom-right:after,
+.lifterlms [data-title-default].tip--bottom-right:after,
+.lifterlms [data-title-active].tip--bottom-right:after,
+.llms-metabox [data-tip].tip--bottom-right:after,
+.llms-metabox [data-title-default].tip--bottom-right:after,
+.llms-metabox [data-title-active].tip--bottom-right:after,
+.llms-mb-container [data-tip].tip--bottom-right:after,
+.llms-mb-container [data-title-default].tip--bottom-right:after,
+.llms-mb-container [data-title-active].tip--bottom-right:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:after {
+ border-bottom-color: #444;
+ left: 6px;
+ bottom: 0;
+}
+.lifterlms [data-tip].tip--bottom-right:hover:after,
+.lifterlms [data-title-default].tip--bottom-right:hover:after,
+.lifterlms [data-title-active].tip--bottom-right:hover:after,
+.llms-metabox [data-tip].tip--bottom-right:hover:after,
+.llms-metabox [data-title-default].tip--bottom-right:hover:after,
+.llms-metabox [data-title-active].tip--bottom-right:hover:after,
+.llms-mb-container [data-tip].tip--bottom-right:hover:after,
+.llms-mb-container [data-title-default].tip--bottom-right:hover:after,
+.llms-mb-container [data-title-active].tip--bottom-right:hover:after,
+.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,
+.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,
+.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after {
+ bottom: -6px;
+}
+.lifterlms [data-tip]:before,
+.lifterlms [data-title-default]:before,
+.lifterlms [data-title-active]:before,
+.llms-metabox [data-tip]:before,
+.llms-metabox [data-title-default]:before,
+.llms-metabox [data-title-active]:before,
+.llms-mb-container [data-tip]:before,
+.llms-mb-container [data-title-default]:before,
+.llms-mb-container [data-title-active]:before,
+.llms-quiz-wrapper [data-tip]:before,
+.llms-quiz-wrapper [data-title-default]:before,
+.llms-quiz-wrapper [data-title-active]:before {
+ background: #444;
+ border-radius: 4px;
+ color: #fff;
+ font-size: 13px;
+ line-height: 1.2;
+ padding: 8px;
+ max-width: 300px;
+ width: -webkit-max-content;
+ width: -moz-max-content;
+ width: max-content;
+}
+.lifterlms [data-tip]:after,
+.lifterlms [data-title-default]:after,
+.lifterlms [data-title-active]:after,
+.llms-metabox [data-tip]:after,
+.llms-metabox [data-title-default]:after,
+.llms-metabox [data-title-active]:after,
+.llms-mb-container [data-tip]:after,
+.llms-mb-container [data-title-default]:after,
+.llms-mb-container [data-title-active]:after,
+.llms-quiz-wrapper [data-tip]:after,
+.llms-quiz-wrapper [data-title-default]:after,
+.llms-quiz-wrapper [data-title-active]:after {
+ content: "";
+ border: 6px solid transparent;
+ height: 0;
+ width: 0;
+}
+.lifterlms [data-tip]:before, .lifterlms [data-tip]:after,
+.lifterlms [data-title-default]:before,
+.lifterlms [data-title-default]:after,
+.lifterlms [data-title-active]:before,
+.lifterlms [data-title-active]:after,
+.llms-metabox [data-tip]:before,
+.llms-metabox [data-tip]:after,
+.llms-metabox [data-title-default]:before,
+.llms-metabox [data-title-default]:after,
+.llms-metabox [data-title-active]:before,
+.llms-metabox [data-title-active]:after,
+.llms-mb-container [data-tip]:before,
+.llms-mb-container [data-tip]:after,
+.llms-mb-container [data-title-default]:before,
+.llms-mb-container [data-title-default]:after,
+.llms-mb-container [data-title-active]:before,
+.llms-mb-container [data-title-active]:after,
+.llms-quiz-wrapper [data-tip]:before,
+.llms-quiz-wrapper [data-tip]:after,
+.llms-quiz-wrapper [data-title-default]:before,
+.llms-quiz-wrapper [data-title-default]:after,
+.llms-quiz-wrapper [data-title-active]:before,
+.llms-quiz-wrapper [data-title-active]:after {
+ opacity: 0;
+ -webkit-transition: all 0.2s 0.1s ease;
+ transition: all 0.2s 0.1s ease;
+ position: absolute;
+ pointer-events: none;
+ visibility: hidden;
+}
+.lifterlms [data-tip]:hover:before, .lifterlms [data-tip]:hover:after,
+.lifterlms [data-title-default]:hover:before,
+.lifterlms [data-title-default]:hover:after,
+.lifterlms [data-title-active]:hover:before,
+.lifterlms [data-title-active]:hover:after,
+.llms-metabox [data-tip]:hover:before,
+.llms-metabox [data-tip]:hover:after,
+.llms-metabox [data-title-default]:hover:before,
+.llms-metabox [data-title-default]:hover:after,
+.llms-metabox [data-title-active]:hover:before,
+.llms-metabox [data-title-active]:hover:after,
+.llms-mb-container [data-tip]:hover:before,
+.llms-mb-container [data-tip]:hover:after,
+.llms-mb-container [data-title-default]:hover:before,
+.llms-mb-container [data-title-default]:hover:after,
+.llms-mb-container [data-title-active]:hover:before,
+.llms-mb-container [data-title-active]:hover:after,
+.llms-quiz-wrapper [data-tip]:hover:before,
+.llms-quiz-wrapper [data-tip]:hover:after,
+.llms-quiz-wrapper [data-title-default]:hover:before,
+.llms-quiz-wrapper [data-title-default]:hover:after,
+.llms-quiz-wrapper [data-title-active]:hover:before,
+.llms-quiz-wrapper [data-title-active]:hover:after {
+ opacity: 1;
+ -webkit-transition: all 0 0.1s ease;
+ transition: all 0 0.1s ease;
+ visibility: visible;
+ z-index: 99999999;
+}
+.lifterlms [data-tip]:before,
+.llms-metabox [data-tip]:before,
+.llms-mb-container [data-tip]:before,
+.llms-quiz-wrapper [data-tip]:before {
+ content: attr(data-tip);
+}
+.lifterlms [data-tip].active:before,
+.llms-metabox [data-tip].active:before,
+.llms-mb-container [data-tip].active:before,
+.llms-quiz-wrapper [data-tip].active:before {
+ content: attr(data-tip-active);
+}
+
+.llms-membership-image {
+ display: block;
+ margin: 0 auto;
+}
+
+.llms-course-image {
+ display: block;
+ margin: 0 auto;
+ max-width: 100%;
+}
+
+.llms-featured-image {
+ display: block;
+ margin: 0 auto;
+}
+
+.llms-image-thumb {
+ width: 150px;
+}
+
+.llms-video-wrapper .center-video {
+ height: auto;
+ max-width: 100%;
+ overflow: hidden;
+ position: relative;
+ padding-top: 56.25%;
+ text-align: center;
+}
+.llms-video-wrapper .center-video > .wp-video,
+.llms-video-wrapper .center-video .fluid-width-video-wrapper,
+.llms-video-wrapper .center-video iframe, .llms-video-wrapper .center-video object, .llms-video-wrapper .center-video embed {
+ height: 100%;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+.llms-video-wrapper .center-video > .wp-video {
+ width: 100% !important;
+}
+.llms-video-wrapper .center-video .fluid-width-video-wrapper {
+ padding-top: 0 !important;
+}
+
+.clear {
+ clear: both;
+ width: 100%;
+}
+
+.llms-featured-image {
+ text-align: center;
+}
+
+#main-content .llms-payment-options p {
+ margin: 0;
+ font-size: 16px;
+}
+
+.llms-option {
+ display: block;
+ position: relative;
+ margin: 20px 0;
+ padding-left: 40px;
+ font-size: 16px;
+}
+.llms-option label {
+ cursor: pointer;
+ position: static;
+}
+
+.llms-option:first-child {
+ margin-top: 0;
+}
+
+.llms-option:last-child {
+ margin-bottom: 0;
+}
+
+#main-content .llms-option:last-child {
+ margin-bottom: 0;
+}
+
+.llms-option input[type=radio] {
+ display: block;
+ position: absolute;
+ top: 3px;
+ left: 0;
+ z-index: 0;
+}
+
+.llms-option input[type=radio] {
+ display: inline-block;
+}
+
+.llms-option input[type=radio] + label span.llms-radio {
+ display: none;
+}
+
+.llms-option input[type=radio] + label span.llms-radio {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ z-index: 20;
+ position: absolute;
+ top: 0;
+ left: -2px;
+ display: inline-block;
+ width: 24px;
+ height: 24px;
+ border-radius: 50%;
+ cursor: pointer;
+ vertical-align: middle;
+ -webkit-box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.5) 0 0 0 1px;
+ box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.5) 0 0 0 1px;
+ background: #efefef;
+ background-image: radial-gradient(ellipse at center, #bb231c 0%, #bb231c 40%, #efefef 45%);
+ background-repeat: no-repeat;
+ -webkit-transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);
+ transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);
+}
+
+.llms-option input[type=radio]:checked + label span.llms-radio {
+ -webkit-transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);
+ transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);
+}
+
+.llms-option input[type=radio] + label span.llms-radio {
+ background-position: -24px 0;
+}
+
+.llms-option input[type=radio]:checked + label span.llms-radio {
+ background-position: 0 0;
+}
+
+.llms-option input[type=submit] {
+ border: none;
+ background: #bb231c;
+ color: #fff;
+ font-size: 20px;
+ padding: 10px 0;
+ border-radius: 3px;
+ cursor: pointer;
+ width: 100%;
+}
+
+.llms-styled-text {
+ padding: 14px 0;
+}
+
+.llms-notice-box {
+ border-radius: 3px;
+ z-index: 10;
+ margin: 10px 0;
+ padding: 15px 20px;
+ border: 1px solid #ccc;
+ list-style-type: none;
+ width: 100%;
+ overflow: auto;
+}
+.llms-notice-box input[type=text] {
+ height: auto;
+}
+.llms-notice-box .col-1-1 {
+ width: 100%;
+}
+.llms-notice-box .col-1-1 input[type=text] {
+ width: 100%;
+}
+.llms-notice-box .col-1-2 {
+ width: 50%;
+ float: left;
+}
+@media screen and (max-width: 768px) {
+ .llms-notice-box .col-1-2 {
+ width: 100%;
+ }
+}
+.llms-notice-box .col-1-3 {
+ width: 33%;
+ float: left;
+ margin-right: 10px;
+}
+.llms-notice-box .col-1-4 {
+ width: 25%;
+ float: left;
+ margin-right: 10px;
+}
+@media screen and (max-width: 768px) {
+ .llms-notice-box .col-1-4 {
+ width: 100%;
+ }
+}
+.llms-notice-box .col-1-6 {
+ width: 16.6%;
+ float: left;
+ margin-right: 10px;
+}
+.llms-notice-box .col-1-8 {
+ width: 11%;
+ float: right;
+}
+.llms-notice-box .llms-pad-right {
+ padding-right: 10px;
+}
+@media screen and (max-width: 768px) {
+ .llms-notice-box .llms-pad-right {
+ padding-right: 0;
+ }
+}
+
+input[type=text].cc_cvv,
+#cc_cvv {
+ margin-right: 0;
+ width: 23%;
+ float: right;
+}
+
+.llms-clear-box {
+ border-radius: 3px;
+ z-index: 10;
+ margin: 10px 0;
+ padding: 15px 20px;
+ list-style-type: none;
+ width: 100%;
+ overflow: auto;
+}
+
+.llms-price-label {
+ font-weight: normal;
+}
+
+.llms-final-price {
+ font-weight: bold;
+ float: right;
+}
+
+.llms-center-content {
+ text-align: center;
+}
+
+.llms-input-text {
+ background-color: #fff;
+ border: 1px solid #ddd;
+ color: #333;
+ font-size: 18px;
+ font-weight: 300;
+ padding: 16px;
+ width: 100%;
+}
+
+.llms-price {
+ margin-bottom: 0;
+ font-weight: bold;
+}
+
+.llms-price-loop {
+ margin-bottom: 0;
+ font-weight: bold;
+}
+
+.courses .entry {
+ padding: 0;
+}
+
+.list-view .site-content .llms-course-list .hentry, .list-view .site-content .llms-membership-list .hentry {
+ border-top: 0;
+ padding-top: 0;
+}
+
+.llms-content {
+ width: 100%;
+}
+
+.llms-lesson-button-wrapper {
+ width: 100%;
+ display: block;
+ clear: both;
+ text-align: center;
+}
+
+.llms-template-wrapper {
+ width: 100%;
+ display: block;
+ clear: both;
+}
+
+.llms-button-wrapper {
+ width: 100%;
+ display: block;
+ clear: both;
+ text-align: center;
+}
+
+.llms-styled-select {
+ border: 1px solid #ccc;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 3px;
+ overflow: hidden;
+ position: relative;
+}
+
+.llms-styled-select, .llms-styled-select select {
+ width: 100%;
+}
+
+select:focus {
+ outline: none;
+}
+
+.llms-styled-select select {
+ height: 34px;
+ padding: 5px 0 5px 5px;
+ background: transparent;
+ border: none;
+ -webkit-appearance: none;
+ font-size: 16px;
+ color: #444444;
+}
+
+@-moz-document url-prefix() {
+ .--ms-styled-select select {
+ width: 110%;
+ }
+}
+.llms-styled-select .fa-sort-desc {
+ position: absolute;
+ top: 0;
+ right: 12px;
+ font-size: 24px;
+ color: #ccc;
+}
+
+select::-ms-expand {
+ display: none;
+}
+
+_:-o-prefocus .llms-styled-select, .selector .llms-styled-select {
+ background: none;
+}
+
+.llms-form-item-wrapper {
+ margin-bottom: 1em;
+}
+
+/* Circle Graph */
+.llms-progress-circle {
+ position: relative;
+ width: 200px;
+ height: 200px;
+ float: left;
+}
+
+.llms-progress-circle-count {
+ top: 27%;
+ position: absolute;
+ width: 94%;
+ text-align: center;
+ color: #666;
+ font-size: 44px;
+}
+
+.llms-progress-circle svg {
+ position: absolute;
+ width: 200px;
+ height: 200px;
+}
+
+.llms-progress-circle circle {
+ fill: transparent;
+}
+
+svg .llms-background-circle {
+ fill: transparent;
+ stroke-width: 10px;
+ stroke: #f1f2f1;
+ stroke-dasharray: 430;
+}
+
+svg .llms-animated-circle {
+ fill: transparent;
+ stroke-width: 10px;
+ stroke: #e5554e;
+ stroke-dasharray: 430;
+ stroke-dashoffset: 410;
+}
+
+.llms-widget-syllabus .llms-lesson.current-lesson .lesson-title {
+ font-weight: 700;
+}
+.llms-widget-syllabus .section-header {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 5px;
+}
+.llms-widget-syllabus .section-header .llms-collapse-caret {
+ text-align: left;
+ width: 14px;
+}
+.llms-widget-syllabus .llms-lesson-complete, .llms-widget-syllabus .lesson-complete-placeholder {
+ font-size: 18px;
+ margin-right: 5px;
+ color: #ccc;
+}
+.llms-widget-syllabus .llms-lesson-complete.done, .llms-widget-syllabus .lesson-complete-placeholder.done {
+ color: #466dd8;
+}
+.llms-widget-syllabus .section-title {
+ font-weight: bold;
+}
+.llms-widget-syllabus .lesson-title a {
+ text-decoration: underline;
+}
+.llms-widget-syllabus .lesson-title.done a {
+ color: #666;
+ text-decoration: line-through;
+}
+.llms-widget-syllabus ul {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.llms-widget-syllabus ul li {
+ list-style-type: none;
+ margin: 0 0 10px 0;
+}
+.llms-widget-syllabus ul li ul {
+ margin: 0 0 15px 0;
+}
+.llms-widget-syllabus ul li ul li {
+ -webkit-box-align: start;
+ -ms-flex-align: start;
+ align-items: flex-start;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ margin: 0 0 10px 0;
+ padding: 0;
+}
+
+.llms-remove-coupon {
+ float: right;
+}
+
+/*.llms-lesson-link-locked, .llms-lesson-link-locked:hover {
+ background: #f1f1f1;
+ display: block;
+ color: #a6a6a6;
+ min-height: 85px;
+ padding: 15px;
+ text-decoration: none;
+ position: relative;
+}*/
+.llms-lesson-preview.is-complete .llms-lesson-link-locked {
+ padding-left: 75px;
+}
+
+.llms-lesson-tooltip {
+ display: none;
+ position: absolute;
+ color: #000000;
+ background-color: #c0c0c0;
+ padding: 0.25em;
+ border-radius: 2px;
+ z-index: 100;
+ top: 0;
+ left: 50%;
+ text-align: center;
+ -webkit-transform: translateX(-50%) translateY(-100%);
+ transform: translateX(-50%) translateY(-100%);
+}
+
+/* arrows - :after */
+.llms-lesson-tooltip:after {
+ content: "";
+ width: 0;
+ height: 0;
+ border-top: 8px solid #c0c0c0;
+ border-left: 8px solid transparent;
+ border-right: 8px solid transparent;
+ position: absolute;
+ bottom: -8px;
+ left: 50%;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%);
+}
+
+.llms-lesson-tooltip.active {
+ display: inline-block;
+}
+
+.llms-favorite-wrapper {
+ cursor: pointer;
+}
+.llms-favorite-wrapper .fa-heart {
+ color: #EF476F;
+}
+
+.llms-has-favorite .llms-parent-course-link {
+ display: inline-block;
+ margin-bottom: 20px;
+}
+.llms-has-favorite .llms-parent-course-link + .llms-favorite-wrapper {
+ float: right;
+ margin: 0;
+}
+
+.llms-syllabus-wrapper .llms-has-favorite {
+ text-align: left;
+}
+.llms-syllabus-wrapper .llms-has-favorite .llms-favorite-wrapper {
+ display: inline-block;
+}
+
+.llms-loop-list {
+ list-style: none;
+ margin: 0 -10px;
+ padding: 0;
+}
+@media all and (min-width: 600px) {
+ .llms-loop-list.cols-1 .llms-loop-item {
+ width: 100%;
+ }
+ .llms-loop-list.cols-2 .llms-loop-item {
+ width: 50%;
+ }
+ .llms-loop-list.cols-3 .llms-loop-item {
+ width: 33.3333333333%;
+ }
+ .llms-loop-list.cols-4 .llms-loop-item {
+ width: 25%;
+ }
+ .llms-loop-list.cols-5 .llms-loop-item {
+ width: 20%;
+ }
+ .llms-loop-list.cols-6 .llms-loop-item {
+ width: 16.6666666667%;
+ }
+}
+
+.llms-loop-item {
+ float: left;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+}
+
+.llms-loop-item-content {
+ background: #fefefe;
+ border: 1px solid #dedede;
+ border-radius: 6px;
+ overflow: hidden;
+ padding-bottom: 15px;
+ margin: 10px;
+}
+.llms-loop-item-content .llms-loop-link {
+ color: #010101;
+ display: block;
+ text-decoration: none;
+}
+.llms-loop-item-content .llms-loop-link:visited {
+ color: #010101;
+}
+.llms-loop-item-content .llms-featured-image {
+ display: block;
+ max-width: 100%;
+}
+.llms-loop-item-content .llms-loop-title {
+ color: #010101;
+ margin: 15px 0;
+}
+.llms-loop-item-content .llms-loop-title:hover {
+ color: #466dd8;
+}
+.llms-loop-item-content .llms-meta,
+.llms-loop-item-content .llms-author,
+.llms-loop-item-content .llms-loop-title {
+ padding: 0 15px;
+}
+.llms-loop-item-content .llms-meta,
+.llms-loop-item-content .llms-author {
+ color: #444;
+ display: block;
+ font-size: 14px;
+ margin-bottom: 10px;
+}
+.llms-loop-item-content .llms-meta:last-child,
+.llms-loop-item-content .llms-author:last-child {
+ margin-bottom: 0;
+}
+.llms-loop-item-content .llms-author {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 5px;
+}
+.llms-loop-item-content .llms-featured-img-wrap {
+ overflow: hidden;
+}
+.llms-loop-item-content p {
+ margin-bottom: 0;
+}
+.llms-loop-item-content .llms-progress {
+ margin: 0;
+ height: 0.4em;
+}
+.llms-loop-item-content .llms-progress .progress__indicator {
+ display: none;
+}
+.llms-loop-item-content .llms-progress .llms-progress-bar {
+ background-color: #f6f6f6;
+ right: 0;
+ top: 0;
+}
+
+.llms-meta-info {
+ margin: 40px 0;
+}
+.llms-meta-info .llms-meta-title {
+ margin: 0;
+}
+.llms-meta-info .llms-meta p {
+ margin-bottom: 0;
+}
+.llms-meta-info .llms-meta span {
+ font-weight: 700;
+}
+
+.llms-course-progress {
+ margin: 40px auto;
+ max-width: 480px;
+ text-align: center;
+}
+
+.llms-syllabus-wrapper {
+ margin: 20px 0;
+ text-align: left;
+}
+.llms-syllabus-wrapper .llms-section-title {
+ margin: 40px 0 10px;
+}
+.llms-syllabus-wrapper .llms-section-title + .llms-lesson-preview {
+ border-top: 1px solid #dedede;
+}
+
+.llms-lesson-preview {
+ border-right: 1px solid #dedede;
+ border-bottom: 1px solid #dedede;
+ border-left: 1px solid #dedede;
+ display: block;
+ margin: 0;
+ max-width: 100%;
+ position: relative;
+}
+.llms-lesson-preview.current-lesson .llms-lesson-title {
+ font-weight: 400;
+}
+.llms-lesson-preview .llms-lesson-link {
+ background: #fefefe;
+ color: #010101;
+ display: block;
+ padding: 15px;
+ text-decoration: none;
+ -webkit-transition: background-color 0.3s ease;
+ transition: background-color 0.3s ease;
+}
+.llms-lesson-preview .llms-lesson-link:hover {
+ background: #eaeaea;
+}
+.llms-lesson-preview .llms-lesson-link:visited {
+ color: #212121;
+}
+.llms-lesson-preview .llms-lesson-link.llms-lesson-link-locked {
+ background: #EFEFEF;
+ color: #666;
+}
+.llms-lesson-preview .llms-lesson-link.llms-lesson-link-locked:hover {
+ background: #dedede;
+}
+.llms-lesson-preview .llms-lesson-link .llms-lesson-preview-row {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: reverse;
+ -ms-flex-direction: row-reverse;
+ flex-direction: row-reverse;
+}
+.llms-lesson-preview .llms-lesson-thumbnail {
+ margin-bottom: 15px;
+}
+.llms-lesson-preview .llms-lesson-thumbnail img {
+ display: block;
+ height: auto;
+ width: 100%;
+}
+.llms-lesson-preview .llms-lesson-title {
+ font-weight: 700;
+ margin: 0 auto 5px;
+}
+.llms-lesson-preview .llms-lesson-title:last-child {
+ margin-bottom: 0;
+}
+.llms-lesson-preview .llms-lesson-excerpt {
+ margin-top: 5px;
+}
+.llms-lesson-preview .llms-lesson-excerpt p {
+ margin: 0 0 10px 0;
+ padding: 0;
+}
+.llms-lesson-preview .llms-lesson-excerpt p:last-of-type {
+ margin: 0;
+}
+.llms-lesson-preview .llms-main {
+ -webkit-box-flex: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+}
+.llms-lesson-preview .llms-extra {
+ min-width: 50px;
+ text-align: right;
+}
+.llms-lesson-preview .llms-lesson-counter,
+.llms-lesson-preview .llms-free-lesson-svg,
+.llms-lesson-preview .llms-lesson-complete,
+.llms-lesson-preview .llms-lesson-complete-placeholder {
+ display: block;
+}
+.llms-lesson-preview.is-free .llms-lesson-complete, .llms-lesson-preview.is-complete .llms-lesson-complete {
+ color: #466dd8;
+}
+.llms-lesson-preview.is-complete .llms-lesson-title:not(.llms-student-dashboard .llms-lesson-title):not(.llms-course-navigation .llms-lesson-title) {
+ text-decoration: line-through;
+}
+.llms-lesson-preview .llms-icon-free {
+ background: #466dd8;
+ border-radius: 6px;
+ color: #fefefe;
+ display: inline-block;
+ font-size: 14px;
+ font-weight: bold;
+ line-height: 1;
+ padding: 5px 8px 4px;
+ white-space: nowrap;
+}
+.llms-lesson-preview.is-incomplete .llms-lesson-complete {
+ color: #cacaca;
+}
+.llms-lesson-preview .llms-lesson-counter {
+ font-size: 16px;
+ margin-bottom: 5px;
+}
+.llms-lesson-preview .llms-free-lesson-svg {
+ fill: currentColor;
+ height: 23px;
+ width: 50px;
+}
+
+.llms-course-navigation {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 20px;
+}
+.llms-course-navigation .llms-prev-lesson,
+.llms-course-navigation .llms-next-lesson,
+.llms-course-navigation .llms-back-to-course {
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+}
+.llms-course-navigation .llms-prev-lesson + .llms-back-to-course {
+ text-align: right;
+}
+.llms-course-navigation .llms-next-lesson .llms-lesson-preview .llms-lesson-link {
+ text-align: right;
+}
+.llms-course-navigation .llms-lesson-preview {
+ border: 1px solid #dedede;
+}
+.llms-course-navigation .llms-lesson-link {
+ display: block;
+}
+
+/* progress bar */
+.llms-progress {
+ clear: both;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: reverse;
+ -ms-flex-direction: row-reverse;
+ flex-direction: row-reverse;
+ position: relative;
+ height: 1em;
+ width: 100%;
+ margin: 15px 0;
+}
+
+.llms-progress .llms-progress-bar {
+ background-color: #dedede;
+ position: relative;
+ height: 0.4em;
+ top: 0.3em;
+ width: 100%;
+}
+
+.llms-progress .progress-bar-complete {
+ background-color: #ef476f;
+ height: 100%;
+}
+
+.progress__indicator {
+ float: right;
+ text-align: right;
+ height: 1em;
+ line-height: 1em;
+ margin-left: 5px;
+ white-space: nowrap;
+}
+
+.llms-author .name {
+ margin-left: 5px;
+}
+.llms-author .label {
+ margin-left: 5px;
+}
+.llms-author .avatar {
+ border-radius: 50%;
+}
+.llms-author .bio {
+ margin-top: 5px;
+}
+
+.llms-instructor-info {
+ margin: 40px 0;
+}
+.llms-instructor-info .llms-meta-title {
+ margin: 0;
+}
+.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author {
+ margin-left: 0;
+}
+.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author {
+ margin-right: 0;
+}
+.llms-instructor-info .llms-instructors .llms-author {
+ background: #fefefe;
+ border: 1px solid #dedede;
+ border-top: 4px solid #466dd8;
+ border-bottom-right-radius: 6px;
+ border-bottom-left-radius: 6px;
+ color: #010101;
+ text-align: center;
+ margin: 45px 0 0;
+ padding: 0 20px 20px;
+}
+.llms-instructor-info .llms-instructors .llms-author .avatar {
+ background: #466dd8;
+ border: 4px solid #466dd8;
+ display: block;
+ margin: -35px auto 10px;
+}
+.llms-instructor-info .llms-instructors .llms-author .llms-author-info {
+ display: block;
+}
+.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name {
+ font-weight: 700;
+}
+.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label {
+ font-size: 85%;
+}
+.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio {
+ font-size: 90%;
+ margin-bottom: 0;
+}
+
+.llms_review {
+ margin: 20px 0px;
+ padding: 10px;
+}
+.llms_review h5 {
+ font-size: 17px;
+ margin: 3px 0px;
+}
+.llms_review h6 {
+ font-size: 13px;
+}
+.llms_review p {
+ font-size: 15px;
+}
+
+.review_box [type=text] {
+ margin: 10px 0px;
+}
+.review_box h5 {
+ color: red;
+ display: none;
+}
+.review_box + .thank_you_box {
+ display: none;
+}
+
+.llms-notice {
+ background: rgba(70, 109, 216, 0.3);
+ border-color: #466dd8;
+ border-style: solid;
+ border-width: 1px;
+ border-radius: 6px;
+ padding: 15px;
+ margin-bottom: 40px;
+}
+.llms-notice a {
+ color: inherit;
+}
+.llms-notice p:last-child, .llms-notice ul:last-child {
+ margin-bottom: 0;
+}
+.llms-notice li {
+ list-style-type: none;
+}
+.llms-notice.llms-debug {
+ background: rgba(202, 202, 202, 0.3);
+ border-color: #cacaca;
+}
+.llms-notice.llms-error {
+ background: rgba(187, 35, 28, 0.15);
+ border-color: #bb231c;
+}
+.llms-notice.llms-success {
+ background: rgba(77, 141, 60, 0.15);
+ border-color: #4d8d3c;
+}
+
+.entry-content .llms-notice {
+ margin: 0 0 40px;
+}
+.entry-content .llms-notice li {
+ list-style-type: none;
+}
+
+ul.llms-achievements-loop,
+.lifterlms ul.llms-achievements-loop,
+ul.llms-certificates-loop,
+.lifterlms ul.llms-certificates-loop {
+ list-style-type: none;
+ margin: 0 -10px;
+ padding: 0;
+}
+ul.llms-achievements-loop:before, ul.llms-achievements-loop:after,
+.lifterlms ul.llms-achievements-loop:before,
+.lifterlms ul.llms-achievements-loop:after,
+ul.llms-certificates-loop:before,
+ul.llms-certificates-loop:after,
+.lifterlms ul.llms-certificates-loop:before,
+.lifterlms ul.llms-certificates-loop:after {
+ content: " ";
+ display: table;
+}
+ul.llms-achievements-loop:after,
+.lifterlms ul.llms-achievements-loop:after,
+ul.llms-certificates-loop:after,
+.lifterlms ul.llms-certificates-loop:after {
+ clear: both;
+}
+ul.llms-achievements-loop li.llms-achievement-loop-item,
+ul.llms-achievements-loop li.llms-certificate-loop-item,
+.lifterlms ul.llms-achievements-loop li.llms-achievement-loop-item,
+.lifterlms ul.llms-achievements-loop li.llms-certificate-loop-item,
+ul.llms-certificates-loop li.llms-achievement-loop-item,
+ul.llms-certificates-loop li.llms-certificate-loop-item,
+.lifterlms ul.llms-certificates-loop li.llms-achievement-loop-item,
+.lifterlms ul.llms-certificates-loop li.llms-certificate-loop-item {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ display: block;
+ float: left;
+ list-style-type: none;
+ margin: 0;
+ padding: 10px;
+ width: 100%;
+}
+@media all and (min-width: 600px) {
+ ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,
+ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,
+ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item {
+ width: 100%;
+ }
+ ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,
+ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,
+ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item {
+ width: 50%;
+ }
+ ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,
+ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,
+ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item {
+ width: 33.3333333333%;
+ }
+ ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,
+ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,
+ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item {
+ width: 25%;
+ }
+ ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,
+.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,
+ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,
+ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,
+.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item {
+ width: 20%;
+ }
+}
+
+.llms-achievement,
+.llms-certificate {
+ background: #fefefe;
+ border: none;
+ border-radius: 12px;
+ color: #010101;
+ display: block;
+ padding: 20px 0;
+ text-decoration: none;
+ width: 100%;
+}
+.llms-achievement:hover,
+.llms-certificate:hover {
+ background: #eaeaea;
+}
+.llms-achievement .llms-achievement-img,
+.llms-certificate .llms-achievement-img {
+ display: block;
+ margin: 0 auto;
+ max-width: 80%;
+}
+.llms-achievement .llms-achievement-title,
+.llms-certificate .llms-achievement-title {
+ color: #010101;
+ font-size: 16px;
+ margin: 0;
+ padding: 10px;
+ text-align: center;
+}
+.llms-achievement .llms-certificate-title,
+.llms-certificate .llms-certificate-title {
+ color: #010101;
+ font-size: 16px;
+ margin: 0;
+ padding: 0 0 10px;
+}
+.llms-achievement .llms-achievement-info,
+.llms-achievement .llms-achievement-date,
+.llms-certificate .llms-achievement-info,
+.llms-certificate .llms-achievement-date {
+ display: none;
+}
+.llms-achievement .llms-achievement-content,
+.llms-certificate .llms-achievement-content {
+ padding: 20px;
+}
+.llms-achievement .llms-achievement-content:empty,
+.llms-certificate .llms-achievement-content:empty {
+ padding: 0;
+}
+.llms-achievement .llms-achievement-content *:last-child,
+.llms-certificate .llms-achievement-content *:last-child {
+ margin-bottom: 0;
+}
+
+.llms-certificate {
+ border: 4px double #dedede;
+ padding: 20px 10px;
+ background: #fefefe;
+ text-align: center;
+}
+.llms-certificate:hover {
+ background: #fefefe;
+ border-color: #eaeaea;
+}
+
+.llms-achievement-modal .llms-achievement {
+ background: #fff;
+}
+.llms-achievement-modal .llms-achievement-info {
+ display: block;
+}
+.llms-achievement-modal .llms-achievement-title {
+ display: none;
+}
+
+.llms-notification {
+ background: #fefefe;
+ -webkit-box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;
+ box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;
+ border-top: 4px solid #466dd8;
+ color: #010101;
+ opacity: 0;
+ padding: 12px;
+ position: fixed;
+ right: -800px;
+ top: 24px;
+ -webkit-transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out;
+ transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out;
+ visibility: hidden;
+ width: auto;
+ z-index: 9999999;
+}
+.llms-notification:before, .llms-notification:after {
+ content: " ";
+ display: table;
+}
+.llms-notification:after {
+ clear: both;
+}
+.llms-notification.visible {
+ left: 12px;
+ opacity: 1;
+ right: 12px;
+ -webkit-transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
+ transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
+ transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, transform 0.2s ease-in-out;
+ transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
+ visibility: visible;
+}
+.llms-notification.visible:hover .llms-notification-dismiss {
+ opacity: 1;
+}
+.llms-notification .llms-notification-content {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+}
+.llms-notification .llms-notification-main {
+ -ms-flex-item-align: start;
+ align-self: flex-start;
+ -webkit-box-flex: 4;
+ -ms-flex: 4;
+ flex: 4;
+ -webkit-box-ordinal-group: 3;
+ -ms-flex-order: 2;
+ order: 2;
+}
+.llms-notification .llms-notification-title {
+ color: #010101;
+ font-size: 18px;
+ margin: 0;
+}
+.llms-notification .llms-notification-body {
+ font-size: 14px;
+ line-height: 1.4;
+}
+.llms-notification .llms-notification-body p, .llms-notification .llms-notification-body li {
+ font-size: inherit;
+}
+.llms-notification .llms-notification-body p {
+ margin-bottom: 8px;
+}
+.llms-notification .llms-notification-body p img {
+ max-width: 100%;
+}
+.llms-notification .llms-notification-body .llms-mini-cert {
+ background: #f6f6f6;
+ border: 1px solid #d0d0d0;
+ -webkit-box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;
+ box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;
+ padding: 16px 16px 24px;
+ margin-top: 12px;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert-title {
+ font-size: 16px;
+ font-weight: 700;
+ margin: 12px auto;
+ text-align: center;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body {
+ width: 100%;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(1) {
+ width: 65%;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(2) {
+ width: 35%;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(3) {
+ width: 85%;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(4) {
+ width: 75%;
+ margin-top: 18px;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(5) {
+ width: 70%;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(6) {
+ margin-left: 12px;
+ margin-bottom: -24px;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(7) {
+ width: 65%;
+ margin-right: 12px;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-line {
+ border-radius: 2px;
+ height: 8px;
+ background: #b0b0b0;
+ background-image: -webkit-gradient(linear, left top, right top, from(#b0b0b0), color-stop(20%, #a0a0a0), color-stop(40%, #b0b0b0), to(#b0b0b0));
+ background-image: linear-gradient(to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100%);
+ background-repeat: no-repeat;
+ margin: 4px auto;
+}
+.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-dot {
+ background: #b0b0b0;
+ border-radius: 50%;
+ display: inline-block;
+ content: "";
+ height: 24px;
+ width: 24px;
+}
+.llms-notification .llms-notification-body .llms-mini-cert p {
+ margin-bottom: 0;
+}
+.llms-notification .llms-notification-aside {
+ -ms-flex-item-align: start;
+ align-self: flex-start;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ margin-right: 12px;
+ -webkit-box-ordinal-group: 2;
+ -ms-flex-order: 1;
+ order: 1;
+}
+.llms-notification .llms-notification-icon {
+ display: block;
+ max-width: 64px;
+}
+.llms-notification .llms-notification-footer {
+ border-top: 1px solid #e5e5e5;
+ font-size: 12px;
+ margin-top: 12px;
+ padding: 6px 6px 0;
+ text-align: right;
+}
+.llms-notification .llms-notification-footer a {
+ color: #010101;
+}
+.llms-notification .llms-notification-dismiss {
+ color: #bb231c;
+ cursor: pointer;
+ font-size: 22px;
+ position: absolute;
+ right: 10px;
+ top: 8px;
+ -webkit-transition: opacity 0.4s ease-in-out;
+ transition: opacity 0.4s ease-in-out;
+}
+
+.llms-sd-notification-center .llms-notification-list,
+.llms-sd-notification-center .llms-notification-list-item {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.llms-sd-notification-center .llms-notification-list-item:hover .llms-notification {
+ background: #fcfcfc;
+}
+.llms-sd-notification-center .llms-notification {
+ opacity: 1;
+ border-top: 1px solid #e5e5e5;
+ left: auto;
+ padding: 24px;
+ position: relative;
+ right: auto;
+ top: auto;
+ visibility: visible;
+ width: auto;
+}
+.llms-sd-notification-center .llms-notification .llms-notification-aside {
+ max-width: 64px;
+}
+.llms-sd-notification-center .llms-notification .llms-notification-footer {
+ border: none;
+ padding: 0;
+ text-align: left;
+}
+.llms-sd-notification-center .llms-notification .llms-progress {
+ display: none !important;
+}
+.llms-sd-notification-center .llms-notification .llms-notification-date {
+ color: #515151;
+ float: left;
+ margin-right: 6px;
+}
+.llms-sd-notification-center .llms-notification .llms-mini-cert {
+ margin: 0 auto;
+ max-width: 380px;
+}
+
+@media all and (min-width: 480px) {
+ .llms-notification {
+ right: -800px;
+ width: 360px;
+ }
+ .llms-notification.visible {
+ left: auto;
+ right: 24px;
+ }
+ .llms-notification .llms-notification-dismiss {
+ opacity: 0;
+ }
+}
+.llms-pagination ul {
+ list-style-type: none;
+ margin: 40px 0;
+ padding: 0;
+}
+.llms-pagination ul li {
+ float: left;
+}
+.llms-pagination ul li a {
+ border-bottom: 0;
+ text-decoration: none;
+}
+.llms-pagination ul li .page-numbers {
+ padding: 0.5em;
+ text-decoration: underline;
+}
+.llms-pagination ul li .page-numbers.current {
+ text-decoration: none;
+}
+
+.llms-tooltip {
+ background: #2a2a2a;
+ border-radius: 4px;
+ color: #fff;
+ font-size: 14px;
+ line-height: 1.2;
+ opacity: 0;
+ top: -20px;
+ padding: 8px 12px;
+ left: 50%;
+ position: absolute;
+ pointer-events: none;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%);
+ -webkit-transition: opacity 0.2s ease, top 0.2s ease;
+ transition: opacity 0.2s ease, top 0.2s ease;
+ max-width: 320px;
+}
+.llms-tooltip.show {
+ top: -28px;
+ opacity: 1;
+}
+.llms-tooltip:after {
+ bottom: -8px;
+ border-top: 8px solid #2a2a2a;
+ border-left: 8px solid transparent;
+ border-right: 8px solid transparent;
+ content: "";
+ height: 0;
+ left: 50%;
+ position: absolute;
+ -webkit-transform: translateX(-50%);
+ transform: translateX(-50%);
+ width: 0;
+}
+
+.webui-popover-title {
+ font-size: initial;
+ font-weight: initial;
+ line-height: initial;
+}
+
+.webui-popover-inverse .webui-popover-inner .close {
+ color: #fff;
+ opacity: 0.6;
+ text-shadow: none;
+}
+.webui-popover-inverse .webui-popover-inner .close:hover {
+ opacity: 0.8;
+}
+.webui-popover-inverse .webui-popover-content a {
+ color: #fff;
+ text-decoration: underline;
+}
+.webui-popover-inverse .webui-popover-content a:hover {
+ text-decoration: none;
+}
+
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results {
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question {
+ background: #efefef;
+ border-radius: 6px;
+ margin: 0 0 15px;
+ position: relative;
+ list-style-type: none;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer {
+ color: inherit;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 10px;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ padding: 15px 35px 15px 15px;
+ text-decoration: none;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect {
+ background: rgba(192, 86, 33, 0.2);
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon {
+ background-color: #c05621;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct {
+ background: rgba(77, 141, 60, 0.15);
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon {
+ background-color: #4d8d3c;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect {
+ background: rgba(187, 35, 28, 0.15);
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon {
+ background-color: #bb231c;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question pre {
+ overflow: auto;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title {
+ font-size: 22px;
+ margin: 0;
+ line-height: 1.4;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points {
+ line-height: 1.4;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip {
+ position: absolute;
+ right: -12px;
+ top: -2px;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon {
+ color: rgba(255, 255, 255, 0.65);
+ border-radius: 50%;
+ font-size: 30px;
+ height: 40px;
+ line-height: 40px;
+ text-align: center;
+ width: 40px;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main {
+ display: none;
+ padding: 0 15px 15px;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label {
+ font-weight: 700;
+ margin: 0 0 10px;
+ padding: 0;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers {
+ margin: 0;
+ padding: 0;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {
+ padding: 0;
+ margin: 0 0 0 30px;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child {
+ list-style-type: none;
+ margin-left: 0;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img {
+ height: auto;
+ max-width: 200px;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section {
+ border-top: 2px solid rgba(255, 255, 255, 0.5);
+ margin-top: 20px;
+ padding-top: 20px;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child {
+ border-top: none;
+ margin-top: 0;
+ padding-top: 0;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {
+ display: inline-block;
+ list-style-type: none;
+ margin: 0;
+ padding: 5px;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed {
+ opacity: 0.5;
+}
+.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title {
+ font-style: italic;
+ font-weight: normal;
+}
+.single-llms_quiz .llms-return {
+ margin-bottom: 10px;
+}
+.single-llms_quiz .llms-quiz-results:before, .single-llms_quiz .llms-quiz-results:after {
+ content: " ";
+ display: table;
+}
+.single-llms_quiz .llms-quiz-results:after {
+ clear: both;
+}
+.single-llms_quiz .llms-quiz-results .llms-donut.passing {
+ color: #4d8d3c;
+}
+.single-llms_quiz .llms-quiz-results .llms-donut.passing svg path {
+ stroke: #4d8d3c;
+}
+.single-llms_quiz .llms-quiz-results .llms-donut.pending {
+ color: #555;
+}
+.single-llms_quiz .llms-quiz-results .llms-donut.pending svg path {
+ stroke: #555;
+}
+.single-llms_quiz .llms-quiz-results .llms-donut.failing {
+ color: #bb231c;
+}
+.single-llms_quiz .llms-quiz-results .llms-donut.failing svg path {
+ stroke: #bb231c;
+}
+.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside,
+.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,
+.single-llms_quiz .llms-quiz-results .llms-quiz-results-history {
+ margin-bottom: 20px;
+}
+@media all and (min-width: 600px) {
+ .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside {
+ float: left;
+ width: 220px;
+ }
+ .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside + .llms-quiz-results-main {
+ float: right;
+ width: calc(100% - 300px);
+ }
+ .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside + .llms-quiz-results-main + .llms-quiz-results-history {
+ float: right;
+ width: calc(100% - 300px);
+ }
+ .single-llms_quiz .llms-quiz-results .llms-quiz-results-history {
+ clear: right;
+ }
+}
+.single-llms_quiz ul.llms-quiz-meta-info {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.single-llms_quiz ul.llms-quiz-meta-info li {
+ list-style-type: none;
+ margin: 10px 0 0;
+ padding: 0;
+}
+.single-llms_quiz ul.llms-quiz-meta-info {
+ margin-bottom: 10px;
+}
+.single-llms_quiz .llms-quiz-buttons {
+ margin-top: 10px;
+ text-align: left;
+}
+.single-llms_quiz .llms-quiz-buttons form {
+ display: inline-block;
+}
+
+.llms-quiz-question-wrapper {
+ min-height: 140px;
+ position: relative;
+}
+.llms-quiz-question-wrapper .llms-quiz-loading {
+ bottom: 20px;
+ left: 0;
+ position: absolute;
+ right: 0;
+ text-align: center;
+ z-index: 1;
+}
+.llms-quiz-question-wrapper .llms-question-image img {
+ height: auto;
+ max-width: 100%;
+}
+
+.llms-quiz-ui {
+ position: relative;
+}
+.llms-quiz-ui .llms-quiz-header {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ margin: 0 0 40px;
+}
+.llms-quiz-ui .llms-progress {
+ background-color: #dedede;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ height: 8px;
+ margin: 0;
+ overflow: hidden;
+}
+.llms-quiz-ui .llms-progress .progress-bar-complete {
+ -webkit-transition: width 0.3s ease-in;
+ transition: width 0.3s ease-in;
+ width: 0;
+}
+.llms-quiz-ui .llms-error {
+ background: rgba(187, 35, 28, 0.15);
+ border: 1px solid #bb231c;
+ border-radius: 6px;
+ margin: 20px 0;
+ padding: 15px;
+}
+.llms-quiz-ui .llms-error:before, .llms-quiz-ui .llms-error:after {
+ content: " ";
+ display: table;
+}
+.llms-quiz-ui .llms-error:after {
+ clear: both;
+}
+.llms-quiz-ui .llms-error a {
+ color: #bb231c;
+ float: right;
+ font-size: 22px;
+ line-height: 1;
+ text-decoration: none;
+}
+.llms-quiz-ui .llms-quiz-counter {
+ display: none;
+ color: #6a6a6a;
+ float: right;
+ font-size: 18px;
+}
+.llms-quiz-ui .llms-quiz-counter .llms-sep {
+ margin: 0 5px;
+}
+.llms-quiz-ui .llms-quiz-nav {
+ margin-top: 20px;
+}
+.llms-quiz-ui .llms-quiz-nav button {
+ margin: 0 10px 0 0;
+}
+
+.llms-question-wrapper .llms-question-text {
+ font-size: 30px;
+ font-weight: 400;
+ margin-bottom: 15px;
+}
+.llms-question-wrapper ol.llms-question-choices {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice {
+ border-bottom: 1px solid #e8e8e8;
+ margin: 0;
+ padding: 0;
+ position: relative;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice:last-child {
+ border-bottom: none;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture {
+ border-bottom: none;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture label {
+ display: inline-block;
+ padding: 0;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-marker {
+ bottom: 10px;
+ margin: 0;
+ position: absolute;
+ right: 10px;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image {
+ margin: 2px;
+ padding: 20px;
+ -webkit-transition: background 0.4s ease;
+ transition: background 0.4s ease;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image img {
+ display: block;
+ height: auto;
+ width: 100%;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture input:checked ~ .llms-choice-image {
+ background: #efefef;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice input {
+ display: none;
+ left: 0;
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ visibility: hidden;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice label {
+ display: block;
+ margin: 0;
+ padding: 10px 20px;
+ position: relative;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .iterator {
+ display: none;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .fa {
+ display: inline;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker {
+ background: #fefefe;
+ color: #010101;
+ display: inline-block;
+ font-size: 20px;
+ height: 40px;
+ line-height: 40px;
+ margin-right: 10px;
+ text-align: center;
+ -webkit-transition: all 0.2s ease;
+ transition: all 0.2s ease;
+ vertical-align: middle;
+ width: 40px;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker .fa {
+ display: none;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--lister, .llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--checkbox {
+ border-radius: 4px;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--radio {
+ border-radius: 50%;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker {
+ background: #ef476f;
+ color: #fff;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .iterator {
+ display: none;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .fa {
+ display: inline;
+}
+.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text {
+ display: inline-block;
+ font-size: 18px;
+ font-weight: 400;
+ line-height: 1.6;
+ margin: 0;
+ padding: 0;
+ vertical-align: middle;
+ width: calc(100% - 60px);
+}
+
+.llms-quiz-timer {
+ background: #fff;
+ border: 1px solid #4d8d3c;
+ border-radius: 4px;
+ color: #4d8d3c;
+ float: right;
+ font-size: 18px;
+ line-height: 1;
+ margin-left: 20px;
+ padding: 8px 12px;
+ position: relative;
+ white-space: nowrap;
+ z-index: 1;
+}
+.llms-quiz-timer.color-half {
+ border-color: #c05621;
+ color: #c05621;
+}
+.llms-quiz-timer.color-empty {
+ border-color: #bb231c;
+ color: #bb231c;
+}
+.llms-quiz-timer .llms-tiles {
+ display: inline-block;
+ margin-left: 5px;
+}
+
+.voucher-expand {
+ display: none;
+}
+
+@media all and (min-width: 600px) {
+ .llms-access-plans.cols-1 .llms-access-plan {
+ width: 100%;
+ }
+ .llms-access-plans.cols-2 .llms-access-plan {
+ width: 50%;
+ }
+ .llms-access-plans.cols-3 .llms-access-plan {
+ width: 33.3333333333%;
+ }
+ .llms-access-plans.cols-4 .llms-access-plan {
+ width: 25%;
+ }
+ .llms-access-plans.cols-5 .llms-access-plan {
+ width: 20%;
+ }
+}
+
+.llms-free-enroll-form {
+ margin-bottom: 0;
+}
+
+.llms-access-plan {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ float: left;
+ text-align: center;
+ width: 100%;
+}
+.llms-access-plan .llms-access-plan-content,
+.llms-access-plan .llms-access-plan-footer {
+ background: #f1f1f1;
+}
+.llms-access-plan.featured .llms-access-plan-featured {
+ background: #466dd8;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+}
+.llms-access-plan.featured .llms-access-plan-content {
+ border-radius: 0;
+}
+.llms-access-plan.featured .llms-access-plan-title {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+.llms-access-plan.featured .llms-access-plan-footer,
+.llms-access-plan.featured .llms-access-plan-content {
+ border-left: 3px solid #466dd8;
+ border-right: 3px solid #466dd8;
+}
+.llms-access-plan.featured .llms-access-plan-footer {
+ border-bottom-color: #466dd8;
+}
+.llms-access-plan.on-sale .price-regular {
+ text-decoration: line-through;
+}
+.llms-access-plan.on-sale .price-regular .lifterlms-price {
+ font-weight: 400;
+}
+.llms-access-plan .stamp {
+ background: #466dd8;
+ border-radius: 6px;
+ color: #fefefe;
+ display: inline-block;
+ font-size: 14px;
+ font-style: normal;
+ font-weight: bold;
+ line-height: 1;
+ padding: 5px 8px 4px;
+}
+
+.llms-access-plan-featured {
+ color: #fff;
+ font-size: 14px;
+ font-weight: 700;
+ letter-spacing: 1px;
+ margin: 0 2px 0 2px;
+ padding: 5px 0 0;
+}
+
+.llms-access-plan-content {
+ border-top-right-radius: 6px;
+ border-top-left-radius: 6px;
+ margin: 0 2px 0;
+ overflow: hidden;
+}
+.llms-access-plan-content .llms-access-plan-pricing {
+ color: #010101;
+ padding: 20px 0 0;
+}
+.llms-access-plan-content .llms-form-fields {
+ padding: 10px;
+}
+
+.llms-access-plan-title {
+ background: #466dd8;
+ color: #fefefe;
+ margin: 0;
+ padding: 10px 15px;
+}
+
+.llms-access-plan-pricing .llms-price-currency-symbol {
+ font-size: 14px;
+ vertical-align: top;
+}
+
+.llms-access-plan-price .lifterlms-price {
+ font-weight: 700;
+}
+.llms-access-plan-price.sale {
+ padding: 5px 0;
+ border-top: 1px solid #d0d0d0;
+ border-bottom: 1px solid #d0d0d0;
+}
+
+.llms-access-plan-trial,
+.llms-access-plan-schedule,
+.llms-access-plan-sale-end,
+.llms-access-plan-expiration {
+ font-size: 16px;
+}
+
+.llms-access-plan-description {
+ color: #010101;
+ font-size: 16px;
+ padding: 10px 10px 0;
+}
+.llms-access-plan-description ul {
+ margin: 0;
+}
+.llms-access-plan-description ul li {
+ border-bottom: 1px solid #d0d0d0;
+ list-style-type: none;
+}
+.llms-access-plan-description ul li:last-child {
+ border-bottom: none;
+}
+.llms-access-plan-description div:last-child, .llms-access-plan-description img:last-child, .llms-access-plan-description p:last-child, .llms-access-plan-description ul:last-child, .llms-access-plan-description li:last-child {
+ margin-bottom: 0;
+}
+
+.llms-access-plan-restrictions {
+ margin-top: 20px;
+}
+.llms-access-plan-restrictions .stamp {
+ vertical-align: baseline;
+}
+.llms-access-plan-restrictions ul {
+ margin: 5px 0 0 0;
+ padding: 0;
+}
+.llms-access-plan-restrictions ul li {
+ font-size: 14px;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.llms-access-plan-restrictions a {
+ color: #c05621;
+}
+.llms-access-plan-restrictions a:hover {
+ color: #f67d28;
+}
+
+.llms-access-plan-footer {
+ border-bottom: 3px solid #f1f1f1;
+ border-bottom-left-radius: 6px;
+ border-bottom-right-radius: 6px;
+ padding: 15px;
+ margin: 0 2px 2px 2px;
+}
+.llms-access-plan-footer .button {
+ display: inline-block;
+}
+.llms-access-plan-footer .llms-access-plan-pricing {
+ padding: 0 0 10px;
+}
+
+.webui-popover-content .llms-members-only-restrictions {
+ text-align: center;
+}
+.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li, .webui-popover-content .llms-members-only-restrictions p {
+ margin: 0;
+ padding: 0;
+}
+.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li {
+ list-style-type: none;
+}
+.webui-popover-content .llms-members-only-restrictions li {
+ padding: 8px 0;
+ border-top: 1px solid #3b3b3b;
+}
+.webui-popover-content .llms-members-only-restrictions li:first-child {
+ border-top: none;
+}
+.webui-popover-content .llms-members-only-restrictions li a {
+ display: block;
+}
+
+.llms-checkout-wrapper .llms-person-login-form-wrapper {
+ margin-bottom: 40px;
+}
+.llms-checkout-wrapper form.llms-login {
+ display: none;
+}
+.llms-checkout-wrapper .llms-form-heading {
+ margin: 0 0 20px;
+}
+
+.llms-checkout {
+ position: relative;
+}
+
+.llms-checkout-cols-2.llms-col-2 section {
+ background-color: #fefefe;
+ border: 1px solid #ccc;
+ border-radius: 12px;
+ padding: 20px;
+}
+.llms-checkout-cols-2.llms-col-2 section .llms-form-heading {
+ padding: 0;
+}
+@media all and (min-width: 800px) {
+ .llms-checkout-cols-2 .llms-checkout-col {
+ float: left;
+ }
+ .llms-checkout-cols-2 .llms-checkout-col.llms-col-1 {
+ margin-right: 20px;
+ width: calc(58% - 20px);
+ }
+ .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 {
+ margin-left: 20px;
+ width: calc(42% - 20px);
+ }
+ .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 button {
+ width: 100%;
+ }
+}
+
+.llms-checkout-section {
+ margin-bottom: 40px;
+ position: relative;
+}
+
+.llms-checkout-section-content.llms-form-fields {
+ margin: 0px;
+}
+.llms-checkout-section-content .llms-label {
+ font-weight: 400;
+}
+.llms-checkout-section-content .llms-order-summary {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+.llms-checkout-section-content .llms-order-summary li {
+ list-style-type: none;
+ margin: 0 0 15px 0;
+}
+.llms-checkout-section-content .llms-order-summary :not(.llms-label) {
+ font-weight: 700;
+}
+.llms-checkout-section-content .llms-order-summary li.llms-pricing.on-sale .price-regular, .llms-checkout-section-content .llms-order-summary li.llms-pricing.has-coupon .price-regular {
+ text-decoration: line-through;
+}
+.llms-checkout-section-content .llms-coupon-wrapper {
+ border-top: 1px solid #dedede;
+ margin-top: 20px;
+ padding-top: 20px;
+}
+.llms-checkout-section-content .llms-coupon-wrapper .llms-coupon-entry {
+ display: none;
+ margin-top: 20px;
+}
+
+.llms-form-field.llms-payment-gateway-option {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 8px;
+}
+.llms-form-field.llms-payment-gateway-option label + span.llms-description {
+ display: inline-block;
+ margin-left: 5px;
+}
+.llms-form-field.llms-payment-gateway-option .llms-description a {
+ border: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ text-decoration: none;
+}
+.llms-form-field.llms-payment-gateway-option .llms-description img {
+ display: inline;
+ max-height: 22px;
+ vertical-align: middle;
+}
+
+.llms-checkout-wrapper ul.llms-payment-gateways {
+ margin: 5px 0 0;
+ padding: 0;
+}
+
+ul.llms-payment-gateways {
+ list-style-type: none;
+}
+ul.llms-payment-gateways li:last-child:after {
+ border-bottom: 1px solid #dedede;
+ content: "";
+ display: block;
+ margin: 20px 0;
+}
+ul.llms-payment-gateways .llms-payment-gateway {
+ margin-bottom: 30px;
+ list-style-type: none;
+}
+ul.llms-payment-gateways .llms-payment-gateway:last-child {
+ margin-bottom: none;
+}
+ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-payment-gateway-option label {
+ font-weight: 700;
+}
+ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields {
+ display: block;
+}
+ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields .llms-notice {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+ul.llms-payment-gateways .llms-payment-gateway .llms-form-field {
+ padding-bottom: 0;
+}
+ul.llms-payment-gateways .llms-gateway-description {
+ margin-left: 40px;
+}
+ul.llms-payment-gateways .llms-gateway-fields {
+ display: none;
+ margin: 5px 0 20px;
+}
+ul.llms-payment-gateways .llms-payment-gateway-error {
+ padding: 0 10px;
+}
+
+.llms-checkout-confirm {
+ margin: 0;
+}
+
+.llms-payment-method {
+ margin: 10px 10px 0;
+}
+
+.llms-gateway-description p {
+ font-size: 14px;
+ font-style: italic;
+ margin: 0;
+}
+
+.llms-form-fields {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.llms-form-fields * {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.llms-form-fields.flush .llms-form-field {
+ padding: 0 0 20px;
+}
+.llms-form-fields label:not(.llms-field-html label) {
+ font-weight: 700;
+}
+.llms-form-fields .wp-block-columns, .llms-form-fields .wp-block-column {
+ margin-bottom: 0;
+}
+
+.llms-form-heading {
+ padding: 0 10px 10px;
+}
+
+.llms-form-field {
+ float: left;
+ padding: 0 10px 20px;
+ position: relative;
+ width: 100%;
+}
+.llms-form-field label:empty:after {
+ content: " ";
+}
+.llms-form-field [type=text],
+.llms-form-field [type=password],
+.llms-form-field [type=email],
+.llms-form-field [type=url],
+.llms-form-field [type=tel],
+.llms-form-field [type=number] {
+ background-color: #fefefe;
+ background-clip: padding-box;
+ border: 1px solid #999;
+ border-radius: 6px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ font-size: 16px;
+ line-height: 1;
+ padding: 8px 12px;
+ -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ width: 100%;
+}
+.llms-form-field input:focus,
+.llms-form-field input:focus-visible {
+ border-color: #6888df;
+ outline: thin solid;
+}
+.llms-form-field select {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ -ms-appearance: none;
+ appearance: none;
+ background-color: #fefefe;
+ border: 1px solid #999;
+ border-radius: 6px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #010101;
+ padding: 8px 12px;
+ margin: 0;
+ width: 100%;
+ font-family: inherit;
+ font-size: 16px;
+ cursor: inherit;
+ line-height: 1.6;
+ z-index: 1;
+ outline: none;
+ background-repeat: no-repeat;
+ background-image: linear-gradient(45deg, transparent 50%, currentcolor 50%), linear-gradient(135deg, currentcolor 50%, transparent 50%);
+ background-position: right 15px top 1.3rem, right 10px top 1.3rem;
+ background-size: 5px 5px, 5px 5px;
+}
+.llms-form-field select::-ms-expand {
+ display: none;
+}
+.llms-form-field select:focus {
+ border: 1px solid #6888df;
+ outline: thin solid;
+}
+.llms-form-field.valid input[type=date], .llms-form-field.valid input[type=time], .llms-form-field.valid input[type=datetime-local], .llms-form-field.valid input[type=week], .llms-form-field.valid input[type=month], .llms-form-field.valid input[type=text], .llms-form-field.valid input[type=email], .llms-form-field.valid input[type=url], .llms-form-field.valid input[type=password], .llms-form-field.valid input[type=search], .llms-form-field.valid input[type=tel], .llms-form-field.valid input[type=number], .llms-form-field.valid textarea, .llms-form-field.valid select {
+ background: rgba(131, 195, 115, 0.3);
+ border-color: #83c373;
+}
+.llms-form-field.error input[type=date], .llms-form-field.error input[type=time], .llms-form-field.error input[type=datetime-local], .llms-form-field.error input[type=week], .llms-form-field.error input[type=month], .llms-form-field.error input[type=text], .llms-form-field.error input[type=email], .llms-form-field.error input[type=url], .llms-form-field.error input[type=password], .llms-form-field.error input[type=search], .llms-form-field.error input[type=tel], .llms-form-field.error input[type=number], .llms-form-field.error textarea, .llms-form-field.error select, .llms-form-field.invalid input[type=date], .llms-form-field.invalid input[type=time], .llms-form-field.invalid input[type=datetime-local], .llms-form-field.invalid input[type=week], .llms-form-field.invalid input[type=month], .llms-form-field.invalid input[type=text], .llms-form-field.invalid input[type=email], .llms-form-field.invalid input[type=url], .llms-form-field.invalid input[type=password], .llms-form-field.invalid input[type=search], .llms-form-field.invalid input[type=tel], .llms-form-field.invalid input[type=number], .llms-form-field.invalid textarea, .llms-form-field.invalid select {
+ background: rgba(187, 35, 28, 0.3);
+ border-color: #bb231c;
+}
+.llms-form-field.llms-visually-hidden-field {
+ display: none;
+}
+.llms-form-field.align-right {
+ text-align: right;
+}
+@media screen and (min-width: 600px) {
+ .llms-form-field.llms-cols-1 {
+ width: 8.3333333333%;
+ }
+ .llms-form-field.llms-cols-2 {
+ width: 16.6666666667%;
+ }
+ .llms-form-field.llms-cols-3 {
+ width: 25%;
+ }
+ .llms-form-field.llms-cols-4 {
+ width: 33.3333333333%;
+ }
+ .llms-form-field.llms-cols-5 {
+ width: 41.6666666667%;
+ }
+ .llms-form-field.llms-cols-6 {
+ width: 50%;
+ }
+ .llms-form-field.llms-cols-7 {
+ width: 58.3333333333%;
+ }
+ .llms-form-field.llms-cols-8 {
+ width: 66.6666666667%;
+ }
+ .llms-form-field.llms-cols-9 {
+ width: 75%;
+ }
+ .llms-form-field.llms-cols-10 {
+ width: 83.3333333333%;
+ }
+ .llms-form-field.llms-cols-11 {
+ width: 91.6666666667%;
+ }
+ .llms-form-field.llms-cols-12 {
+ width: 100%;
+ }
+}
+.llms-form-field.type-hidden {
+ padding: 0;
+}
+.llms-form-field.type-radio input,
+.llms-form-field.type-radio label, .llms-form-field.type-checkbox input,
+.llms-form-field.type-checkbox label {
+ display: inline-block;
+ width: auto;
+}
+.llms-form-field.type-radio input, .llms-form-field.type-checkbox input {
+ margin-right: 10px;
+}
+.llms-form-field.type-radio label + .llms-description, .llms-form-field.type-checkbox label + .llms-description {
+ display: block;
+}
+.llms-form-field.type-radio:not(.is-group) input[type=radio] {
+ position: absolute;
+ opacity: 0;
+ visibility: none;
+}
+.llms-form-field.type-radio:not(.is-group) label:before {
+ background: #fafafa;
+ background-position: -24px 0;
+ background-repeat: no-repeat;
+ border-radius: 50%;
+ -webkit-box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.35) 0 0 0 1px;
+ box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.35) 0 0 0 1px;
+ content: "";
+ cursor: pointer;
+ display: inline-block;
+ height: 22px;
+ margin-right: 5px;
+ position: relative;
+ -webkit-transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);
+ transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);
+ top: -3px;
+ vertical-align: middle;
+ width: 22px;
+ z-index: 2;
+}
+.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked + label:before {
+ -webkit-transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);
+ transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);
+ background-position: 0 0;
+ background-image: radial-gradient(ellipse at center, #466dd8 0%, #466dd8 40%, #fafafa 45%);
+}
+.llms-form-field .llms-input-group {
+ margin-top: 5px;
+}
+.llms-form-field .llms-input-group .llms-form-field {
+ padding: 0 0 5px 5px;
+}
+.llms-form-field.type-reset button:not(.auto), .llms-form-field.type-button button:not(.auto), .llms-form-field.type-submit button:not(.auto) {
+ width: 100%;
+}
+.llms-form-field .llms-description {
+ font-size: 14px;
+ font-style: italic;
+ line-height: 18px;
+}
+.llms-form-field .llms-required {
+ color: #bb231c;
+ margin-left: 4px;
+}
+.llms-form-field input, .llms-form-field textarea, .llms-form-field select {
+ width: 100%;
+ margin-bottom: 5px;
+}
+.llms-form-field .select2-container .select2-selection--single {
+ height: auto;
+ padding: 4px 6px;
+}
+.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow {
+ height: 100%;
+}
+
+.llms-password-strength-meter {
+ border: 1px solid #dadada;
+ display: none;
+ font-size: 10px;
+ margin-top: -10px;
+ padding: 1px;
+ position: relative;
+ text-align: center;
+}
+.llms-password-strength-meter:before {
+ bottom: 0;
+ content: "";
+ left: 0;
+ position: absolute;
+ top: 0;
+ -webkit-transition: width 0.4s ease;
+ transition: width 0.4s ease;
+}
+.llms-password-strength-meter.mismatch, .llms-password-strength-meter.too-short, .llms-password-strength-meter.very-weak {
+ border-color: #e35b5b;
+}
+.llms-password-strength-meter.mismatch:before, .llms-password-strength-meter.too-short:before, .llms-password-strength-meter.very-weak:before {
+ background: rgba(227, 91, 91, 0.25);
+ width: 25%;
+}
+.llms-password-strength-meter.too-short:before {
+ width: 0;
+}
+.llms-password-strength-meter.weak {
+ border-color: #f78b53;
+}
+.llms-password-strength-meter.weak:before {
+ background: rgba(247, 139, 83, 0.25);
+ width: 50%;
+}
+.llms-password-strength-meter.medium {
+ border-color: #ffc733;
+}
+.llms-password-strength-meter.medium:before {
+ background: rgba(255, 199, 51, 0.25);
+ width: 75%;
+}
+.llms-password-strength-meter.strong {
+ border-color: #83c373;
+}
+.llms-password-strength-meter.strong:before {
+ background: rgba(131, 195, 115, 0.25);
+ width: 100%;
+}
+.llms-password-strength-meter + .llms-description {
+ display: block;
+}
+
+.llms-widget-syllabus--collapsible .llms-section .section-header {
+ cursor: pointer;
+}
+.llms-widget-syllabus--collapsible .llms-section.llms-section--opened .llms-collapse-caret .fa-caret-right {
+ display: none;
+}
+.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-collapse-caret .fa-caret-down {
+ display: none;
+}
+.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-lesson {
+ display: none;
+}
+.llms-widget-syllabus--collapsible .llms-syllabus-footer {
+ text-align: left;
+}
+
+.llms-student-dashboard {
+ /**
+ * Dashboard Home
+ */
+}
+.llms-student-dashboard .llms-sd-title {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ gap: 15px;
+ margin: 40px 0 20px 0;
+}
+.llms-student-dashboard .llms-sd-title small {
+ font-size: 18px;
+}
+.llms-student-dashboard .llms-sd-title small + a {
+ text-decoration: none;
+}
+.llms-student-dashboard .llms-sd-items {
+ list-style-type: none;
+ margin: 0 0 25px 0;
+ padding: 0;
+}
+.llms-student-dashboard .llms-sd-item {
+ display: inline-block;
+ list-style-type: none;
+ margin: 5px 0;
+ padding: 0;
+}
+.llms-student-dashboard .llms-sd-item:last-child .llms-sep {
+ display: none;
+}
+.llms-student-dashboard .llms-sd-item .llms-sep {
+ color: #666;
+ margin: 0 5px;
+}
+.llms-student-dashboard .llms-sd-section {
+ margin-bottom: 40px;
+}
+.llms-student-dashboard .llms-sd-section h2 {
+ margin: 0 0 15px 0;
+}
+.llms-student-dashboard .llms-sd-section .llms-sd-section-title {
+ margin: 0;
+ padding: 0;
+}
+.llms-student-dashboard .llms-sd-section .llms-sd-section-title:first-child {
+ margin: 0 0 10px 0;
+}
+.llms-student-dashboard .llms-sd-section .llms-sd-section-footer {
+ margin-top: 10px;
+}
+.llms-student-dashboard .llms-sd-section .llms-sd-section-footer a.llms-button-secondary {
+ display: inline-block;
+}
+.llms-student-dashboard .llms-sd-section .llms-certificates-loop {
+ margin: 0 0 0 -10px;
+}
+.llms-student-dashboard .llms-sd-section .llms-certificate {
+ padding: 20px 0;
+}
+.llms-student-dashboard .orders-table {
+ border: 1px solid #dedede;
+ border-spacing: 0;
+ width: 100%;
+}
+.llms-student-dashboard .orders-table thead {
+ display: none;
+}
+.llms-student-dashboard .orders-table thead th, .llms-student-dashboard .orders-table thead td {
+ font-weight: 700;
+}
+@media all and (min-width: 600px) {
+ .llms-student-dashboard .orders-table thead {
+ display: table-header-group;
+ }
+}
+.llms-student-dashboard .orders-table tbody tr:nth-child(odd) td, .llms-student-dashboard .orders-table tbody tr:nth-child(odd) th {
+ background: #f9f9f9;
+}
+.llms-student-dashboard .orders-table tbody tr:last-child {
+ border-bottom-width: 0;
+}
+.llms-student-dashboard .orders-table tfoot tr {
+ background: #f9f9f9;
+}
+.llms-student-dashboard .orders-table tfoot th, .llms-student-dashboard .orders-table tfoot td {
+ padding: 10px;
+ text-align: right;
+}
+.llms-student-dashboard .orders-table tfoot th:last-child, .llms-student-dashboard .orders-table tfoot td:last-child {
+ border-bottom-width: 0;
+}
+.llms-student-dashboard .orders-table th {
+ font-weight: 700;
+}
+.llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {
+ border-color: #dedede;
+ border-style: solid;
+ border-width: 0;
+ display: block;
+ padding: 15px 20px;
+ text-align: center;
+}
+.llms-student-dashboard .orders-table th .llms-button-primary, .llms-student-dashboard .orders-table td .llms-button-primary {
+ display: inline-block;
+}
+.llms-student-dashboard .orders-table th:last-child, .llms-student-dashboard .orders-table td:last-child {
+ border-bottom-width: 1px;
+}
+.llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {
+ content: attr(data-label);
+}
+@media all and (min-width: 600px) {
+ .llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {
+ border-bottom-width: 1px;
+ display: table-cell;
+ text-align: left;
+ }
+ .llms-student-dashboard .orders-table th:first-child, .llms-student-dashboard .orders-table td:first-child {
+ width: 220px;
+ }
+ .llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {
+ display: none;
+ }
+}
+@media all and (min-width: 600px) {
+ .llms-student-dashboard .orders-table.transactions th:first-child {
+ width: auto;
+ }
+}
+.llms-student-dashboard .llms-status {
+ border-radius: 6px;
+ display: inline-block;
+ font-size: 13px;
+ font-weight: 700;
+ line-height: 1.4;
+ padding: 2px 6px;
+ vertical-align: middle;
+}
+.llms-student-dashboard .llms-status.llms-size--large {
+ font-size: 105%;
+ padding: 6px 12px;
+}
+.llms-student-dashboard .llms-status.llms-active, .llms-student-dashboard .llms-status.llms-completed, .llms-student-dashboard .llms-status.llms-pass, .llms-student-dashboard .llms-status.llms-txn-succeeded {
+ color: #4d8d3c;
+ background-color: rgba(77, 141, 60, 0.15);
+}
+.llms-student-dashboard .llms-status.llms-fail, .llms-student-dashboard .llms-status.llms-failed, .llms-student-dashboard .llms-status.llms-expired, .llms-student-dashboard .llms-status.llms-cancelled, .llms-student-dashboard .llms-status.llms-txn-failed {
+ color: #bb231c;
+ background-color: rgba(187, 35, 28, 0.15);
+}
+.llms-student-dashboard .llms-status.llms-incomplete, .llms-student-dashboard .llms-status.llms-on-hold, .llms-student-dashboard .llms-status.llms-pending, .llms-student-dashboard .llms-status.llms-pending-cancel, .llms-student-dashboard .llms-status.llms-refunded, .llms-student-dashboard .llms-status.llms-txn-pending, .llms-student-dashboard .llms-status.llms-txn-refunded {
+ color: #c05621;
+ background-color: rgba(192, 86, 33, 0.15);
+}
+.llms-student-dashboard .order-title .llms-status {
+ font-size: 18px;
+}
+.llms-student-dashboard .llms-person-form-wrapper .llms-change-password {
+ display: none;
+}
+@media all and (min-width: 600px) {
+ .llms-student-dashboard .order-primary {
+ float: left;
+ width: 68%;
+ }
+}
+@media all and (min-width: 600px) {
+ .llms-student-dashboard .order-secondary {
+ float: left;
+ width: 32%;
+ }
+}
+.llms-student-dashboard .order-secondary form {
+ margin-bottom: 0;
+}
+@media all and (min-width: 600px) {
+ .llms-student-dashboard .llms-view-order.llms-stack-cols .order-primary,
+.llms-student-dashboard .llms-view-order.llms-stack-cols .order-secondary {
+ float: none;
+ width: 100%;
+ }
+}
+.llms-student-dashboard .llms-switch-payment-source .llms-notice,
+.llms-student-dashboard .llms-switch-payment-source .entry-content .llms-notice {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+.llms-student-dashboard .llms-switch-payment-source-main {
+ border: none;
+ display: none;
+ margin: 0;
+}
+.llms-student-dashboard .llms-switch-payment-source-main ul.llms-payment-gateways {
+ padding: 10px 15px 0;
+ margin: 0;
+}
+.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method,
+.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary {
+ padding: 0 25px 10px;
+ margin: 0;
+ list-style-type: none;
+}
+.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method li,
+.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary li {
+ list-style-type: none;
+}
+.llms-student-dashboard.dashboard .llms-sd-section {
+ border: 1px solid #dedede;
+ border-radius: 6px;
+ padding: 20px;
+ margin-bottom: 40px;
+}
+.llms-student-dashboard .llms-loop-list {
+ margin: 0 -10px;
+}
+
+.logged-in .llms-sd-layout-columns {
+ -webkit-box-align: start;
+ -ms-flex-align: start;
+ align-items: start;
+}
+@media all and (min-width: 600px) {
+ .logged-in .llms-sd-layout-columns {
+ display: grid;
+ grid-gap: 25px;
+ grid-template-areas: "nav header" "nav tab";
+ grid-template-columns: 200px 1fr;
+ grid-template-rows: auto 1fr;
+ }
+}
+.logged-in .llms-sd-layout-columns .llms-sd-nav {
+ grid-area: nav;
+}
+@media all and (min-width: 600px) {
+ .logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item {
+ display: block;
+ float: none;
+ }
+ .logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item a {
+ display: block;
+ padding: 10px 0;
+ }
+ .logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item .llms-sep {
+ display: none;
+ }
+}
+.logged-in .llms-sd-layout-columns .llms-sd-header {
+ grid-area: header;
+}
+.logged-in .llms-sd-layout-columns .llms-sd-tab {
+ grid-area: tab;
+}
+
+.llms-sd-grades .llms-table .llms-progress {
+ display: block;
+ margin: 0;
+}
+.llms-sd-grades .llms-table .llms-progress .llms-progress-bar {
+ top: 0;
+ height: 1.4em;
+}
+.llms-sd-grades .llms-table .llms-progress .progress__indicator {
+ font-size: 1em;
+ position: relative;
+ right: 0.4em;
+ top: 0.2em;
+ z-index: 1;
+}
+
+.llms-table.llms-single-course-grades tbody tr:first-child td, .llms-table.llms-single-course-grades tbody tr:first-child th {
+ background-color: #eaeaea;
+}
+.llms-table.llms-single-course-grades th {
+ font-weight: 400;
+ text-align: left;
+}
+.llms-table.llms-single-course-grades td .llms-donut {
+ display: inline-block;
+ vertical-align: middle;
+}
+.llms-table.llms-single-course-grades td .llms-status {
+ margin-right: 4px;
+}
+.llms-table.llms-single-course-grades td .llms-donut + .llms-status {
+ margin-left: 4px;
+}
+.llms-table.llms-single-course-grades th.llms-section_title {
+ font-size: 110%;
+ font-weight: 700;
+}
+.llms-table.llms-single-course-grades td.llms-lesson_title {
+ max-width: 40%;
+}
+.llms-table.llms-single-course-grades td.llms-associated_quiz .llms-donut {
+ display: inline-block;
+ margin-right: 5px;
+ vertical-align: middle;
+}
+.llms-table.llms-single-course-grades td.llms-lesson_title a[href="#"] {
+ pointer-events: none;
+}
+.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] {
+ color: inherit;
+ position: relative;
+}
+.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip {
+ max-width: 380px;
+ width: 380px;
+}
+.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip.show {
+ top: -54px;
+}
+
+.llms-sd-widgets {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+}
+.llms-sd-widgets .llms-sd-widget {
+ background: #fefefe;
+ border: 1px solid #dedede;
+ border-bottom-right-radius: 6px;
+ border-bottom-left-radius: 6px;
+ -webkit-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ margin: 10px 10px 20px;
+ padding: 0 0 20px;
+}
+.llms-sd-widgets .llms-sd-widget:first-child {
+ margin-left: 0;
+}
+.llms-sd-widgets .llms-sd-widget:last-child {
+ margin-right: 0;
+}
+.llms-sd-widgets .llms-sd-widget .llms-sd-widget-title {
+ background: #466dd8;
+ color: #fff;
+ font-size: 18px;
+ line-height: 1;
+ margin: 0 0 20px;
+ padding: 10px;
+}
+.llms-sd-widgets .llms-sd-widget .llms-sd-widget-empty {
+ font-size: 14px;
+ font-style: italic;
+ opacity: 0.5;
+ text-align: center;
+}
+.llms-sd-widgets .llms-sd-widget .llms-donut {
+ margin: 0 auto;
+}
+.llms-sd-widgets .llms-sd-widget .llms-sd-date {
+ opacity: 0.8;
+ text-align: center;
+ font-size: 22px;
+ line-height: 1.1;
+}
+.llms-sd-widgets .llms-sd-widget .llms-sd-date span {
+ display: block;
+}
+.llms-sd-widgets .llms-sd-widget .llms-sd-date span.day {
+ font-size: 52px;
+}
+.llms-sd-widgets .llms-sd-widget .llms-sd-date span.diff {
+ font-size: 12px;
+ font-style: italic;
+ margin-top: 8px;
+ opacity: 0.75;
+}
+.llms-sd-widgets .llms-sd-widget .llms-achievement {
+ background: transparent;
+ margin: 0 auto;
+ max-width: 120px;
+}
+.llms-sd-widgets .llms-sd-widget .llms-achievement .llms-achievement-title {
+ display: none;
+}
+
+.redeem-voucher .form-row label {
+ display: block;
+ font-weight: 700;
+}
+.redeem-voucher .form-row input[type=text] {
+ background-color: #fefefe;
+ background-clip: padding-box;
+ border: 1px solid #999;
+ border-radius: 6px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ font-size: 16px;
+ line-height: 1;
+ padding: 8px 12px;
+ -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+}
+
+.llms-sd-pagination {
+ margin-top: 24px;
+}
+.llms-sd-pagination:before, .llms-sd-pagination:after {
+ content: " ";
+ display: table;
+}
+.llms-sd-pagination:after {
+ clear: both;
+}
+.llms-sd-pagination .llms-button-secondary {
+ display: inline-block;
+}
+.llms-sd-pagination .llms-button-secondary.prev {
+ float: left;
+}
+.llms-sd-pagination .llms-button-secondary.next {
+ float: right;
+}
+
+.llms-sd-notification-center {
+ background: #fefefe;
+ border: 1px solid #dedede;
+ border-radius: 6px;
+ padding: 20px;
+}
+.llms-sd-notification-center .llms-notification-list-item .llms-notification {
+ z-index: 1;
+}
+.llms-sd-notification-center .llms-notification-list-item .llms-notification:hover {
+ background-color: inherit;
+}
+
+.llms-table {
+ border: 1px solid #dedede;
+ border-spacing: 0;
+ width: 100%;
+}
+.llms-table thead th, .llms-table thead td {
+ font-weight: 700;
+}
+.llms-table tbody tr:nth-child(odd) td, .llms-table tbody tr:nth-child(odd) th {
+ background: #f9f9f9;
+}
+.llms-table tbody tr:last-child {
+ border-bottom-width: 0;
+}
+.llms-table tfoot tr {
+ background: #f9f9f9;
+}
+.llms-table tfoot tr .llms-pagination .page-numbers {
+ margin: 0;
+}
+.llms-table tfoot tr .llms-table-sort {
+ text-align: right;
+}
+.llms-table tfoot tr .llms-table-sort form, .llms-table tfoot tr .llms-table-sort select, .llms-table tfoot tr .llms-table-sort input, .llms-table tfoot tr .llms-table-sort button {
+ margin: 0;
+}
+.llms-table th {
+ font-weight: 700;
+}
+.llms-table th, .llms-table td {
+ border-bottom: 1px solid #dedede;
+ padding: 15px 20px;
+}
+.llms-table th:first-child, .llms-table td:first-child {
+ padding-left: 12px;
+}
+.llms-table th:last-child, .llms-table td:last-child {
+ padding-right: 12px;
+}
+
+#page .llms-table tfoot label {
+ display: inline;
+}
+
+#page .llms-table tfoot select {
+ height: auto;
+}
+
+/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+/* FONT PATH
+ * -------------------------- */
+@font-face {
+ font-family: "FontAwesome";
+ src: url("../fonts/fontawesome-webfont.eot?v=4.7.0");
+ src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+.fa {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+ font-size: 1.33333333em;
+ line-height: 0.75em;
+ vertical-align: -15%;
+}
+
+.fa-2x {
+ font-size: 2em;
+}
+
+.fa-3x {
+ font-size: 3em;
+}
+
+.fa-4x {
+ font-size: 4em;
+}
+
+.fa-5x {
+ font-size: 5em;
+}
+
+.fa-fw {
+ width: 1.28571429em;
+ text-align: center;
+}
+
+.fa-ul {
+ padding-left: 0;
+ margin-left: 2.14285714em;
+ list-style-type: none;
+}
+
+.fa-ul > li {
+ position: relative;
+}
+
+.fa-li {
+ position: absolute;
+ left: -2.14285714em;
+ width: 2.14285714em;
+ top: 0.14285714em;
+ text-align: center;
+}
+
+.fa-li.fa-lg {
+ left: -1.85714286em;
+}
+
+.fa-border {
+ padding: 0.2em 0.25em 0.15em;
+ border: solid 0.08em #eeeeee;
+ border-radius: 0.1em;
+}
+
+.fa-pull-left {
+ float: left;
+}
+
+.fa-pull-right {
+ float: right;
+}
+
+.fa.fa-pull-left {
+ margin-right: 0.3em;
+}
+
+.fa.fa-pull-right {
+ margin-left: 0.3em;
+}
+
+/* Deprecated as of 4.4.0 */
+.pull-right {
+ float: right;
+}
+
+.pull-left {
+ float: left;
+}
+
+.fa.pull-left {
+ margin-right: 0.3em;
+}
+
+.fa.pull-right {
+ margin-left: 0.3em;
+}
+
+.fa-spin {
+ -webkit-animation: fa-spin 2s infinite linear;
+ animation: fa-spin 2s infinite linear;
+}
+
+.fa-pulse {
+ -webkit-animation: fa-spin 1s infinite steps(8);
+ animation: fa-spin 1s infinite steps(8);
+}
+
+@-webkit-keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+@keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+.fa-rotate-90 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
+ -webkit-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+
+.fa-rotate-180 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
+ -webkit-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+
+.fa-rotate-270 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
+ -webkit-transform: rotate(270deg);
+ transform: rotate(270deg);
+}
+
+.fa-flip-horizontal {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
+ -webkit-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+.fa-flip-vertical {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
+ -webkit-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+ -webkit-filter: none;
+ filter: none;
+}
+
+.fa-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+
+.fa-stack-1x,
+.fa-stack-2x {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+
+.fa-stack-1x {
+ line-height: inherit;
+}
+
+.fa-stack-2x {
+ font-size: 2em;
+}
+
+.fa-inverse {
+ color: #ffffff;
+}
+
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+.fa-glass:before {
+ content: "\f000";
+}
+
+.fa-music:before {
+ content: "\f001";
+}
+
+.fa-search:before {
+ content: "\f002";
+}
+
+.fa-envelope-o:before {
+ content: "\f003";
+}
+
+.fa-heart:before {
+ content: "\f004";
+}
+
+.fa-star:before {
+ content: "\f005";
+}
+
+.fa-star-o:before {
+ content: "\f006";
+}
+
+.fa-user:before {
+ content: "\f007";
+}
+
+.fa-film:before {
+ content: "\f008";
+}
+
+.fa-th-large:before {
+ content: "\f009";
+}
+
+.fa-th:before {
+ content: "\f00a";
+}
+
+.fa-th-list:before {
+ content: "\f00b";
+}
+
+.fa-check:before {
+ content: "\f00c";
+}
+
+.fa-remove:before,
+.fa-close:before,
+.fa-times:before {
+ content: "\f00d";
+}
+
+.fa-search-plus:before {
+ content: "\f00e";
+}
+
+.fa-search-minus:before {
+ content: "\f010";
+}
+
+.fa-power-off:before {
+ content: "\f011";
+}
+
+.fa-signal:before {
+ content: "\f012";
+}
+
+.fa-gear:before,
+.fa-cog:before {
+ content: "\f013";
+}
+
+.fa-trash-o:before {
+ content: "\f014";
+}
+
+.fa-home:before {
+ content: "\f015";
+}
+
+.fa-file-o:before {
+ content: "\f016";
+}
+
+.fa-clock-o:before {
+ content: "\f017";
+}
+
+.fa-road:before {
+ content: "\f018";
+}
+
+.fa-download:before {
+ content: "\f019";
+}
+
+.fa-arrow-circle-o-down:before {
+ content: "\f01a";
+}
+
+.fa-arrow-circle-o-up:before {
+ content: "\f01b";
+}
+
+.fa-inbox:before {
+ content: "\f01c";
+}
+
+.fa-play-circle-o:before {
+ content: "\f01d";
+}
+
+.fa-rotate-right:before,
+.fa-repeat:before {
+ content: "\f01e";
+}
+
+.fa-refresh:before {
+ content: "\f021";
+}
+
+.fa-list-alt:before {
+ content: "\f022";
+}
+
+.fa-lock:before {
+ content: "\f023";
+}
+
+.fa-flag:before {
+ content: "\f024";
+}
+
+.fa-headphones:before {
+ content: "\f025";
+}
+
+.fa-volume-off:before {
+ content: "\f026";
+}
+
+.fa-volume-down:before {
+ content: "\f027";
+}
+
+.fa-volume-up:before {
+ content: "\f028";
+}
+
+.fa-qrcode:before {
+ content: "\f029";
+}
+
+.fa-barcode:before {
+ content: "\f02a";
+}
+
+.fa-tag:before {
+ content: "\f02b";
+}
+
+.fa-tags:before {
+ content: "\f02c";
+}
+
+.fa-book:before {
+ content: "\f02d";
+}
+
+.fa-bookmark:before {
+ content: "\f02e";
+}
+
+.fa-print:before {
+ content: "\f02f";
+}
+
+.fa-camera:before {
+ content: "\f030";
+}
+
+.fa-font:before {
+ content: "\f031";
+}
+
+.fa-bold:before {
+ content: "\f032";
+}
+
+.fa-italic:before {
+ content: "\f033";
+}
+
+.fa-text-height:before {
+ content: "\f034";
+}
+
+.fa-text-width:before {
+ content: "\f035";
+}
+
+.fa-align-left:before {
+ content: "\f036";
+}
+
+.fa-align-center:before {
+ content: "\f037";
+}
+
+.fa-align-right:before {
+ content: "\f038";
+}
+
+.fa-align-justify:before {
+ content: "\f039";
+}
+
+.fa-list:before {
+ content: "\f03a";
+}
+
+.fa-dedent:before,
+.fa-outdent:before {
+ content: "\f03b";
+}
+
+.fa-indent:before {
+ content: "\f03c";
+}
+
+.fa-video-camera:before {
+ content: "\f03d";
+}
+
+.fa-photo:before,
+.fa-image:before,
+.fa-picture-o:before {
+ content: "\f03e";
+}
+
+.fa-pencil:before {
+ content: "\f040";
+}
+
+.fa-map-marker:before {
+ content: "\f041";
+}
+
+.fa-adjust:before {
+ content: "\f042";
+}
+
+.fa-tint:before {
+ content: "\f043";
+}
+
+.fa-edit:before,
+.fa-pencil-square-o:before {
+ content: "\f044";
+}
+
+.fa-share-square-o:before {
+ content: "\f045";
+}
+
+.fa-check-square-o:before {
+ content: "\f046";
+}
+
+.fa-arrows:before {
+ content: "\f047";
+}
+
+.fa-step-backward:before {
+ content: "\f048";
+}
+
+.fa-fast-backward:before {
+ content: "\f049";
+}
+
+.fa-backward:before {
+ content: "\f04a";
+}
+
+.fa-play:before {
+ content: "\f04b";
+}
+
+.fa-pause:before {
+ content: "\f04c";
+}
+
+.fa-stop:before {
+ content: "\f04d";
+}
+
+.fa-forward:before {
+ content: "\f04e";
+}
+
+.fa-fast-forward:before {
+ content: "\f050";
+}
+
+.fa-step-forward:before {
+ content: "\f051";
+}
+
+.fa-eject:before {
+ content: "\f052";
+}
+
+.fa-chevron-left:before {
+ content: "\f053";
+}
+
+.fa-chevron-right:before {
+ content: "\f054";
+}
+
+.fa-plus-circle:before {
+ content: "\f055";
+}
+
+.fa-minus-circle:before {
+ content: "\f056";
+}
+
+.fa-times-circle:before {
+ content: "\f057";
+}
+
+.fa-check-circle:before {
+ content: "\f058";
+}
+
+.fa-question-circle:before {
+ content: "\f059";
+}
+
+.fa-info-circle:before {
+ content: "\f05a";
+}
+
+.fa-crosshairs:before {
+ content: "\f05b";
+}
+
+.fa-times-circle-o:before {
+ content: "\f05c";
+}
+
+.fa-check-circle-o:before {
+ content: "\f05d";
+}
+
+.fa-ban:before {
+ content: "\f05e";
+}
+
+.fa-arrow-left:before {
+ content: "\f060";
+}
+
+.fa-arrow-right:before {
+ content: "\f061";
+}
+
+.fa-arrow-up:before {
+ content: "\f062";
+}
+
+.fa-arrow-down:before {
+ content: "\f063";
+}
+
+.fa-mail-forward:before,
+.fa-share:before {
+ content: "\f064";
+}
+
+.fa-expand:before {
+ content: "\f065";
+}
+
+.fa-compress:before {
+ content: "\f066";
+}
+
+.fa-plus:before {
+ content: "\f067";
+}
+
+.fa-minus:before {
+ content: "\f068";
+}
+
+.fa-asterisk:before {
+ content: "\f069";
+}
+
+.fa-exclamation-circle:before {
+ content: "\f06a";
+}
+
+.fa-gift:before {
+ content: "\f06b";
+}
+
+.fa-leaf:before {
+ content: "\f06c";
+}
+
+.fa-fire:before {
+ content: "\f06d";
+}
+
+.fa-eye:before {
+ content: "\f06e";
+}
+
+.fa-eye-slash:before {
+ content: "\f070";
+}
+
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+ content: "\f071";
+}
+
+.fa-plane:before {
+ content: "\f072";
+}
+
+.fa-calendar:before {
+ content: "\f073";
+}
+
+.fa-random:before {
+ content: "\f074";
+}
+
+.fa-comment:before {
+ content: "\f075";
+}
+
+.fa-magnet:before {
+ content: "\f076";
+}
+
+.fa-chevron-up:before {
+ content: "\f077";
+}
+
+.fa-chevron-down:before {
+ content: "\f078";
+}
+
+.fa-retweet:before {
+ content: "\f079";
+}
+
+.fa-shopping-cart:before {
+ content: "\f07a";
+}
+
+.fa-folder:before {
+ content: "\f07b";
+}
+
+.fa-folder-open:before {
+ content: "\f07c";
+}
+
+.fa-arrows-v:before {
+ content: "\f07d";
+}
+
+.fa-arrows-h:before {
+ content: "\f07e";
+}
+
+.fa-bar-chart-o:before,
+.fa-bar-chart:before {
+ content: "\f080";
+}
+
+.fa-twitter-square:before {
+ content: "\f081";
+}
+
+.fa-facebook-square:before {
+ content: "\f082";
+}
+
+.fa-camera-retro:before {
+ content: "\f083";
+}
+
+.fa-key:before {
+ content: "\f084";
+}
+
+.fa-gears:before,
+.fa-cogs:before {
+ content: "\f085";
+}
+
+.fa-comments:before {
+ content: "\f086";
+}
+
+.fa-thumbs-o-up:before {
+ content: "\f087";
+}
+
+.fa-thumbs-o-down:before {
+ content: "\f088";
+}
+
+.fa-star-half:before {
+ content: "\f089";
+}
+
+.fa-heart-o:before {
+ content: "\f08a";
+}
+
+.fa-sign-out:before {
+ content: "\f08b";
+}
+
+.fa-linkedin-square:before {
+ content: "\f08c";
+}
+
+.fa-thumb-tack:before {
+ content: "\f08d";
+}
+
+.fa-external-link:before {
+ content: "\f08e";
+}
+
+.fa-sign-in:before {
+ content: "\f090";
+}
+
+.fa-trophy:before {
+ content: "\f091";
+}
+
+.fa-github-square:before {
+ content: "\f092";
+}
+
+.fa-upload:before {
+ content: "\f093";
+}
+
+.fa-lemon-o:before {
+ content: "\f094";
+}
+
+.fa-phone:before {
+ content: "\f095";
+}
+
+.fa-square-o:before {
+ content: "\f096";
+}
+
+.fa-bookmark-o:before {
+ content: "\f097";
+}
+
+.fa-phone-square:before {
+ content: "\f098";
+}
+
+.fa-twitter:before {
+ content: "\f099";
+}
+
+.fa-facebook-f:before,
+.fa-facebook:before {
+ content: "\f09a";
+}
+
+.fa-github:before {
+ content: "\f09b";
+}
+
+.fa-unlock:before {
+ content: "\f09c";
+}
+
+.fa-credit-card:before {
+ content: "\f09d";
+}
+
+.fa-feed:before,
+.fa-rss:before {
+ content: "\f09e";
+}
+
+.fa-hdd-o:before {
+ content: "\f0a0";
+}
+
+.fa-bullhorn:before {
+ content: "\f0a1";
+}
+
+.fa-bell:before {
+ content: "\f0f3";
+}
+
+.fa-certificate:before {
+ content: "\f0a3";
+}
+
+.fa-hand-o-right:before {
+ content: "\f0a4";
+}
+
+.fa-hand-o-left:before {
+ content: "\f0a5";
+}
+
+.fa-hand-o-up:before {
+ content: "\f0a6";
+}
+
+.fa-hand-o-down:before {
+ content: "\f0a7";
+}
+
+.fa-arrow-circle-left:before {
+ content: "\f0a8";
+}
+
+.fa-arrow-circle-right:before {
+ content: "\f0a9";
+}
+
+.fa-arrow-circle-up:before {
+ content: "\f0aa";
+}
+
+.fa-arrow-circle-down:before {
+ content: "\f0ab";
+}
+
+.fa-globe:before {
+ content: "\f0ac";
+}
+
+.fa-wrench:before {
+ content: "\f0ad";
+}
+
+.fa-tasks:before {
+ content: "\f0ae";
+}
+
+.fa-filter:before {
+ content: "\f0b0";
+}
+
+.fa-briefcase:before {
+ content: "\f0b1";
+}
+
+.fa-arrows-alt:before {
+ content: "\f0b2";
+}
+
+.fa-group:before,
+.fa-users:before {
+ content: "\f0c0";
+}
+
+.fa-chain:before,
+.fa-link:before {
+ content: "\f0c1";
+}
+
+.fa-cloud:before {
+ content: "\f0c2";
+}
+
+.fa-flask:before {
+ content: "\f0c3";
+}
+
+.fa-cut:before,
+.fa-scissors:before {
+ content: "\f0c4";
+}
+
+.fa-copy:before,
+.fa-files-o:before {
+ content: "\f0c5";
+}
+
+.fa-paperclip:before {
+ content: "\f0c6";
+}
+
+.fa-save:before,
+.fa-floppy-o:before {
+ content: "\f0c7";
+}
+
+.fa-square:before {
+ content: "\f0c8";
+}
+
+.fa-navicon:before,
+.fa-reorder:before,
+.fa-bars:before {
+ content: "\f0c9";
+}
+
+.fa-list-ul:before {
+ content: "\f0ca";
+}
+
+.fa-list-ol:before {
+ content: "\f0cb";
+}
+
+.fa-strikethrough:before {
+ content: "\f0cc";
+}
+
+.fa-underline:before {
+ content: "\f0cd";
+}
+
+.fa-table:before {
+ content: "\f0ce";
+}
+
+.fa-magic:before {
+ content: "\f0d0";
+}
+
+.fa-truck:before {
+ content: "\f0d1";
+}
+
+.fa-pinterest:before {
+ content: "\f0d2";
+}
+
+.fa-pinterest-square:before {
+ content: "\f0d3";
+}
+
+.fa-google-plus-square:before {
+ content: "\f0d4";
+}
+
+.fa-google-plus:before {
+ content: "\f0d5";
+}
+
+.fa-money:before {
+ content: "\f0d6";
+}
+
+.fa-caret-down:before {
+ content: "\f0d7";
+}
+
+.fa-caret-up:before {
+ content: "\f0d8";
+}
+
+.fa-caret-left:before {
+ content: "\f0d9";
+}
+
+.fa-caret-right:before {
+ content: "\f0da";
+}
+
+.fa-columns:before {
+ content: "\f0db";
+}
+
+.fa-unsorted:before,
+.fa-sort:before {
+ content: "\f0dc";
+}
+
+.fa-sort-down:before,
+.fa-sort-desc:before {
+ content: "\f0dd";
+}
+
+.fa-sort-up:before,
+.fa-sort-asc:before {
+ content: "\f0de";
+}
+
+.fa-envelope:before {
+ content: "\f0e0";
+}
+
+.fa-linkedin:before {
+ content: "\f0e1";
+}
+
+.fa-rotate-left:before,
+.fa-undo:before {
+ content: "\f0e2";
+}
+
+.fa-legal:before,
+.fa-gavel:before {
+ content: "\f0e3";
+}
+
+.fa-dashboard:before,
+.fa-tachometer:before {
+ content: "\f0e4";
+}
+
+.fa-comment-o:before {
+ content: "\f0e5";
+}
+
+.fa-comments-o:before {
+ content: "\f0e6";
+}
+
+.fa-flash:before,
+.fa-bolt:before {
+ content: "\f0e7";
+}
+
+.fa-sitemap:before {
+ content: "\f0e8";
+}
+
+.fa-umbrella:before {
+ content: "\f0e9";
+}
+
+.fa-paste:before,
+.fa-clipboard:before {
+ content: "\f0ea";
+}
+
+.fa-lightbulb-o:before {
+ content: "\f0eb";
+}
+
+.fa-exchange:before {
+ content: "\f0ec";
+}
+
+.fa-cloud-download:before {
+ content: "\f0ed";
+}
+
+.fa-cloud-upload:before {
+ content: "\f0ee";
+}
+
+.fa-user-md:before {
+ content: "\f0f0";
+}
+
+.fa-stethoscope:before {
+ content: "\f0f1";
+}
+
+.fa-suitcase:before {
+ content: "\f0f2";
+}
+
+.fa-bell-o:before {
+ content: "\f0a2";
+}
+
+.fa-coffee:before {
+ content: "\f0f4";
+}
+
+.fa-cutlery:before {
+ content: "\f0f5";
+}
+
+.fa-file-text-o:before {
+ content: "\f0f6";
+}
+
+.fa-building-o:before {
+ content: "\f0f7";
+}
+
+.fa-hospital-o:before {
+ content: "\f0f8";
+}
+
+.fa-ambulance:before {
+ content: "\f0f9";
+}
+
+.fa-medkit:before {
+ content: "\f0fa";
+}
+
+.fa-fighter-jet:before {
+ content: "\f0fb";
+}
+
+.fa-beer:before {
+ content: "\f0fc";
+}
+
+.fa-h-square:before {
+ content: "\f0fd";
+}
+
+.fa-plus-square:before {
+ content: "\f0fe";
+}
+
+.fa-angle-double-left:before {
+ content: "\f100";
+}
+
+.fa-angle-double-right:before {
+ content: "\f101";
+}
+
+.fa-angle-double-up:before {
+ content: "\f102";
+}
+
+.fa-angle-double-down:before {
+ content: "\f103";
+}
+
+.fa-angle-left:before {
+ content: "\f104";
+}
+
+.fa-angle-right:before {
+ content: "\f105";
+}
+
+.fa-angle-up:before {
+ content: "\f106";
+}
+
+.fa-angle-down:before {
+ content: "\f107";
+}
+
+.fa-desktop:before {
+ content: "\f108";
+}
+
+.fa-laptop:before {
+ content: "\f109";
+}
+
+.fa-tablet:before {
+ content: "\f10a";
+}
+
+.fa-mobile-phone:before,
+.fa-mobile:before {
+ content: "\f10b";
+}
+
+.fa-circle-o:before {
+ content: "\f10c";
+}
+
+.fa-quote-left:before {
+ content: "\f10d";
+}
+
+.fa-quote-right:before {
+ content: "\f10e";
+}
+
+.fa-spinner:before {
+ content: "\f110";
+}
+
+.fa-circle:before {
+ content: "\f111";
+}
+
+.fa-mail-reply:before,
+.fa-reply:before {
+ content: "\f112";
+}
+
+.fa-github-alt:before {
+ content: "\f113";
+}
+
+.fa-folder-o:before {
+ content: "\f114";
+}
+
+.fa-folder-open-o:before {
+ content: "\f115";
+}
+
+.fa-smile-o:before {
+ content: "\f118";
+}
+
+.fa-frown-o:before {
+ content: "\f119";
+}
+
+.fa-meh-o:before {
+ content: "\f11a";
+}
+
+.fa-gamepad:before {
+ content: "\f11b";
+}
+
+.fa-keyboard-o:before {
+ content: "\f11c";
+}
+
+.fa-flag-o:before {
+ content: "\f11d";
+}
+
+.fa-flag-checkered:before {
+ content: "\f11e";
+}
+
+.fa-terminal:before {
+ content: "\f120";
+}
+
+.fa-code:before {
+ content: "\f121";
+}
+
+.fa-mail-reply-all:before,
+.fa-reply-all:before {
+ content: "\f122";
+}
+
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+ content: "\f123";
+}
+
+.fa-location-arrow:before {
+ content: "\f124";
+}
+
+.fa-crop:before {
+ content: "\f125";
+}
+
+.fa-code-fork:before {
+ content: "\f126";
+}
+
+.fa-unlink:before,
+.fa-chain-broken:before {
+ content: "\f127";
+}
+
+.fa-question:before {
+ content: "\f128";
+}
+
+.fa-info:before {
+ content: "\f129";
+}
+
+.fa-exclamation:before {
+ content: "\f12a";
+}
+
+.fa-superscript:before {
+ content: "\f12b";
+}
+
+.fa-subscript:before {
+ content: "\f12c";
+}
+
+.fa-eraser:before {
+ content: "\f12d";
+}
+
+.fa-puzzle-piece:before {
+ content: "\f12e";
+}
+
+.fa-microphone:before {
+ content: "\f130";
+}
+
+.fa-microphone-slash:before {
+ content: "\f131";
+}
+
+.fa-shield:before {
+ content: "\f132";
+}
+
+.fa-calendar-o:before {
+ content: "\f133";
+}
+
+.fa-fire-extinguisher:before {
+ content: "\f134";
+}
+
+.fa-rocket:before {
+ content: "\f135";
+}
+
+.fa-maxcdn:before {
+ content: "\f136";
+}
+
+.fa-chevron-circle-left:before {
+ content: "\f137";
+}
+
+.fa-chevron-circle-right:before {
+ content: "\f138";
+}
+
+.fa-chevron-circle-up:before {
+ content: "\f139";
+}
+
+.fa-chevron-circle-down:before {
+ content: "\f13a";
+}
+
+.fa-html5:before {
+ content: "\f13b";
+}
+
+.fa-css3:before {
+ content: "\f13c";
+}
+
+.fa-anchor:before {
+ content: "\f13d";
+}
+
+.fa-unlock-alt:before {
+ content: "\f13e";
+}
+
+.fa-bullseye:before {
+ content: "\f140";
+}
+
+.fa-ellipsis-h:before {
+ content: "\f141";
+}
+
+.fa-ellipsis-v:before {
+ content: "\f142";
+}
+
+.fa-rss-square:before {
+ content: "\f143";
+}
+
+.fa-play-circle:before {
+ content: "\f144";
+}
+
+.fa-ticket:before {
+ content: "\f145";
+}
+
+.fa-minus-square:before {
+ content: "\f146";
+}
+
+.fa-minus-square-o:before {
+ content: "\f147";
+}
+
+.fa-level-up:before {
+ content: "\f148";
+}
+
+.fa-level-down:before {
+ content: "\f149";
+}
+
+.fa-check-square:before {
+ content: "\f14a";
+}
+
+.fa-pencil-square:before {
+ content: "\f14b";
+}
+
+.fa-external-link-square:before {
+ content: "\f14c";
+}
+
+.fa-share-square:before {
+ content: "\f14d";
+}
+
+.fa-compass:before {
+ content: "\f14e";
+}
+
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+ content: "\f150";
+}
+
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+ content: "\f151";
+}
+
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+ content: "\f152";
+}
+
+.fa-euro:before,
+.fa-eur:before {
+ content: "\f153";
+}
+
+.fa-gbp:before {
+ content: "\f154";
+}
+
+.fa-dollar:before,
+.fa-usd:before {
+ content: "\f155";
+}
+
+.fa-rupee:before,
+.fa-inr:before {
+ content: "\f156";
+}
+
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+ content: "\f157";
+}
+
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+ content: "\f158";
+}
+
+.fa-won:before,
+.fa-krw:before {
+ content: "\f159";
+}
+
+.fa-bitcoin:before,
+.fa-btc:before {
+ content: "\f15a";
+}
+
+.fa-file:before {
+ content: "\f15b";
+}
+
+.fa-file-text:before {
+ content: "\f15c";
+}
+
+.fa-sort-alpha-asc:before {
+ content: "\f15d";
+}
+
+.fa-sort-alpha-desc:before {
+ content: "\f15e";
+}
+
+.fa-sort-amount-asc:before {
+ content: "\f160";
+}
+
+.fa-sort-amount-desc:before {
+ content: "\f161";
+}
+
+.fa-sort-numeric-asc:before {
+ content: "\f162";
+}
+
+.fa-sort-numeric-desc:before {
+ content: "\f163";
+}
+
+.fa-thumbs-up:before {
+ content: "\f164";
+}
+
+.fa-thumbs-down:before {
+ content: "\f165";
+}
+
+.fa-youtube-square:before {
+ content: "\f166";
+}
+
+.fa-youtube:before {
+ content: "\f167";
+}
+
+.fa-xing:before {
+ content: "\f168";
+}
+
+.fa-xing-square:before {
+ content: "\f169";
+}
+
+.fa-youtube-play:before {
+ content: "\f16a";
+}
+
+.fa-dropbox:before {
+ content: "\f16b";
+}
+
+.fa-stack-overflow:before {
+ content: "\f16c";
+}
+
+.fa-instagram:before {
+ content: "\f16d";
+}
+
+.fa-flickr:before {
+ content: "\f16e";
+}
+
+.fa-adn:before {
+ content: "\f170";
+}
+
+.fa-bitbucket:before {
+ content: "\f171";
+}
+
+.fa-bitbucket-square:before {
+ content: "\f172";
+}
+
+.fa-tumblr:before {
+ content: "\f173";
+}
+
+.fa-tumblr-square:before {
+ content: "\f174";
+}
+
+.fa-long-arrow-down:before {
+ content: "\f175";
+}
+
+.fa-long-arrow-up:before {
+ content: "\f176";
+}
+
+.fa-long-arrow-left:before {
+ content: "\f177";
+}
+
+.fa-long-arrow-right:before {
+ content: "\f178";
+}
+
+.fa-apple:before {
+ content: "\f179";
+}
+
+.fa-windows:before {
+ content: "\f17a";
+}
+
+.fa-android:before {
+ content: "\f17b";
+}
+
+.fa-linux:before {
+ content: "\f17c";
+}
+
+.fa-dribbble:before {
+ content: "\f17d";
+}
+
+.fa-skype:before {
+ content: "\f17e";
+}
+
+.fa-foursquare:before {
+ content: "\f180";
+}
+
+.fa-trello:before {
+ content: "\f181";
+}
+
+.fa-female:before {
+ content: "\f182";
+}
+
+.fa-male:before {
+ content: "\f183";
+}
+
+.fa-gittip:before,
+.fa-gratipay:before {
+ content: "\f184";
+}
+
+.fa-sun-o:before {
+ content: "\f185";
+}
+
+.fa-moon-o:before {
+ content: "\f186";
+}
+
+.fa-archive:before {
+ content: "\f187";
+}
+
+.fa-bug:before {
+ content: "\f188";
+}
+
+.fa-vk:before {
+ content: "\f189";
+}
+
+.fa-weibo:before {
+ content: "\f18a";
+}
+
+.fa-renren:before {
+ content: "\f18b";
+}
+
+.fa-pagelines:before {
+ content: "\f18c";
+}
+
+.fa-stack-exchange:before {
+ content: "\f18d";
+}
+
+.fa-arrow-circle-o-right:before {
+ content: "\f18e";
+}
+
+.fa-arrow-circle-o-left:before {
+ content: "\f190";
+}
+
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+ content: "\f191";
+}
+
+.fa-dot-circle-o:before {
+ content: "\f192";
+}
+
+.fa-wheelchair:before {
+ content: "\f193";
+}
+
+.fa-vimeo-square:before {
+ content: "\f194";
+}
+
+.fa-turkish-lira:before,
+.fa-try:before {
+ content: "\f195";
+}
+
+.fa-plus-square-o:before {
+ content: "\f196";
+}
+
+.fa-space-shuttle:before {
+ content: "\f197";
+}
+
+.fa-slack:before {
+ content: "\f198";
+}
+
+.fa-envelope-square:before {
+ content: "\f199";
+}
+
+.fa-wordpress:before {
+ content: "\f19a";
+}
+
+.fa-openid:before {
+ content: "\f19b";
+}
+
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before {
+ content: "\f19c";
+}
+
+.fa-mortar-board:before,
+.fa-graduation-cap:before {
+ content: "\f19d";
+}
+
+.fa-yahoo:before {
+ content: "\f19e";
+}
+
+.fa-google:before {
+ content: "\f1a0";
+}
+
+.fa-reddit:before {
+ content: "\f1a1";
+}
+
+.fa-reddit-square:before {
+ content: "\f1a2";
+}
+
+.fa-stumbleupon-circle:before {
+ content: "\f1a3";
+}
+
+.fa-stumbleupon:before {
+ content: "\f1a4";
+}
+
+.fa-delicious:before {
+ content: "\f1a5";
+}
+
+.fa-digg:before {
+ content: "\f1a6";
+}
+
+.fa-pied-piper-pp:before {
+ content: "\f1a7";
+}
+
+.fa-pied-piper-alt:before {
+ content: "\f1a8";
+}
+
+.fa-drupal:before {
+ content: "\f1a9";
+}
+
+.fa-joomla:before {
+ content: "\f1aa";
+}
+
+.fa-language:before {
+ content: "\f1ab";
+}
+
+.fa-fax:before {
+ content: "\f1ac";
+}
+
+.fa-building:before {
+ content: "\f1ad";
+}
+
+.fa-child:before {
+ content: "\f1ae";
+}
+
+.fa-paw:before {
+ content: "\f1b0";
+}
+
+.fa-spoon:before {
+ content: "\f1b1";
+}
+
+.fa-cube:before {
+ content: "\f1b2";
+}
+
+.fa-cubes:before {
+ content: "\f1b3";
+}
+
+.fa-behance:before {
+ content: "\f1b4";
+}
+
+.fa-behance-square:before {
+ content: "\f1b5";
+}
+
+.fa-steam:before {
+ content: "\f1b6";
+}
+
+.fa-steam-square:before {
+ content: "\f1b7";
+}
+
+.fa-recycle:before {
+ content: "\f1b8";
+}
+
+.fa-automobile:before,
+.fa-car:before {
+ content: "\f1b9";
+}
+
+.fa-cab:before,
+.fa-taxi:before {
+ content: "\f1ba";
+}
+
+.fa-tree:before {
+ content: "\f1bb";
+}
+
+.fa-spotify:before {
+ content: "\f1bc";
+}
+
+.fa-deviantart:before {
+ content: "\f1bd";
+}
+
+.fa-soundcloud:before {
+ content: "\f1be";
+}
+
+.fa-database:before {
+ content: "\f1c0";
+}
+
+.fa-file-pdf-o:before {
+ content: "\f1c1";
+}
+
+.fa-file-word-o:before {
+ content: "\f1c2";
+}
+
+.fa-file-excel-o:before {
+ content: "\f1c3";
+}
+
+.fa-file-powerpoint-o:before {
+ content: "\f1c4";
+}
+
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before {
+ content: "\f1c5";
+}
+
+.fa-file-zip-o:before,
+.fa-file-archive-o:before {
+ content: "\f1c6";
+}
+
+.fa-file-sound-o:before,
+.fa-file-audio-o:before {
+ content: "\f1c7";
+}
+
+.fa-file-movie-o:before,
+.fa-file-video-o:before {
+ content: "\f1c8";
+}
+
+.fa-file-code-o:before {
+ content: "\f1c9";
+}
+
+.fa-vine:before {
+ content: "\f1ca";
+}
+
+.fa-codepen:before {
+ content: "\f1cb";
+}
+
+.fa-jsfiddle:before {
+ content: "\f1cc";
+}
+
+.fa-life-bouy:before,
+.fa-life-buoy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before {
+ content: "\f1cd";
+}
+
+.fa-circle-o-notch:before {
+ content: "\f1ce";
+}
+
+.fa-ra:before,
+.fa-resistance:before,
+.fa-rebel:before {
+ content: "\f1d0";
+}
+
+.fa-ge:before,
+.fa-empire:before {
+ content: "\f1d1";
+}
+
+.fa-git-square:before {
+ content: "\f1d2";
+}
+
+.fa-git:before {
+ content: "\f1d3";
+}
+
+.fa-y-combinator-square:before,
+.fa-yc-square:before,
+.fa-hacker-news:before {
+ content: "\f1d4";
+}
+
+.fa-tencent-weibo:before {
+ content: "\f1d5";
+}
+
+.fa-qq:before {
+ content: "\f1d6";
+}
+
+.fa-wechat:before,
+.fa-weixin:before {
+ content: "\f1d7";
+}
+
+.fa-send:before,
+.fa-paper-plane:before {
+ content: "\f1d8";
+}
+
+.fa-send-o:before,
+.fa-paper-plane-o:before {
+ content: "\f1d9";
+}
+
+.fa-history:before {
+ content: "\f1da";
+}
+
+.fa-circle-thin:before {
+ content: "\f1db";
+}
+
+.fa-header:before {
+ content: "\f1dc";
+}
+
+.fa-paragraph:before {
+ content: "\f1dd";
+}
+
+.fa-sliders:before {
+ content: "\f1de";
+}
+
+.fa-share-alt:before {
+ content: "\f1e0";
+}
+
+.fa-share-alt-square:before {
+ content: "\f1e1";
+}
+
+.fa-bomb:before {
+ content: "\f1e2";
+}
+
+.fa-soccer-ball-o:before,
+.fa-futbol-o:before {
+ content: "\f1e3";
+}
+
+.fa-tty:before {
+ content: "\f1e4";
+}
+
+.fa-binoculars:before {
+ content: "\f1e5";
+}
+
+.fa-plug:before {
+ content: "\f1e6";
+}
+
+.fa-slideshare:before {
+ content: "\f1e7";
+}
+
+.fa-twitch:before {
+ content: "\f1e8";
+}
+
+.fa-yelp:before {
+ content: "\f1e9";
+}
+
+.fa-newspaper-o:before {
+ content: "\f1ea";
+}
+
+.fa-wifi:before {
+ content: "\f1eb";
+}
+
+.fa-calculator:before {
+ content: "\f1ec";
+}
+
+.fa-paypal:before {
+ content: "\f1ed";
+}
+
+.fa-google-wallet:before {
+ content: "\f1ee";
+}
+
+.fa-cc-visa:before {
+ content: "\f1f0";
+}
+
+.fa-cc-mastercard:before {
+ content: "\f1f1";
+}
+
+.fa-cc-discover:before {
+ content: "\f1f2";
+}
+
+.fa-cc-amex:before {
+ content: "\f1f3";
+}
+
+.fa-cc-paypal:before {
+ content: "\f1f4";
+}
+
+.fa-cc-stripe:before {
+ content: "\f1f5";
+}
+
+.fa-bell-slash:before {
+ content: "\f1f6";
+}
+
+.fa-bell-slash-o:before {
+ content: "\f1f7";
+}
+
+.fa-trash:before {
+ content: "\f1f8";
+}
+
+.fa-copyright:before {
+ content: "\f1f9";
+}
+
+.fa-at:before {
+ content: "\f1fa";
+}
+
+.fa-eyedropper:before {
+ content: "\f1fb";
+}
+
+.fa-paint-brush:before {
+ content: "\f1fc";
+}
+
+.fa-birthday-cake:before {
+ content: "\f1fd";
+}
+
+.fa-area-chart:before {
+ content: "\f1fe";
+}
+
+.fa-pie-chart:before {
+ content: "\f200";
+}
+
+.fa-line-chart:before {
+ content: "\f201";
+}
+
+.fa-lastfm:before {
+ content: "\f202";
+}
+
+.fa-lastfm-square:before {
+ content: "\f203";
+}
+
+.fa-toggle-off:before {
+ content: "\f204";
+}
+
+.fa-toggle-on:before {
+ content: "\f205";
+}
+
+.fa-bicycle:before {
+ content: "\f206";
+}
+
+.fa-bus:before {
+ content: "\f207";
+}
+
+.fa-ioxhost:before {
+ content: "\f208";
+}
+
+.fa-angellist:before {
+ content: "\f209";
+}
+
+.fa-cc:before {
+ content: "\f20a";
+}
+
+.fa-shekel:before,
+.fa-sheqel:before,
+.fa-ils:before {
+ content: "\f20b";
+}
+
+.fa-meanpath:before {
+ content: "\f20c";
+}
+
+.fa-buysellads:before {
+ content: "\f20d";
+}
+
+.fa-connectdevelop:before {
+ content: "\f20e";
+}
+
+.fa-dashcube:before {
+ content: "\f210";
+}
+
+.fa-forumbee:before {
+ content: "\f211";
+}
+
+.fa-leanpub:before {
+ content: "\f212";
+}
+
+.fa-sellsy:before {
+ content: "\f213";
+}
+
+.fa-shirtsinbulk:before {
+ content: "\f214";
+}
+
+.fa-simplybuilt:before {
+ content: "\f215";
+}
+
+.fa-skyatlas:before {
+ content: "\f216";
+}
+
+.fa-cart-plus:before {
+ content: "\f217";
+}
+
+.fa-cart-arrow-down:before {
+ content: "\f218";
+}
+
+.fa-diamond:before {
+ content: "\f219";
+}
+
+.fa-ship:before {
+ content: "\f21a";
+}
+
+.fa-user-secret:before {
+ content: "\f21b";
+}
+
+.fa-motorcycle:before {
+ content: "\f21c";
+}
+
+.fa-street-view:before {
+ content: "\f21d";
+}
+
+.fa-heartbeat:before {
+ content: "\f21e";
+}
+
+.fa-venus:before {
+ content: "\f221";
+}
+
+.fa-mars:before {
+ content: "\f222";
+}
+
+.fa-mercury:before {
+ content: "\f223";
+}
+
+.fa-intersex:before,
+.fa-transgender:before {
+ content: "\f224";
+}
+
+.fa-transgender-alt:before {
+ content: "\f225";
+}
+
+.fa-venus-double:before {
+ content: "\f226";
+}
+
+.fa-mars-double:before {
+ content: "\f227";
+}
+
+.fa-venus-mars:before {
+ content: "\f228";
+}
+
+.fa-mars-stroke:before {
+ content: "\f229";
+}
+
+.fa-mars-stroke-v:before {
+ content: "\f22a";
+}
+
+.fa-mars-stroke-h:before {
+ content: "\f22b";
+}
+
+.fa-neuter:before {
+ content: "\f22c";
+}
+
+.fa-genderless:before {
+ content: "\f22d";
+}
+
+.fa-facebook-official:before {
+ content: "\f230";
+}
+
+.fa-pinterest-p:before {
+ content: "\f231";
+}
+
+.fa-whatsapp:before {
+ content: "\f232";
+}
+
+.fa-server:before {
+ content: "\f233";
+}
+
+.fa-user-plus:before {
+ content: "\f234";
+}
+
+.fa-user-times:before {
+ content: "\f235";
+}
+
+.fa-hotel:before,
+.fa-bed:before {
+ content: "\f236";
+}
+
+.fa-viacoin:before {
+ content: "\f237";
+}
+
+.fa-train:before {
+ content: "\f238";
+}
+
+.fa-subway:before {
+ content: "\f239";
+}
+
+.fa-medium:before {
+ content: "\f23a";
+}
+
+.fa-yc:before,
+.fa-y-combinator:before {
+ content: "\f23b";
+}
+
+.fa-optin-monster:before {
+ content: "\f23c";
+}
+
+.fa-opencart:before {
+ content: "\f23d";
+}
+
+.fa-expeditedssl:before {
+ content: "\f23e";
+}
+
+.fa-battery-4:before,
+.fa-battery:before,
+.fa-battery-full:before {
+ content: "\f240";
+}
+
+.fa-battery-3:before,
+.fa-battery-three-quarters:before {
+ content: "\f241";
+}
+
+.fa-battery-2:before,
+.fa-battery-half:before {
+ content: "\f242";
+}
+
+.fa-battery-1:before,
+.fa-battery-quarter:before {
+ content: "\f243";
+}
+
+.fa-battery-0:before,
+.fa-battery-empty:before {
+ content: "\f244";
+}
+
+.fa-mouse-pointer:before {
+ content: "\f245";
+}
+
+.fa-i-cursor:before {
+ content: "\f246";
+}
+
+.fa-object-group:before {
+ content: "\f247";
+}
+
+.fa-object-ungroup:before {
+ content: "\f248";
+}
+
+.fa-sticky-note:before {
+ content: "\f249";
+}
+
+.fa-sticky-note-o:before {
+ content: "\f24a";
+}
+
+.fa-cc-jcb:before {
+ content: "\f24b";
+}
+
+.fa-cc-diners-club:before {
+ content: "\f24c";
+}
+
+.fa-clone:before {
+ content: "\f24d";
+}
+
+.fa-balance-scale:before {
+ content: "\f24e";
+}
+
+.fa-hourglass-o:before {
+ content: "\f250";
+}
+
+.fa-hourglass-1:before,
+.fa-hourglass-start:before {
+ content: "\f251";
+}
+
+.fa-hourglass-2:before,
+.fa-hourglass-half:before {
+ content: "\f252";
+}
+
+.fa-hourglass-3:before,
+.fa-hourglass-end:before {
+ content: "\f253";
+}
+
+.fa-hourglass:before {
+ content: "\f254";
+}
+
+.fa-hand-grab-o:before,
+.fa-hand-rock-o:before {
+ content: "\f255";
+}
+
+.fa-hand-stop-o:before,
+.fa-hand-paper-o:before {
+ content: "\f256";
+}
+
+.fa-hand-scissors-o:before {
+ content: "\f257";
+}
+
+.fa-hand-lizard-o:before {
+ content: "\f258";
+}
+
+.fa-hand-spock-o:before {
+ content: "\f259";
+}
+
+.fa-hand-pointer-o:before {
+ content: "\f25a";
+}
+
+.fa-hand-peace-o:before {
+ content: "\f25b";
+}
+
+.fa-trademark:before {
+ content: "\f25c";
+}
+
+.fa-registered:before {
+ content: "\f25d";
+}
+
+.fa-creative-commons:before {
+ content: "\f25e";
+}
+
+.fa-gg:before {
+ content: "\f260";
+}
+
+.fa-gg-circle:before {
+ content: "\f261";
+}
+
+.fa-tripadvisor:before {
+ content: "\f262";
+}
+
+.fa-odnoklassniki:before {
+ content: "\f263";
+}
+
+.fa-odnoklassniki-square:before {
+ content: "\f264";
+}
+
+.fa-get-pocket:before {
+ content: "\f265";
+}
+
+.fa-wikipedia-w:before {
+ content: "\f266";
+}
+
+.fa-safari:before {
+ content: "\f267";
+}
+
+.fa-chrome:before {
+ content: "\f268";
+}
+
+.fa-firefox:before {
+ content: "\f269";
+}
+
+.fa-opera:before {
+ content: "\f26a";
+}
+
+.fa-internet-explorer:before {
+ content: "\f26b";
+}
+
+.fa-tv:before,
+.fa-television:before {
+ content: "\f26c";
+}
+
+.fa-contao:before {
+ content: "\f26d";
+}
+
+.fa-500px:before {
+ content: "\f26e";
+}
+
+.fa-amazon:before {
+ content: "\f270";
+}
+
+.fa-calendar-plus-o:before {
+ content: "\f271";
+}
+
+.fa-calendar-minus-o:before {
+ content: "\f272";
+}
+
+.fa-calendar-times-o:before {
+ content: "\f273";
+}
+
+.fa-calendar-check-o:before {
+ content: "\f274";
+}
+
+.fa-industry:before {
+ content: "\f275";
+}
+
+.fa-map-pin:before {
+ content: "\f276";
+}
+
+.fa-map-signs:before {
+ content: "\f277";
+}
+
+.fa-map-o:before {
+ content: "\f278";
+}
+
+.fa-map:before {
+ content: "\f279";
+}
+
+.fa-commenting:before {
+ content: "\f27a";
+}
+
+.fa-commenting-o:before {
+ content: "\f27b";
+}
+
+.fa-houzz:before {
+ content: "\f27c";
+}
+
+.fa-vimeo:before {
+ content: "\f27d";
+}
+
+.fa-black-tie:before {
+ content: "\f27e";
+}
+
+.fa-fonticons:before {
+ content: "\f280";
+}
+
+.fa-reddit-alien:before {
+ content: "\f281";
+}
+
+.fa-edge:before {
+ content: "\f282";
+}
+
+.fa-credit-card-alt:before {
+ content: "\f283";
+}
+
+.fa-codiepie:before {
+ content: "\f284";
+}
+
+.fa-modx:before {
+ content: "\f285";
+}
+
+.fa-fort-awesome:before {
+ content: "\f286";
+}
+
+.fa-usb:before {
+ content: "\f287";
+}
+
+.fa-product-hunt:before {
+ content: "\f288";
+}
+
+.fa-mixcloud:before {
+ content: "\f289";
+}
+
+.fa-scribd:before {
+ content: "\f28a";
+}
+
+.fa-pause-circle:before {
+ content: "\f28b";
+}
+
+.fa-pause-circle-o:before {
+ content: "\f28c";
+}
+
+.fa-stop-circle:before {
+ content: "\f28d";
+}
+
+.fa-stop-circle-o:before {
+ content: "\f28e";
+}
+
+.fa-shopping-bag:before {
+ content: "\f290";
+}
+
+.fa-shopping-basket:before {
+ content: "\f291";
+}
+
+.fa-hashtag:before {
+ content: "\f292";
+}
+
+.fa-bluetooth:before {
+ content: "\f293";
+}
+
+.fa-bluetooth-b:before {
+ content: "\f294";
+}
+
+.fa-percent:before {
+ content: "\f295";
+}
+
+.fa-gitlab:before {
+ content: "\f296";
+}
+
+.fa-wpbeginner:before {
+ content: "\f297";
+}
+
+.fa-wpforms:before {
+ content: "\f298";
+}
+
+.fa-envira:before {
+ content: "\f299";
+}
+
+.fa-universal-access:before {
+ content: "\f29a";
+}
+
+.fa-wheelchair-alt:before {
+ content: "\f29b";
+}
+
+.fa-question-circle-o:before {
+ content: "\f29c";
+}
+
+.fa-blind:before {
+ content: "\f29d";
+}
+
+.fa-audio-description:before {
+ content: "\f29e";
+}
+
+.fa-volume-control-phone:before {
+ content: "\f2a0";
+}
+
+.fa-braille:before {
+ content: "\f2a1";
+}
+
+.fa-assistive-listening-systems:before {
+ content: "\f2a2";
+}
+
+.fa-asl-interpreting:before,
+.fa-american-sign-language-interpreting:before {
+ content: "\f2a3";
+}
+
+.fa-deafness:before,
+.fa-hard-of-hearing:before,
+.fa-deaf:before {
+ content: "\f2a4";
+}
+
+.fa-glide:before {
+ content: "\f2a5";
+}
+
+.fa-glide-g:before {
+ content: "\f2a6";
+}
+
+.fa-signing:before,
+.fa-sign-language:before {
+ content: "\f2a7";
+}
+
+.fa-low-vision:before {
+ content: "\f2a8";
+}
+
+.fa-viadeo:before {
+ content: "\f2a9";
+}
+
+.fa-viadeo-square:before {
+ content: "\f2aa";
+}
+
+.fa-snapchat:before {
+ content: "\f2ab";
+}
+
+.fa-snapchat-ghost:before {
+ content: "\f2ac";
+}
+
+.fa-snapchat-square:before {
+ content: "\f2ad";
+}
+
+.fa-pied-piper:before {
+ content: "\f2ae";
+}
+
+.fa-first-order:before {
+ content: "\f2b0";
+}
+
+.fa-yoast:before {
+ content: "\f2b1";
+}
+
+.fa-themeisle:before {
+ content: "\f2b2";
+}
+
+.fa-google-plus-circle:before,
+.fa-google-plus-official:before {
+ content: "\f2b3";
+}
+
+.fa-fa:before,
+.fa-font-awesome:before {
+ content: "\f2b4";
+}
+
+.fa-handshake-o:before {
+ content: "\f2b5";
+}
+
+.fa-envelope-open:before {
+ content: "\f2b6";
+}
+
+.fa-envelope-open-o:before {
+ content: "\f2b7";
+}
+
+.fa-linode:before {
+ content: "\f2b8";
+}
+
+.fa-address-book:before {
+ content: "\f2b9";
+}
+
+.fa-address-book-o:before {
+ content: "\f2ba";
+}
+
+.fa-vcard:before,
+.fa-address-card:before {
+ content: "\f2bb";
+}
+
+.fa-vcard-o:before,
+.fa-address-card-o:before {
+ content: "\f2bc";
+}
+
+.fa-user-circle:before {
+ content: "\f2bd";
+}
+
+.fa-user-circle-o:before {
+ content: "\f2be";
+}
+
+.fa-user-o:before {
+ content: "\f2c0";
+}
+
+.fa-id-badge:before {
+ content: "\f2c1";
+}
+
+.fa-drivers-license:before,
+.fa-id-card:before {
+ content: "\f2c2";
+}
+
+.fa-drivers-license-o:before,
+.fa-id-card-o:before {
+ content: "\f2c3";
+}
+
+.fa-quora:before {
+ content: "\f2c4";
+}
+
+.fa-free-code-camp:before {
+ content: "\f2c5";
+}
+
+.fa-telegram:before {
+ content: "\f2c6";
+}
+
+.fa-thermometer-4:before,
+.fa-thermometer:before,
+.fa-thermometer-full:before {
+ content: "\f2c7";
+}
+
+.fa-thermometer-3:before,
+.fa-thermometer-three-quarters:before {
+ content: "\f2c8";
+}
+
+.fa-thermometer-2:before,
+.fa-thermometer-half:before {
+ content: "\f2c9";
+}
+
+.fa-thermometer-1:before,
+.fa-thermometer-quarter:before {
+ content: "\f2ca";
+}
+
+.fa-thermometer-0:before,
+.fa-thermometer-empty:before {
+ content: "\f2cb";
+}
+
+.fa-shower:before {
+ content: "\f2cc";
+}
+
+.fa-bathtub:before,
+.fa-s15:before,
+.fa-bath:before {
+ content: "\f2cd";
+}
+
+.fa-podcast:before {
+ content: "\f2ce";
+}
+
+.fa-window-maximize:before {
+ content: "\f2d0";
+}
+
+.fa-window-minimize:before {
+ content: "\f2d1";
+}
+
+.fa-window-restore:before {
+ content: "\f2d2";
+}
+
+.fa-times-rectangle:before,
+.fa-window-close:before {
+ content: "\f2d3";
+}
+
+.fa-times-rectangle-o:before,
+.fa-window-close-o:before {
+ content: "\f2d4";
+}
+
+.fa-bandcamp:before {
+ content: "\f2d5";
+}
+
+.fa-grav:before {
+ content: "\f2d6";
+}
+
+.fa-etsy:before {
+ content: "\f2d7";
+}
+
+.fa-imdb:before {
+ content: "\f2d8";
+}
+
+.fa-ravelry:before {
+ content: "\f2d9";
+}
+
+.fa-eercast:before {
+ content: "\f2da";
+}
+
+.fa-microchip:before {
+ content: "\f2db";
+}
+
+.fa-snowflake-o:before {
+ content: "\f2dc";
+}
+
+.fa-superpowers:before {
+ content: "\f2dd";
+}
+
+.fa-wpexplorer:before {
+ content: "\f2de";
+}
+
+.fa-meetup:before {
+ content: "\f2e0";
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
+/*# sourceMappingURL=../maps/css/lifterlms.css.map */
diff --git a/assets/css/lifterlms.min.css b/assets/css/lifterlms.min.css
new file mode 100644
index 0000000000..6c91de2fdf
--- /dev/null
+++ b/assets/css/lifterlms.min.css
@@ -0,0 +1,5 @@
+.llms-pagination ul:before,.llms-pagination ul:after,.llms-form-fields:before,.llms-checkout-cols-2:before,.llms-access-plans:before,.llms-loop-list:before,.llms-cols:before,.llms-form-fields:after,.llms-checkout-cols-2:after,.llms-access-plans:after,.llms-loop-list:after,.llms-cols:after{content:" ";display:table}.llms-pagination ul:after,.llms-form-fields:after,.llms-checkout-cols-2:after,.llms-access-plans:after,.llms-loop-list:after,.llms-cols:after{clear:both}.llms-cols .llms-col{width:100%}@media all and (min-width: 600px){.llms-cols [class*=llms-col-]{float:left}}.llms-flex-cols{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.llms-flex-cols [class*=llms-col]{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:100%}@media all and (min-width: 600px){.llms-cols .llms-col-1,.llms-flex-cols .llms-col-1{width:100%}.llms-cols .llms-col-2,.llms-flex-cols .llms-col-2{width:50%}.llms-cols .llms-col-3,.llms-flex-cols .llms-col-3{width:33.3333333333%}.llms-cols .llms-col-4,.llms-flex-cols .llms-col-4{width:25%}.llms-cols .llms-col-5,.llms-flex-cols .llms-col-5{width:20%}.llms-cols .llms-col-6,.llms-flex-cols .llms-col-6{width:16.6666666667%}.llms-cols .llms-col-7,.llms-flex-cols .llms-col-7{width:14.2857142857%}.llms-cols .llms-col-8,.llms-flex-cols .llms-col-8{width:12.5%}.llms-cols .llms-col-9,.llms-flex-cols .llms-col-9{width:11.1111111111%}.llms-cols .llms-col-10,.llms-flex-cols .llms-col-10{width:10%}.llms-cols .llms-col-11,.llms-flex-cols .llms-col-11{width:9.0909090909%}.llms-cols .llms-col-12,.llms-flex-cols .llms-col-12{width:8.3333333333%}}.llms-button-action,.llms-button-danger,.llms-button-primary,.llms-button-secondary{border:none;border-radius:8px;color:#fefefe;cursor:pointer;display:inline-block;font-size:18px;font-weight:700;text-decoration:none;text-shadow:none;line-height:1;margin:0;max-width:100%;padding:12px 24px;position:relative;-webkit-transition:all .5s ease;transition:all .5s ease}.llms-button-action:disabled,.llms-button-danger:disabled,.llms-button-primary:disabled,.llms-button-secondary:disabled{opacity:.5}.llms-button-action:hover,.llms-button-action:active,.llms-button-danger:hover,.llms-button-danger:active,.llms-button-primary:hover,.llms-button-primary:active,.llms-button-secondary:hover,.llms-button-secondary:active{color:#fefefe}.llms-button-action:focus,.llms-button-danger:focus,.llms-button-primary:focus,.llms-button-secondary:focus{color:#fefefe}.llms-button-action.auto,.llms-button-danger.auto,.llms-button-primary.auto,.llms-button-secondary.auto{width:auto}.llms-button-action.full,.llms-button-danger.full,.llms-button-primary.full,.llms-button-secondary.full{display:block;text-align:center;width:100%}.llms-button-action.square,.llms-button-danger.square,.llms-button-primary.square,.llms-button-secondary.square{padding:12px}.llms-button-action.small,.llms-button-danger.small,.llms-button-primary.small,.llms-button-secondary.small{font-size:13px;padding:8px 14px}.llms-button-action.small.square,.llms-button-danger.small.square,.llms-button-primary.small.square,.llms-button-secondary.small.square{padding:8px}.llms-button-action.large,.llms-button-danger.large,.llms-button-primary.large,.llms-button-secondary.large{font-size:18px;line-height:1.2;padding:16px 32px}.llms-button-action.large.square,.llms-button-danger.large.square,.llms-button-primary.large.square,.llms-button-secondary.large.square{padding:16px}.llms-button-action.large .fa,.llms-button-danger.large .fa,.llms-button-primary.large .fa,.llms-button-secondary.large .fa{left:-7px;position:relative}a.llms-button-action,a.llms-button-danger,a.llms-button-primary{color:#fefefe}.llms-button-primary{background:#466dd8}.llms-button-primary:hover,.llms-button-primary.clicked{background:#274eba}.llms-button-primary:focus,.llms-button-primary:active{background:#6888df}.llms-button-secondary{background:#e1e1e1;color:#444}.llms-button-secondary:hover{color:#414141;background:#cdcdcd}.llms-button-secondary:focus,.llms-button-secondary:active{color:#414141;background:#ebebeb}a.llms-button-secondary{color:#444}.llms-button-action{background:#c05621}.llms-button-action:hover,.llms-button-action.clicked{background:#f67d28}.llms-button-action:focus,.llms-button-action:active{background:#faad76}.llms-button-danger{background:#bb231c}.llms-button-danger:hover{background:#981c17}.llms-button-danger:focus,.llms-button-danger:active{background:#cd261f}.llms-button-outline{background:rgba(0,0,0,0);border:3px solid #1d2327;border-radius:8px;color:#1d2327;cursor:pointer;font-size:16px;font-weight:700;text-decoration:none;text-shadow:none;line-height:1;margin:0;max-width:100%;padding:12px 24px;position:relative;-webkit-transition:all .5s ease;transition:all .5s ease}.llms-button-outline:disabled{opacity:.5}.llms-button-outline:hover,.llms-button-outline:active{color:#1d2327}.llms-button-outline:focus{color:#1d2327}.llms-button-outline.auto{width:auto}.llms-button-outline.full{display:block;text-align:center;width:100%}.llms-button-outline.square{padding:12px}.llms-course-continue-button{display:inline-block}.llms-donut{background-color:#f1f1f1;background-image:none;border-radius:50%;color:#466dd8;height:200px;overflow:hidden;position:relative;width:200px}.llms-donut:before,.llms-donut:after{content:" ";display:table}.llms-donut:after{clear:both}.llms-donut svg{overflow:visible !important;pointer-events:none;width:100%}.llms-donut svg path{fill:none;stroke-width:35px;stroke:#466dd8}.llms-donut.mini{height:36px;width:36px}.llms-donut.mini .percentage{font-size:10px}.llms-donut.small{height:100px;width:100px}.llms-donut.small .percentage{font-size:18px}.llms-donut.medium{height:130px;width:130px}.llms-donut.medium .percentage{font-size:26px}.llms-donut.large{height:260px;width:260px}.llms-donut.large .percentage{font-size:48px}.llms-donut .inside{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;border-radius:50%;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;height:80%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;left:50%;position:absolute;text-align:center;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:80%;top:50%;z-index:3}.llms-donut .percentage{line-height:1.2;font-size:34px}.llms-donut .caption{font-size:75%}.lifterlms [data-tip],.lifterlms [data-title-default],.lifterlms [data-title-active],.llms-metabox [data-tip],.llms-metabox [data-title-default],.llms-metabox [data-title-active],.llms-mb-container [data-tip],.llms-mb-container [data-title-default],.llms-mb-container [data-title-active],.llms-quiz-wrapper [data-tip],.llms-quiz-wrapper [data-title-default],.llms-quiz-wrapper [data-title-active]{position:relative}.lifterlms [data-tip].tip--top-right:before,.lifterlms [data-title-default].tip--top-right:before,.lifterlms [data-title-active].tip--top-right:before,.llms-metabox [data-tip].tip--top-right:before,.llms-metabox [data-title-default].tip--top-right:before,.llms-metabox [data-title-active].tip--top-right:before,.llms-mb-container [data-tip].tip--top-right:before,.llms-mb-container [data-title-default].tip--top-right:before,.llms-mb-container [data-title-active].tip--top-right:before,.llms-quiz-wrapper [data-tip].tip--top-right:before,.llms-quiz-wrapper [data-title-default].tip--top-right:before,.llms-quiz-wrapper [data-title-active].tip--top-right:before{bottom:100%;left:-10px}.lifterlms [data-tip].tip--top-right:hover:before,.lifterlms [data-title-default].tip--top-right:hover:before,.lifterlms [data-title-active].tip--top-right:hover:before,.llms-metabox [data-tip].tip--top-right:hover:before,.llms-metabox [data-title-default].tip--top-right:hover:before,.llms-metabox [data-title-active].tip--top-right:hover:before,.llms-mb-container [data-tip].tip--top-right:hover:before,.llms-mb-container [data-title-default].tip--top-right:hover:before,.llms-mb-container [data-title-active].tip--top-right:hover:before,.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-right:after,.lifterlms [data-title-default].tip--top-right:after,.lifterlms [data-title-active].tip--top-right:after,.llms-metabox [data-tip].tip--top-right:after,.llms-metabox [data-title-default].tip--top-right:after,.llms-metabox [data-title-active].tip--top-right:after,.llms-mb-container [data-tip].tip--top-right:after,.llms-mb-container [data-title-default].tip--top-right:after,.llms-mb-container [data-title-active].tip--top-right:after,.llms-quiz-wrapper [data-tip].tip--top-right:after,.llms-quiz-wrapper [data-title-default].tip--top-right:after,.llms-quiz-wrapper [data-title-active].tip--top-right:after{border-top-color:#444;left:6px;top:0}.lifterlms [data-tip].tip--top-right:hover:after,.lifterlms [data-title-default].tip--top-right:hover:after,.lifterlms [data-title-active].tip--top-right:hover:after,.llms-metabox [data-tip].tip--top-right:hover:after,.llms-metabox [data-title-default].tip--top-right:hover:after,.llms-metabox [data-title-active].tip--top-right:hover:after,.llms-mb-container [data-tip].tip--top-right:hover:after,.llms-mb-container [data-title-default].tip--top-right:hover:after,.llms-mb-container [data-title-active].tip--top-right:hover:after,.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after{top:-6px}.lifterlms [data-tip].tip--top-left:before,.lifterlms [data-title-default].tip--top-left:before,.lifterlms [data-title-active].tip--top-left:before,.llms-metabox [data-tip].tip--top-left:before,.llms-metabox [data-title-default].tip--top-left:before,.llms-metabox [data-title-active].tip--top-left:before,.llms-mb-container [data-tip].tip--top-left:before,.llms-mb-container [data-title-default].tip--top-left:before,.llms-mb-container [data-title-active].tip--top-left:before,.llms-quiz-wrapper [data-tip].tip--top-left:before,.llms-quiz-wrapper [data-title-default].tip--top-left:before,.llms-quiz-wrapper [data-title-active].tip--top-left:before{bottom:100%;right:-10px}.lifterlms [data-tip].tip--top-left:hover:before,.lifterlms [data-title-default].tip--top-left:hover:before,.lifterlms [data-title-active].tip--top-left:hover:before,.llms-metabox [data-tip].tip--top-left:hover:before,.llms-metabox [data-title-default].tip--top-left:hover:before,.llms-metabox [data-title-active].tip--top-left:hover:before,.llms-mb-container [data-tip].tip--top-left:hover:before,.llms-mb-container [data-title-default].tip--top-left:hover:before,.llms-mb-container [data-title-active].tip--top-left:hover:before,.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before{bottom:calc(100% + 6px)}.lifterlms [data-tip].tip--top-left:after,.lifterlms [data-title-default].tip--top-left:after,.lifterlms [data-title-active].tip--top-left:after,.llms-metabox [data-tip].tip--top-left:after,.llms-metabox [data-title-default].tip--top-left:after,.llms-metabox [data-title-active].tip--top-left:after,.llms-mb-container [data-tip].tip--top-left:after,.llms-mb-container [data-title-default].tip--top-left:after,.llms-mb-container [data-title-active].tip--top-left:after,.llms-quiz-wrapper [data-tip].tip--top-left:after,.llms-quiz-wrapper [data-title-default].tip--top-left:after,.llms-quiz-wrapper [data-title-active].tip--top-left:after{border-top-color:#444;right:6px;top:0}.lifterlms [data-tip].tip--top-left:hover:after,.lifterlms [data-title-default].tip--top-left:hover:after,.lifterlms [data-title-active].tip--top-left:hover:after,.llms-metabox [data-tip].tip--top-left:hover:after,.llms-metabox [data-title-default].tip--top-left:hover:after,.llms-metabox [data-title-active].tip--top-left:hover:after,.llms-mb-container [data-tip].tip--top-left:hover:after,.llms-mb-container [data-title-default].tip--top-left:hover:after,.llms-mb-container [data-title-active].tip--top-left:hover:after,.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after{top:-6px}.lifterlms [data-tip].tip--bottom-left:before,.lifterlms [data-title-default].tip--bottom-left:before,.lifterlms [data-title-active].tip--bottom-left:before,.llms-metabox [data-tip].tip--bottom-left:before,.llms-metabox [data-title-default].tip--bottom-left:before,.llms-metabox [data-title-active].tip--bottom-left:before,.llms-mb-container [data-tip].tip--bottom-left:before,.llms-mb-container [data-title-default].tip--bottom-left:before,.llms-mb-container [data-title-active].tip--bottom-left:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:before{top:100%;right:-10px}.lifterlms [data-tip].tip--bottom-left:hover:before,.lifterlms [data-title-default].tip--bottom-left:hover:before,.lifterlms [data-title-active].tip--bottom-left:hover:before,.llms-metabox [data-tip].tip--bottom-left:hover:before,.llms-metabox [data-title-default].tip--bottom-left:hover:before,.llms-metabox [data-title-active].tip--bottom-left:hover:before,.llms-mb-container [data-tip].tip--bottom-left:hover:before,.llms-mb-container [data-title-default].tip--bottom-left:hover:before,.llms-mb-container [data-title-active].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-left:after,.lifterlms [data-title-default].tip--bottom-left:after,.lifterlms [data-title-active].tip--bottom-left:after,.llms-metabox [data-tip].tip--bottom-left:after,.llms-metabox [data-title-default].tip--bottom-left:after,.llms-metabox [data-title-active].tip--bottom-left:after,.llms-mb-container [data-tip].tip--bottom-left:after,.llms-mb-container [data-title-default].tip--bottom-left:after,.llms-mb-container [data-title-active].tip--bottom-left:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:after{border-bottom-color:#444;right:6px;bottom:0}.lifterlms [data-tip].tip--bottom-left:hover:after,.lifterlms [data-title-default].tip--bottom-left:hover:after,.lifterlms [data-title-active].tip--bottom-left:hover:after,.llms-metabox [data-tip].tip--bottom-left:hover:after,.llms-metabox [data-title-default].tip--bottom-left:hover:after,.llms-metabox [data-title-active].tip--bottom-left:hover:after,.llms-mb-container [data-tip].tip--bottom-left:hover:after,.llms-mb-container [data-title-default].tip--bottom-left:hover:after,.llms-mb-container [data-title-active].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after{bottom:-6px}.lifterlms [data-tip].tip--bottom-right:before,.lifterlms [data-title-default].tip--bottom-right:before,.lifterlms [data-title-active].tip--bottom-right:before,.llms-metabox [data-tip].tip--bottom-right:before,.llms-metabox [data-title-default].tip--bottom-right:before,.llms-metabox [data-title-active].tip--bottom-right:before,.llms-mb-container [data-tip].tip--bottom-right:before,.llms-mb-container [data-title-default].tip--bottom-right:before,.llms-mb-container [data-title-active].tip--bottom-right:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:before{top:100%;left:-10px}.lifterlms [data-tip].tip--bottom-right:hover:before,.lifterlms [data-title-default].tip--bottom-right:hover:before,.lifterlms [data-title-active].tip--bottom-right:hover:before,.llms-metabox [data-tip].tip--bottom-right:hover:before,.llms-metabox [data-title-default].tip--bottom-right:hover:before,.llms-metabox [data-title-active].tip--bottom-right:hover:before,.llms-mb-container [data-tip].tip--bottom-right:hover:before,.llms-mb-container [data-title-default].tip--bottom-right:hover:before,.llms-mb-container [data-title-active].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before{top:calc(100% + 6px)}.lifterlms [data-tip].tip--bottom-right:after,.lifterlms [data-title-default].tip--bottom-right:after,.lifterlms [data-title-active].tip--bottom-right:after,.llms-metabox [data-tip].tip--bottom-right:after,.llms-metabox [data-title-default].tip--bottom-right:after,.llms-metabox [data-title-active].tip--bottom-right:after,.llms-mb-container [data-tip].tip--bottom-right:after,.llms-mb-container [data-title-default].tip--bottom-right:after,.llms-mb-container [data-title-active].tip--bottom-right:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:after{border-bottom-color:#444;left:6px;bottom:0}.lifterlms [data-tip].tip--bottom-right:hover:after,.lifterlms [data-title-default].tip--bottom-right:hover:after,.lifterlms [data-title-active].tip--bottom-right:hover:after,.llms-metabox [data-tip].tip--bottom-right:hover:after,.llms-metabox [data-title-default].tip--bottom-right:hover:after,.llms-metabox [data-title-active].tip--bottom-right:hover:after,.llms-mb-container [data-tip].tip--bottom-right:hover:after,.llms-mb-container [data-title-default].tip--bottom-right:hover:after,.llms-mb-container [data-title-active].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after{bottom:-6px}.lifterlms [data-tip]:before,.lifterlms [data-title-default]:before,.lifterlms [data-title-active]:before,.llms-metabox [data-tip]:before,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-active]:before,.llms-mb-container [data-tip]:before,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-active]:before,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-active]:before{background:#444;border-radius:4px;color:#fff;font-size:13px;line-height:1.2;padding:8px;max-width:300px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.lifterlms [data-tip]:after,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:after{content:"";border:6px solid rgba(0,0,0,0);height:0;width:0}.lifterlms [data-tip]:before,.lifterlms [data-tip]:after,.lifterlms [data-title-default]:before,.lifterlms [data-title-default]:after,.lifterlms [data-title-active]:before,.lifterlms [data-title-active]:after,.llms-metabox [data-tip]:before,.llms-metabox [data-tip]:after,.llms-metabox [data-title-default]:before,.llms-metabox [data-title-default]:after,.llms-metabox [data-title-active]:before,.llms-metabox [data-title-active]:after,.llms-mb-container [data-tip]:before,.llms-mb-container [data-tip]:after,.llms-mb-container [data-title-default]:before,.llms-mb-container [data-title-default]:after,.llms-mb-container [data-title-active]:before,.llms-mb-container [data-title-active]:after,.llms-quiz-wrapper [data-tip]:before,.llms-quiz-wrapper [data-tip]:after,.llms-quiz-wrapper [data-title-default]:before,.llms-quiz-wrapper [data-title-default]:after,.llms-quiz-wrapper [data-title-active]:before,.llms-quiz-wrapper [data-title-active]:after{opacity:0;-webkit-transition:all .2s .1s ease;transition:all .2s .1s ease;position:absolute;pointer-events:none;visibility:hidden}.lifterlms [data-tip]:hover:before,.lifterlms [data-tip]:hover:after,.lifterlms [data-title-default]:hover:before,.lifterlms [data-title-default]:hover:after,.lifterlms [data-title-active]:hover:before,.lifterlms [data-title-active]:hover:after,.llms-metabox [data-tip]:hover:before,.llms-metabox [data-tip]:hover:after,.llms-metabox [data-title-default]:hover:before,.llms-metabox [data-title-default]:hover:after,.llms-metabox [data-title-active]:hover:before,.llms-metabox [data-title-active]:hover:after,.llms-mb-container [data-tip]:hover:before,.llms-mb-container [data-tip]:hover:after,.llms-mb-container [data-title-default]:hover:before,.llms-mb-container [data-title-default]:hover:after,.llms-mb-container [data-title-active]:hover:before,.llms-mb-container [data-title-active]:hover:after,.llms-quiz-wrapper [data-tip]:hover:before,.llms-quiz-wrapper [data-tip]:hover:after,.llms-quiz-wrapper [data-title-default]:hover:before,.llms-quiz-wrapper [data-title-default]:hover:after,.llms-quiz-wrapper [data-title-active]:hover:before,.llms-quiz-wrapper [data-title-active]:hover:after{opacity:1;-webkit-transition:all 0 .1s ease;transition:all 0 .1s ease;visibility:visible;z-index:99999999}.lifterlms [data-tip]:before,.llms-metabox [data-tip]:before,.llms-mb-container [data-tip]:before,.llms-quiz-wrapper [data-tip]:before{content:attr(data-tip)}.lifterlms [data-tip].active:before,.llms-metabox [data-tip].active:before,.llms-mb-container [data-tip].active:before,.llms-quiz-wrapper [data-tip].active:before{content:attr(data-tip-active)}.llms-membership-image{display:block;margin:0 auto}.llms-course-image{display:block;margin:0 auto;max-width:100%}.llms-featured-image{display:block;margin:0 auto}.llms-image-thumb{width:150px}.llms-video-wrapper .center-video{height:auto;max-width:100%;overflow:hidden;position:relative;padding-top:56.25%;text-align:center}.llms-video-wrapper .center-video>.wp-video,.llms-video-wrapper .center-video .fluid-width-video-wrapper,.llms-video-wrapper .center-video iframe,.llms-video-wrapper .center-video object,.llms-video-wrapper .center-video embed{height:100%;left:0;position:absolute;top:0;width:100%}.llms-video-wrapper .center-video>.wp-video{width:100% !important}.llms-video-wrapper .center-video .fluid-width-video-wrapper{padding-top:0 !important}.clear{clear:both;width:100%}.llms-featured-image{text-align:center}#main-content .llms-payment-options p{margin:0;font-size:16px}.llms-option{display:block;position:relative;margin:20px 0;padding-left:40px;font-size:16px}.llms-option label{cursor:pointer;position:static}.llms-option:first-child{margin-top:0}.llms-option:last-child{margin-bottom:0}#main-content .llms-option:last-child{margin-bottom:0}.llms-option input[type=radio]{display:block;position:absolute;top:3px;left:0;z-index:0}.llms-option input[type=radio]{display:inline-block}.llms-option input[type=radio]+label span.llms-radio{display:none}.llms-option input[type=radio]+label span.llms-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:20;position:absolute;top:0;left:-2px;display:inline-block;width:24px;height:24px;border-radius:50%;cursor:pointer;vertical-align:middle;-webkit-box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.5) 0 0 0 1px;box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.5) 0 0 0 1px;background:#efefef;background-image:radial-gradient(ellipse at center, #bb231c 0%, #bb231c 40%, #efefef 45%);background-repeat:no-repeat;-webkit-transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);transition:background-position .15s cubic-bezier(0.8, 0, 1, 1)}.llms-option input[type=radio]:checked+label span.llms-radio{-webkit-transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1)}.llms-option input[type=radio]+label span.llms-radio{background-position:-24px 0}.llms-option input[type=radio]:checked+label span.llms-radio{background-position:0 0}.llms-option input[type=submit]{border:none;background:#bb231c;color:#fff;font-size:20px;padding:10px 0;border-radius:3px;cursor:pointer;width:100%}.llms-styled-text{padding:14px 0}.llms-notice-box{border-radius:3px;z-index:10;margin:10px 0;padding:15px 20px;border:1px solid #ccc;list-style-type:none;width:100%;overflow:auto}.llms-notice-box input[type=text]{height:auto}.llms-notice-box .col-1-1{width:100%}.llms-notice-box .col-1-1 input[type=text]{width:100%}.llms-notice-box .col-1-2{width:50%;float:left}@media screen and (max-width: 768px){.llms-notice-box .col-1-2{width:100%}}.llms-notice-box .col-1-3{width:33%;float:left;margin-right:10px}.llms-notice-box .col-1-4{width:25%;float:left;margin-right:10px}@media screen and (max-width: 768px){.llms-notice-box .col-1-4{width:100%}}.llms-notice-box .col-1-6{width:16.6%;float:left;margin-right:10px}.llms-notice-box .col-1-8{width:11%;float:right}.llms-notice-box .llms-pad-right{padding-right:10px}@media screen and (max-width: 768px){.llms-notice-box .llms-pad-right{padding-right:0}}input[type=text].cc_cvv,#cc_cvv{margin-right:0;width:23%;float:right}.llms-clear-box{border-radius:3px;z-index:10;margin:10px 0;padding:15px 20px;list-style-type:none;width:100%;overflow:auto}.llms-price-label{font-weight:normal}.llms-final-price{font-weight:bold;float:right}.llms-center-content{text-align:center}.llms-input-text{background-color:#fff;border:1px solid #ddd;color:#333;font-size:18px;font-weight:300;padding:16px;width:100%}.llms-price{margin-bottom:0;font-weight:bold}.llms-price-loop{margin-bottom:0;font-weight:bold}.courses .entry{padding:0}.list-view .site-content .llms-course-list .hentry,.list-view .site-content .llms-membership-list .hentry{border-top:0;padding-top:0}.llms-content{width:100%}.llms-lesson-button-wrapper{width:100%;display:block;clear:both;text-align:center}.llms-template-wrapper{width:100%;display:block;clear:both}.llms-button-wrapper{width:100%;display:block;clear:both;text-align:center}.llms-styled-select{border:1px solid #ccc;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px;overflow:hidden;position:relative}.llms-styled-select,.llms-styled-select select{width:100%}select:focus{outline:none}.llms-styled-select select{height:34px;padding:5px 0 5px 5px;background:rgba(0,0,0,0);border:none;-webkit-appearance:none;font-size:16px;color:#444}@-moz-document url-prefix(){.--ms-styled-select select{width:110%}}.llms-styled-select .fa-sort-desc{position:absolute;top:0;right:12px;font-size:24px;color:#ccc}select::-ms-expand{display:none}_:-o-prefocus .llms-styled-select,.selector .llms-styled-select{background:none}.llms-form-item-wrapper{margin-bottom:1em}.llms-progress-circle{position:relative;width:200px;height:200px;float:left}.llms-progress-circle-count{top:27%;position:absolute;width:94%;text-align:center;color:#666;font-size:44px}.llms-progress-circle svg{position:absolute;width:200px;height:200px}.llms-progress-circle circle{fill:rgba(0,0,0,0)}svg .llms-background-circle{fill:rgba(0,0,0,0);stroke-width:10px;stroke:#f1f2f1;stroke-dasharray:430}svg .llms-animated-circle{fill:rgba(0,0,0,0);stroke-width:10px;stroke:#e5554e;stroke-dasharray:430;stroke-dashoffset:410}.llms-widget-syllabus .llms-lesson.current-lesson .lesson-title{font-weight:700}.llms-widget-syllabus .section-header{display:-webkit-box;display:-ms-flexbox;display:flex;gap:5px}.llms-widget-syllabus .section-header .llms-collapse-caret{text-align:left;width:14px}.llms-widget-syllabus .llms-lesson-complete,.llms-widget-syllabus .lesson-complete-placeholder{font-size:18px;margin-right:5px;color:#ccc}.llms-widget-syllabus .llms-lesson-complete.done,.llms-widget-syllabus .lesson-complete-placeholder.done{color:#466dd8}.llms-widget-syllabus .section-title{font-weight:bold}.llms-widget-syllabus .lesson-title a{text-decoration:underline}.llms-widget-syllabus .lesson-title.done a{color:#666;text-decoration:line-through}.llms-widget-syllabus ul{list-style-type:none;margin:0;padding:0}.llms-widget-syllabus ul li{list-style-type:none;margin:0 0 10px 0}.llms-widget-syllabus ul li ul{margin:0 0 15px 0}.llms-widget-syllabus ul li ul li{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 0 10px 0;padding:0}.llms-remove-coupon{float:right}.llms-lesson-preview.is-complete .llms-lesson-link-locked{padding-left:75px}.llms-lesson-tooltip{display:none;position:absolute;color:#000;background-color:silver;padding:.25em;border-radius:2px;z-index:100;top:0;left:50%;text-align:center;-webkit-transform:translateX(-50%) translateY(-100%);transform:translateX(-50%) translateY(-100%)}.llms-lesson-tooltip:after{content:"";width:0;height:0;border-top:8px solid silver;border-left:8px solid rgba(0,0,0,0);border-right:8px solid rgba(0,0,0,0);position:absolute;bottom:-8px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.llms-lesson-tooltip.active{display:inline-block}.llms-favorite-wrapper{cursor:pointer}.llms-favorite-wrapper .fa-heart{color:#ef476f}.llms-has-favorite .llms-parent-course-link{display:inline-block;margin-bottom:20px}.llms-has-favorite .llms-parent-course-link+.llms-favorite-wrapper{float:right;margin:0}.llms-syllabus-wrapper .llms-has-favorite{text-align:left}.llms-syllabus-wrapper .llms-has-favorite .llms-favorite-wrapper{display:inline-block}.llms-loop-list{list-style:none;margin:0 -10px;padding:0}@media all and (min-width: 600px){.llms-loop-list.cols-1 .llms-loop-item{width:100%}.llms-loop-list.cols-2 .llms-loop-item{width:50%}.llms-loop-list.cols-3 .llms-loop-item{width:33.3333333333%}.llms-loop-list.cols-4 .llms-loop-item{width:25%}.llms-loop-list.cols-5 .llms-loop-item{width:20%}.llms-loop-list.cols-6 .llms-loop-item{width:16.6666666667%}}.llms-loop-item{float:left;list-style:none;margin:0;padding:0;width:100%}.llms-loop-item-content{background:#fefefe;border:1px solid #dedede;border-radius:6px;overflow:hidden;padding-bottom:15px;margin:10px}.llms-loop-item-content .llms-loop-link{color:#010101;display:block;text-decoration:none}.llms-loop-item-content .llms-loop-link:visited{color:#010101}.llms-loop-item-content .llms-featured-image{display:block;max-width:100%}.llms-loop-item-content .llms-loop-title{color:#010101;margin:15px 0}.llms-loop-item-content .llms-loop-title:hover{color:#466dd8}.llms-loop-item-content .llms-meta,.llms-loop-item-content .llms-author,.llms-loop-item-content .llms-loop-title{padding:0 15px}.llms-loop-item-content .llms-meta,.llms-loop-item-content .llms-author{color:#444;display:block;font-size:14px;margin-bottom:10px}.llms-loop-item-content .llms-meta:last-child,.llms-loop-item-content .llms-author:last-child{margin-bottom:0}.llms-loop-item-content .llms-author{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:5px}.llms-loop-item-content .llms-featured-img-wrap{overflow:hidden}.llms-loop-item-content p{margin-bottom:0}.llms-loop-item-content .llms-progress{margin:0;height:.4em}.llms-loop-item-content .llms-progress .progress__indicator{display:none}.llms-loop-item-content .llms-progress .llms-progress-bar{background-color:#f6f6f6;right:0;top:0}.llms-meta-info{margin:40px 0}.llms-meta-info .llms-meta-title{margin:0}.llms-meta-info .llms-meta p{margin-bottom:0}.llms-meta-info .llms-meta span{font-weight:700}.llms-course-progress{margin:40px auto;max-width:480px;text-align:center}.llms-syllabus-wrapper{margin:20px 0;text-align:left}.llms-syllabus-wrapper .llms-section-title{margin:40px 0 10px}.llms-syllabus-wrapper .llms-section-title+.llms-lesson-preview{border-top:1px solid #dedede}.llms-lesson-preview{border-right:1px solid #dedede;border-bottom:1px solid #dedede;border-left:1px solid #dedede;display:block;margin:0;max-width:100%;position:relative}.llms-lesson-preview.current-lesson .llms-lesson-title{font-weight:400}.llms-lesson-preview .llms-lesson-link{background:#fefefe;color:#010101;display:block;padding:15px;text-decoration:none;-webkit-transition:background-color .3s ease;transition:background-color .3s ease}.llms-lesson-preview .llms-lesson-link:hover{background:#eaeaea}.llms-lesson-preview .llms-lesson-link:visited{color:#212121}.llms-lesson-preview .llms-lesson-link.llms-lesson-link-locked{background:#efefef;color:#666}.llms-lesson-preview .llms-lesson-link.llms-lesson-link-locked:hover{background:#dedede}.llms-lesson-preview .llms-lesson-link .llms-lesson-preview-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.llms-lesson-preview .llms-lesson-thumbnail{margin-bottom:15px}.llms-lesson-preview .llms-lesson-thumbnail img{display:block;height:auto;width:100%}.llms-lesson-preview .llms-lesson-title{font-weight:700;margin:0 auto 5px}.llms-lesson-preview .llms-lesson-title:last-child{margin-bottom:0}.llms-lesson-preview .llms-lesson-excerpt{margin-top:5px}.llms-lesson-preview .llms-lesson-excerpt p{margin:0 0 10px 0;padding:0}.llms-lesson-preview .llms-lesson-excerpt p:last-of-type{margin:0}.llms-lesson-preview .llms-main{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.llms-lesson-preview .llms-extra{min-width:50px;text-align:right}.llms-lesson-preview .llms-lesson-counter,.llms-lesson-preview .llms-free-lesson-svg,.llms-lesson-preview .llms-lesson-complete,.llms-lesson-preview .llms-lesson-complete-placeholder{display:block}.llms-lesson-preview.is-free .llms-lesson-complete,.llms-lesson-preview.is-complete .llms-lesson-complete{color:#466dd8}.llms-lesson-preview.is-complete .llms-lesson-title:not(.llms-student-dashboard .llms-lesson-title):not(.llms-course-navigation .llms-lesson-title){text-decoration:line-through}.llms-lesson-preview .llms-icon-free{background:#466dd8;border-radius:6px;color:#fefefe;display:inline-block;font-size:14px;font-weight:bold;line-height:1;padding:5px 8px 4px;white-space:nowrap}.llms-lesson-preview.is-incomplete .llms-lesson-complete{color:#cacaca}.llms-lesson-preview .llms-lesson-counter{font-size:16px;margin-bottom:5px}.llms-lesson-preview .llms-free-lesson-svg{fill:currentColor;height:23px;width:50px}.llms-course-navigation{display:-webkit-box;display:-ms-flexbox;display:flex;gap:20px}.llms-course-navigation .llms-prev-lesson,.llms-course-navigation .llms-next-lesson,.llms-course-navigation .llms-back-to-course{-webkit-box-flex:1;-ms-flex:1;flex:1}.llms-course-navigation .llms-prev-lesson+.llms-back-to-course{text-align:right}.llms-course-navigation .llms-next-lesson .llms-lesson-preview .llms-lesson-link{text-align:right}.llms-course-navigation .llms-lesson-preview{border:1px solid #dedede}.llms-course-navigation .llms-lesson-link{display:block}.llms-progress{clear:both;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;position:relative;height:1em;width:100%;margin:15px 0}.llms-progress .llms-progress-bar{background-color:#dedede;position:relative;height:.4em;top:.3em;width:100%}.llms-progress .progress-bar-complete{background-color:#ef476f;height:100%}.progress__indicator{float:right;text-align:right;height:1em;line-height:1em;margin-left:5px;white-space:nowrap}.llms-author .name{margin-left:5px}.llms-author .label{margin-left:5px}.llms-author .avatar{border-radius:50%}.llms-author .bio{margin-top:5px}.llms-instructor-info{margin:40px 0}.llms-instructor-info .llms-meta-title{margin:0}.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author{margin-left:0}.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author{margin-right:0}.llms-instructor-info .llms-instructors .llms-author{background:#fefefe;border:1px solid #dedede;border-top:4px solid #466dd8;border-bottom-right-radius:6px;border-bottom-left-radius:6px;color:#010101;text-align:center;margin:45px 0 0;padding:0 20px 20px}.llms-instructor-info .llms-instructors .llms-author .avatar{background:#466dd8;border:4px solid #466dd8;display:block;margin:-35px auto 10px}.llms-instructor-info .llms-instructors .llms-author .llms-author-info{display:block}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name{font-weight:700}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label{font-size:85%}.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio{font-size:90%;margin-bottom:0}.llms_review{margin:20px 0px;padding:10px}.llms_review h5{font-size:17px;margin:3px 0px}.llms_review h6{font-size:13px}.llms_review p{font-size:15px}.review_box [type=text]{margin:10px 0px}.review_box h5{color:red;display:none}.review_box+.thank_you_box{display:none}.llms-notice{background:rgba(70,109,216,.3);border-color:#466dd8;border-style:solid;border-width:1px;border-radius:6px;padding:15px;margin-bottom:40px}.llms-notice a{color:inherit}.llms-notice p:last-child,.llms-notice ul:last-child{margin-bottom:0}.llms-notice li{list-style-type:none}.llms-notice.llms-debug{background:rgba(202,202,202,.3);border-color:#cacaca}.llms-notice.llms-error{background:rgba(187,35,28,.15);border-color:#bb231c}.llms-notice.llms-success{background:rgba(77,141,60,.15);border-color:#4d8d3c}.entry-content .llms-notice{margin:0 0 40px}.entry-content .llms-notice li{list-style-type:none}ul.llms-achievements-loop,.lifterlms ul.llms-achievements-loop,ul.llms-certificates-loop,.lifterlms ul.llms-certificates-loop{list-style-type:none;margin:0 -10px;padding:0}ul.llms-achievements-loop:before,ul.llms-achievements-loop:after,.lifterlms ul.llms-achievements-loop:before,.lifterlms ul.llms-achievements-loop:after,ul.llms-certificates-loop:before,ul.llms-certificates-loop:after,.lifterlms ul.llms-certificates-loop:before,.lifterlms ul.llms-certificates-loop:after{content:" ";display:table}ul.llms-achievements-loop:after,.lifterlms ul.llms-achievements-loop:after,ul.llms-certificates-loop:after,.lifterlms ul.llms-certificates-loop:after{clear:both}ul.llms-achievements-loop li.llms-achievement-loop-item,ul.llms-achievements-loop li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop li.llms-certificate-loop-item,ul.llms-certificates-loop li.llms-achievement-loop-item,ul.llms-certificates-loop li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop li.llms-certificate-loop-item{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;float:left;list-style-type:none;margin:0;padding:10px;width:100%}@media all and (min-width: 600px){ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item{width:100%}ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item{width:50%}ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item{width:33.3333333333%}ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item{width:25%}ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item{width:20%}}.llms-achievement,.llms-certificate{background:#fefefe;border:none;border-radius:12px;color:#010101;display:block;padding:20px 0;text-decoration:none;width:100%}.llms-achievement:hover,.llms-certificate:hover{background:#eaeaea}.llms-achievement .llms-achievement-img,.llms-certificate .llms-achievement-img{display:block;margin:0 auto;max-width:80%}.llms-achievement .llms-achievement-title,.llms-certificate .llms-achievement-title{color:#010101;font-size:16px;margin:0;padding:10px;text-align:center}.llms-achievement .llms-certificate-title,.llms-certificate .llms-certificate-title{color:#010101;font-size:16px;margin:0;padding:0 0 10px}.llms-achievement .llms-achievement-info,.llms-achievement .llms-achievement-date,.llms-certificate .llms-achievement-info,.llms-certificate .llms-achievement-date{display:none}.llms-achievement .llms-achievement-content,.llms-certificate .llms-achievement-content{padding:20px}.llms-achievement .llms-achievement-content:empty,.llms-certificate .llms-achievement-content:empty{padding:0}.llms-achievement .llms-achievement-content *:last-child,.llms-certificate .llms-achievement-content *:last-child{margin-bottom:0}.llms-certificate{border:4px double #dedede;padding:20px 10px;background:#fefefe;text-align:center}.llms-certificate:hover{background:#fefefe;border-color:#eaeaea}.llms-achievement-modal .llms-achievement{background:#fff}.llms-achievement-modal .llms-achievement-info{display:block}.llms-achievement-modal .llms-achievement-title{display:none}.llms-notification{background:#fefefe;-webkit-box-shadow:0 1px 2px -2px #333,0 1px 1px -1px #333;box-shadow:0 1px 2px -2px #333,0 1px 1px -1px #333;border-top:4px solid #466dd8;color:#010101;opacity:0;padding:12px;position:fixed;right:-800px;top:24px;-webkit-transition:opacity .4s ease-in-out,right .4s ease-in-out;transition:opacity .4s ease-in-out,right .4s ease-in-out;visibility:hidden;width:auto;z-index:9999999}.llms-notification:before,.llms-notification:after{content:" ";display:table}.llms-notification:after{clear:both}.llms-notification.visible{left:12px;opacity:1;right:12px;-webkit-transition:opacity .4s ease-in-out,right .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,-webkit-transform .2s ease-in-out;transition:opacity .4s ease-in-out,right .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,-webkit-transform .2s ease-in-out;transition:opacity .4s ease-in-out,right .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,transform .2s ease-in-out;transition:opacity .4s ease-in-out,right .4s ease-in-out,top .1s ease-in-out,background .2s ease-in-out,transform .2s ease-in-out,-webkit-transform .2s ease-in-out;visibility:visible}.llms-notification.visible:hover .llms-notification-dismiss{opacity:1}.llms-notification .llms-notification-content{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.llms-notification .llms-notification-main{-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:4;-ms-flex:4;flex:4;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.llms-notification .llms-notification-title{color:#010101;font-size:18px;margin:0}.llms-notification .llms-notification-body{font-size:14px;line-height:1.4}.llms-notification .llms-notification-body p,.llms-notification .llms-notification-body li{font-size:inherit}.llms-notification .llms-notification-body p{margin-bottom:8px}.llms-notification .llms-notification-body p img{max-width:100%}.llms-notification .llms-notification-body .llms-mini-cert{background:#f6f6f6;border:1px solid #d0d0d0;-webkit-box-shadow:inset 0 0 0 3px #fefefe,inset 0 0 0 4px #dedede;box-shadow:inset 0 0 0 3px #fefefe,inset 0 0 0 4px #dedede;padding:16px 16px 24px;margin-top:12px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert-title{font-size:16px;font-weight:700;margin:12px auto;text-align:center}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body{width:100%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(1){width:65%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(2){width:35%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(3){width:85%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(4){width:75%;margin-top:18px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(5){width:70%}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(6){margin-left:12px;margin-bottom:-24px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body>div:nth-child(7){width:65%;margin-right:12px}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-line{border-radius:2px;height:8px;background:#b0b0b0;background-image:-webkit-gradient(linear, left top, right top, from(#b0b0b0), color-stop(20%, #a0a0a0), color-stop(40%, #b0b0b0), to(#b0b0b0));background-image:linear-gradient(to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100%);background-repeat:no-repeat;margin:4px auto}.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-dot{background:#b0b0b0;border-radius:50%;display:inline-block;content:"";height:24px;width:24px}.llms-notification .llms-notification-body .llms-mini-cert p{margin-bottom:0}.llms-notification .llms-notification-aside{-ms-flex-item-align:start;align-self:flex-start;-webkit-box-flex:1;-ms-flex:1;flex:1;margin-right:12px;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.llms-notification .llms-notification-icon{display:block;max-width:64px}.llms-notification .llms-notification-footer{border-top:1px solid #e5e5e5;font-size:12px;margin-top:12px;padding:6px 6px 0;text-align:right}.llms-notification .llms-notification-footer a{color:#010101}.llms-notification .llms-notification-dismiss{color:#bb231c;cursor:pointer;font-size:22px;position:absolute;right:10px;top:8px;-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out}.llms-sd-notification-center .llms-notification-list,.llms-sd-notification-center .llms-notification-list-item{list-style-type:none;margin:0;padding:0}.llms-sd-notification-center .llms-notification-list-item:hover .llms-notification{background:#fcfcfc}.llms-sd-notification-center .llms-notification{opacity:1;border-top:1px solid #e5e5e5;left:auto;padding:24px;position:relative;right:auto;top:auto;visibility:visible;width:auto}.llms-sd-notification-center .llms-notification .llms-notification-aside{max-width:64px}.llms-sd-notification-center .llms-notification .llms-notification-footer{border:none;padding:0;text-align:left}.llms-sd-notification-center .llms-notification .llms-progress{display:none !important}.llms-sd-notification-center .llms-notification .llms-notification-date{color:#515151;float:left;margin-right:6px}.llms-sd-notification-center .llms-notification .llms-mini-cert{margin:0 auto;max-width:380px}@media all and (min-width: 480px){.llms-notification{right:-800px;width:360px}.llms-notification.visible{left:auto;right:24px}.llms-notification .llms-notification-dismiss{opacity:0}}.llms-pagination ul{list-style-type:none;margin:40px 0;padding:0}.llms-pagination ul li{float:left}.llms-pagination ul li a{border-bottom:0;text-decoration:none}.llms-pagination ul li .page-numbers{padding:.5em;text-decoration:underline}.llms-pagination ul li .page-numbers.current{text-decoration:none}.llms-tooltip{background:#2a2a2a;border-radius:4px;color:#fff;font-size:14px;line-height:1.2;opacity:0;top:-20px;padding:8px 12px;left:50%;position:absolute;pointer-events:none;-webkit-transform:translateX(-50%);transform:translateX(-50%);-webkit-transition:opacity .2s ease,top .2s ease;transition:opacity .2s ease,top .2s ease;max-width:320px}.llms-tooltip.show{top:-28px;opacity:1}.llms-tooltip:after{bottom:-8px;border-top:8px solid #2a2a2a;border-left:8px solid rgba(0,0,0,0);border-right:8px solid rgba(0,0,0,0);content:"";height:0;left:50%;position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:0}.webui-popover-title{font-size:initial;font-weight:initial;line-height:initial}.webui-popover-inverse .webui-popover-inner .close{color:#fff;opacity:.6;text-shadow:none}.webui-popover-inverse .webui-popover-inner .close:hover{opacity:.8}.webui-popover-inverse .webui-popover-content a{color:#fff;text-decoration:underline}.webui-popover-inverse .webui-popover-content a:hover{text-decoration:none}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results{margin:0;padding:0;list-style-type:none}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question{background:#efefef;border-radius:6px;margin:0 0 15px;position:relative;list-style-type:none}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer{color:inherit;display:-webkit-box;display:-ms-flexbox;display:flex;gap:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:15px 35px 15px 15px;text-decoration:none}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct,.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect{background:rgba(192,86,33,.2)}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon,.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon{background-color:#c05621}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct{background:rgba(77,141,60,.15)}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon{background-color:#4d8d3c}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect{background:rgba(187,35,28,.15)}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon{background-color:#bb231c}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question pre{overflow:auto}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title{font-size:22px;margin:0;line-height:1.4}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points{line-height:1.4}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip{position:absolute;right:-12px;top:-2px}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon{color:rgba(255,255,255,.65);border-radius:50%;font-size:30px;height:40px;line-height:40px;text-align:center;width:40px}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main{display:none;padding:0 15px 15px}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label{font-weight:700;margin:0 0 10px;padding:0}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers{margin:0;padding:0}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{padding:0;margin:0 0 0 30px}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child{list-style-type:none;margin-left:0}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img{height:auto;max-width:200px}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section{border-top:2px solid rgba(255,255,255,.5);margin-top:20px;padding-top:20px}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child{border-top:none;margin-top:0;padding-top:0}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers,.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers{list-style-type:none;margin:0;padding:0}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer,.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer{display:inline-block;list-style-type:none;margin:0;padding:5px}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed{opacity:.5}.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title{font-style:italic;font-weight:normal}.single-llms_quiz .llms-return{margin-bottom:10px}.single-llms_quiz .llms-quiz-results:before,.single-llms_quiz .llms-quiz-results:after{content:" ";display:table}.single-llms_quiz .llms-quiz-results:after{clear:both}.single-llms_quiz .llms-quiz-results .llms-donut.passing{color:#4d8d3c}.single-llms_quiz .llms-quiz-results .llms-donut.passing svg path{stroke:#4d8d3c}.single-llms_quiz .llms-quiz-results .llms-donut.pending{color:#555}.single-llms_quiz .llms-quiz-results .llms-donut.pending svg path{stroke:#555}.single-llms_quiz .llms-quiz-results .llms-donut.failing{color:#bb231c}.single-llms_quiz .llms-quiz-results .llms-donut.failing svg path{stroke:#bb231c}.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside,.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,.single-llms_quiz .llms-quiz-results .llms-quiz-results-history{margin-bottom:20px}@media all and (min-width: 600px){.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside{float:left;width:220px}.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside+.llms-quiz-results-main{float:right;width:calc(100% - 300px)}.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside+.llms-quiz-results-main+.llms-quiz-results-history{float:right;width:calc(100% - 300px)}.single-llms_quiz .llms-quiz-results .llms-quiz-results-history{clear:right}}.single-llms_quiz ul.llms-quiz-meta-info{list-style-type:none;margin:0;padding:0}.single-llms_quiz ul.llms-quiz-meta-info li{list-style-type:none;margin:10px 0 0;padding:0}.single-llms_quiz ul.llms-quiz-meta-info{margin-bottom:10px}.single-llms_quiz .llms-quiz-buttons{margin-top:10px;text-align:left}.single-llms_quiz .llms-quiz-buttons form{display:inline-block}.llms-quiz-question-wrapper{min-height:140px;position:relative}.llms-quiz-question-wrapper .llms-quiz-loading{bottom:20px;left:0;position:absolute;right:0;text-align:center;z-index:1}.llms-quiz-question-wrapper .llms-question-image img{height:auto;max-width:100%}.llms-quiz-ui{position:relative}.llms-quiz-ui .llms-quiz-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 0 40px}.llms-quiz-ui .llms-progress{background-color:#dedede;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;height:8px;margin:0;overflow:hidden}.llms-quiz-ui .llms-progress .progress-bar-complete{-webkit-transition:width .3s ease-in;transition:width .3s ease-in;width:0}.llms-quiz-ui .llms-error{background:rgba(187,35,28,.15);border:1px solid #bb231c;border-radius:6px;margin:20px 0;padding:15px}.llms-quiz-ui .llms-error:before,.llms-quiz-ui .llms-error:after{content:" ";display:table}.llms-quiz-ui .llms-error:after{clear:both}.llms-quiz-ui .llms-error a{color:#bb231c;float:right;font-size:22px;line-height:1;text-decoration:none}.llms-quiz-ui .llms-quiz-counter{display:none;color:#6a6a6a;float:right;font-size:18px}.llms-quiz-ui .llms-quiz-counter .llms-sep{margin:0 5px}.llms-quiz-ui .llms-quiz-nav{margin-top:20px}.llms-quiz-ui .llms-quiz-nav button{margin:0 10px 0 0}.llms-question-wrapper .llms-question-text{font-size:30px;font-weight:400;margin-bottom:15px}.llms-question-wrapper ol.llms-question-choices{list-style-type:none;margin:0;padding:0}.llms-question-wrapper ol.llms-question-choices li.llms-choice{border-bottom:1px solid #e8e8e8;margin:0;padding:0;position:relative}.llms-question-wrapper ol.llms-question-choices li.llms-choice:last-child{border-bottom:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture{border-bottom:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture label{display:inline-block;padding:0}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-marker{bottom:10px;margin:0;position:absolute;right:10px}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image{margin:2px;padding:20px;-webkit-transition:background .4s ease;transition:background .4s ease}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image img{display:block;height:auto;width:100%}.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture input:checked~.llms-choice-image{background:#efefef}.llms-question-wrapper ol.llms-question-choices li.llms-choice input{display:none;left:0;pointer-events:none;position:absolute;top:0;visibility:hidden}.llms-question-wrapper ol.llms-question-choices li.llms-choice label{display:block;margin:0;padding:10px 20px;position:relative}.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .iterator{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .fa{display:inline}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker{background:#fefefe;color:#010101;display:inline-block;font-size:20px;height:40px;line-height:40px;margin-right:10px;text-align:center;-webkit-transition:all .2s ease;transition:all .2s ease;vertical-align:middle;width:40px}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker .fa{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--lister,.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--checkbox{border-radius:4px}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--radio{border-radius:50%}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker{background:#ef476f;color:#fff}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker .iterator{display:none}.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked+.llms-marker .fa{display:inline}.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text{display:inline-block;font-size:18px;font-weight:400;line-height:1.6;margin:0;padding:0;vertical-align:middle;width:calc(100% - 60px)}.llms-quiz-timer{background:#fff;border:1px solid #4d8d3c;border-radius:4px;color:#4d8d3c;float:right;font-size:18px;line-height:1;margin-left:20px;padding:8px 12px;position:relative;white-space:nowrap;z-index:1}.llms-quiz-timer.color-half{border-color:#c05621;color:#c05621}.llms-quiz-timer.color-empty{border-color:#bb231c;color:#bb231c}.llms-quiz-timer .llms-tiles{display:inline-block;margin-left:5px}.voucher-expand{display:none}@media all and (min-width: 600px){.llms-access-plans.cols-1 .llms-access-plan{width:100%}.llms-access-plans.cols-2 .llms-access-plan{width:50%}.llms-access-plans.cols-3 .llms-access-plan{width:33.3333333333%}.llms-access-plans.cols-4 .llms-access-plan{width:25%}.llms-access-plans.cols-5 .llms-access-plan{width:20%}}.llms-free-enroll-form{margin-bottom:0}.llms-access-plan{-webkit-box-sizing:border-box;box-sizing:border-box;float:left;text-align:center;width:100%}.llms-access-plan .llms-access-plan-content,.llms-access-plan .llms-access-plan-footer{background:#f1f1f1}.llms-access-plan.featured .llms-access-plan-featured{background:#466dd8;border-top-left-radius:6px;border-top-right-radius:6px}.llms-access-plan.featured .llms-access-plan-content{border-radius:0}.llms-access-plan.featured .llms-access-plan-title{border-top-left-radius:0;border-top-right-radius:0}.llms-access-plan.featured .llms-access-plan-footer,.llms-access-plan.featured .llms-access-plan-content{border-left:3px solid #466dd8;border-right:3px solid #466dd8}.llms-access-plan.featured .llms-access-plan-footer{border-bottom-color:#466dd8}.llms-access-plan.on-sale .price-regular{text-decoration:line-through}.llms-access-plan.on-sale .price-regular .lifterlms-price{font-weight:400}.llms-access-plan .stamp{background:#466dd8;border-radius:6px;color:#fefefe;display:inline-block;font-size:14px;font-style:normal;font-weight:bold;line-height:1;padding:5px 8px 4px}.llms-access-plan-featured{color:#fff;font-size:14px;font-weight:700;letter-spacing:1px;margin:0 2px 0 2px;padding:5px 0 0}.llms-access-plan-content{border-top-right-radius:6px;border-top-left-radius:6px;margin:0 2px 0;overflow:hidden}.llms-access-plan-content .llms-access-plan-pricing{color:#010101;padding:20px 0 0}.llms-access-plan-content .llms-form-fields{padding:10px}.llms-access-plan-title{background:#466dd8;color:#fefefe;margin:0;padding:10px 15px}.llms-access-plan-pricing .llms-price-currency-symbol{font-size:14px;vertical-align:top}.llms-access-plan-price .lifterlms-price{font-weight:700}.llms-access-plan-price.sale{padding:5px 0;border-top:1px solid #d0d0d0;border-bottom:1px solid #d0d0d0}.llms-access-plan-trial,.llms-access-plan-schedule,.llms-access-plan-sale-end,.llms-access-plan-expiration{font-size:16px}.llms-access-plan-description{color:#010101;font-size:16px;padding:10px 10px 0}.llms-access-plan-description ul{margin:0}.llms-access-plan-description ul li{border-bottom:1px solid #d0d0d0;list-style-type:none}.llms-access-plan-description ul li:last-child{border-bottom:none}.llms-access-plan-description div:last-child,.llms-access-plan-description img:last-child,.llms-access-plan-description p:last-child,.llms-access-plan-description ul:last-child,.llms-access-plan-description li:last-child{margin-bottom:0}.llms-access-plan-restrictions{margin-top:20px}.llms-access-plan-restrictions .stamp{vertical-align:baseline}.llms-access-plan-restrictions ul{margin:5px 0 0 0;padding:0}.llms-access-plan-restrictions ul li{font-size:14px;list-style-type:none;margin:0;padding:0}.llms-access-plan-restrictions a{color:#c05621}.llms-access-plan-restrictions a:hover{color:#f67d28}.llms-access-plan-footer{border-bottom:3px solid #f1f1f1;border-bottom-left-radius:6px;border-bottom-right-radius:6px;padding:15px;margin:0 2px 2px 2px}.llms-access-plan-footer .button{display:inline-block}.llms-access-plan-footer .llms-access-plan-pricing{padding:0 0 10px}.webui-popover-content .llms-members-only-restrictions{text-align:center}.webui-popover-content .llms-members-only-restrictions ul,.webui-popover-content .llms-members-only-restrictions ol,.webui-popover-content .llms-members-only-restrictions li,.webui-popover-content .llms-members-only-restrictions p{margin:0;padding:0}.webui-popover-content .llms-members-only-restrictions ul,.webui-popover-content .llms-members-only-restrictions ol,.webui-popover-content .llms-members-only-restrictions li{list-style-type:none}.webui-popover-content .llms-members-only-restrictions li{padding:8px 0;border-top:1px solid #3b3b3b}.webui-popover-content .llms-members-only-restrictions li:first-child{border-top:none}.webui-popover-content .llms-members-only-restrictions li a{display:block}.llms-checkout-wrapper .llms-person-login-form-wrapper{margin-bottom:40px}.llms-checkout-wrapper form.llms-login{display:none}.llms-checkout-wrapper .llms-form-heading{margin:0 0 20px}.llms-checkout{position:relative}.llms-checkout-cols-2.llms-col-2 section{background-color:#fefefe;border:1px solid #ccc;border-radius:12px;padding:20px}.llms-checkout-cols-2.llms-col-2 section .llms-form-heading{padding:0}@media all and (min-width: 800px){.llms-checkout-cols-2 .llms-checkout-col{float:left}.llms-checkout-cols-2 .llms-checkout-col.llms-col-1{margin-right:20px;width:calc(58% - 20px)}.llms-checkout-cols-2 .llms-checkout-col.llms-col-2{margin-left:20px;width:calc(42% - 20px)}.llms-checkout-cols-2 .llms-checkout-col.llms-col-2 button{width:100%}}.llms-checkout-section{margin-bottom:40px;position:relative}.llms-checkout-section-content.llms-form-fields{margin:0px}.llms-checkout-section-content .llms-label{font-weight:400}.llms-checkout-section-content .llms-order-summary{list-style-type:none;margin:0;padding:0}.llms-checkout-section-content .llms-order-summary li{list-style-type:none;margin:0 0 15px 0}.llms-checkout-section-content .llms-order-summary :not(.llms-label){font-weight:700}.llms-checkout-section-content .llms-order-summary li.llms-pricing.on-sale .price-regular,.llms-checkout-section-content .llms-order-summary li.llms-pricing.has-coupon .price-regular{text-decoration:line-through}.llms-checkout-section-content .llms-coupon-wrapper{border-top:1px solid #dedede;margin-top:20px;padding-top:20px}.llms-checkout-section-content .llms-coupon-wrapper .llms-coupon-entry{display:none;margin-top:20px}.llms-form-field.llms-payment-gateway-option{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:8px}.llms-form-field.llms-payment-gateway-option label+span.llms-description{display:inline-block;margin-left:5px}.llms-form-field.llms-payment-gateway-option .llms-description a{border:none;-webkit-box-shadow:none;box-shadow:none;text-decoration:none}.llms-form-field.llms-payment-gateway-option .llms-description img{display:inline;max-height:22px;vertical-align:middle}.llms-checkout-wrapper ul.llms-payment-gateways{margin:5px 0 0;padding:0}ul.llms-payment-gateways{list-style-type:none}ul.llms-payment-gateways li:last-child:after{border-bottom:1px solid #dedede;content:"";display:block;margin:20px 0}ul.llms-payment-gateways .llms-payment-gateway{margin-bottom:30px;list-style-type:none}ul.llms-payment-gateways .llms-payment-gateway:last-child{margin-bottom:none}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-payment-gateway-option label{font-weight:700}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields{display:block}ul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields .llms-notice{margin-left:10px;margin-right:10px}ul.llms-payment-gateways .llms-payment-gateway .llms-form-field{padding-bottom:0}ul.llms-payment-gateways .llms-gateway-description{margin-left:40px}ul.llms-payment-gateways .llms-gateway-fields{display:none;margin:5px 0 20px}ul.llms-payment-gateways .llms-payment-gateway-error{padding:0 10px}.llms-checkout-confirm{margin:0}.llms-payment-method{margin:10px 10px 0}.llms-gateway-description p{font-size:14px;font-style:italic;margin:0}.llms-form-fields{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields *{-webkit-box-sizing:border-box;box-sizing:border-box}.llms-form-fields.flush .llms-form-field{padding:0 0 20px}.llms-form-fields label:not(.llms-field-html label){font-weight:700}.llms-form-fields .wp-block-columns,.llms-form-fields .wp-block-column{margin-bottom:0}.llms-form-heading{padding:0 10px 10px}.llms-form-field{float:left;padding:0 10px 20px;position:relative;width:100%}.llms-form-field label:empty:after{content:" "}.llms-form-field [type=text],.llms-form-field [type=password],.llms-form-field [type=email],.llms-form-field [type=url],.llms-form-field [type=tel],.llms-form-field [type=number]{background-color:#fefefe;background-clip:padding-box;border:1px solid #999;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:16px;line-height:1;padding:8px 12px;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;width:100%}.llms-form-field input:focus,.llms-form-field input:focus-visible{border-color:#6888df;outline:thin solid}.llms-form-field select{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background-color:#fefefe;border:1px solid #999;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#010101;padding:8px 12px;margin:0;width:100%;font-family:inherit;font-size:16px;cursor:inherit;line-height:1.6;z-index:1;outline:none;background-repeat:no-repeat;background-image:linear-gradient(45deg, transparent 50%, currentcolor 50%),linear-gradient(135deg, currentcolor 50%, transparent 50%);background-position:right 15px top 1.3rem,right 10px top 1.3rem;background-size:5px 5px,5px 5px}.llms-form-field select::-ms-expand{display:none}.llms-form-field select:focus{border:1px solid #6888df;outline:thin solid}.llms-form-field.valid input[type=date],.llms-form-field.valid input[type=time],.llms-form-field.valid input[type=datetime-local],.llms-form-field.valid input[type=week],.llms-form-field.valid input[type=month],.llms-form-field.valid input[type=text],.llms-form-field.valid input[type=email],.llms-form-field.valid input[type=url],.llms-form-field.valid input[type=password],.llms-form-field.valid input[type=search],.llms-form-field.valid input[type=tel],.llms-form-field.valid input[type=number],.llms-form-field.valid textarea,.llms-form-field.valid select{background:rgba(131,195,115,.3);border-color:#83c373}.llms-form-field.error input[type=date],.llms-form-field.error input[type=time],.llms-form-field.error input[type=datetime-local],.llms-form-field.error input[type=week],.llms-form-field.error input[type=month],.llms-form-field.error input[type=text],.llms-form-field.error input[type=email],.llms-form-field.error input[type=url],.llms-form-field.error input[type=password],.llms-form-field.error input[type=search],.llms-form-field.error input[type=tel],.llms-form-field.error input[type=number],.llms-form-field.error textarea,.llms-form-field.error select,.llms-form-field.invalid input[type=date],.llms-form-field.invalid input[type=time],.llms-form-field.invalid input[type=datetime-local],.llms-form-field.invalid input[type=week],.llms-form-field.invalid input[type=month],.llms-form-field.invalid input[type=text],.llms-form-field.invalid input[type=email],.llms-form-field.invalid input[type=url],.llms-form-field.invalid input[type=password],.llms-form-field.invalid input[type=search],.llms-form-field.invalid input[type=tel],.llms-form-field.invalid input[type=number],.llms-form-field.invalid textarea,.llms-form-field.invalid select{background:rgba(187,35,28,.3);border-color:#bb231c}.llms-form-field.llms-visually-hidden-field{display:none}.llms-form-field.align-right{text-align:right}@media screen and (min-width: 600px){.llms-form-field.llms-cols-1{width:8.3333333333%}.llms-form-field.llms-cols-2{width:16.6666666667%}.llms-form-field.llms-cols-3{width:25%}.llms-form-field.llms-cols-4{width:33.3333333333%}.llms-form-field.llms-cols-5{width:41.6666666667%}.llms-form-field.llms-cols-6{width:50%}.llms-form-field.llms-cols-7{width:58.3333333333%}.llms-form-field.llms-cols-8{width:66.6666666667%}.llms-form-field.llms-cols-9{width:75%}.llms-form-field.llms-cols-10{width:83.3333333333%}.llms-form-field.llms-cols-11{width:91.6666666667%}.llms-form-field.llms-cols-12{width:100%}}.llms-form-field.type-hidden{padding:0}.llms-form-field.type-radio input,.llms-form-field.type-radio label,.llms-form-field.type-checkbox input,.llms-form-field.type-checkbox label{display:inline-block;width:auto}.llms-form-field.type-radio input,.llms-form-field.type-checkbox input{margin-right:10px}.llms-form-field.type-radio label+.llms-description,.llms-form-field.type-checkbox label+.llms-description{display:block}.llms-form-field.type-radio:not(.is-group) input[type=radio]{position:absolute;opacity:0;visibility:none}.llms-form-field.type-radio:not(.is-group) label:before{background:#fafafa;background-position:-24px 0;background-repeat:no-repeat;border-radius:50%;-webkit-box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;box-shadow:rgba(255,255,255,.15) 0 1px 1px,inset rgba(0,0,0,.35) 0 0 0 1px;content:"";cursor:pointer;display:inline-block;height:22px;margin-right:5px;position:relative;-webkit-transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);transition:background-position .15s cubic-bezier(0.8, 0, 1, 1);top:-3px;vertical-align:middle;width:22px;z-index:2}.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked+label:before{-webkit-transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);transition:background-position .2s .15s cubic-bezier(0, 0, 0.2, 1);background-position:0 0;background-image:radial-gradient(ellipse at center, #466dd8 0%, #466dd8 40%, #fafafa 45%)}.llms-form-field .llms-input-group{margin-top:5px}.llms-form-field .llms-input-group .llms-form-field{padding:0 0 5px 5px}.llms-form-field.type-reset button:not(.auto),.llms-form-field.type-button button:not(.auto),.llms-form-field.type-submit button:not(.auto){width:100%}.llms-form-field .llms-description{font-size:14px;font-style:italic;line-height:18px}.llms-form-field .llms-required{color:#bb231c;margin-left:4px}.llms-form-field input,.llms-form-field textarea,.llms-form-field select{width:100%;margin-bottom:5px}.llms-form-field .select2-container .select2-selection--single{height:auto;padding:4px 6px}.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%}.llms-password-strength-meter{border:1px solid #dadada;display:none;font-size:10px;margin-top:-10px;padding:1px;position:relative;text-align:center}.llms-password-strength-meter:before{bottom:0;content:"";left:0;position:absolute;top:0;-webkit-transition:width .4s ease;transition:width .4s ease}.llms-password-strength-meter.mismatch,.llms-password-strength-meter.too-short,.llms-password-strength-meter.very-weak{border-color:#e35b5b}.llms-password-strength-meter.mismatch:before,.llms-password-strength-meter.too-short:before,.llms-password-strength-meter.very-weak:before{background:rgba(227,91,91,.25);width:25%}.llms-password-strength-meter.too-short:before{width:0}.llms-password-strength-meter.weak{border-color:#f78b53}.llms-password-strength-meter.weak:before{background:rgba(247,139,83,.25);width:50%}.llms-password-strength-meter.medium{border-color:#ffc733}.llms-password-strength-meter.medium:before{background:rgba(255,199,51,.25);width:75%}.llms-password-strength-meter.strong{border-color:#83c373}.llms-password-strength-meter.strong:before{background:rgba(131,195,115,.25);width:100%}.llms-password-strength-meter+.llms-description{display:block}.llms-widget-syllabus--collapsible .llms-section .section-header{cursor:pointer}.llms-widget-syllabus--collapsible .llms-section.llms-section--opened .llms-collapse-caret .fa-caret-right{display:none}.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-collapse-caret .fa-caret-down{display:none}.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-lesson{display:none}.llms-widget-syllabus--collapsible .llms-syllabus-footer{text-align:left}.llms-student-dashboard .llms-sd-title{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:15px;margin:40px 0 20px 0}.llms-student-dashboard .llms-sd-title small{font-size:18px}.llms-student-dashboard .llms-sd-title small+a{text-decoration:none}.llms-student-dashboard .llms-sd-items{list-style-type:none;margin:0 0 25px 0;padding:0}.llms-student-dashboard .llms-sd-item{display:inline-block;list-style-type:none;margin:5px 0;padding:0}.llms-student-dashboard .llms-sd-item:last-child .llms-sep{display:none}.llms-student-dashboard .llms-sd-item .llms-sep{color:#666;margin:0 5px}.llms-student-dashboard .llms-sd-section{margin-bottom:40px}.llms-student-dashboard .llms-sd-section h2{margin:0 0 15px 0}.llms-student-dashboard .llms-sd-section .llms-sd-section-title{margin:0;padding:0}.llms-student-dashboard .llms-sd-section .llms-sd-section-title:first-child{margin:0 0 10px 0}.llms-student-dashboard .llms-sd-section .llms-sd-section-footer{margin-top:10px}.llms-student-dashboard .llms-sd-section .llms-sd-section-footer a.llms-button-secondary{display:inline-block}.llms-student-dashboard .llms-sd-section .llms-certificates-loop{margin:0 0 0 -10px}.llms-student-dashboard .llms-sd-section .llms-certificate{padding:20px 0}.llms-student-dashboard .orders-table{border:1px solid #dedede;border-spacing:0;width:100%}.llms-student-dashboard .orders-table thead{display:none}.llms-student-dashboard .orders-table thead th,.llms-student-dashboard .orders-table thead td{font-weight:700}@media all and (min-width: 600px){.llms-student-dashboard .orders-table thead{display:table-header-group}}.llms-student-dashboard .orders-table tbody tr:nth-child(odd) td,.llms-student-dashboard .orders-table tbody tr:nth-child(odd) th{background:#f9f9f9}.llms-student-dashboard .orders-table tbody tr:last-child{border-bottom-width:0}.llms-student-dashboard .orders-table tfoot tr{background:#f9f9f9}.llms-student-dashboard .orders-table tfoot th,.llms-student-dashboard .orders-table tfoot td{padding:10px;text-align:right}.llms-student-dashboard .orders-table tfoot th:last-child,.llms-student-dashboard .orders-table tfoot td:last-child{border-bottom-width:0}.llms-student-dashboard .orders-table th{font-weight:700}.llms-student-dashboard .orders-table th,.llms-student-dashboard .orders-table td{border-color:#dedede;border-style:solid;border-width:0;display:block;padding:15px 20px;text-align:center}.llms-student-dashboard .orders-table th .llms-button-primary,.llms-student-dashboard .orders-table td .llms-button-primary{display:inline-block}.llms-student-dashboard .orders-table th:last-child,.llms-student-dashboard .orders-table td:last-child{border-bottom-width:1px}.llms-student-dashboard .orders-table th:before,.llms-student-dashboard .orders-table td:before{content:attr(data-label)}@media all and (min-width: 600px){.llms-student-dashboard .orders-table th,.llms-student-dashboard .orders-table td{border-bottom-width:1px;display:table-cell;text-align:left}.llms-student-dashboard .orders-table th:first-child,.llms-student-dashboard .orders-table td:first-child{width:220px}.llms-student-dashboard .orders-table th:before,.llms-student-dashboard .orders-table td:before{display:none}}@media all and (min-width: 600px){.llms-student-dashboard .orders-table.transactions th:first-child{width:auto}}.llms-student-dashboard .llms-status{border-radius:6px;display:inline-block;font-size:13px;font-weight:700;line-height:1.4;padding:2px 6px;vertical-align:middle}.llms-student-dashboard .llms-status.llms-size--large{font-size:105%;padding:6px 12px}.llms-student-dashboard .llms-status.llms-active,.llms-student-dashboard .llms-status.llms-completed,.llms-student-dashboard .llms-status.llms-pass,.llms-student-dashboard .llms-status.llms-txn-succeeded{color:#4d8d3c;background-color:rgba(77,141,60,.15)}.llms-student-dashboard .llms-status.llms-fail,.llms-student-dashboard .llms-status.llms-failed,.llms-student-dashboard .llms-status.llms-expired,.llms-student-dashboard .llms-status.llms-cancelled,.llms-student-dashboard .llms-status.llms-txn-failed{color:#bb231c;background-color:rgba(187,35,28,.15)}.llms-student-dashboard .llms-status.llms-incomplete,.llms-student-dashboard .llms-status.llms-on-hold,.llms-student-dashboard .llms-status.llms-pending,.llms-student-dashboard .llms-status.llms-pending-cancel,.llms-student-dashboard .llms-status.llms-refunded,.llms-student-dashboard .llms-status.llms-txn-pending,.llms-student-dashboard .llms-status.llms-txn-refunded{color:#c05621;background-color:rgba(192,86,33,.15)}.llms-student-dashboard .order-title .llms-status{font-size:18px}.llms-student-dashboard .llms-person-form-wrapper .llms-change-password{display:none}@media all and (min-width: 600px){.llms-student-dashboard .order-primary{float:left;width:68%}}@media all and (min-width: 600px){.llms-student-dashboard .order-secondary{float:left;width:32%}}.llms-student-dashboard .order-secondary form{margin-bottom:0}@media all and (min-width: 600px){.llms-student-dashboard .llms-view-order.llms-stack-cols .order-primary,.llms-student-dashboard .llms-view-order.llms-stack-cols .order-secondary{float:none;width:100%}}.llms-student-dashboard .llms-switch-payment-source .llms-notice,.llms-student-dashboard .llms-switch-payment-source .entry-content .llms-notice{margin-left:10px;margin-right:10px}.llms-student-dashboard .llms-switch-payment-source-main{border:none;display:none;margin:0}.llms-student-dashboard .llms-switch-payment-source-main ul.llms-payment-gateways{padding:10px 15px 0;margin:0}.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method,.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary{padding:0 25px 10px;margin:0;list-style-type:none}.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method li,.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary li{list-style-type:none}.llms-student-dashboard.dashboard .llms-sd-section{border:1px solid #dedede;border-radius:6px;padding:20px;margin-bottom:40px}.llms-student-dashboard .llms-loop-list{margin:0 -10px}.logged-in .llms-sd-layout-columns{-webkit-box-align:start;-ms-flex-align:start;align-items:start}@media all and (min-width: 600px){.logged-in .llms-sd-layout-columns{display:grid;grid-gap:25px;grid-template-areas:"nav header" "nav tab";grid-template-columns:200px 1fr;grid-template-rows:auto 1fr}}.logged-in .llms-sd-layout-columns .llms-sd-nav{grid-area:nav}@media all and (min-width: 600px){.logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item{display:block;float:none}.logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item a{display:block;padding:10px 0}.logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item .llms-sep{display:none}}.logged-in .llms-sd-layout-columns .llms-sd-header{grid-area:header}.logged-in .llms-sd-layout-columns .llms-sd-tab{grid-area:tab}.llms-sd-grades .llms-table .llms-progress{display:block;margin:0}.llms-sd-grades .llms-table .llms-progress .llms-progress-bar{top:0;height:1.4em}.llms-sd-grades .llms-table .llms-progress .progress__indicator{font-size:1em;position:relative;right:.4em;top:.2em;z-index:1}.llms-table.llms-single-course-grades tbody tr:first-child td,.llms-table.llms-single-course-grades tbody tr:first-child th{background-color:#eaeaea}.llms-table.llms-single-course-grades th{font-weight:400;text-align:left}.llms-table.llms-single-course-grades td .llms-donut{display:inline-block;vertical-align:middle}.llms-table.llms-single-course-grades td .llms-status{margin-right:4px}.llms-table.llms-single-course-grades td .llms-donut+.llms-status{margin-left:4px}.llms-table.llms-single-course-grades th.llms-section_title{font-size:110%;font-weight:700}.llms-table.llms-single-course-grades td.llms-lesson_title{max-width:40%}.llms-table.llms-single-course-grades td.llms-associated_quiz .llms-donut{display:inline-block;margin-right:5px;vertical-align:middle}.llms-table.llms-single-course-grades td.llms-lesson_title a[href="#"]{pointer-events:none}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"]{color:inherit;position:relative}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip{max-width:380px;width:380px}.llms-table.llms-single-course-grades td.llms-lesson_title a[href^="#"] .llms-tooltip.show{top:-54px}.llms-sd-widgets{display:-webkit-box;display:-ms-flexbox;display:flex}.llms-sd-widgets .llms-sd-widget{background:#fefefe;border:1px solid #dedede;border-bottom-right-radius:6px;border-bottom-left-radius:6px;-webkit-box-flex:1;-ms-flex:1;flex:1;margin:10px 10px 20px;padding:0 0 20px}.llms-sd-widgets .llms-sd-widget:first-child{margin-left:0}.llms-sd-widgets .llms-sd-widget:last-child{margin-right:0}.llms-sd-widgets .llms-sd-widget .llms-sd-widget-title{background:#466dd8;color:#fff;font-size:18px;line-height:1;margin:0 0 20px;padding:10px}.llms-sd-widgets .llms-sd-widget .llms-sd-widget-empty{font-size:14px;font-style:italic;opacity:.5;text-align:center}.llms-sd-widgets .llms-sd-widget .llms-donut{margin:0 auto}.llms-sd-widgets .llms-sd-widget .llms-sd-date{opacity:.8;text-align:center;font-size:22px;line-height:1.1}.llms-sd-widgets .llms-sd-widget .llms-sd-date span{display:block}.llms-sd-widgets .llms-sd-widget .llms-sd-date span.day{font-size:52px}.llms-sd-widgets .llms-sd-widget .llms-sd-date span.diff{font-size:12px;font-style:italic;margin-top:8px;opacity:.75}.llms-sd-widgets .llms-sd-widget .llms-achievement{background:rgba(0,0,0,0);margin:0 auto;max-width:120px}.llms-sd-widgets .llms-sd-widget .llms-achievement .llms-achievement-title{display:none}.redeem-voucher .form-row label{display:block;font-weight:700}.redeem-voucher .form-row input[type=text]{background-color:#fefefe;background-clip:padding-box;border:1px solid #999;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:16px;line-height:1;padding:8px 12px;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}.llms-sd-pagination{margin-top:24px}.llms-sd-pagination:before,.llms-sd-pagination:after{content:" ";display:table}.llms-sd-pagination:after{clear:both}.llms-sd-pagination .llms-button-secondary{display:inline-block}.llms-sd-pagination .llms-button-secondary.prev{float:left}.llms-sd-pagination .llms-button-secondary.next{float:right}.llms-sd-notification-center{background:#fefefe;border:1px solid #dedede;border-radius:6px;padding:20px}.llms-sd-notification-center .llms-notification-list-item .llms-notification{z-index:1}.llms-sd-notification-center .llms-notification-list-item .llms-notification:hover{background-color:inherit}.llms-table{border:1px solid #dedede;border-spacing:0;width:100%}.llms-table thead th,.llms-table thead td{font-weight:700}.llms-table tbody tr:nth-child(odd) td,.llms-table tbody tr:nth-child(odd) th{background:#f9f9f9}.llms-table tbody tr:last-child{border-bottom-width:0}.llms-table tfoot tr{background:#f9f9f9}.llms-table tfoot tr .llms-pagination .page-numbers{margin:0}.llms-table tfoot tr .llms-table-sort{text-align:right}.llms-table tfoot tr .llms-table-sort form,.llms-table tfoot tr .llms-table-sort select,.llms-table tfoot tr .llms-table-sort input,.llms-table tfoot tr .llms-table-sort button{margin:0}.llms-table th{font-weight:700}.llms-table th,.llms-table td{border-bottom:1px solid #dedede;padding:15px 20px}.llms-table th:first-child,.llms-table td:first-child{padding-left:12px}.llms-table th:last-child,.llms-table td:last-child{padding-right:12px}#page .llms-table tfoot label{display:inline}#page .llms-table tfoot select{height:auto}/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:"FontAwesome";src:url("../fonts/fontawesome-webfont.eot?v=4.7.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-vcard:before,.fa-address-card:before{content:""}.fa-vcard-o:before,.fa-address-card-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
+/*# sourceMappingURL=../maps/css/lifterlms.min.css.map */
diff --git a/assets/css/llms-admin-addons.css.map b/assets/css/llms-admin-addons.css.map
new file mode 100644
index 0000000000..c59aad50df
--- /dev/null
+++ b/assets/css/llms-admin-addons.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"css/llms-admin-addons.css","mappings":";;;AAKC;EACC;EACA;AAJF;;AASA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAND;AAOC;EACC;AALF;AAQC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AANF;AASC;EACC;EACA;AAPF;AAQE;EACC;EACA;EACA;EACA;AANH;AAQE;EACC;AANH;;AAYA;EACC;EACA;EACA;EACA;AATD;AAWC;EAND;IAOE;EARA;AACF;AAUC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;AARF;AAeC;EACC;EACA;EACA;AAbF;AAeE;EACC;EACA;EACA;AAbH;AAgBE;EACC;AAdH;AAeG;EACC;EACA;EACA;EACA;AAbJ;AAeG;EACC;EACA;EACA;EACA;AAbJ;AAiBE;EACC;AAfH;AAgBG;EACC;EACA;EACA;EACA;AAdJ;AAgBG;EACC;EACA;EACA;EACA;AAdJ;AAgBI;EACC;AAdL;AAiBG;EACC;EACA;EACA;EACA;EACA;AAfJ;AAmBE;EACC;EACA;AAjBH;AAmBG;EACC;EACA;EACA;AAjBJ;AAoBG;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;AAlBJ;AAoBI;EACC;AAlBL;AAmBK;EAAoB;AAhBzB;AAiBK;EAAoB;AAdzB;AAiBI;EACC;EACA;EACA;EACA;EACA;EACA;EACA;AAfL;AAkBI;EAAoB;AAfxB;AAgBI;EAAoB;AAbxB;AAeI;;EAEC;EACA;AAbL;AAgBI;EACC;AAdL;AAeK;EACC;AAbN;AAiBI;EACC;AAfL;AAqBK;EACC;AAnBN;AA0BK;EACC;AAxBN;AA+BK;EACC;AA7BN;AAmCG;EACC;EACA;EACA;AAjCJ;AAkCI;EACC;AAhCL;AAoCG;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAlCJ;AAmCI;EACC;EACA;AAjCL;AAmCI;EACC;EACA;EACA;EACA;EACA;AAjCL;AAmCI;EACC;EACA;EACA;EACA;AAjCL;AAoCI;EACC;AAlCL;AAmCK;EACC;AAjCN;;AA4CA;EAGE;IACC;IACA;IACA;IACA;IACA;EA3CD;EA6CC;IACC;EA3CF;EAwDE;IACC;IACA;EAtDH;AACF,C","sources":["webpack://lifterlms/./src/scss/admin-addons.scss"],"sourcesContent":["@import '@lifterlms/brand/sass/colors';\n@import \"../../assets/scss/_includes/mixins\";\n\n.wrap.lifterlms-addons {\n\n\t.llms-subheader {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n\n}\n\n.llms-addons-bulk-actions {\n\tbackground-color: #FFF;\n\tborder: 1px solid #dedede;\n\tborder-radius: 12px;\n\tbox-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);\n\tleft: 0;\n\tmargin-right: auto;\n\tmargin-left: auto;\n\tpadding: 40px 60px;\n\tposition: fixed;\n\tright: 0;\n\ttext-align: center;\n\ttransition: top 0.2s ease;\n\ttop: -100%;\n\twidth: 240px;\n\tz-index: 1;\n\t&.active {\n\t\ttop: 80px;\n\t}\n\n\t.llms-bulk-close {\n\t\tbackground: #fff;\n\t\tborder: 1px solid #ddd;\n\t\tborder-bottom-width: 0;\n\t\tborder-left-width: 0;\n\t\tborder-radius: 50%;\n\t\tcolor: llms-color( wp-red-50 );\n\t\tfont-size: 25px;\n\t\theight: 25px;\n\t\tpadding: 5px;\n\t\tposition: absolute;\n\t\tright: -10px;\n\t\ttop: -10px;\n\t\twidth: 25px;\n\t}\n\n\t.llms-bulk-desc {\n\t\tfont-size: 18px;\n\t\tmargin-bottom: 20px;\n\t\t.fa {\n\t\t\tcolor: llms-color( llms-blue );\n\t\t\tdisplay: block;\n\t\t\tfont-size: 30px;\n\t\t\tmargin-bottom: 10px;\n\t\t}\n\t\t&.deactivate .fa {\n\t\t\tcolor: #777;\n\t\t}\n\t}\n\n}\n\n.llms-addons-wrap {\n\tdisplay: grid;\n\tgrid-gap: 30px;\n\tgrid-template-columns: 1fr;\n\tjustify-content: space-between;\n\n\t@media only screen and ( min-width: 782px ) {\n\t\tgrid-template-columns: 1fr 1fr 1fr;\n\t}\n\n\t.llms-add-on-item {\n\t\tbackground-color: #FFF;\n\t\tborder: 1px solid #dedede;\n\t\tborder-radius: 12px;\n\t\tbox-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);\n\t\tlist-style: none;\n\t\tmargin: 0;\n\t\toverflow: hidden;\n\n\t\t@media only screen and ( min-width: 680px ) {\n\n\t\t}\n\t}\n\n\t.llms-add-on {\n\t\tdisplay: flex;\n\t\tflex-flow: column no-wrap;\n\t\theight: 100%;\n\n\t\t.llms-add-on-link {\n\t\t\tcolor: #444;\n\t\t\tdisplay: block;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t\theader {\n\t\t\tmargin-bottom: 0;\n\t\t\th4 {\n\t\t\t\tcolor: #1d2327;\n\t\t\t\tfont-size: 20px;\n\t\t\t\tline-height: 1.5;\n\t\t\t\tmargin: 30px 20px 20px 20px;\n\t\t\t}\n\t\t\timg {\n\t\t\t\taspect-ratio: 16 / 9;\n\t\t\t\tdisplay: block;\n\t\t\t\theight: auto;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\n\t\tsection {\n\t\t\tpadding: 0 20px;\n\t\t\tp {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tline-height: 1.5;\n\t\t\t\tmargin: 0 0 15px;\n\t\t\t\ttext-align: left;\n\t\t\t}\n\t\t\tul, li {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tline-height: 1.5;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\n\t\t\t\t:first-child {\n\t\t\t\t\tfont-weight: 700;\n\t\t\t\t}\n\t\t\t}\n\t\t\timg {\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\theight: 20px;\n\t\t\t\twidth: 20px;\n\t\t\t\tvertical-align: text-bottom;\n\t\t\t}\n\t\t}\n\n\t\tfooter.llms-actions {\n\t\t\tmargin-top: auto;\n\t\t\tpadding: 20px;\n\n\t\t\ta.open-plugin-details-modal {\n\t\t\t\tfont-size: 18px;\n\t\t\t\tpadding: 5px;\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\n\t\t\t.llms-status-icon {\n\t\t\t\tbackground-color: #e1e1e1;\n\t\t\t\tborder: none;\n\t\t\t\tborder-radius: 8px;\n\t\t\t\tcolor: #414141;\n\t\t\t\tcursor: pointer;\n\t\t\t\tdisplay: block;\n\t\t\t\tfont-size: 16px;\n\t\t\t\tfont-weight: 700;\n\t\t\t\ttext-decoration: none;\n\t\t\t\ttext-shadow: none;\n\t\t\t\tline-height: 1;\n\t\t\t\tmargin: 10px 0;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: 8px 14px;\n\t\t\t\t-webkit-transition: all .5s ease;\n\t\t\t\ttransition: all .5s ease;\n\t\t\t\ttext-decoration: none;\n\t\t\t\tvertical-align: middle;\n\n\t\t\t\t&:hover {\n\t\t\t\t\tbackground-color: #cdcdcd;\n\t\t\t\t\t.fa.show-on-hover { display: inline-block; }\n\t\t\t\t\t.fa.hide-on-hover { display: none; }\n\t\t\t\t}\n\n\t\t\t\t.fa {\n\t\t\t\t\tcolor: #414141;\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t\theight: 16px;\n\t\t\t\t\ttext-align: center;\n\t\t\t\t\tmargin-right: 2px;\n\t\t\t\t\twidth: 16px;\n\t\t\t\t}\n\n\t\t\t\t.fa.show-on-hover { display: none; }\n\t\t\t\t.fa.hide-on-hover { display: inline-block; }\n\n\t\t\t\tinput,\n\t\t\t\tinput + .fa {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t\tcolor: llms-color( llms-blue ) !important;\n\t\t\t\t}\n\n\t\t\t\tinput:checked + .fa {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t& + .fa {\n\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t.llms-status-text {\n\t\t\t\t\tfont-size: 14px;\n\t\t\t\t}\n\n\n\t\t\t\t&.status--installed,\n\t\t\t\t&.status--license_active {\n\t\t\t\t\t.fa {\n\t\t\t\t\t\tcolor: llms-color( wp-green-50 );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// &.status--uninstalled,\n\t\t\t\t&.status--active,\n\t\t\t\t&.status--license_inactive {\n\t\t\t\t\t.fa {\n\t\t\t\t\t\tcolor: llms-color( wp-red-50 );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t&.external.status--none,\n\t\t\t\t&.external.status--license_active, // fixes xapi\n\t\t\t\t&.external.status--license_inactive { // fixes xapi\n\t\t\t\t\t.fa {\n\t\t\t\t\t\tcolor: llms-color( llms-blue );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t.llms-button-secondary {\n\t\t\t\tborder: 1px solid #b7b7b7;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tfloat: right;\n\t\t\t\t&:hover {\n\t\t\t\t\tbackground: #f0f0f0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-addon-actions {\n\t\t\t\tbackground: #f0f0f0;\n\t\t\t\tborder: 1px solid #b7b7b7;\n\t\t\t\tbox-shadow: inset 0 1px 0 rgba(255,255,255,.2), inset 0 -1px 0 rgba(0,0,0,.1);\n\t\t\t\tdisplay: none;\n\t\t\t\tleft: 16px;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 16px;\n\t\t\t\tposition: absolute;\n\t\t\t\tright: 16px;\n\t\t\t\tz-index: 1;\n\t\t\t\t&:before, &:after {\n\t\t\t\t\tcontent: '';\n\t\t\t\t\tposition: absolute;\n\t\t\t\t}\n\t\t\t\t&:before {\n\t\t\t\t\tborder: 10px solid transparent;\n\t\t\t\t\tborder-bottom-color: #b7b7b7;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\ttop: -20px;\n\t\t\t\t\tright: 34px;\n\t\t\t\t}\n\t\t\t\t&:after {\n\t\t\t\t\tborder: 8px solid transparent;\n\t\t\t\t\tborder-bottom-color: #f0f0f0;\n\t\t\t\t\ttop: -16px;\n\t\t\t\t\tright: 36px;\n\t\t\t\t}\n\n\t\t\t\tli {\n\t\t\t\t\tmargin-bottom: 8px;\n\t\t\t\t\t&:last-child {\n\t\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\n@media only screen and (min-width: 782px) {\n\t.wrap.lifterlms-addons {\n\n\t\t.llms-subheader {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\theight: 40px;\n\t\t\tposition: sticky;\n\t\t\ttop: 32px;\n\n\t\t\th1 {\n\t\t\t\tmargin-bottom: 0;\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t.llms-addons-wrap {\n\n\t\t.llms-add-on {\n\n\t\t\tfooter.llms-actions {\n\n\t\t\t\t.llms-status-icon {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tmargin: 10px 5px 0 0;\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t}\n\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/assets/js/llms-admin-addons.js.map b/assets/js/llms-admin-addons.js.map
new file mode 100644
index 0000000000..7fbeb1908e
--- /dev/null
+++ b/assets/js/llms-admin-addons.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"js/llms-admin-addons.js","mappings":"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","sources":["webpack://lifterlms/./src/scss/admin-addons.scss?82ea","webpack://lifterlms/external window \"jQuery\"","webpack://lifterlms/external window [\"wp\",\"i18n\"]","webpack://lifterlms/webpack/bootstrap","webpack://lifterlms/webpack/runtime/compat get default export","webpack://lifterlms/webpack/runtime/define property getters","webpack://lifterlms/webpack/runtime/hasOwnProperty shorthand","webpack://lifterlms/webpack/runtime/make namespace object","webpack://lifterlms/./src/js/admin-addons.js"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport {};","module.exports = window[\"jQuery\"];","module.exports = window[\"wp\"][\"i18n\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * UI & UX for the Admin add-ons management screen\n *\n * @package LifterLMS/Scripts/Admin\n *\n * @since 3.22.0\n * @version 5.5.0\n */\n\nimport { _n, sprintf } from '@wordpress/i18n';\nimport $ from 'jquery';\nimport '../scss/admin-addons.scss';\n\n( function() {\n\t/**\n\t * Tracks current # of each bulk action to be run upon form submission\n\t *\n\t * @type {Object}\n\t */\n\tconst actions = {\n\t\tupdate: 0,\n\t\tinstall: 0,\n\t\tactivate: 0,\n\t\tdeactivate: 0,\n\t};\n\n\t/**\n\t * When the bulk action modal is closed, clear all existing staged actions\n\t *\n\t * @since 3.22.0\n\t */\n\t$( '.llms-bulk-close' ).on( 'click', function( e ) {\n\t\te.preventDefault();\n\t\t$( 'input.llms-bulk-check' ).filter( ':checked' ).prop( 'checked', false ).trigger( 'change' );\n\t} );\n\n\t/**\n\t * Update the UI and counters when a checkbox action is changed\n\t *\n\t * @since 3.22.0\n\t */\n\t$( 'input.llms-bulk-check' ).on( 'change', function() {\n\t\tconst action = $( this ).attr( 'data-action' );\n\n\t\tif ( $( this ).is( ':checked' ) ) {\n\t\t\tactions[ action ]++;\n\t\t} else {\n\t\t\tactions[ action ]--;\n\t\t}\n\n\t\tupdateUserInterface();\n\t} );\n\n\t/**\n\t * Updates the UI when bulk actions are changed.\n\t *\n\t * Shows # of each action to be applied & shows the form submission / cancel buttons\n\t *\n\t * @since 3.22.0\n\t * @since 5.5.0 Use `wp.i18n` functions in favor of `LLMS.l10n` and use `$.text()` in favor of `$.html()`.\n\t * Renamed from `update_ui()` to match coding standards.\n\t *\n\t * @return {void}\n\t */\n\tfunction updateUserInterface() {\n\t\tconst $el = $( '#llms-addons-bulk-actions' );\n\t\tif ( actions.update || actions.install || actions.activate || actions.deactivate ) {\n\t\t\t$el.addClass( 'active' );\n\t\t} else {\n\t\t\t$el.removeClass( 'active' );\n\t\t}\n\n\t\t$.each( actions, function( key, count ) {\n\t\t\tconst $desc = $el.find( '.llms-bulk-desc.' + key );\n\n\t\t\tlet text = '';\n\n\t\t\tif ( count ) {\n\t\t\t\t// Translators: %d = Number of add-ons to perform the specified action against.\n\t\t\t\ttext = sprintf( _n( '%d add-on', '%d add-ons', count, 'lifterlms' ), count );\n\t\t\t\t$desc.show();\n\t\t\t} else {\n\t\t\t\t$desc.hide();\n\t\t\t}\n\t\t\t$desc.find( 'span' ).text( text );\n\t\t} );\n\t}\n\n\t/**\n\t * Show the keys management dropdown on click of the \"My License Keys\" button\n\t *\n\t * @since 3.22.0\n\t */\n\t$( '#llms-active-keys-toggle' ).on( 'click', function() {\n\t\t$( '#llms-key-field-form' ).toggle();\n\t} );\n}() );\n"],"names":["_n","sprintf","$","actions","update","install","activate","deactivate","on","e","preventDefault","filter","prop","trigger","action","attr","is","updateUserInterface","$el","addClass","removeClass","each","key","count","$desc","find","text","show","hide","toggle"],"sourceRoot":""}
\ No newline at end of file
diff --git a/assets/js/llms-admin-award-certificate.js.map b/assets/js/llms-admin-award-certificate.js.map
new file mode 100644
index 0000000000..6578e5aa4f
--- /dev/null
+++ b/assets/js/llms-admin-award-certificate.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"js/llms-admin-award-certificate.js","mappings":"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","sources":["webpack://lifterlms/./src/js/util/award-certificate-button/create.js","webpack://lifterlms/./src/js/util/award-certificate-button/index.js","webpack://lifterlms/./src/js/util/award-certificate-button/message.js","webpack://lifterlms/./src/js/util/award-certificate-button/urls.js","webpack://lifterlms/./src/js/util/edit-certificate-title.js","webpack://lifterlms/./src/js/util/index.js","webpack://lifterlms/external window [\"llms\",\"components\"]","webpack://lifterlms/external window [\"llms\",\"utils\"]","webpack://lifterlms/external window [\"wp\",\"components\"]","webpack://lifterlms/external window [\"wp\",\"coreData\"]","webpack://lifterlms/external window [\"wp\",\"data\"]","webpack://lifterlms/external window [\"wp\",\"editor\"]","webpack://lifterlms/external window [\"wp\",\"element\"]","webpack://lifterlms/external window [\"wp\",\"i18n\"]","webpack://lifterlms/external window [\"wp\",\"url\"]","webpack://lifterlms/webpack/bootstrap","webpack://lifterlms/webpack/runtime/compat get default export","webpack://lifterlms/webpack/runtime/define property getters","webpack://lifterlms/webpack/runtime/hasOwnProperty shorthand","webpack://lifterlms/webpack/runtime/make namespace object","webpack://lifterlms/./src/js/admin-award-certificate.js"],"sourcesContent":["// WP deps.\nimport { store as coreStore } from '@wordpress/core-data';\nimport { dispatch } from '@wordpress/data';\n\n/**\n * Creates a new awarded certificate post for a given student with a specified parent template.\n *\n * @since 6.0.0\n *\n * @param {number} studentId WP_User ID.\n * @param {number} templateId WP_Post ID.\n * @return {Promise} A promise that resolves to the WP_Post object api response on success.\n */\nexport default function( studentId, templateId ) {\n\tconst { saveEntityRecord } = dispatch( coreStore );\n\n\treturn saveEntityRecord(\n\t\t'postType',\n\t\t'llms_my_certificate',\n\t\t{\n\t\t\tauthor: studentId,\n\t\t\tcertificate_template: templateId,\n\t\t\tstatus: 'draft',\n\t\t}\n\t);\n}\n","// WP Deps.\nimport { __ } from '@wordpress/i18n';\nimport { Button, Modal } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\n// LLMS Deps.\nimport { PostSearchControl, UserSearchControl } from '@lifterlms/components';\n\n// Internal Deps.\nimport createAward from './create';\nimport getMessage from './message';\nimport { getRedirectUrl, getScratchUrl } from './urls';\n\n/**\n * Button and modal interface for creating a draft certificate from a specified template for a specific student.\n *\n * @since 6.0.0\n *\n * @param {Object} params Component configuration object.\n * @param {string} params.modalTitle Title of the modal.\n * @param {string} params.buttonLabel Text of the button.\n * @param {boolean} params.isDisabled Whether or not the button is disabled.\n * @param {boolean} params.enableScratch When `true`, displays a \"Start from Scratch\" button that links to the awarded certificate editor page.\n * @param {boolean} params.selectStudent When `true`, displays a searchable select element to allow user selection of the user.\n * @param {boolean} params.selectTemplate When `true`, displays a searchable select element to allow user selection of the template.\n * @param {?number} params.studentId WP_User ID of the student to award the certificate to.\n * @param {?number} params.templateId WP_Post ID of the certificate template post to create the certificate from.\n * @return {WPElement} The component.\n */\nexport default function( {\n\tmodalTitle = __( 'Award a New Certificate', 'lifterlms' ),\n\tbuttonLabel = __( 'Award', 'lifterlms' ),\n\tisDisabled = false,\n\tenableScratch = true,\n\tselectStudent = true,\n\tselectTemplate = true,\n\tstudentId = null,\n\ttemplateId = null,\n} ) {\n\tconst [ isOpen, setIsOpen ] = useState( false ),\n\t\t[ isBusy, setIsBusy ] = useState( false ),\n\t\t[ currStudentId, setStudentId ] = useState( studentId ),\n\t\t[ currTemplateId, setTemplateId ] = useState( templateId ),\n\t\tcloseModal = () => setIsOpen( false ),\n\t\topenModal = () => setIsOpen( true ),\n\t\tisReady = currStudentId && currTemplateId,\n\t\tonClick = () => {\n\t\t\tsetIsBusy( true );\n\t\t\tcreateAward( currStudentId, currTemplateId ).then( ( { id } ) => {\n\t\t\t\twindow.location = getRedirectUrl( id );\n\t\t\t} );\n\t\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ isOpen && (\n\t\t\t\t\n\n\t\t\t\t\t{ getMessage( selectStudent, selectTemplate ) }
\n\n\t\t\t\t\t{ selectStudent && (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tconst id = obj?.id || null;\n\t\t\t\t\t\t\t\tsetStudentId( id );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ selectTemplate && (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tconst id = obj?.id || null;\n\t\t\t\t\t\t\t\tsetTemplateId( id );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ __( 'Create Draft' ) }\n\t\t\t\t\t\t \n\n\t\t\t\t\t\t{ enableScratch && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{ __( 'Start from Scratch', 'lifterlms' ) }\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ __( 'Cancel', 'lifterlms' ) }\n\t\t\t\t\t\t \n\t\t\t\t\t
\n\t\t\t\t \n\t\t\t) }\n\t\t\t\n\t\t\t\t{ buttonLabel }\n\t\t\t \n\t\t>\n\t);\n}\n","import { __ } from '@wordpress/i18n';\n\n/**\n * Retrieves the message based on the selectors present in the modal.\n *\n * @since 6.0.0\n *\n * @param {boolean} selectStudent Whether or not the student selector is present.\n * @param {boolean} selectTemplate Whether or not the template selector is present.\n * @return {string} A message string.\n */\nexport default function( selectStudent, selectTemplate ) {\n\tlet msg = '';\n\tif ( selectStudent && selectTemplate ) {\n\t\tmsg = __( 'Create a new certificate award from the selected template for the selected student.', 'lifterlms' );\n\t} else if ( selectStudent && ! selectTemplate ) {\n\t\tmsg = __( 'Create a new certificate award from this template for the selected student.', 'lifterlms' );\n\t} else if ( ! selectStudent && selectTemplate ) {\n\t\tmsg = __( 'Create a new certificate award from the selected template for this student.', 'lifterlms' );\n\t}\n\treturn msg;\n}\n","// WP deps.\nimport { addQueryArgs } from '@wordpress/url';\n\n// LLMS deps.\nimport { getAdminUrl } from '@lifterlms/utils';\n\n/**\n * Retrieves the redirect URL for the newly created certificate.\n *\n * @since 6.0.0\n *\n * @param {number} post WP_Post ID.\n * @return {string} The edit post URL for awarded certificate draft.\n */\nexport function getRedirectUrl( post ) {\n\treturn addQueryArgs(\n\t\t`${ getAdminUrl() }/post.php`,\n\t\t{\n\t\t\tpost,\n\t\t\taction: 'edit',\n\t\t\tnewAwardMsg: 1,\n\t\t}\n\t);\n}\n\n/**\n * Retrieves the url for the \"Start from Scratch\" button.\n *\n * @since 6.0.0\n *\n * @param {?number} sid WP_User ID of the selected student.\n * @return {string} The URL.\n */\nexport function getScratchUrl( sid = null ) {\n\tconst args = {\n\t\tpost_type: 'llms_my_certificate',\n\t};\n\n\tif ( sid ) {\n\t\targs.sid = sid;\n\t}\n\n\treturn addQueryArgs(\n\t\t`${ getAdminUrl() }/post-new.php`,\n\t\targs,\n\t);\n}\n","import { dispatch, select } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Edits the title of the current certificate post type in the block editor.\n *\n * This utility is used to allow sharing functionality between `llms_certificate` and `llms_my_certificate`\n * post types. Depending on the post type, the certificate title is stored in a different post field.\n *\n * To edit the actual post title of a `llms_certificate` post (not the awarded certificate's title), use\n * `wp.data.dispatch( 'core/editor' ).editPost()` directly.\n *\n * @since 6.0.0\n *\n * @param {string} title The desired certificate title.\n * @param {string} postType The current post type, automatically reads it from the current post if omitted.\n * @return {Promise} Promise that resolves when the title edits have been made to the current post.\n */\nexport function editCertificateTitle( title, postType = null ) {\n\tif ( ! postType ) {\n\t\tconst { getCurrentPostType } = select( editorStore );\n\t\tpostType = getCurrentPostType();\n\t}\n\n\tconst { editPost } = dispatch( editorStore ),\n\t\tedits = {};\n\n\tif ( 'llms_certificate' === postType ) {\n\t\tedits.certificate_title = title;\n\t} else if ( 'llms_my_certificate' === postType ) {\n\t\tedits.title = title;\n\t}\n\n\treturn editPost( edits );\n}\n","export { editCertificateTitle } from './edit-certificate-title';\nexport { default as AwardCertificateButton } from './award-certificate-button';\n","module.exports = window[\"llms\"][\"components\"];","module.exports = window[\"llms\"][\"utils\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"editor\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"url\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// WP deps.\nimport { render } from '@wordpress/element';\nimport { getQueryArg } from '@wordpress/url';\n\n// Internal deps.\nimport { AwardCertificateButton } from './util';\n\nconst WRAPPER_ID = 'llms-award-certificate-wrapper',\n\trenderNodeStyles = {},\n\tbuttonArgs = {},\n\tdefaultBtn = getDefaultButton();\n\n/**\n * Retrieves the DOM Element selector for the default button to be replaced by the component.\n *\n * @since 6.0.0\n *\n * @return {?Element} DOM element for the default button or null if no button found.\n */\nfunction getDefaultButton() {\n\t// Certificates post table page.\n\tlet btn = document.querySelector( '.page-title-action' );\n\tif ( btn ) {\n\t\trenderNodeStyles.top = '-3px';\n\t\trenderNodeStyles.position = 'relative';\n\t}\n\n\t// Student certificates reporting page.\n\tif ( ! btn ) {\n\t\tbtn = document.getElementById( 'llms-new-award-button' );\n\n\t\trenderNodeStyles.marginBottom = '20px';\n\t\trenderNodeStyles.display = 'inline-block';\n\n\t\tbuttonArgs.studentId = parseInt( getQueryArg( window.location, 'student_id' ) );\n\t\tbuttonArgs.selectStudent = false;\n\t}\n\n\t// Reuse the original buttons label.\n\tif ( btn ) {\n\t\tbuttonArgs.buttonLabel = btn.textContent;\n\t}\n\n\treturn btn;\n}\n\n/**\n * Inserts the wrapper element node where the new component button will be rendered.\n *\n * @since 6.0.0\n *\n * @return {boolean} Returns `false` if no default button is found, otherwise returns true.\n */\nfunction insertRenderNode() {\n\tif ( ! defaultBtn ) {\n\t\treturn false;\n\t}\n\n\tconst renderNode = document.createElement( 'span' );\n\trenderNode.id = WRAPPER_ID;\n\n\tObject.entries( renderNodeStyles ).forEach( ( [ rule, style ] ) => {\n\t\trenderNode.style[ rule ] = style;\n\t} );\n\n\tdefaultBtn.style.display = 'none';\n\tdefaultBtn.after( renderNode );\n\n\treturn true;\n}\n\n// Render the component.\nif ( insertRenderNode() ) {\n\trender( , document.getElementById( WRAPPER_ID ) );\n}\n"],"names":["store","coreStore","dispatch","studentId","templateId","saveEntityRecord","author","certificate_template","status","__","Button","Modal","useState","PostSearchControl","UserSearchControl","createAward","getMessage","getRedirectUrl","getScratchUrl","_ref","modalTitle","buttonLabel","isDisabled","enableScratch","selectStudent","selectTemplate","isOpen","setIsOpen","isBusy","setIsBusy","currStudentId","setStudentId","currTemplateId","setTemplateId","closeModal","openModal","isReady","onClick","then","_ref2","id","window","location","createElement","Fragment","title","style","maxWidth","onRequestClose","isClearable","label","selectedValue","onUpdate","obj","postType","placeholder","textAlign","padding","margin","borderTop","marginRight","disabled","variant","href","msg","addQueryArgs","getAdminUrl","post","action","newAwardMsg","sid","arguments","length","undefined","args","post_type","select","editorStore","editCertificateTitle","getCurrentPostType","editPost","edits","certificate_title","default","AwardCertificateButton","render","getQueryArg","WRAPPER_ID","renderNodeStyles","buttonArgs","defaultBtn","getDefaultButton","btn","document","querySelector","top","position","getElementById","marginBottom","display","parseInt","textContent","insertRenderNode","renderNode","Object","entries","forEach","rule","after"],"sourceRoot":""}
\ No newline at end of file
diff --git a/assets/js/llms-admin-certificate-editor.js.map b/assets/js/llms-admin-certificate-editor.js.map
new file mode 100644
index 0000000000..d11c904aae
--- /dev/null
+++ b/assets/js/llms-admin-certificate-editor.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"js/llms-admin-certificate-editor.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;AAA4C;AACwH;AACrI;AACL;;AAE1B;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,4CAAI,IAAI;;AAExB;AACA;AACA;;AAEA,QAAQ,6CAAK;AACb;AACA;;AAEA,IAAI,4CAAI;AACR;;AAEA,SAAS,6CAAK,QAAQ,4CAAQ;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,6CAAK;AACjB;AACA;AACA,gCAAgC,4CAAI;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAqD,4CAAQ;AAC7D;;AAEA;AACA,yBAAyB,+CAAO;AAChC;;AAEA;AACA;AACA;AACA;AACA,4BAA4B,4CAAI;AAChC;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB,4CAAI;AAC7B;AACA,IAAI,mBAAmB,4CAAI;;AAE3B;AACA;;AAEA;AACA,SAAS,+CAAO,SAAS,6CAAK;AAC9B,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yBAAyB,kBAAkB;AAC3C,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gDAAgD,QAAQ;AACxD;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA,4BAA4B,4CAAQ;;AAEpC;AACA;;AAEA,MAAM,KAAqC;AAC3C;AACA;;AAEA;AACA,oFAAoF;AACpF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iEAAiE;;AAEjE,sBAAsB,mBAAmB;AACzC;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA,KAAK;AACL;;AAEA;AACA;AACA,6BAA6B,6CAAS,EAAE,KAAqC;AAC7E;AACA;AACA;AACA,UAAU,2CAA2C,2CAAO;AAC5D;AACA;AACA,iDAAiD;AACjD;AACA;AACA,MAAM,EAAE,CAEF;AACN,qBAAqB,kDAAU;;AAE/B;AACA,aAAa,iDAAS,CAAC,+CAAO;AAC9B;;AAEA;AACA;;AAEA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,0BAA0B;;AAE/D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,sDAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;AClXY;;AAEvC,2+HAA2+H;;AAE3+H,iCAAiC,4DAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;ACd3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;ACRsC;;AAE7D;AACA;AACA;;AAEA;AACA,SAAS,8DAAsB;AAC/B,CAAC;;AAED,iEAAe,oBAAoB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVmD;AAC9C;AACiB;AACV;AACsD;AACnB;AAC9B;AACmD;;AAExG,uBAAuB;;AAEvB,yCAAyC,oDAAa;AACtD;AACA;AACA;AACA;AACA;AACA,oDAAoD,0DAAW;AAC/D;AACA,CAAC;;AAED,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA;AACA,SAAS,iDAAU;AACnB;;AAEA;AACA;AACA,sBAAsB,iDAAU;AAChC;AACA,gBAAgB,iDAAU;AAC1B;AACA,GAAG;AACH;;AAEA,kCAAkC,oDAAa,GAAG;;AAElD,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA,SAAS,iDAAU;AACnB;;AAEA;AACA;AACA;;AAEA,QAAQ,KAAqC;AAC7C,qGAAqG,SAAS,EAAE;AAChH;;AAEA;AACA;;AAEA,MAAM,KAAqC;AAC3C;AACA;;AAEA,SAAS,8EAAQ,GAAG;AACpB;;AAEA,0CAA0C,iEAAW;AACrD,SAAS,iEAAW;AACpB;AACA,GAAG;AACH,CAAC;AACD;AACA,cAAc,iDAAU;;AAExB;AACA;AACA;;AAEA,sBAAsB,oDAAa;AACnC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,gBAAgB,iDAAU;AAC1B,wBAAwB,oDAAa,YAAY,8EAAQ;AACzD;AACA;AACA,KAAK;AACL,KAAK;;;AAGL,+BAA+B,iDAAU;AACzC;AACA,SAAS,0GAAoB;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;;AAEA,wIAAwI;AACxI;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC,oEAAoE;;AAEpE,iCAAiC;;AAEjC,6DAA6D;AAC7D;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;;AAEA,MAAM,KAAqC;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE,8DAAc;AAChB,cAAc,sHAAwC;AACtD,WAAW,4DAAY;AACvB,GAAG;;AAEH;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,mEAAmB;AACnC,IAAI;AACJ;AACA;;AAEA,mBAAmB,mEAAe,8BAA8B,iDAAU;;AAE1E,MAAM,KAAqC;AAC3C;;AAEA;AACA,mBAAmB,mEAAe,4CAA4C;AAC9E;AACA;;AAEA;AACA;;AAEA;AACA,qFAAqF,MAAqC;AAC1H;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,oDAAa,CAAC,2CAAQ,qBAAqB,oDAAa;AAC9E;AACA;AACA;AACA,GAAG,gBAAgB,oDAAa;AAChC,CAAC;;AAED,IAAI,IAAqC;AACzC;AACA;;AAEsN;;;;;;;;;;;;;;;;;;ACzO/K;AACE;AACF;;AAEvC,gRAAgR,uCAAuC;AACvT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sCAAsC,4DAAO;AAC7C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA,MAAM,yDAAQ;AACd;AACA;;AAEA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD;;AAEhD,cAAc,KAAqC;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS,IAAqC;AACxD,qPAAqP,YAAY,kIAAkI,aAAa;AAChZ;;AAEA;AACA;;AAEA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,gBAAgB;AACpC,yEAAyE;AACzE;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA,6BAA6B,0BAA0B;AACvD,UAAU;AACV,sFAAsF;AACtF;AACA,QAAQ;AACR,gDAAgD,aAAoB;AACpE;AACA;;AAEA;AACA,2BAA2B,mBAAmB;AAC9C;AACA,8FAA8F;AAC9F;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;;AAEA;AACA;AACA,oBAAoB,KAAqC;AACzD;AACA;;AAEA,mCAAmC,qBAAqB;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mCAAmC,GAAG,QAAQ;AAC9C;;AAEA,IAAI,IAAqC;AACzC,qEAAqE;AACrE,EAAE;AACF;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ,QAAQ,KAAqC;AAC7C;AACA;;AAEA;AACA,IAAI;;;AAGJ,kBAAkB,iBAAiB;AACnC;;AAEA;AACA,UAAU,KAAqC;AAC/C;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL,IAAI;;;AAGJ;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA,aAAa,yDAAU;;AAEvB,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAE2B;;;;;;;;;;;;;;;AC3T3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;ACtDvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;ACjD5B;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,SAAS,aAAa;;AAEtB,kCAAkC,mCAAmC;;AAErE,0BAA0B,wBAAwB;AAClD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;;;AAGA,kBAAkB,iCAAiC;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;;AAEA,mDAAmD,aAAoB;AACvE;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,IAAqC;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR,YAAY,KAAqC,yHAAyH;AAC1K;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,QAAQ,IAAqC;AAC7C;AACA;AACA;;AAEA;AACA,CAAC;;AAEqB;;;;;;;;;;;;;;;;;;;;;;;ACzJoC;AACE;AACX;AACe;AACmB;AAC9B;AACmD;;AAExG,+BAA+B,8DAAW;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,gRAAgR,uCAAuC;;AAEvT;AACA;AACA;AACA;AACA,EAAE,8DAAc;AAChB,cAAc,sHAAwC;AACtD,WAAW,4DAAY;AACvB,GAAG;;AAEH;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA,MAAM;AACN,UAAU,KAAqC;AAC/C;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,SAAS;AACtB,YAAY,KAAqC;AACjD;AACA;;AAEA;AACA;AACA,MAAM;;;AAGN,iBAAiB,iDAAgB;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B,iDAAU,CAAC,6CAAY;AACnD;;AAEA;AACA,oBAAoB,mEAAmB;AACvC,QAAQ;AACR;AACA;;AAEA,uBAAuB,mEAAe;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,oDAAa,CAAC,2CAAQ,qBAAqB,oDAAa;AAClF;AACA;AACA;AACA,OAAO,gBAAgB,oDAAa;AACpC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,aAAoB;AACjE;AACA,UAAU;;;AAGV;AACA;AACA,KAAK;;AAEL;AACA,mCAAmC,8EAAQ,GAAG;AAC9C;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;;;;;;AChLY;AACzB;AACiB;AAC2C;AACnD;AACA;AACI;AAC0B;;AAEtD;AACA;;AAEA,gBAAgB,0FAAiB;AACjC;AACA;AACA;AACA,CAAC;;AAED,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;;;AClBM;AACS;;AAExC;AACA;AACA;;AAEA,yBAAyB,kCAAK,8BAA8B,kCAAK;AACjE;AACA,iEAAiE,kDAAe;;AAEU;;;;;;;;;;;;;;;;;ACX1F;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,MAAM;AACN;AACA;;AAE6D;;;;;;;;;;;;;;;AC3C7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfU;AACQ;AACA;AACqB;AACT;AAEG;AACN;AACQ;AACG;AACjB;AACkC;;AAElF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASc,2BAA2BA,CAAAC,IAAA,EAA+F;EAAA,IAA7F;IAAEC,IAAI;IAAEC,KAAK;IAAEC,YAAY;IAAEC,UAAU;IAAEC,MAAM;IAAEC,OAAO;IAAEC,WAAW;IAAEC,IAAI;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAAV,IAAA;EAC/H,OAECW,iEAAA,CAACvB,4EAA0B;IAC1BwB,SAAS,EAAC,+BAA+B;IACzCC,IAAI,EAAC,+BAA+B;IACpCX,KAAK,EAAGjB,mDAAE,CAAE,UAAU,EAAE,WAAY,CAAG;IACvC6B,MAAM,EAAG;EAAM,GAGfH,iEAAA,CAACb,yDAAiB,QACjBa,iEAAA,CAACf,8DAAY;IAAQM;EAAK,CAAM,CAAC,EACjCS,iEAAA,WAAK,CACa,CAAC,EACpBA,iEAAA,CAAChB,6DAAW;IAAQa,IAAI;IAAEE,KAAK;IAAEL,MAAM;IAAEI;EAAI,CAAM,CAAC,EACpDE,iEAAA,WAAK,CAAC,EACNA,iEAAA,CAAClB,mEAAkB;IAAQc;EAAW,CAAM,CAAC,EAC7CI,iEAAA,WAAK,CAAC,EACNA,iEAAA,CAACnB,+DAAc;IAAQc,OAAO;IAAEG;EAAI,CAAM,CAAC,EAC3CE,iEAAA,WAAK,CAAC,EACNA,iEAAA,CAACpB,kEAAiB;IAAQa;EAAU,CAAM,CAAC,EACzC,kBAAkB,KAAKH,IAAI,IAC5BU,iEAAA,CAAAI,wDAAA,QACCJ,iEAAA,WAAK,CAAC,EACNA,iEAAA,CAACjB,qEAAmB;IAAQS;EAAY,CAAM,CAC7C,CAGwB,CAAC;AAG/B;AAEA,MAAMa,eAAe,GAAG7B,2DAAU,CAAI8B,MAAM,IAAM;EACjD,MAAM;IAAEC;EAAuB,CAAC,GAAGD,MAAM,CAAE3B,oDAAY,CAAC;EAExD,OAAO;IACNW,IAAI,EAAEiB,sBAAsB,CAAE,MAAO,CAAC;IACtChB,KAAK,EAAEgB,sBAAsB,CAAE,mBAAoB,CAAC;IACpDf,YAAY,EAAEe,sBAAsB,CAAE,2BAA4B,CAAC;IACnEd,UAAU,EAAEc,sBAAsB,CAAE,wBAAyB,CAAC;IAC9Db,MAAM,EAAEa,sBAAsB,CAAE,oBAAqB,CAAC;IACtDZ,OAAO,EAAEY,sBAAsB,CAAE,qBAAsB,CAAC;IACxDX,WAAW,EAAEW,sBAAsB,CAAE,yBAA0B,CAAC;IAChEV,IAAI,EAAEU,sBAAsB,CAAE,kBAAmB,CAAC;IAClDT,IAAI,EAAES,sBAAsB,CAAE,kBAAmB,CAAC;IAClDR,KAAK,EAAEQ,sBAAsB,CAAE,mBAAoB;EACpD,CAAC;AACF,CAAE,CAAC;AAEH,iEAAehC,2DAAO,CAAE,CAAE8B,eAAe,CAAG,CAAC,CAC5CjB,2BACD,CAAC;;;;;;;;;;;;;;;;;;ACnF0C;AACc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASqB,eAAeA,CAAEC,GAAG,EAAEC,GAAG,EAAG;EACnD,MAAM;MAAEC;IAAS,CAAC,GAAGJ,yDAAQ,CAAE7B,oDAAY,CAAC;IAC3CkC,KAAK,GAAG,CAAC,CAAC;EACXA,KAAK,CAAG,eAAeH,GAAK,EAAC,CAAE,GAAGC,GAAG;EACrCC,QAAQ,CAAEC,KAAM,CAAC;AAClB;;;;;;;;;;;;;;;;;;;;;;;ACjB0D;AACI;AACf;AACH;AACa;AACW;;AAEpE;AACA;AACA;AACA;AACA;AACA,IAAIM,QAAQ,GAAG,KAAK;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CAAA,EAAG;EAC3B,MAAM;MAAEb;IAAuB,CAAC,GAAGD,uDAAM,CAAE3B,oDAAY,CAAC;IACvD;MAAE0C;IAAS,CAAC,GAAGf,uDAAM,CAAEQ,uDAAU,CAAC;IAClCQ,OAAO,GAAGf,sBAAsB,CAAE,gBAAiB,CAAC;EAErD,OAAOe,OAAO,GAAGD,QAAQ,CAAEC,OAAQ,CAAC,GAAG,CAAC,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,kBAAkBA,CAAA,EAAG;EAC7B,MAAMC,QAAQ,GAAGJ,gBAAgB,CAAC,CAAC;IAClC;MAAEK,aAAa,EAAEC;IAAW,CAAC,GAAGC,MAAM,CAACC,IAAI,CAACC,YAAY;;EAEzD;EACA,IAAKC,SAAS,KAAKN,QAAQ,EAAG;IAC7B,OAAO,IAAI;EACZ;EAEA,MAAM;IAAEO,UAAU,EAAEC;EAAI,CAAC,GAAGR,QAAQ;EAEpC,OAAOQ,GAAG,GAAGA,GAAG,GAAGN,UAAU;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASO,qBAAqBA,CAAA,EAAG;EAChC,MAAMC,KAAK,GAAGC,QAAQ,CAACnC,aAAa,CAAE,OAAQ,CAAC;EAC/CkC,KAAK,CAAC5C,IAAI,GAAG,UAAU;EACvB;EACA4C,KAAK,CAACE,WAAW,CAAED,QAAQ,CAACE,cAAc,CAAE,kEAAmE,CAAE,CAAC;EAClH;EACAH,KAAK,CAACE,WAAW,CAAED,QAAQ,CAACE,cAAc,CAAE,0GAA2G,CAAE,CAAC;EAC1JF,QAAQ,CAACG,IAAI,CAACF,WAAW,CAAEF,KAAM,CAAC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASK,mBAAmBA,CAAA,EAAG;EAC9B,MAAM;IAAEC;EAAiB,CAAC,GAAGlC,uDAAM,CAAEY,0DAAiB,CAAC;;EAEvD;EACA,MAAM;IAAEuB;EAAW,CAAC,GAAGD,gBAAgB,CAAC,CAAC,CAACE,IAAI,CAAErD,IAAA;IAAA,IAAE;MAAEa;IAAK,CAAC,GAAAb,IAAA;IAAA,OAAM,wBAAwB,KAAKa,IAAI;EAAA,CAAC,CAAC;EACnG,OAAOuC,UAAU;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,mBAAmBA,CAAEC,OAAO,EAAEC,aAAa,EAAG;EACtD,MAAM;MAAEC;IAAa,CAAC,GAAGxC,uDAAM,CAAE3B,oDAAY,CAAC;IAC7CoE,QAAQ,GAAGD,YAAY,CAAC,CAAC;;EAE1B;EACA,IAAKC,QAAQ,EAAG;IACf5B,QAAQ,GAAG,IAAI;EAChB,CAAC,MAAM,IAAK,CAAE4B,QAAQ,IAAI5B,QAAQ,EAAG;IACpCA,QAAQ,GAAG,KAAK;IAEhB,MAAM6B,KAAK,GAAG,gEAAgE;MAC7EC,WAAW,GAAGL,OAAO,CAACM,KAAK,CAAEF,KAAM,CAAC;MACpCG,WAAW,GAAGN,aAAa,CAACK,KAAK,CAAEF,KAAM,CAAC;IAE3C,IAAKG,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEC,MAAM,IAAI,EAAEH,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEG,MAAM,GAAG;MACnDC,cAAc,CAAET,OAAQ,CAAC;IAC1B;EACD;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASS,cAAcA,CAAET,OAAO,EAAG;EAClC,MAAM;MAAEU;IAAc,CAAC,GAAG9C,yDAAQ,CAAEU,0DAAiB,CAAC;IACrD;MAAEqC;IAAS,CAAC,GAAG/C,yDAAQ,CAAE7B,oDAAY,CAAC;IACtC;MAAE6E;IAAU,CAAC,GAAGlD,uDAAM,CAAEY,0DAAiB,CAAC;EAE3CoC,aAAa,CACZE,SAAS,CAAC,CAAC,CAACC,GAAG,CAAEC,KAAA;IAAA,IAAE;MAAEC;IAAS,CAAC,GAAAD,KAAA;IAAA,OAAMC,QAAQ;EAAA,CAAC,CAAC,EAC/C3C,6DAAU,CAAE;IAAE4C,IAAI,EAAEhB;EAAQ,CAAE,CAC/B,CAAC;EAEDW,QAAQ,CAAC,CAAC;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASM,SAASA,CAAA,EAAG;EACpB,MAAM;MAAEC,uBAAuB;MAAEvD,sBAAsB;MAAEwD;IAAmB,CAAC,GAAGzD,uDAAM,CAAE3B,oDAAY,CAAC;IACpGqF,EAAE,GAAGzD,sBAAsB,CAAE,wBAAyB,CAAC;IACvDZ,OAAO,GAAGY,sBAAsB,CAAE,qBAAsB,CAAC;IACzDR,KAAK,GAAGQ,sBAAsB,CAAE,mBAAoB,CAAC;IACrDb,MAAM,GAAGa,sBAAsB,CAAE,oBAAqB,CAAC;IACvDT,IAAI,GAAGS,sBAAsB,CAAE,kBAAmB,CAAC;IACnDX,WAAW,GAAGW,sBAAsB,CAAE,yBAA0B,CAAC;IACjEqC,OAAO,GAAGkB,uBAAuB,CAAE,SAAU,CAAC;IAC9CjB,aAAa,GAAGtC,sBAAsB,CAAE,SAAU,CAAC;EAEpD,MAAM0D,IAAI,GAAG9B,QAAQ,CAAC+B,aAAa,CAAE,oDAAqD,CAAC;EAC3F,IAAKD,IAAI,EAAG;IACX,MAAME,YAAY,GAAG,UAAU,KAAKvE,WAAW,GAAGG,KAAK,GAAGL,MAAM;MAC/D0E,aAAa,GAAG,UAAU,KAAKxE,WAAW,GAAGF,MAAM,GAAGK,KAAK;MAC3DsE,OAAO,GAAG1E,OAAO,CAAC8D,GAAG,CAAIa,MAAM,IAAO,GAAGA,MAAQ,GAAG,CAAC,CAACC,IAAI,CAAE,GAAI,CAAC;IAElEN,IAAI,CAAC/B,KAAK,CAACsC,eAAe,GAAI,SAASjD,kBAAkB,CAAC,CAAG,KAAI;IACjE0C,IAAI,CAAC/B,KAAK,CAACuC,cAAc,GAAI,GAAGN,YAAc,GAAGrE,IAAM,IAAIsE,aAAe,GAAGtE,IAAM,EAAC;IACpFmE,IAAI,CAAC/B,KAAK,CAACwC,gBAAgB,GAAG,WAAW;IACzCT,IAAI,CAAC/B,KAAK,CAACyC,UAAU,GAAG,MAAM;IAC9BV,IAAI,CAAC/B,KAAK,CAAC0C,WAAW,GAAG,MAAM;IAC/BX,IAAI,CAAC/B,KAAK,CAACmC,OAAO,GAAGA,OAAO;IAC5BJ,IAAI,CAAC/B,KAAK,CAACnC,KAAK,GAAI,GAAGoE,YAAc,GAAGrE,IAAM,EAAC;IAC/CmE,IAAI,CAAC/B,KAAK,CAAC2C,SAAS,GAAI,GAAGT,aAAe,GAAGtE,IAAM,EAAC;IACpDmE,IAAI,CAAC/B,KAAK,CAAC4C,SAAS,GAAG,YAAY;EACpC;EAEA,MAAMC,MAAM,GAAG5C,QAAQ,CAAC+B,aAAa,CAAE,wBAAyB,CAAC;EACjE,IAAKa,MAAM,EAAG;IACbA,MAAM,CAAC7C,KAAK,CAAC8C,eAAe,GAAGhB,EAAE;EAClC;EAEA,IAAK,qBAAqB,KAAKD,kBAAkB,CAAC,CAAC,EAAG;IACrDpB,mBAAmB,CAAEC,OAAO,EAAEC,aAAc,CAAC;;IAE7C;IACA,MAAMtD,KAAK,GAAG4C,QAAQ,CAAC+B,aAAa,CAAE,8CAA+C,CAAC;IACtF,IAAK3E,KAAK,EAAG;MACZA,KAAK,CAAC2C,KAAK,CAAC+C,OAAO,GAAG1C,mBAAmB,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS;IACjE;EACD;AACD;AAEAtB,2DAAQ,CAAE,MAAM;EACfgB,qBAAqB,CAAC,CAAC;EAEvBlB,0DAAS,CAAE8C,SAAU,CAAC;AACvB,CAAE,CAAC;;;;;;;;;;;;;;;;;;;AClN0C;AACR;AACe;AACK;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMsB,WAAW,GAAGpE,0DAAS,CAAE,MAAM;EACpC,MAAM;MAAEgD;IAAmB,CAAC,GAAGzD,uDAAM,CAAE3B,oDAAY,CAAC;IACnDyG,QAAQ,GAAGrB,kBAAkB,CAAC,CAAC;EAEhC,IAAK,IAAI,KAAKqB,QAAQ,EAAG;IACxBC,aAAa,CAAE,qBAAqB,KAAKD,QAAS,CAAC;EACpD;AACD,CAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,aAAaA,CAAEC,UAAU,EAAG;EACpCH,WAAW,CAAC,CAAC;EAEb,IAAK,CAAEG,UAAU,EAAG;IACnB;EACD;EAEAJ,2DAAS,CAAE,sBAAsB,EAAE,mBAAmB,EAAE,UAAUK,IAAI,EAAG;IACxE,IAAK,eAAe,KAAKA,IAAI,EAAG;MAC/B,OAAOjH,mDAAE,CAAE,oBAAoB,EAAE,WAAY,CAAC;IAC/C;IAEA,OAAOiH,IAAI;EACZ,CAAE,CAAC;AACJ;;;;;;;;;;;;;;;;;;;;;;AC3CA;AACoD;;AAEpD;AACkB;AACF;AACO;AACJ;AACM;AACN;AAC2C;AACH;AACL;;AAEtD;AACA;AACA;AACA;AACA;AACAC,kEAAc,CACb,+BAA+B,EAC/B;EACCG,MAAM,EAAEvG,0DAA2B;EACnCwG,IAAI,EAAE;AACP,CACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAJ,kEAAc,CACb,uBAAuB,EACvB;EACCG,MAAM,EAAED,sDAAuBA;AAChC,CACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAF,kEAAc,CACb,mCAAmC,EACnC;EACCG,MAAM,EAAEF,yDAAyBA;AAClC,CACD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACjDD;AACqC;AAC2B;AACV;AACY;AACpB;AAEK;AACA;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASa,iBAAiBA,CAAAjH,IAAA,EAAoC;EAAA,IAAlC;IAAEkH,UAAU;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAApH,IAAA;EAC1D,MAAM;IAAEqH,WAAW,EAAEzC;EAAK,CAAC,GAAGtC,MAAM,CAACC,IAAI,CAACC,YAAY;EAEtD,OAAO8E,MAAM,CAACC,OAAO,CAAE3C,IAAK,CAAC,CAACR,GAAG,CAAE,CAAAC,KAAA,EAAkBmD,KAAK,KAAM;IAAA,IAA3B,CAAEC,IAAI,EAAE5G,IAAI,CAAE,GAAAwD,KAAA;IAClD,OACC1D,iEAAA;MAAIU,GAAG,EAAGmG;IAAO,GAChB7G,iEAAA;MAAIkC,KAAK,EAAG;QAAE6E,SAAS,EAAE;MAAO;IAAG,GAAG7G,IAAU,CAAC,EACjDF,iEAAA,aACCA,iEAAA,CAACmG,6DAAU;MACVa,UAAU,EAAGF,IAAM;MACnBG,QAAQ,EAAGH,IAAM;MACjBI,MAAM,EAAGX,UAAY;MACrBY,MAAM;IAAA,CACN,CACE,CAAC,EACLnH,iEAAA,aACCA,iEAAA,CAAC8F,yDAAM;MACNsB,WAAW;MACXC,OAAO;MACPC,OAAO,EAAGA,CAAA,KAAM;QACff,UAAU,CAAC,CAAC;QACZC,QAAQ,CAAEP,4DAAM,CAAEQ,KAAK,EAAEK,IAAK,CAAE,CAAC;MAClC;IAAG,GAEDxI,mDAAE,CAAE,QAAQ,EAAE,WAAY,CACrB,CACL,CACD,CAAC;EAEP,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASiJ,IAAIA,CAAEC,KAAK,EAAG;EACtB,MAAM,CAAEC,MAAM,EAAEC,OAAO,CAAE,GAAGxB,4DAAQ,CAAE,KAAM,CAAC;IAC5CyB,SAAS,GAAGA,CAAA,KAAMD,OAAO,CAAE,IAAK,CAAC;IACjCnB,UAAU,GAAGA,CAAA,KAAMmB,OAAO,CAAE,KAAM,CAAC;IACnC;MAAEjB,KAAK;MAAED;IAAS,CAAC,GAAGgB,KAAK;EAE5B,OACCxH,iEAAA,CAAAI,wDAAA,QACCJ,iEAAA,CAAC6F,0EAAqB;IACrBD,IAAI,EAAG5F,iEAAA,CAACoG,kDAAI;MAACR,IAAI,EAAGS,uDAASA;IAAE,CAAE,CAAG;IACpC9G,KAAK,EAAGjB,mDAAE,CAAE,aAAa,EAAE,WAAY,CAAG;IAC1CgJ,OAAO,EAAGK;EAAW,CACrB,CAAC,EAEAF,MAAM,IACPzH,iEAAA,CAAC+F,wDAAK;IACL9F,SAAS,EAAC,oCAAoC;IAC9CV,KAAK,EAAGjB,mDAAE,CACT,mCAAmC,EACnC,WACD,CAAG;IACHsJ,cAAc,EAAGrB;EAAY,GAE7BvG,iEAAA;IAAKC,SAAS,EAAC;EAA0C,GACxDD,iEAAA;IAAOC,SAAS,EAAC,kBAAkB;IAACiC,KAAK,EAAG;MAAEnC,KAAK,EAAE;IAAQ;EAAG,GAC/DC,iEAAA,gBACCA,iEAAA,aACCA,iEAAA;IAAIkC,KAAK,EAAG;MAAE6E,SAAS,EAAE;IAAO;EAAG,GAAGzI,mDAAE,CAAE,MAAM,EAAE,WAAY,CAAO,CAAC,EACtE0B,iEAAA,aAAM1B,mDAAE,CAAE,YAAY,EAAE,WAAY,CAAO,CAAC,EAC5C0B,iEAAA,aAAM1B,mDAAE,CAAE,QAAQ,EAAE,WAAY,CAAO,CACpC,CACE,CAAC,EACR0B,iEAAA,gBACCA,iEAAA,CAACsG,iBAAiB;IAAQC,UAAU;IAAEC,QAAQ;IAAEC;EAAK,CAAM,CACrD,CACD,CACH,CACC,CAEP,CAAC;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACAT,wEAAkB,CAAE,8BAA8B,EAAE;EACnDzG,KAAK,EAAEjB,mDAAE,CAAE,mCAAmC,EAAE,WAAY,CAAC;EAC7DuJ,OAAO,EAAE,MAAM;EACf5H,SAAS,EAAE,mBAAmB;EAC9B6H,IAAI,EAAEP;AACP,CAAE,CAAC;;;;;;;;;;;;;;;;;;;ACnH2D;AACJ;AACD;AACW;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMpC,WAAW,GAAGpE,0DAAS,CAAE,MAAM;EACpC,MAAMiH,MAAM,GAAG,IAAIC,eAAe,CAAEtG,MAAM,CAACuG,QAAQ,CAACF,MAAO,CAAC;IAC3DG,WAAW,GAAG,CAAC,KAAKC,QAAQ,CAAEJ,MAAM,CAACK,GAAG,CAAE,iCAAkC,CAAE,CAAC;EAEhF,IAAK,CAAEF,WAAW,EAAG;IACpB,OAAO9C,aAAa,CAAE,KAAM,CAAC;EAC9B;EAEA,MAAMiD,MAAM,GAAGC,YAAY,CAAC,CAAC;EAE7B,IAAK,CAAC,KAAKD,MAAM,CAAClF,MAAM,EAAG;IAC1BiC,aAAa,CAAE,IAAK,CAAC;EACtB;AACD,CAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,aAAaA,CAAEmD,aAAa,EAAG;EACvCrD,WAAW,CAAC,CAAC;EAEb,IAAK,CAAEqD,aAAa,EAAG;IACtB;EACD;EAEAC,mBAAmB,CAAC,CAAC;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASF,YAAYA,CAAA,EAAG;EACvB,MAAM;IAAE/E;EAAU,CAAC,GAAGlD,uDAAM,CAAEY,0DAAiB,CAAC;EAChD,OAAOsC,SAAS,CAAC,CAAC;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASiF,mBAAmBA,CAAA,EAAG;EAC9B,MAAMC,QAAQ,GAAGH,YAAY,CAAC,CAAC,CAACI,MAAM,CAAEtJ,IAAA;IAAA,IAAE;MAAEa;IAAK,CAAC,GAAAb,IAAA;IAAA,OAAM,eAAe,KAAKa,IAAI;EAAA,CAAC,CAAC;EAElF,IAAK,CAAC,KAAKwI,QAAQ,CAACtF,MAAM,EAAG;IAC5B;EACD;EAEA,MAAM;MAAEE;IAAc,CAAC,GAAG9C,yDAAQ,CAAEU,0DAAiB,CAAC;IACrD;MAAEqC;IAAS,CAAC,GAAG/C,yDAAQ,CAAE7B,oDAAY,CAAC;EAEvC+J,QAAQ,CAACE,OAAO,CAAIC,KAAK,IAAM;IAC9BvF,aAAa,CACZuF,KAAK,CAAClF,QAAQ,EACd3C,6DAAU,CAAE;MAAE4C,IAAI,EAAEmE,4DAAS,CAAEc,KAAM;IAAE,CAAE,CAC1C,CAAC;EACF,CAAE,CAAC;EAEHtF,QAAQ,CAAC,CAAC;AACX;;;;;;;;;;;;;ACvFA;AAC6C;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASuF,kBAAkBA,CAAEC,QAAQ,EAAEC,SAAS,EAAG;EAClD,IAAK,cAAc,KAAKA,SAAS,EAAG;IACnC;IACAD,QAAQ,CAACE,UAAU,GAAGF,QAAQ,CAACE,UAAU,CAACxF,GAAG,CAAIyF,SAAS,IAAM;MAC/D,MAAM;QAAEC,UAAU,GAAG,CAAC;MAAE,CAAC,GAAGD,SAAS;MACrCA,SAAS,CAACC,UAAU,GAAG;QACtB,GAAGA,UAAU;QACbC,iBAAiB,EAAE;MACpB,CAAC;MACD,OAAOF,SAAS;IACjB,CAAE,CAAC;EACJ;EAEA,OAAOH,QAAQ;AAChB;AAEA7D,2DAAS,CACR,0BAA0B,EAC1B,uCAAuC,EACvC4D,kBACD,CAAC;;;;;;;;;;;;;;;;;;;;;AC1CoC;AACM;AACC;AACc;AACb;AAE7C7H,2DAAQ,CAAE,MAAM;EACf,IAAK,GAAG,KAAKqI,2DAAW,CAAE3H,MAAM,CAACuG,QAAQ,CAACqB,IAAI,EAAE,aAAc,CAAC,EAAG;IACjE;EACD;EAEA,MAAM;IAAEC;EAAoB,CAAC,GAAGhJ,yDAAQ,CAAE6I,qDAAY,CAAC;EAEvDG,mBAAmB,CAAElL,mDAAE,CAAE,oDAAoD,EAAE,WAAY,CAAE,CAAC;AAC/F,CAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACdkD;AACa;AACpB;AACT;AAEa;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASsL,UAAUA,CAAA,EAAG;EACrB,IAAIC,OAAO,GAAGJ,mEAAU,CAAE,eAAgB,CAAC;;EAE3C;EACA,IAAK,CAAEI,OAAO,CAACzG,MAAM,EAAG;IACvByG,OAAO,GAAGlI,MAAM,CAACC,IAAI,CAACC,YAAY,CAACiI,MAAM;EAC1C;EAEA,OAAOD,OAAO,CAACpG,GAAG,CAAIsG,IAAI,IAAM;IAC/B,MAAM;MAAEC;IAAM,CAAC,GAAGD,IAAI;IACtB,OAAO;MACN,GAAGA,IAAI;MACPC,KAAK,EAAEA,KAAK,CAACC,UAAU,CAAE,GAAI,CAAC,GAAGD,KAAK,CAACE,WAAW,CAAC,CAAC,GAAGF;IACxD,CAAC;EACF,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASpL,iBAAiBA,CAAAS,IAAA,EAAmB;EAAA,IAAjB;IAAEI;EAAW,CAAC,GAAAJ,IAAA;EACxD,MAAM,CAAE2K,KAAK,EAAEG,QAAQ,CAAE,GAAGjE,4DAAQ,CAAEzG,UAAW,CAAC;EAClD,OACCO,iEAAA,CAAC0J,8DAAW;IACXU,KAAK,EAAG9L,mDAAE,CAAE,kBAAkB,EAAE,WAAY,CAAG;IAC/C+L,EAAE,EAAC;EAA4C,GAE/CrK,iEAAA,CAAC2J,+DAAY;IACZG,MAAM,EAAGF,UAAU,CAAC,CAAG;IACvBpD,QAAQ,EAAK7F,GAAG,IAAM;MACrBwJ,QAAQ,CAAExJ,GAAI,CAAC;MACfF,6DAAe,CAAE,YAAY,EAAEE,GAAI,CAAC;IACrC,CAAG;IACH8F,KAAK,EAAGuD,KAAO;IACfM,SAAS,EAAG;EAAO,CACnB,CACW,CAAC;AAEhB;;;;;;;;;;;;;;;;;;;;;;;AClEA;AACqC;;AAErC;AACiE;AACnB;AACT;;AAErC;AACkD;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,OAAOA,CAAE5D,KAAK,EAAG;EACzB,MAAM6D,IAAI,GAAG,CACZpM,mDAAE,CAAE,KAAK,EAAE,WAAY,CAAC,EACxBA,mDAAE,CAAE,OAAO,EAAE,WAAY,CAAC,EAC1BA,mDAAE,CAAE,QAAQ,EAAE,WAAY,CAAC,EAC3BA,mDAAE,CAAE,MAAM,EAAE,WAAY,CAAC,CACzB;EAED,OAAOoM,IAAI,CAAE7D,KAAK,CAAE;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM8D,iBAAiB,GAAGJ,2DAAM,CAAEC,8DAAY,CAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,aAAaA,CAAAvL,IAAA,EAAmC;EAAA,IAAjC;IAAEiF,MAAM;IAAEuC,KAAK;IAAEgE;EAAY,CAAC,GAAAxL,IAAA;EACrD,MAAM,CAAEyL,UAAU,EAAEC,SAAS,CAAE,GAAG7E,4DAAQ,CAAE5B,MAAO,CAAC;IACnD0G,QAAQ,GAAG,CAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAE,CAAEnE,KAAK,CAAE;EAEzD,OACC7G,iEAAA;IAAKkC,KAAK,EAAG;MAAE+I,IAAI,EAAE;IAAE;EAAG,GACzBjL,iEAAA,CAAC2K,iBAAiB;IACjBN,EAAE,EAAI,qCAAqCW,QAAU,EAAG;IACxDvE,KAAK,EAAGqE,UAAY;IACpBxL,IAAI,EAAC,QAAQ;IACbkH,QAAQ,EAAK7F,GAAG,IAAM;MACrBkK,WAAW,CAAElK,GAAG,EAAEkG,KAAK,EAAEkE,SAAU,CAAC;IACrC;EAAG,CACH,CAAC,EACF/K,iEAAA;IAAIkC,KAAK,EAAG;MAAE+C,OAAO,EAAE,OAAO;MAAEN,UAAU,EAAE,KAAK;MAAEuG,SAAS,EAAE;IAAO;EAAG,GAAGT,OAAO,CAAE5D,KAAM,CAAO,CAC7F,CAAC;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAShI,cAAcA,CAAA6E,KAAA,EAAgB;EAAA,IAAd;IAAE/D;EAAQ,CAAC,GAAA+D,KAAA;EAClD,MAAMmH,WAAW,GAAGA,CAAElK,GAAG,EAAEkG,KAAK,EAAEsE,QAAQ,KAAM;IAC/C,MAAMC,UAAU,GAAG,CAAE,GAAGzL,OAAO,CAAE;IACjCyL,UAAU,CAAEvE,KAAK,CAAE,GAAGlG,GAAG;IAEzBwK,QAAQ,CAAExK,GAAI,CAAC;IACfF,6DAAe,CAAE,SAAS,EAAE2K,UAAW,CAAC;EACzC,CAAC;EAED,OACCpL,iEAAA,CAAC0J,8DAAW;IACXU,KAAK,EAAG9L,mDAAE,CAAE,eAAe,EAAE,WAAY,CAAG;IAC5C+L,EAAE,EAAC;EAAkC,GAErCrK,iEAAA;IAAKkC,KAAK,EAAG;MAAE+C,OAAO,EAAE;IAAO;EAAG,GAC/BtF,OAAO,CAAC8D,GAAG,CAAE,CAAEa,MAAM,EAAEuC,KAAK,KAAQ7G,iEAAA,CAAC4K,aAAa;IAAClK,GAAG,EAAGmG,KAAO;IAAQvC,MAAM;IAAEuC,KAAK;IAAEgE;EAAW,CAAM,CAAI,CAC1G,CACO,CAAC;AAEhB;;;;;;;;;;;;;;;;;;;;;;AClHqC;AAEsB;AAET;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS/L,kBAAkBA,CAAAO,IAAA,EAAoB;EAAA,IAAlB;IAAEO;EAAY,CAAC,GAAAP,IAAA;EAC1D,MAAM;MAAEiM;IAAa,CAAC,GAAG3J,MAAM,CAACC,IAAI,CAACC,YAAY;IAChD0J,OAAO,GAAG5E,MAAM,CAACC,OAAO,CAAE0E,YAAa,CAAC,CAAC7H,GAAG,CAAEC,KAAA;MAAA,IAAE,CAAE+C,KAAK,EAAE2D,KAAK,CAAE,GAAA1G,KAAA;MAAA,OAAQ;QAAE+C,KAAK;QAAE2D;MAAM,CAAC;IAAA,CAAG,CAAC;EAE7F,OACCpK,iEAAA,CAACqL,qEAAkB;IAClBhB,EAAE,EAAC,sCAAsC;IACzCD,KAAK,EAAG9L,mDAAE,CAAE,aAAa,EAAE,WAAY,CAAG;IAC1CkN,QAAQ,EAAG5L,WAAa;IACxB2L,OAAO,EAAGA,OAAS;IACnBjE,OAAO,EAAK3G,GAAG,IAAMF,6DAAe,CAAE,aAAa,EAAEE,GAAI;EAAG,CAC5D,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;AC5BqC;AACe;AACN;AAEI;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS5B,mBAAmBA,CAAAM,IAAA,EAAqB;EAAA,IAAnB;IAAEG;EAAa,CAAC,GAAAH,IAAA;EAC5D,MAAM,CAAEoM,MAAM,EAAEC,KAAK,CAAE,GAAGxF,4DAAQ,CAAE1G,YAAa,CAAC;EAElD,IAAI;IAAEmM;EAAgB,CAAC,GAAGhK,MAAM,CAACC,IAAI,CAACC,YAAY;EAElD,IAAK,CAAE8J,eAAe,EAAG;IACxBA,eAAe,GAAGnM,YAAY;IAC9BmC,MAAM,CAACC,IAAI,CAACC,YAAY,CAAC8J,eAAe,GAAGA,eAAe;EAC3D;EAEA,OACC3L,iEAAA,CAACwK,8DAAW;IACXH,EAAE,EAAC,gCAAgC;IACnCD,KAAK,EAAG9L,mDAAE,CAAE,oBAAoB,EAAE,WAAY,CAAG;IACjDmI,KAAK,EAAGgF,MAAQ;IAChBnM,IAAI,EAAC,QAAQ;IACbsM,IAAI,EAAC,GAAG;IACRC,GAAG,EAAGF,eAAiB;IACvBnF,QAAQ,EAAK7F,GAAG,IAAM;MACrB+K,KAAK,CAAE/K,GAAI,CAAC;MACZF,6DAAe,CAAE,eAAe,EAAEE,GAAI,CAAC;IACxC,CAAG;IACHmL,IAAI,EAAGxN,mDAAE,CAAE,2FAA2F,EAAE,WAAY;EAAG,CACvH,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;ACxCkD;AACiB;AACrB;AAEI;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS4N,eAAeA,CAAA7M,IAAA,EAAkC;EAAA,IAAhC;IAAEa,IAAI;IAAEH,KAAK;IAAEL,MAAM;IAAEI;EAAK,CAAC,GAAAT,IAAA;EACtD,MAAM;MAAE8M;IAAM,CAAC,GAAGxK,MAAM,CAACC,IAAI,CAACC,YAAY;IACzC;MAAEuK;IAAO,CAAC,GAAGD,KAAK,CAAErM,IAAI,CAAE,IAAI,CAAC,CAAC;EACjC,OAAOkM,wDAAO,CAAE,4BAA4B,EAAE9L,IAAI,EAAEH,KAAK,EAAEL,MAAM,EAAE0M,MAAO,CAAC;AAC5E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAAA3I,KAAA,EAA4B;EAAA,IAA1B;IAAE3D,KAAK;IAAEL,MAAM;IAAEI;EAAK,CAAC,GAAA4D,KAAA;EAClD,MAAM,CAAE4I,SAAS,EAAEC,QAAQ,CAAE,GAAGrG,4DAAQ,CAAEnG,KAAM,CAAC;IAChD,CAAEyM,UAAU,EAAEC,SAAS,CAAE,GAAGvG,4DAAQ,CAAExG,MAAO,CAAC;IAC9C,CAAEgN,QAAQ,EAAEC,OAAO,CAAE,GAAGzG,4DAAQ,CAAEpG,IAAK,CAAC;EAEzC,OACCE,iEAAA;IAAKkC,KAAK,EAAG;MAAE+C,OAAO,EAAE;IAAO;EAAG,GACjCjF,iEAAA;IAAKkC,KAAK,EAAG;MAAE+I,IAAI,EAAE;IAAE;EAAG,GACzBjL,iEAAA,CAACwK,8DAAW;IACXH,EAAE,EAAC,8CAA8C;IACjDD,KAAK,EAAG9L,mDAAE,CAAE,mBAAmB,EAAE,WAAY,CAAG;IAChDsO,WAAW,EAAGtO,mDAAE,CAAE,OAAO,EAAE,WAAY,CAAG;IAC1CgB,IAAI,EAAC,QAAQ;IACbmH,KAAK,EAAG6F,SAAW;IACnBO,mBAAmB;IACnBrG,QAAQ,EAAK7F,GAAG,IAAM;MACrB4L,QAAQ,CAAE5L,GAAI,CAAC;MACfF,6DAAe,CAAE,OAAO,EAAEE,GAAI,CAAC;IAChC;EAAG,CACH,CACG,CAAC,EACNX,iEAAA;IAAKkC,KAAK,EAAG;MAAE+I,IAAI,EAAE;IAAE;EAAG,GACzBjL,iEAAA,CAACwK,8DAAW;IACXH,EAAE,EAAC,+CAA+C;IAClDD,KAAK,EAAG9L,mDAAE,CAAE,oBAAoB,EAAE,WAAY,CAAG;IACjDsO,WAAW,EAAGtO,mDAAE,CAAE,QAAQ,EAAE,WAAY,CAAG;IAC3CgB,IAAI,EAAC,QAAQ;IACbmH,KAAK,EAAG+F,UAAY;IACpBK,mBAAmB;IACnBrG,QAAQ,EAAK7F,GAAG,IAAM;MACrB8L,SAAS,CAAE9L,GAAI,CAAC;MAChBF,6DAAe,CAAE,QAAQ,EAAEE,GAAI,CAAC;IACjC;EAAG,CACH,CACG,CAAC,EACNX,iEAAA;IAAKkC,KAAK,EAAG;MAAE+I,IAAI,EAAE;IAAE;EAAG,GACzBjL,iEAAA,CAACiM,gEAAa;IACb5B,EAAE,EAAC,6CAA6C;IAChDD,KAAK,EAAG9L,mDAAE,CAAE,uBAAuB,EAAE,WAAY,CAAG;IACpDuO,mBAAmB;IACnBpG,KAAK,EAAGiG,QAAU;IAClBlG,QAAQ,EAAK7F,GAAG,IAAM;MACrBgM,OAAO,CAAEhM,GAAI,CAAC;MACdF,6DAAe,CAAE,MAAM,EAAEE,GAAI,CAAC;IAC/B,CAAG;IACH4K,OAAO,EAAG,CACT;MAAE9E,KAAK,EAAE,IAAI;MAAE2D,KAAK,EAAE9L,mDAAE,CAAE,aAAa,EAAE,WAAY;IAAE,CAAC,EACxD;MAAEmI,KAAK,EAAE,IAAI;MAAE2D,KAAK,EAAE9L,mDAAE,CAAE,kBAAkB,EAAE,WAAY;IAAE,CAAC;EAC3D,CACH,CACG,CACD,CAAC;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASU,WAAWA,CAAA8N,KAAA,EAA4C;EAAA,IAA1C;IAAEjN,IAAI,EAAE2L,QAAQ;IAAEzL,KAAK;IAAEL,MAAM;IAAEI;EAAK,CAAC,GAAAgN,KAAA;EAC3E,MAAM;MAAEC;IAAM,CAAC,GAAGpL,MAAM,CAACC,IAAI,CAACC,YAAY;IACzC0J,OAAO,GAAG5E,MAAM,CAACC,OAAO,CAAEmG,KAAM,CAAC,CAACtJ,GAAG,CAAEuJ,KAAA;MAAA,IAAE,CAAEvG,KAAK,EAAEwG,QAAQ,CAAE,GAAAD,KAAA;MAAA,OAAQ;QAAEvG,KAAK;QAAE2D,KAAK,EAAE8B,eAAe,CAAEe,QAAS;MAAE,CAAC;IAAA,CAAG,CAAC;IACrH,CAAEpN,IAAI,EAAEqN,OAAO,CAAE,GAAGhH,4DAAQ,CAAEsF,QAAS,CAAC;EAEzCD,OAAO,CAAC4B,IAAI,CAAE;IACb1G,KAAK,EAAE,QAAQ;IACf2D,KAAK,EAAE2B,mDAAE,CAAE,QAAQ,EAAE,2BAA2B,EAAE,WAAY;EAC/D,CAAE,CAAC;EAEH,OACC/L,iEAAA,CAAAI,wDAAA,QACCJ,iEAAA,CAACiM,gEAAa;IACb5B,EAAE,EAAC,gCAAgC;IACnCD,KAAK,EAAG9L,mDAAE,CAAE,MAAM,EAAE,WAAY,CAAG;IACnCmI,KAAK,EAAG5G,IAAM;IACd0L,OAAO,EAAGA,OAAS;IACnB/E,QAAQ,EAAK7F,GAAG,IAAM;MACrBuM,OAAO,CAAEvM,GAAI,CAAC;MACdF,6DAAe,CAAE,MAAM,EAAEE,GAAI,CAAC;;MAE9B;MACA,IAAK,QAAQ,KAAKA,GAAG,EAAG;QACvB,MAAMyM,OAAO,GAAGL,KAAK,CAAEpM,GAAG,CAAE;QAC5BF,6DAAe,CAAE,MAAM,EAAE2M,OAAO,CAACtN,IAAK,CAAC;QACvCW,6DAAe,CAAE,OAAO,EAAE2M,OAAO,CAACrN,KAAM,CAAC;QACzCU,6DAAe,CAAE,QAAQ,EAAE2M,OAAO,CAAC1N,MAAO,CAAC;MAC5C;IACD;EAAG,CACH,CAAC,EAEA,QAAQ,KAAKG,IAAI,IAAMG,iEAAA,CAACqM,iBAAiB;IAAQ5L,eAAe;IAAEV,KAAK;IAAEL,MAAM;IAAEI;EAAI,CAAM,CAE5F,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzIqC;AACe;AACR;AACa;AACW;AAElB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASZ,KAAKA,CAAAG,IAAA,EAAiB;EAAA,IAAf;IAAEiO;EAAS,CAAC,GAAAjO,IAAA;EAClC,MAAM;MAAE0E;IAAmB,CAAC,GAAGsJ,0DAAS,CAAE1O,oDAAY,CAAC;IACtD;MAAE6D;IAAiB,CAAC,GAAG6K,0DAAS,CAAEnM,0DAAiB,CAAC;EAErD,IAAK,kBAAkB,KAAK6C,kBAAkB,CAAC,CAAC,EAAG;IAClD,OAAO,IAAI;EACZ;;EAEA;EACA,MAAM;IAAEtB;EAAW,CAAC,GAAGD,gBAAgB,CAAC,CAAC,CAACE,IAAI,CAAEgB,KAAA;IAAA,IAAE;MAAExD;IAAK,CAAC,GAAAwD,KAAA;IAAA,OAAM,wBAAwB,KAAKxD,IAAI;EAAA,CAAC,CAAC;EACnG,IAAKuC,UAAU,EAAG;IACjB,OAAO,IAAI;EACZ;EAEA,OAAO6K,QAAQ;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASrO,YAAYA,CAAA6N,KAAA,EAAc;EAAA,IAAZ;IAAEvN;EAAM,CAAC,GAAAuN,KAAA;EAC9C,OACC9M,iEAAA,CAACwK,8DAAW;IACXH,EAAE,EAAC,gCAAgC;IACnCD,KAAK,EAAG9L,mDAAE,CAAE,OAAO,EAAE,WAAY,CAAG;IACpCmI,KAAK,EAAGlH,KAAO;IACfiH,QAAQ,EAAK7F,GAAG,IAAMF,6DAAe,CAAE,OAAO,EAAEE,GAAI,CAAG;IACvDmL,IAAI,EAAGxN,mDAAE,CAAE,kEAAkE,EAAE,WAAY;EAAG,CAC9F,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;ACzD2C;AACS;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAAe,oCAAAe,IAAA,EAAwD;EAAA,IAA9C;IAAEoO,MAAM;IAAErI,QAAQ;IAAErC,QAAQ;IAAE2K;EAAY,CAAC,GAAArO,IAAA;EACnE,OACCW,iEAAA,CAACuN,oDAAU;IAAQnI;EAAQ,GAC1BpF,iEAAA,CAACwN,yDAAsB;IACtBG,aAAa,EAAG,KAAO;IACvBC,cAAc,EAAG,KAAO;IACxBC,UAAU,EAAGJ,MAAQ;IACrBhL,UAAU,EAAGM,QAAQ,IAAI,CAAE2K;EAAa,CACxC,CACU,CAAC;AAEf;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASH,UAAUA,CAAAlO,IAAA,EAA2B;EAAA,IAAzB;IAAE+F,QAAQ;IAAEkI;EAAS,CAAC,GAAAjO,IAAA;EACjD,IAAK+F,QAAQ,IAAI,kBAAkB,KAAKA,QAAQ,EAAG;IAClD,OAAOkI,QAAQ;EAChB;EACA,OAAO,IAAI;AACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjB6C;AACA;AACe;AACH;AAEhB;AACS;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASW,mBAAmBA,CAAA5O,IAAA,EAAgD;EAAA,IAA9C;IAAEqO,WAAW;IAAE3K,QAAQ;IAAE0K,MAAM;IAAErI;EAAS,CAAC,GAAA/F,IAAA;EAC/E,OACCW,iEAAA,CAAC8N,sEAAoB,QACpB9N,iEAAA,cACCA,iEAAA,CAAC+N,qDAAW;IAAQN,MAAM;IAAErI,QAAQ;IAAEsI,WAAW;IAAE3K;EAAQ,CAAM,CAAC,QAElE,EAAA/C,iEAAA,CAACgO,8DAAW;IAAQN,WAAW;IAAE3K,QAAQ;IAAEqC;EAAQ,CAAM,CACrD,CACgB,CAAC;AAEzB;AAEA,iEAAe7G,2DAAO,CAAE,CACvBC,2DAAU,CAAI0P,QAAQ,IAAM;EAC3B,MAAM;IACLpL,YAAY;IACZqL,sBAAsB;IACtBC,gBAAgB;IAChBrK;EACD,CAAC,GAAGmK,QAAQ,CAAEvP,oDAAY,CAAC;EAC3B,OAAO;IACN+O,WAAW,EAAES,sBAAsB,CAAC,CAAC;IACrCpL,QAAQ,EAAED,YAAY,CAAC,CAAC;IACxB2K,MAAM,EAAEW,gBAAgB,CAAC,CAAC;IAC1BhJ,QAAQ,EAAErB,kBAAkB,CAAC;EAC9B,CAAC;AACF,CAAE,CAAC,CACF,CAAC,CAAEkK,mBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/CW;AACiB;AACR;AACK;AACiB;AACX;AACS;AACtB;AAEgB;AACV;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASQ,aAAaA,CAAEC,UAAU,EAAEhB,WAAW,EAAG;EACjD,MAAM;MAAElK,SAAS;MAAEmL;IAAY,CAAC,GAAGrO,uDAAM,CAAEY,0DAAiB,CAAC;IAC5D;MAAEoC,aAAa;MAAEsL;IAAa,CAAC,GAAGpO,yDAAQ,CAAEU,0DAAiB,CAAC;IAC9D;MAAEN,QAAQ;MAAE2C;IAAS,CAAC,GAAG/C,yDAAQ,CAAE7B,oDAAY,CAAC;IAChDkQ,SAAS,GAAGrL,SAAS,CAAC,CAAC,CAACC,GAAG,CAAEpE,IAAA;MAAA,IAAE;QAAEsE;MAAS,CAAC,GAAAtE,IAAA;MAAA,OAAMsE,QAAQ;IAAA,CAAC,CAAC;IAC3DmL,QAAQ,GAAGT,gFAA6B,CAAE,EAAE,EAAEM,WAAW,CAAC,CAAE,CAAC;EAE9DH,2DAAoB,CAAE,EAAG,CAAC;EAC1B,IAAKd,WAAW,EAAG;IAClB9M,QAAQ,CAAE;MAAEmO,MAAM,EAAE;IAAQ,CAAE,CAAC;EAChC;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;EACCT,0DAAQ,CAAE,sCAAsC,EAAEQ,QAAS,CAAC;EAE5D,IAAKD,SAAS,CAACzL,MAAM,EAAG;IACvBE,aAAa,CAAEuL,SAAS,EAAEC,QAAS,CAAC;EACrC,CAAC,MAAM;IACNF,YAAY,CAAEE,QAAS,CAAC;EACzB;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;EACCR,0DAAQ,CAAE,qCAAqC,EAAEQ,QAAS,CAAC;EAE3DvL,QAAQ,CAAC,CAAC;EACVmL,UAAU,CAAC,CAAC;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAAe,oCAAAhL,KAAA,EAAsC;EAAA,IAA5B;IAAEX,QAAQ;IAAE2K;EAAY,CAAC,GAAAhK,KAAA;EACjD,MAAM,CAAE+D,MAAM,EAAEuH,SAAS,CAAE,GAAG9I,4DAAQ,CAAE,KAAM,CAAC;IAC9CK,UAAU,GAAGA,CAAA,KAAMyI,SAAS,CAAE,KAAM,CAAC;IACrCrH,SAAS,GAAGA,CAAA,KAAMqH,SAAS,CAAE,IAAK,CAAC;EAEpC,IAAIC,GAAG,GAAG3Q,mDAAE,CAAE,0HAA0H,EAAE,WAAY,CAAC;EACvJ,IAAKoP,WAAW,EAAG;IAClBuB,GAAG,GAAG3Q,mDAAE,CAAE,6IAA6I,EAAE,WAAY,CAAC;EACvK;EAEA,OACC0B,iEAAA,CAACuO,qEAAkB,QAChB9G,MAAM,IACPzH,iEAAA,CAAC+F,wDAAK;IACLxG,KAAK,EAAGjB,mDAAE,CAAE,wBAAwB,EAAE,WAAY,CAAG;IACrD4D,KAAK,EAAG;MAAEgN,QAAQ,EAAE;IAAQ,CAAG;IAC/BtH,cAAc,EAAGrB;EAAY,GAE7BvG,iEAAA,YAAKiP,GAAQ,CAAC,EACdjP,iEAAA;IAAKkC,KAAK,EAAG;MAAE6E,SAAS,EAAE;IAAQ;EAAG,GACpC/G,iEAAA,CAAC8F,yDAAM;IAACqJ,OAAO,EAAC,UAAU;IAAC7H,OAAO,EAAGf;EAAY,GAC9CjI,mDAAE,CAAE,QAAQ,EAAE,WAAY,CACrB,CAAC,QAET,EAAA0B,iEAAA,CAAC8F,yDAAM;IAACqJ,OAAO,EAAC,SAAS;IAAC7H,OAAO,EAAGA,CAAA,KAAMmH,aAAa,CAAElI,UAAU,EAAEmH,WAAY;EAAG,GACjFpP,mDAAE,CAAE,gBAAgB,EAAE,WAAY,CAC7B,CACJ,CACC,CACP,EACD0B,iEAAA,CAAC8F,yDAAM;IAACwB,OAAO,EAAGK,SAAW;IAACyH,QAAQ,EAAGrM,QAAU;IAACsM,aAAa;EAAA,GAAG/Q,mDAAE,CAAE,gBAAgB,EAAE,WAAY,CAAW,CAC9F,CAAC;AAEvB;;;;;;;;;;;;;;;;;;AC3G4C;AACa;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASiQ,kBAAkBA,CAAAlP,IAAA,EAAiB;EAAA,IAAf;IAAEiO;EAAS,CAAC,GAAAjO,IAAA;EAC/C,MAAM;MAAEiQ;IAAe,CAAC,GAAGjC,0DAAS,CAAE1O,oDAAY,CAAC;IAClD4Q,IAAI,GAAGD,cAAc,CAAC,CAAC;IACvB;MAAEhQ,IAAI;MAAEkQ,oBAAoB,EAAEV;IAAS,CAAC,GAAGS,IAAI;EAEhD,IAAKjQ,IAAI,KAAM,kBAAkB,KAAKA,IAAI,IAAM,qBAAqB,KAAKA,IAAI,IAAI,CAAC,KAAKwP,QAAU,CAAE,EAAG;IACtG,OAAOxB,QAAQ;EAChB;EAEA,OAAO,IAAI;AACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBA;AACqC;;AAErC;AACqC;AAC0B;AAClB;AACqB;AACN;AACH;AACC;AACC;;AAE3D;AAC0D;;AAE1D;AACA;AACA;AACA;AACA;AACO,MAAMuC,cAAc,GAAGtF,2DAAM,CAAEkF,2DAAS,CAAE;AACjD;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASK,YAAYA,CAAAzQ,IAAA,EAAe;EAAA,IAAb;IAAE0Q;EAAO,CAAC,GAAA1Q,IAAA;EAChC,MAAMa,IAAI,GAAGmN,0DAAS,CACnB/M,MAAM,IAAM;IACb,MAAM;QAAE0P;MAAgB,CAAC,GAAG1P,MAAM,CAAEQ,uDAAU,CAAC;MAC9CmP,IAAI,GAAGD,eAAe,CAAE,MAAM,EAAE,MAAM,EAAED,MAAO,CAAC;IACjD,OAAOE,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE/P,IAAI;EAClB,CAAC,EACD,CAAE6P,MAAM,CACT,CAAC;EAED,IAAK,CAAE7P,IAAI,EAAG;IACb,OACCF,iEAAA,eAAQ1B,mDAAE,CAAE,UAAU,EAAE,WAAY,CAAS,CAAC;EAEhD;EAEA,OAAS0B,iEAAA,CAAC0P,+DAAY;IAACnG,IAAI,EAAGoG,4DAAY,CACzC,WAAW,EACX;MACCO,IAAI,EAAE,gBAAgB;MACtBC,GAAG,EAAE,UAAU;MACfC,IAAI,EAAE,cAAc;MACpBC,UAAU,EAAEN;IACb,CACD;EAAG,GAAG7P,IAAoB,CAAC;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASwF,uBAAuBA,CAAAhC,KAAA,EAA4B;EAAA,IAA1B;IAAEpE,IAAI;IAAEyQ,MAAM;IAAEO;EAAM,CAAC,GAAA5M,KAAA;EACxD;EACA,IAAK,qBAAqB,KAAKpE,IAAI,EAAG;IACrC,OAAO,IAAI;EACZ;;EAEA;EACA,MAAMiR,OAAO,GAAGjH,2DAAW,CAAE3H,MAAM,CAACuG,QAAQ,CAACqB,IAAI,EAAE,KAAM,CAAC;EAC1DwG,MAAM,GAAGQ,OAAO,GAAGA,OAAO,GAAGR,MAAM;EAEnC,OAEC/P,iEAAA,CAAC8N,sEAAoB,QACpB9N,iEAAA,CAAC6P,cAAc,QACd7P,iEAAA;IAAMkC,KAAK,EAAG;MAAE+C,OAAO,EAAE,OAAO;MAAElF,KAAK,EAAE;IAAM;EAAG,GAAGzB,mDAAE,CAAE,SAAS,EAAE,WAAY,CAAS,CAAC,EAExF,CAAE,CAAEgS,KAAK,IAAIC,OAAO,KACrBvQ,iEAAA,CAAC8P,YAAY;IAACC,MAAM,EAAGA;EAAQ,CAAE,CACjC,EACGO,KAAK,IAAI,CAAEC,OAAO,IACrBvQ,iEAAA,CAAC4P,qEAAiB;IACjBY,aAAa,EAAGT,MAAQ;IACxBU,QAAQ,EAAG3D,KAAA,IAAc;MAAA,IAAZ;QAAEzC;MAAG,CAAC,GAAAyC,KAAA;MAClB,MAAM;QAAElM;MAAS,CAAC,GAAGJ,yDAAQ,CAAE7B,oDAAY,CAAC;MAC5CiC,QAAQ,CACP;QACC8P,MAAM,EAAErG,EAAE,CAAE;MACb,CACD,CAAC;IACF;EAAG,CACH,CAEa,CACK,CAAC;AAGzB;;AAEA,MAAMhK,eAAe,GAAG7B,2DAAU,CAAI8B,MAAM,IAAM;EACjD,MAAM;IAAEC,sBAAsB;IAAEoQ;EAAgB,CAAC,GAAGrQ,MAAM,CAAE3B,oDAAY,CAAC;EACzE,OAAO;IACN2R,KAAK,EAAEK,eAAe,CAAC,CAAC;IACxBrR,IAAI,EAAEiB,sBAAsB,CAAE,MAAO,CAAC;IACtCwP,MAAM,EAAExP,sBAAsB,CAAE,QAAS;EAC1C,CAAC;AACF,CAAE,CAAC;AAEH,iEAAehC,2DAAO,CAAE,CAAE8B,eAAe,CAAG,CAAC,CAC5CqF,uBACD,CAAC;;;;;;;;;;;;;;;;;;AC5HD;AAC0D;AACf;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAAe,oCAAUkL,SAAS,EAAE/C,UAAU,EAAG;EAChD,MAAM;IAAEgD;EAAiB,CAAC,GAAGrQ,yDAAQ,CAAEM,uDAAU,CAAC;EAElD,OAAO+P,gBAAgB,CACtB,UAAU,EACV,qBAAqB,EACrB;IACCH,MAAM,EAAEE,SAAS;IACjBpB,oBAAoB,EAAE3B,UAAU;IAChCkB,MAAM,EAAE;EACT,CACD,CAAC;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBA;AACqC;AACiB;AACR;;AAE9C;AAC6E;;AAE7E;AACmC;AACA;AACoB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAAe,oCAAA1P,IAAA,EASX;EAAA,IATqB;IACxB8R,UAAU,GAAG7S,mDAAE,CAAE,yBAAyB,EAAE,WAAY,CAAC;IACzD8S,WAAW,GAAG9S,mDAAE,CAAE,OAAO,EAAE,WAAY,CAAC;IACxCmE,UAAU,GAAG,KAAK;IAClBkL,aAAa,GAAG,IAAI;IACpB0D,aAAa,GAAG,IAAI;IACpBzD,cAAc,GAAG,IAAI;IACrBgD,SAAS,GAAG,IAAI;IAChB/C,UAAU,GAAG;EACd,CAAC,GAAAxO,IAAA;EACA,MAAM,CAAEoI,MAAM,EAAEuH,SAAS,CAAE,GAAG9I,4DAAQ,CAAE,KAAM,CAAC;IAC9C,CAAEoL,MAAM,EAAEC,SAAS,CAAE,GAAGrL,4DAAQ,CAAE,KAAM,CAAC;IACzC,CAAEsL,aAAa,EAAEC,YAAY,CAAE,GAAGvL,4DAAQ,CAAE0K,SAAU,CAAC;IACvD,CAAEc,cAAc,EAAEC,aAAa,CAAE,GAAGzL,4DAAQ,CAAE2H,UAAW,CAAC;IAC1DtH,UAAU,GAAGA,CAAA,KAAMyI,SAAS,CAAE,KAAM,CAAC;IACrCrH,SAAS,GAAGA,CAAA,KAAMqH,SAAS,CAAE,IAAK,CAAC;IACnC4C,OAAO,GAAGJ,aAAa,IAAIE,cAAc;IACzCpK,OAAO,GAAGA,CAAA,KAAM;MACfiK,SAAS,CAAE,IAAK,CAAC;MACjBR,mDAAW,CAAES,aAAa,EAAEE,cAAe,CAAC,CAACG,IAAI,CAAEnO,KAAA,IAAc;QAAA,IAAZ;UAAE2G;QAAG,CAAC,GAAA3G,KAAA;QAC1D/B,MAAM,CAACuG,QAAQ,GAAG+I,qDAAc,CAAE5G,EAAG,CAAC;MACvC,CAAE,CAAC;IACJ,CAAC;EAEF,OACCrK,iEAAA,CAAAI,wDAAA,QACGqH,MAAM,IACPzH,iEAAA,CAAC+F,wDAAK;IACLxG,KAAK,EAAG4R,UAAY;IACpBjP,KAAK,EAAG;MAAEgN,QAAQ,EAAE;IAAQ,CAAG;IAC/BtH,cAAc,EAAGrB;EAAY,GAG7BvG,iEAAA,YAAKgR,oDAAU,CAAEK,aAAa,EAAEzD,cAAe,CAAM,CAAC,EAEpDyD,aAAa,IACdrR,iEAAA,CAAC4P,oEAAiB;IACjBkC,WAAW;IACX1H,KAAK,EAAG9L,mDAAE,CAAE,UAAU,EAAE,WAAY,CAAG;IACvCkS,aAAa,EAAGI,SAAS,GAAG,CAAEA,SAAS,CAAE,GAAG,EAAI;IAChDH,QAAQ,EAAKsB,GAAG,IAAM;MACrB,MAAM1H,EAAE,GAAG,CAAA0H,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE1H,EAAE,KAAI,IAAI;MAC1BoH,YAAY,CAAEpH,EAAG,CAAC;IACnB;EAAG,CACH,CACD,EAECuD,cAAc,IACf5N,iEAAA,CAAC8Q,oEAAiB;IACjBgB,WAAW;IACX1M,QAAQ,EAAC,kBAAkB;IAC3BgF,KAAK,EAAG9L,mDAAE,CAAE,UAAU,EAAE,WAAY,CAAG;IACvCsO,WAAW,EAAGtO,mDAAE,CAAE,oCAAoC,EAAE,WAAY,CAAG;IACvEkS,aAAa,EAAG3C,UAAU,GAAG,CAAEA,UAAU,CAAE,GAAG,EAAI;IAClD4C,QAAQ,EAAKsB,GAAG,IAAM;MACrB,MAAM1H,EAAE,GAAG,CAAA0H,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE1H,EAAE,KAAI,IAAI;MAC1BsH,aAAa,CAAEtH,EAAG,CAAC;IACpB;EAAG,CACH,CACD,EAEDrK,iEAAA;IAAKkC,KAAK,EAAG;MAAE6E,SAAS,EAAE,OAAO;MAAE1C,OAAO,EAAE,aAAa;MAAEC,MAAM,EAAE,cAAc;MAAE0N,SAAS,EAAE;IAAiB;EAAG,GAEjHhS,iEAAA,CAAC8F,yDAAM;IAAC5D,KAAK,EAAG;MAAE0C,WAAW,EAAE;IAAM,CAAG;IAACwK,QAAQ,EAAG,CAAEwC,OAAS;IAACN,MAAM,EAAGA,MAAQ;IAACnC,OAAO,EAAC,SAAS;IAAC7H,OAAO,EAAGA;EAAS,GACpHhJ,mDAAE,CAAE,cAAe,CACd,CAAC,EAEPqP,aAAa,IACd3N,iEAAA,CAAC8F,yDAAM;IAAC5D,KAAK,EAAG;MAAE0C,WAAW,EAAE;IAAM,CAAG;IAACuK,OAAO,EAAC,WAAW;IAAC5F,IAAI,EAAG2H,oDAAa,CAAEM,aAAc;EAAG,GACjGlT,mDAAE,CAAE,oBAAoB,EAAE,WAAY,CACjC,CACR,EAED0B,iEAAA,CAAC8F,yDAAM;IAACqJ,OAAO,EAAC,UAAU;IAAC7H,OAAO,EAAGf;EAAY,GAC9CjI,mDAAE,CAAE,QAAQ,EAAE,WAAY,CACrB,CACJ,CACC,CACP,EACD0B,iEAAA,CAAC8F,yDAAM;IACNsJ,QAAQ,EAAG3M,UAAY;IACvB0M,OAAO,EAAC,WAAW;IACnB7H,OAAO,EAAGK;EAAW,GAEnByJ,WACK,CACP,CAAC;AAEL;;;;;;;;;;;;;;;;ACrHqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAAe,oCAAUC,aAAa,EAAEzD,cAAc,EAAG;EACxD,IAAIqB,GAAG,GAAG,EAAE;EACZ,IAAKoC,aAAa,IAAIzD,cAAc,EAAG;IACtCqB,GAAG,GAAG3Q,mDAAE,CAAE,qFAAqF,EAAE,WAAY,CAAC;EAC/G,CAAC,MAAM,IAAK+S,aAAa,IAAI,CAAEzD,cAAc,EAAG;IAC/CqB,GAAG,GAAG3Q,mDAAE,CAAE,6EAA6E,EAAE,WAAY,CAAC;EACvG,CAAC,MAAM,IAAK,CAAE+S,aAAa,IAAIzD,cAAc,EAAG;IAC/CqB,GAAG,GAAG3Q,mDAAE,CAAE,6EAA6E,EAAE,WAAY,CAAC;EACvG;EACA,OAAO2Q,GAAG;AACX;;;;;;;;;;;;;;;;;;;ACrBA;AAC8C;;AAE9C;AAC+C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASgC,cAAcA,CAAE1B,IAAI,EAAG;EACtC,OAAOI,4DAAY,CACjB,GAAGsC,6DAAW,CAAC,CAAG,WAAU,EAC7B;IACC1C,IAAI;IACJ2C,MAAM,EAAE,MAAM;IACdC,WAAW,EAAE;EACd,CACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASjB,aAAaA,CAAA,EAAe;EAAA,IAAbkB,GAAG,GAAAC,SAAA,CAAAjP,MAAA,QAAAiP,SAAA,QAAAvQ,SAAA,GAAAuQ,SAAA,MAAG,IAAI;EACxC,MAAMC,IAAI,GAAG;IACZC,SAAS,EAAE;EACZ,CAAC;EAED,IAAKH,GAAG,EAAG;IACVE,IAAI,CAACF,GAAG,GAAGA,GAAG;EACf;EAEA,OAAOzC,4DAAY,CACjB,GAAGsC,6DAAW,CAAC,CAAG,eAAc,EACjCK,IACD,CAAC;AACF;;;;;;;;;;;;;;;;;;AC9CmD;AACM;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS9D,oBAAoBA,CAAEjP,KAAK,EAAoB;EAAA,IAAlB6F,QAAQ,GAAAiN,SAAA,CAAAjP,MAAA,QAAAiP,SAAA,QAAAvQ,SAAA,GAAAuQ,SAAA,MAAG,IAAI;EAC3D,IAAK,CAAEjN,QAAQ,EAAG;IACjB,MAAM;MAAErB;IAAmB,CAAC,GAAGzD,uDAAM,CAAE3B,oDAAY,CAAC;IACpDyG,QAAQ,GAAGrB,kBAAkB,CAAC,CAAC;EAChC;EAEA,MAAM;MAAEnD;IAAS,CAAC,GAAGJ,yDAAQ,CAAE7B,oDAAY,CAAC;IAC3CkC,KAAK,GAAG,CAAC,CAAC;EAEX,IAAK,kBAAkB,KAAKuE,QAAQ,EAAG;IACtCvE,KAAK,CAAC2R,iBAAiB,GAAGjT,KAAK;EAChC,CAAC,MAAM,IAAK,qBAAqB,KAAK6F,QAAQ,EAAG;IAChDvE,KAAK,CAACtB,KAAK,GAAGA,KAAK;EACpB;EAEA,OAAOqB,QAAQ,CAAEC,KAAM,CAAC;AACzB;;;;;;;;;;;;;;;;;AClCgE;;;;;;;;;;;ACAnD;;AAEb,cAAc,mBAAO,CAAC,uFAAU;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;;;AAIb,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB,sBAAsB;AACtB,uBAAuB;AACvB,uBAAuB;AACvB,eAAe;AACf,kBAAkB;AAClB,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,gBAAgB;AAChB,mBAAmB;AACnB,wBAAwB;AACxB,yBAAyB;AACzB,yBAAyB;AACzB,iBAAiB;AACjB,oBAAoB;AACpB,kBAAkB;AAClB,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,oBAAoB;AACpB,kBAAkB;AAClB,0BAA0B;AAC1B,cAAc;AACd,GAAG;AACH;;;;;;;;;;;ACpLa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,qKAAyD;AAC3D;;;;;;;;;;;ACNA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;;;;;ACAe;AACf;AACA,oBAAoB,sBAAsB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfO;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACnBmE;AACU;AACvC;AACJ;AACL;;AAEpC;AACA,WAAW,YAAY;AACvB,YAAY;AACZ;AACO;AACP,cAAc,mDAAM;;AAEpB;AACA;;AAEA,kBAAkB,YAAY;AAC9B;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,UAAU;AACrB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB;AACO;AACP;AACA;AACA;AACA,SAAS,iDAAW,mBAAmB,oDAAM;AAC7C;AACA,SAAS,+CAAS;AAClB,YAAY,yDAAS,EAAE,mDAAI,WAAW,OAAO,oDAAO,2BAA2B,4CAAM,EAAE;AACvF,SAAS,6CAAO;AAChB;AACA,aAAa,oDAAO;AACpB,eAAe,kDAAK;AACpB;AACA;AACA,gBAAgB,yDAAS,EAAE,mDAAI,WAAW,QAAQ,oDAAO,6BAA6B,yCAAG,UAAU;AACnG;AACA;AACA,gBAAgB,yDAAS;AACzB,UAAU,mDAAI,WAAW,QAAQ,oDAAO,4BAA4B,4CAAM,gBAAgB;AAC1F,UAAU,mDAAI,WAAW,QAAQ,oDAAO,4BAA4B,yCAAG,UAAU;AACjF,UAAU,mDAAI,WAAW,QAAQ,oDAAO,sBAAsB,wCAAE,gBAAgB;AAChF;AACA;;AAEA;AACA,OAAO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACO;AACP;AACA,OAAO,6CAAO;AACd;AACA,WAAW,oDAAO,CAAC,uDAAQ;AAC3B,aAAa,mDAAM;AACnB;AACA;AACA,cAAc,mDAAM,WAAW,mDAAM;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,mDAAM;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mDAAM;AACtB,qBAAqB,mDAAM;AAC3B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;;;;;;;;;;;;;;;;;;;;;AC3GuD;AACuC;AAC0C;;AAExI;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,QAAQ,sDAAO,2CAA2C,oDAAK;AAC/D;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,mDAAI;AAChD;AACA;AACA;AACA,SAAS,oDAAO,eAAe,oDAAO,CAAC,sDAAO;AAC9C;AACA;AACA;AACA;AACA;AACA,kBAAkB,sDAAO;AACzB;AACA;AACA;AACA,kBAAkB,yDAAU;AAC5B;AACA;AACA;AACA,kBAAkB,uDAAQ,CAAC,oDAAK;AAChC;AACA;AACA;AACA,YAAY,mDAAI;AAChB;AACA,MAAM,oDAAM,SAAS,wDAAS,CAAC,mDAAI,IAAI,oDAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mDAAM;AAC5B,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mDAAM;AACjC,OAAO,mDAAM,4CAA4C,2CAA2C,oDAAO,0BAA0B;AACrI;AACA;AACA,8BAA8B;AAC9B,UAAU;AACV;AACA,MAAM,oDAAM;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,mDAAM;AAC3D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mDAAM;AACvB;AACA;AACA;AACA;AACA,qDAAqD,mDAAI;AACzD;;AAEA,0BAA0B,iDAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mDAAM;AAC/B;AACA;AACA;AACA;AACA,UAAU,mDAAI;AACd,qBAAqB,sDAAO,CAAC,mDAAI;;AAEjC,eAAe,mDAAI,sBAAsB,mDAAM,sBAAsB,yDAAU,CAAC,oDAAK;AACrF;AACA;AACA;AACA,6BAA6B,mDAAM;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA,YAAY,mDAAM;;AAElB,+BAA+B,WAAW;AAC1C,sBAAsB,mDAAM,yBAAyB,gDAAG,6BAA6B,UAAU;AAC/F,WAAW,iDAAI,6BAA6B,oDAAO;AACnD;;AAEA,QAAQ,mDAAI,qCAAqC,6CAAO;AACxD;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,YAAY;AACZ;AACO;AACP,QAAQ,mDAAI,sBAAsB,6CAAO,EAAE,iDAAI,CAAC,mDAAI,KAAK,mDAAM;AAC/D;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,QAAQ,mDAAI,sBAAsB,iDAAW,EAAE,mDAAM,oBAAoB,mDAAM;AAC/E;;;;;;;;;;;;;;;;;AC9LyC;AAC0B;;AAEnE;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,SAAS,iDAAI;AACb;AACA;AACA,UAAU,4CAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,4CAAM;AAChB;AACA;AACA,UAAU,4CAAM,WAAW,yCAAG,WAAW,wCAAE;AAC3C;AACA;AACA,UAAU,4CAAM,WAAW,wCAAE;AAC7B;AACA;AACA,UAAU,4CAAM,WAAW,wCAAE;AAC7B;AACA;AACA,UAAU,4CAAM,WAAW,oDAAO,0BAA0B,4CAAM,gBAAgB,wCAAE;AACpF;AACA;AACA,UAAU,4CAAM,WAAW,wCAAE,kBAAkB,oDAAO;AACtD;AACA;AACA,UAAU,4CAAM,WAAW,wCAAE,sBAAsB,oDAAO;AAC1D;AACA;AACA,UAAU,4CAAM,WAAW,wCAAE,GAAG,oDAAO;AACvC;AACA;AACA,UAAU,4CAAM,WAAW,wCAAE,GAAG,oDAAO;AACvC;AACA;AACA,UAAU,4CAAM,YAAY,oDAAO,uBAAuB,4CAAM,WAAW,wCAAE,GAAG,oDAAO;AACvF;AACA;AACA,UAAU,4CAAM,GAAG,oDAAO,qCAAqC,4CAAM;AACrE;AACA;AACA,UAAU,oDAAO,CAAC,oDAAO,CAAC,oDAAO,wBAAwB,4CAAM,yBAAyB,4CAAM;AAC9F;AACA;AACA,UAAU,oDAAO,6BAA6B,4CAAM;AACpD;AACA;AACA,UAAU,oDAAO,CAAC,oDAAO,6BAA6B,4CAAM,mBAAmB,wCAAE,6BAA6B,kBAAkB,4CAAM;AACtI;AACA;AACA,UAAU,oDAAO,2BAA2B,4CAAM;AAClD;AACA;AACA;AACA;AACA;AACA,OAAO,mDAAM;AACb,YAAY,mDAAM;AAClB;AACA;AACA;AACA,UAAU,mDAAM;AAChB;AACA;AACA;AACA,aAAa,oDAAO,mCAAmC,4CAAM,oBAAoB,yCAAG,IAAI,mDAAM;AAC9F;AACA;AACA,cAAc,oDAAO,4BAA4B,oDAAO;AACxD;AACA;AACA;AACA;AACA;AACA,OAAO,mDAAM;AACb;AACA;AACA;AACA,WAAW,mDAAM,QAAQ,mDAAM,gBAAgB,oDAAO;AACtD;AACA;AACA,YAAY,oDAAO,mBAAmB,4CAAM;AAC5C;AACA;AACA,YAAY,oDAAO,kBAAkB,MAAM,gBAAgB,4CAAM,IAAI,mDAAM,wDAAwD,4CAAM,mBAAmB,wCAAE;AAC9J;AACA;AACA;AACA;AACA,WAAW,mDAAM;AACjB;AACA;AACA,YAAY,4CAAM,WAAW,wCAAE,GAAG,oDAAO,yBAAyB,EAAE;AACpE;AACA;AACA,YAAY,4CAAM,WAAW,wCAAE,GAAG,oDAAO,yBAAyB,EAAE;AACpE;AACA;AACA,YAAY,4CAAM,WAAW,wCAAE,GAAG,oDAAO,yBAAyB,EAAE;AACpE;;AAEA,UAAU,4CAAM,WAAW,wCAAE;AAC7B;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACtH0E;AAC/B;;AAE3C;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,YAAY;AACZ;AACO;AACP;AACA,cAAc,mDAAM;;AAEpB,iBAAiB,YAAY;AAC7B;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,YAAY;AACZ;AACO;AACP;AACA,OAAO,4CAAM,OAAO,iDAAW;AAC/B,OAAO,6CAAO;AACd,OAAO,+CAAS,4CAA4C,8CAA8C;AAC1G,OAAO,6CAAO;AACd;;AAEA,QAAQ,mDAAM,wFAAwF,iBAAiB;AACvH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClC+E;;AAExE;AACA;AACA;AACA;AACA;AACA;;AAEP;AACA,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB;AACO;AACP,SAAS;AACT;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,QAAQ,mDAAM,iDAAiD,qBAAqB;AACpF;;AAEA;AACA,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,YAAY;AACZ;AACO;AACP,4BAA4B,mDAAM;;AAElC;AACA;;AAEA;AACA;;AAEA;AACA,YAAY;AACZ;AACO;AACP,iCAAiC,mDAAM;;AAEvC;AACA;;AAEA;AACA;;AAEA;AACA,YAAY;AACZ;AACO;AACP,QAAQ,mDAAM;AACd;;AAEA;AACA,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,QAAQ,mDAAM;AACd;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,oCAAoC,mDAAM;AAC1C;;AAEA;AACA,WAAW,KAAK;AAChB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP,QAAQ,iDAAI;AACZ;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,UAAU;AACrB,YAAY;AACZ;AACO;AACP;AACA;AACA,WAAW,mDAAM;AACjB;AACA,WAAW,oDAAM;AACjB;AACA,YAAY,oDAAM,CAAC,iDAAI;AACvB;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAkD,iDAAI;AACtD;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrPA;AACA,WAAW;AACX,YAAY;AACZ;AACO;;AAEP;AACA,WAAW;AACX,YAAY;AACZ;AACO;;AAEP;AACA,WAAW;AACX,YAAY;AACZ;AACO;;AAEP;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,iBAAiB;AAC5B,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,YAAY;AACZ;AACO;AACP;AACA;;AAEA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,YAAY;AACZ;AACO;AACP;AACA;;;;;;;UClHA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D","sources":["webpack://lifterlms/./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://lifterlms/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://lifterlms/./node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/react/dist/emotion-element-6a883da9.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/serialize/node_modules/@emotion/hash/dist/emotion-hash.esm.js","webpack://lifterlms/./node_modules/@emotion/serialize/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://lifterlms/./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js","webpack://lifterlms/./src/js/admin-certificate-editor/document-settings.js","webpack://lifterlms/./src/js/admin-certificate-editor/edit-certificate.js","webpack://lifterlms/./src/js/admin-certificate-editor/editor.js","webpack://lifterlms/./src/js/admin-certificate-editor/i18n.js","webpack://lifterlms/./src/js/admin-certificate-editor/index.js","webpack://lifterlms/./src/js/admin-certificate-editor/merge-codes.js","webpack://lifterlms/./src/js/admin-certificate-editor/migrate.js","webpack://lifterlms/./src/js/admin-certificate-editor/modify-blocks.js","webpack://lifterlms/./src/js/admin-certificate-editor/notices.js","webpack://lifterlms/./src/js/admin-certificate-editor/plugin/background-control.js","webpack://lifterlms/./src/js/admin-certificate-editor/plugin/margins-control.js","webpack://lifterlms/./src/js/admin-certificate-editor/plugin/orientation-control.js","webpack://lifterlms/./src/js/admin-certificate-editor/plugin/sequential-id-control.js","webpack://lifterlms/./src/js/admin-certificate-editor/plugin/size-control.js","webpack://lifterlms/./src/js/admin-certificate-editor/plugin/title-control.js","webpack://lifterlms/./src/js/admin-certificate-editor/post-status-info/award-button.js","webpack://lifterlms/./src/js/admin-certificate-editor/post-status-info/award-check.js","webpack://lifterlms/./src/js/admin-certificate-editor/post-status-info/index.js","webpack://lifterlms/./src/js/admin-certificate-editor/post-status-info/reset-template-button.js","webpack://lifterlms/./src/js/admin-certificate-editor/post-status-info/reset-template-check.js","webpack://lifterlms/./src/js/admin-certificate-editor/user-settings.js","webpack://lifterlms/./src/js/util/award-certificate-button/create.js","webpack://lifterlms/./src/js/util/award-certificate-button/index.js","webpack://lifterlms/./src/js/util/award-certificate-button/message.js","webpack://lifterlms/./src/js/util/award-certificate-button/urls.js","webpack://lifterlms/./src/js/util/edit-certificate-title.js","webpack://lifterlms/./src/js/util/index.js","webpack://lifterlms/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://lifterlms/./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js","webpack://lifterlms/./node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack://lifterlms/external window \"React\"","webpack://lifterlms/external window [\"llms\",\"components\"]","webpack://lifterlms/external window [\"llms\",\"icons\"]","webpack://lifterlms/external window [\"llms\",\"utils\"]","webpack://lifterlms/external window [\"wp\",\"blockEditor\"]","webpack://lifterlms/external window [\"wp\",\"blocks\"]","webpack://lifterlms/external window [\"wp\",\"components\"]","webpack://lifterlms/external window [\"wp\",\"compose\"]","webpack://lifterlms/external window [\"wp\",\"coreData\"]","webpack://lifterlms/external window [\"wp\",\"data\"]","webpack://lifterlms/external window [\"wp\",\"domReady\"]","webpack://lifterlms/external window [\"wp\",\"editPost\"]","webpack://lifterlms/external window [\"wp\",\"editor\"]","webpack://lifterlms/external window [\"wp\",\"element\"]","webpack://lifterlms/external window [\"wp\",\"hooks\"]","webpack://lifterlms/external window [\"wp\",\"i18n\"]","webpack://lifterlms/external window [\"wp\",\"notices\"]","webpack://lifterlms/external window [\"wp\",\"plugins\"]","webpack://lifterlms/external window [\"wp\",\"richText\"]","webpack://lifterlms/external window [\"wp\",\"url\"]","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://lifterlms/./node_modules/stylis/src/Enum.js","webpack://lifterlms/./node_modules/stylis/src/Middleware.js","webpack://lifterlms/./node_modules/stylis/src/Parser.js","webpack://lifterlms/./node_modules/stylis/src/Prefixer.js","webpack://lifterlms/./node_modules/stylis/src/Serializer.js","webpack://lifterlms/./node_modules/stylis/src/Tokenizer.js","webpack://lifterlms/./node_modules/stylis/src/Utility.js","webpack://lifterlms/webpack/bootstrap","webpack://lifterlms/webpack/runtime/compat get default export","webpack://lifterlms/webpack/runtime/define property getters","webpack://lifterlms/webpack/runtime/hasOwnProperty shorthand","webpack://lifterlms/webpack/runtime/make namespace object","webpack://lifterlms/./src/js/admin-certificate-editor.js"],"sourcesContent":["import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, stringify, COMMENT, rulesheet, middleware, prefixer, serialize, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = element.parent === children[0]; // in nested rules comments become children of the \"auto-inserted\" rule\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? children[0].children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default isPropValid;\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import hoistNonReactStatics$1 from 'hoist-non-react-statics';\n\n// this file isolates this package that is not tree-shakeable\n// and if this module doesn't actually contain any logic of its own\n// then Rollup just use 'hoist-non-react-statics' directly in other chunks\n\nvar hoistNonReactStatics = (function (targetComponent, sourceComponent) {\n return hoistNonReactStatics$1(targetComponent, sourceComponent);\n});\n\nexport default hoistNonReactStatics;\n","import { createContext, useContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { useContext, createElement, Fragment } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;\n","import '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport default newStyled;\n","import * as React from 'react';\nimport { useLayoutEffect } from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport default weakMemoize;\n","import { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { PluginDocumentSettingPanel } from '@wordpress/edit-post';\nimport { store as editorStore } from '@wordpress/editor';\n\nimport BackgroundControl from './plugin/background-control';\nimport MarginsControl from './plugin/margins-control';\nimport OrientationControl from './plugin/orientation-control';\nimport SequentialIdControl from './plugin/sequential-id-control';\nimport SizeControl from './plugin/size-control';\nimport TitleControl, { Check as TitleControlCheck } from './plugin/title-control';\n\n/**\n * Render the certificate settings editor panel.\n *\n * @since 6.0.0\n *\n * @param {Object} args Component arguments.\n * @param {string} args.type Current post type.\n * @param {string} args.title Current certificate title.\n * @param {string} args.sequentialId Next certificate sequential ID.\n * @param {string} args.background Current background color setting.\n * @param {number} args.height Current height setting.\n * @param {number[]} args.margins Current margins setting.\n * @param {string} args.orientation Current orientation setting.\n * @param {string} args.size Current size setting.\n * @param {string} args.unit Current unit setting.\n * @param {number} args.width Current wfidth setting.\n * @return {PluginDocumentSettingPanel} The component.\n */\nfunction CertificateDocumentSettings( { type, title, sequentialId, background, height, margins, orientation, size, unit, width } ) {\n\treturn (\n\n\t\t\n\n\t\t\t\n\t\t\t\t \n\t\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t{ 'llms_certificate' === type && (\n\t\t\t\t<>\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t>\n\t\t\t) }\n\n\t\t \n\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select ) => {\n\tconst { getEditedPostAttribute } = select( editorStore );\n\n\treturn {\n\t\ttype: getEditedPostAttribute( 'type' ),\n\t\ttitle: getEditedPostAttribute( 'certificate_title' ),\n\t\tsequentialId: getEditedPostAttribute( 'certificate_sequential_id' ),\n\t\tbackground: getEditedPostAttribute( 'certificate_background' ),\n\t\theight: getEditedPostAttribute( 'certificate_height' ),\n\t\tmargins: getEditedPostAttribute( 'certificate_margins' ),\n\t\torientation: getEditedPostAttribute( 'certificate_orientation' ),\n\t\tsize: getEditedPostAttribute( 'certificate_size' ),\n\t\tunit: getEditedPostAttribute( 'certificate_unit' ),\n\t\twidth: getEditedPostAttribute( 'certificate_width' ),\n\t};\n} );\n\nexport default compose( [ applyWithSelect ] )(\n\tCertificateDocumentSettings\n);\n","import { dispatch } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Make changes to a custom field of a certificate post.\n *\n * @since 6.0.0\n *\n * @param {string} key Unprefixed field key. For example, to edit \"certificate_size\", pass \"size\".\n * @param {*} val Field value.\n * @return {void}\n */\nexport default function editCertificate( key, val ) {\n\tconst { editPost } = dispatch( editorStore ),\n\t\tedits = {};\n\tedits[ `certificate_${ key }` ] = val;\n\teditPost( edits );\n}\n","import { store as coreStore } from '@wordpress/core-data';\nimport { dispatch, select, subscribe } from '@wordpress/data';\nimport { rawHandler } from '@wordpress/blocks';\nimport domReady from '@wordpress/dom-ready';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Flag used by maybeRefreshContent() to determine of the current post has been saved.\n *\n * @type {boolean}\n */\nlet hasSaved = false;\n\n/**\n * Retrieves the current media object for the certificate's featured image.\n *\n * @since 6.0.0\n *\n * @return {Object} The featured image object or an empty object if no featured image is set.\n */\nfunction getFeaturedMedia() {\n\tconst { getEditedPostAttribute } = select( editorStore ),\n\t\t{ getMedia } = select( coreStore ),\n\t\timageId = getEditedPostAttribute( 'featured_media' );\n\n\treturn imageId ? getMedia( imageId ) : {};\n}\n\n/**\n * Retrieve the source url for the certificate background image.\n *\n * Utilizes the current featured image if set otherwise falls back to the global\n * default certificate background image.\n *\n * @since 6.0.0\n *\n * @return {string} The background image source url.\n */\nfunction getBackgroundImage() {\n\tconst mediaRes = getFeaturedMedia(),\n\t\t{ default_image: defaultSrc } = window.llms.certificates;\n\n\t// Wait until the API is ready.\n\tif ( undefined === mediaRes ) {\n\t\treturn null;\n\t}\n\n\tconst { source_url: src } = mediaRes;\n\n\treturn src ? src : defaultSrc;\n}\n\n/**\n * Add inline styles to fix visual issues for certificate building.\n *\n * Forces blocks to take up the actual full-width of the certificate \"canvas\" and\n * removes margins and spacing between blocks so that what is displayed in the editor\n * more closely resembles what will be displayed on the frontend.\n *\n * @since 6.0.0\n *\n * @return {void}\n */\nfunction applyBlockVisualFixes() {\n\tconst style = document.createElement( 'style' );\n\tstyle.type = 'text/css';\n\t// Force editor style to show blocks as full width.\n\tstyle.appendChild( document.createTextNode( '.editor-styles-wrapper .wp-block { max-width: 100% !important; }' ) );\n\t// Force editor block spacing to more closely resemble rendering on the frontend.\n\tstyle.appendChild( document.createTextNode( '.editor-styles-wrapper [data-block], .wp-block { margin-top: 0 !important; margin-bottom: 0 !important }' ) );\n\tdocument.head.appendChild( style );\n}\n\n/**\n * Determines whether or not the current post has a certificate title block.\n *\n * @since 6.0.0\n *\n * @see {@link https://github.com/WordPress/gutenberg/issues/37540}\n *\n * @return {boolean} Returns `true` if the post has the block and `false` if it doesn't.\n */\nfunction hasCertificateTitle() {\n\tconst { getInserterItems } = select( blockEditorStore );\n\n\t// Using this method in favor of `canInsertBlockType()` due to this: https://github.com/WordPress/gutenberg/issues/37540.\n\tconst { isDisabled } = getInserterItems().find( ( { name } ) => 'llms/certificate-title' === name );\n\treturn isDisabled;\n}\n\n/**\n * Sync saved content with displayed content.\n *\n * We process merge codes, shortcodes and reusable blocks server-side when a published `llms_my_certificate` is updated.\n * When the content is returned from the server, it is not updated in the block editor (it's assumed that\n * the content doesn't change).\n *\n * This function waits until a save has been processed and then determines if the editor's content should be updated\n * by looking for merge codes, shortcodes or reusable blocks in the editor's content. If any are found in the editor's\n * content and none are found in the post's content as returned from the server it will update the editor's\n * content with the content returned from the server.\n *\n * @since 6.0.0\n * @since 6.4.0 Added refresh if the edited content contains a WordPress reusable block.\n *\n * @see {@link https://github.com/WordPress/gutenberg/issues/26763}\n *\n * @param {string} content Post content as returned from the server.\n * @param {string} editedContent Post content currently found in the editor.\n * @return {void}\n */\nfunction maybeRefreshContent( content, editedContent ) {\n\tconst { isSavingPost } = select( editorStore ),\n\t\tisSaving = isSavingPost();\n\n\t// @see {@link https://github.com/WordPress/gutenberg/issues/17632#issuecomment-583772895}\n\tif ( isSaving ) {\n\t\thasSaved = true;\n\t} else if ( ! isSaving && hasSaved ) {\n\t\thasSaved = false;\n\n\t\tconst REGEX = /(\\{[A-Za-z_].*\\})|(\\[llms-user .+]|())/g,\n\t\t\tactualMatch = content.match( REGEX ),\n\t\t\teditedMatch = editedContent.match( REGEX );\n\n\t\tif ( editedMatch?.length && ! actualMatch?.length ) {\n\t\t\trefreshContent( content );\n\t\t}\n\t}\n}\n\n/**\n * Replace the content in the editor with the specified content.\n *\n * @since 6.0.0\n *\n * @param {string} content HTML/Block markup string.\n * @return {void}\n */\nfunction refreshContent( content ) {\n\tconst { replaceBlocks } = dispatch( blockEditorStore ),\n\t\t{ savePost } = dispatch( editorStore ),\n\t\t{ getBlocks } = select( blockEditorStore );\n\n\treplaceBlocks(\n\t\tgetBlocks().map( ( { clientId } ) => clientId ),\n\t\trawHandler( { HTML: content } )\n\t);\n\n\tsavePost();\n}\n\n/**\n * Updates to the the editor \"canvas\" to reflect certificate settings.\n *\n * Sets the width, margins, background image, color, etc...\n *\n * @since 6.0.0\n *\n * @return {void}\n */\nfunction updateDOM() {\n\tconst { getCurrentPostAttribute, getEditedPostAttribute, getCurrentPostType } = select( editorStore ),\n\t\tbg = getEditedPostAttribute( 'certificate_background' ),\n\t\tmargins = getEditedPostAttribute( 'certificate_margins' ),\n\t\twidth = getEditedPostAttribute( 'certificate_width' ),\n\t\theight = getEditedPostAttribute( 'certificate_height' ),\n\t\tunit = getEditedPostAttribute( 'certificate_unit' ),\n\t\torientation = getEditedPostAttribute( 'certificate_orientation' ),\n\t\tcontent = getCurrentPostAttribute( 'content' ),\n\t\teditedContent = getEditedPostAttribute( 'content' );\n\n\tconst list = document.querySelector( '.block-editor-block-list__layout.is-root-container' );\n\tif ( list ) {\n\t\tconst displayWidth = 'portrait' === orientation ? width : height,\n\t\t\tdisplayHeight = 'portrait' === orientation ? height : width,\n\t\t\tpadding = margins.map( ( margin ) => `${ margin }%` ).join( ' ' );\n\n\t\tlist.style.backgroundImage = `url( '${ getBackgroundImage() }' )`;\n\t\tlist.style.backgroundSize = `${ displayWidth }${ unit } ${ displayHeight }${ unit }`;\n\t\tlist.style.backgroundRepeat = 'no-repeat';\n\t\tlist.style.marginLeft = 'auto';\n\t\tlist.style.marginRight = 'auto';\n\t\tlist.style.padding = padding;\n\t\tlist.style.width = `${ displayWidth }${ unit }`;\n\t\tlist.style.minHeight = `${ displayHeight }${ unit }`;\n\t\tlist.style.boxSizing = 'border-box';\n\t}\n\n\tconst styles = document.querySelector( '.editor-styles-wrapper' );\n\tif ( styles ) {\n\t\tstyles.style.backgroundColor = bg;\n\t}\n\n\tif ( 'llms_my_certificate' === getCurrentPostType() ) {\n\t\tmaybeRefreshContent( content, editedContent );\n\n\t\t// Visually hide the post title element based on the presence of the cert title block.\n\t\tconst title = document.querySelector( '.edit-post-visual-editor__post-title-wrapper' );\n\t\tif ( title ) {\n\t\t\ttitle.style.display = hasCertificateTitle() ? 'none' : 'initial';\n\t\t}\n\t}\n}\n\ndomReady( () => {\n\tapplyBlockVisualFixes();\n\n\tsubscribe( updateDOM );\n} );\n","import { addFilter } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\nimport { subscribe, select } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Wait for the current post type to load and unsubscribe as soon as we have a post type.\n *\n * This subscription \"translates\" the \"Move to trash\" button to \"Delete permanently\".\n *\n * @since 6.0.0\n */\nconst unsubscribe = subscribe( () => {\n\tconst { getCurrentPostType } = select( editorStore ),\n\t\tpostType = getCurrentPostType();\n\n\tif ( null !== postType ) {\n\t\tdoUnsubscribe( 'llms_my_certificate' === postType );\n\t}\n} );\n\n/**\n * Performs unsubscribe on the subscription and optionally applies the desired translation.\n *\n * @since 6.0.0\n *\n * @param {boolean} withFilter Whether or not the addFilter call should be applied.\n * @return {void}\n */\nfunction doUnsubscribe( withFilter ) {\n\tunsubscribe();\n\n\tif ( ! withFilter ) {\n\t\treturn;\n\t}\n\n\taddFilter( 'i18n.gettext_default', 'llms/certificates', function( text ) {\n\t\tif ( 'Move to trash' === text ) {\n\t\t\treturn __( 'Delete permanently', 'lifterlms' );\n\t\t}\n\n\t\treturn text;\n\t} );\n}\n\n","// WP deps.\nimport { registerPlugin } from '@wordpress/plugins';\n\n// Internal deps.\nimport './editor';\nimport './i18n';\nimport './merge-codes';\nimport './migrate';\nimport './modify-blocks';\nimport './notices';\nimport CertificateDocumentSettings from './document-settings';\nimport CertificatePostStatusInfo from './post-status-info';\nimport CertificateUserSettings from './user-settings';\n\n/**\n * Register the document settings plugin with the block editor.\n *\n * @since 6.0.0\n */\nregisterPlugin(\n\t'llms-certificate-doc-settings',\n\t{\n\t\trender: CertificateDocumentSettings,\n\t\ticon: '',\n\t}\n);\n\n/**\n * Registers the awarded certificate user selection / display control.\n *\n * @since 6.0.0\n */\nregisterPlugin(\n\t'llms-certificate-user',\n\t{\n\t\trender: CertificateUserSettings,\n\t}\n);\n\n/**\n * Registers the certificate default template reset button.\n *\n * @since 6.0.0\n */\nregisterPlugin(\n\t'llms-certificate-post-status-info',\n\t{\n\t\trender: CertificatePostStatusInfo,\n\t}\n);\n","// WP deps.\nimport { __ } from '@wordpress/i18n';\nimport { RichTextToolbarButton } from '@wordpress/block-editor';\nimport { Button, Modal } from '@wordpress/components';\nimport { registerFormatType, insert } from '@wordpress/rich-text';\nimport { useState } from '@wordpress/element';\n\nimport { CopyButton } from '@lifterlms/components';\nimport { Icon, lifterlms } from '@lifterlms/icons';\n\n/**\n * Displays a single for a merge code.\n *\n * @since 6.0.0\n *\n * @param {Object} args Component arguments.\n * @param {Function} args.closeModal Function to close the modal.\n * @param {Function} args.onChange RichText change callback function, used to insert\n * the merge code into the current RichText area in the editor.\n * @param {Object} args.value Current value object of the RichText element.\n * @return {WPElement} The table row component.\n */\nfunction MergeCodeTableRow( { closeModal, onChange, value } ) {\n\tconst { merge_codes: list } = window.llms.certificates;\n\n\treturn Object.entries( list ).map( ( [ code, name ], index ) => {\n\t\treturn (\n\t\t\t \n\t\t\t\t{ name } \n\t\t\t\t\n\t\t\t\t\t \n\t\t\t\t \n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\tonChange( insert( value, code ) );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert', 'lifterlms' ) }\n\t\t\t\t\t \n\t\t\t\t \n\t\t\t \n\t\t);\n\t} );\n}\n\n/**\n * RichText format edit component.\n *\n * @since 6.0.0\n *\n * @param {Object} props Component properties.\n * @return {WPElement} The component.\n */\nfunction Edit( props ) {\n\tconst [ isOpen, setOpen ] = useState( false ),\n\t\topenModal = () => setOpen( true ),\n\t\tcloseModal = () => setOpen( false ),\n\t\t{ value, onChange } = props;\n\n\treturn (\n\t\t<>\n\t\t\t }\n\t\t\t\ttitle={ __( 'Merge Codes', 'lifterlms' ) }\n\t\t\t\tonClick={ openModal }\n\t\t\t/>\n\n\t\t\t{ isOpen && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{ __( 'Name', 'lifterlms' ) } \n\t\t\t\t\t\t\t\t\t{ __( 'Merge code', 'lifterlms' ) } \n\t\t\t\t\t\t\t\t\t{ __( 'Insert', 'lifterlms' ) } \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t \n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t \n\t\t\t) }\n\t\t>\n\t);\n}\n\n/**\n * Register a RichText format with the block editor.\n *\n * @since 6.0.0\n */\nregisterFormatType( 'llms/certificate-merge-codes', {\n\ttitle: __( 'LifterLMS Certificate Merge Codes', 'lifterlms' ),\n\ttagName: 'span',\n\tclassName: 'llms-cert-mc-wrap',\n\tedit: Edit,\n} );\n","import { subscribe, select, dispatch } from '@wordpress/data';\nimport { rawHandler, serialize } from '@wordpress/blocks';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Wait for the current post type to load and unsubscribe as soon as we have a post type.\n *\n * This subscription \"translates\" the \"Move to trash\" button to \"Delete permanently\".\n *\n * @since 6.0.0\n */\nconst unsubscribe = subscribe( () => {\n\tconst search = new URLSearchParams( window.location.search ),\n\t\tdoMigration = 1 === parseInt( search.get( 'llms-migrate-legacy-certificate' ) );\n\n\tif ( ! doMigration ) {\n\t\treturn doUnsubscribe( false );\n\t}\n\n\tconst blocks = getAllBlocks();\n\n\tif ( 0 !== blocks.length ) {\n\t\tdoUnsubscribe( true );\n\t}\n} );\n\n/**\n * Performs unsubscribe on the subscription and optionally migrates classic editor blocks.\n *\n * @since 6.0.0\n *\n * @param {boolean} withMigration Whether or not to perform the classic editor migration.\n * @return {void}\n */\nfunction doUnsubscribe( withMigration ) {\n\tunsubscribe();\n\n\tif ( ! withMigration ) {\n\t\treturn;\n\t}\n\n\tmigrateClassicBlock();\n}\n\n/**\n * Helper to retrieve a list of all blocks.\n *\n * @since 6.0.0\n *\n * @return {WPBlock[]} Array of blocks.\n */\nfunction getAllBlocks() {\n\tconst { getBlocks } = select( blockEditorStore );\n\treturn getBlocks();\n}\n\n/**\n * Performs a migration on all classic editor blocks.\n *\n * This performs logic largely similar to the classic blocks \"Convert to Blocks\"\n * button. Also forces a post update after migrating.\n *\n * @since 6.0.0\n *\n * @see {@link https://github.com/WordPress/gutenberg/blob/trunk/packages/block-library/src/freeform/convert-to-blocks-button.js}\n *\n * @return {void}\n */\nfunction migrateClassicBlock() {\n\tconst classics = getAllBlocks().filter( ( { name } ) => 'core/freeform' === name );\n\n\tif ( 0 === classics.length ) {\n\t\treturn;\n\t}\n\n\tconst { replaceBlocks } = dispatch( blockEditorStore ),\n\t\t{ savePost } = dispatch( editorStore );\n\n\tclassics.forEach( ( block ) => {\n\t\treplaceBlocks(\n\t\t\tblock.clientId,\n\t\t\trawHandler( { HTML: serialize( block ) } )\n\t\t);\n\t} );\n\n\tsavePost();\n}\n\n","// WP Deps.\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Modifies the registration of the core/columns block.\n *\n * I cannot find a way to disable the toggle in the block's inspector panel, nor\n * can I determine the proper way to simply define the block's default attribute value\n * as `false`. By setting the variations to all have the default value it will\n * ensure that any new columns added to a certificate will have mobile stacking disabled.\n * Users will still be able to enable this via the admin UI but since there's no way\n * to disable the toggle we'll have to accept that. Realistically it won't have much impact\n * anyway but it would be good to be able to disable it.\n *\n * @since 6.0.0\n *\n * @see {@link https://github.com/gocodebox/lifterlms/issues/1972}\n *\n * @param {Object} settings Block registration settings.\n * @param {string} blockName The block's name.\n * @return {Object} Block registration settings.\n */\nfunction modifyColumnsBlock( settings, blockName ) {\n\tif ( 'core/columns' === blockName ) {\n\t\t// Force all the existing columns block variation to have mobile stacking disabled by default.\n\t\tsettings.variations = settings.variations.map( ( variation ) => {\n\t\t\tconst { attributes = {} } = variation;\n\t\t\tvariation.attributes = {\n\t\t\t\t...attributes,\n\t\t\t\tisStackedOnMobile: false,\n\t\t\t};\n\t\t\treturn variation;\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'llms/certificate-editor/columns-block',\n\tmodifyColumnsBlock,\n);\n","import { __ } from '@wordpress/i18n';\nimport { dispatch } from '@wordpress/data';\nimport domReady from '@wordpress/dom-ready';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { getQueryArg } from '@wordpress/url';\n\ndomReady( () => {\n\tif ( '1' !== getQueryArg( window.location.href, 'newAwardMsg' ) ) {\n\t\treturn;\n\t}\n\n\tconst { createSuccessNotice } = dispatch( noticeStore );\n\n\tcreateSuccessNotice( __( 'The certificate award has been created as a draft.', 'lifterlms' ) );\n} );\n","import { useSetting } from '@wordpress/block-editor';\nimport { BaseControl, ColorPalette } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\nimport editCertificate from '../edit-certificate';\n\n/**\n * Retrieves a color palette for use in the background control component.\n *\n * Attempts to use the theme's color palette (if available) and falls back\n * to the color palette provided by the LifterLMS plugin.\n *\n * Additionally converts all hexcodes to lowercase to enforce consistency\n * across themes which may store hexcodes in upper or lower case.\n *\n * @see {@link https://developer.wordpress.org/block-editor/how-to-guides/themes/theme-support/#block-color-palettes}\n *\n * @since 6.0.0\n *\n * @return {Object[]} Array of color palette objects.\n */\nfunction usePalette() {\n\tlet palette = useSetting( 'color.palette' );\n\n\t// Use default LifterLMS colors if there's none specified by the theme.\n\tif ( ! palette.length ) {\n\t\tpalette = window.llms.certificates.colors;\n\t}\n\n\treturn palette.map( ( item ) => {\n\t\tconst { color } = item;\n\t\treturn {\n\t\t\t...item,\n\t\t\tcolor: color.startsWith( '#' ) ? color.toLowerCase() : color,\n\t\t};\n\t} );\n}\n\n/**\n * Certificate background color control.\n *\n * @since 6.0.0\n *\n * @param {Object} args Function arguments object.\n * @param {string} args.background Value of the background color.\n * @return {BaseControl} The background control component.\n */\nexport default function BackgroundControl( { background } ) {\n\tconst [ color, setColor ] = useState( background );\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\tsetColor( val );\n\t\t\t\t\teditCertificate( 'background', val );\n\t\t\t\t} }\n\t\t\t\tvalue={ color }\n\t\t\t\tclearable={ false }\n\t\t\t/>\n\t\t \n\t);\n}\n","// External dependencies.\nimport styled from '@emotion/styled';\n\n// WordPress dependencies.\nimport { BaseControl, TextControl } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n// Internal dependencies.\nimport editCertificate from '../edit-certificate';\n\n/**\n * Retrieve a description for the margin based on it's index in the margins array.\n *\n * @since 6.0.0\n *\n * @param {number} index Index of the margin.\n * @return {string} Margin description.\n */\nfunction getDesc( index ) {\n\tconst vals = [\n\t\t__( 'Top', 'lifterlms' ),\n\t\t__( 'Right', 'lifterlms' ),\n\t\t__( 'Bottom', 'lifterlms' ),\n\t\t__( 'Left', 'lifterlms' ),\n\t];\n\n\treturn vals[ index ];\n}\n\n/**\n * Styled Text Control\n *\n * @since 6.0.0\n */\nconst StyledTextControl = styled( TextControl )`\n\t& .components-base-control__field {\n\t\tposition: relative;\n\n\t\t&:hover:after,\n\t\t&:focus-within:after {\n\t\t right: 25px;\n\t\t}\n\n\t\t&:after {\n\t\t\tcontent: '%';\n\t\t\tfont-size: 85%;\n\t\t\tpointer-events: none;\n\t\t\tposition: absolute;\n\t\t\tright: 6px;\n\t\t\ttop: 6px;\n\t\t\ttransition: right 0.05s ease-in-out;\n\t\t}\n\t}\n`;\n\n/**\n * Single margin control component.\n *\n * @since 6.0.0\n *\n * @param {Object} args Component arguments.\n * @param {number} args.margin Current value of the margin.\n * @param {number} args.index Index of the margin.\n * @param {Function} args.editMargins Function used to update the margins.\n * @return {WPElement} Component.\n */\nfunction MarginControl( { margin, index, editMargins } ) {\n\tconst [ currMargin, setMargin ] = useState( margin ),\n\t\tmarginId = [ 'top', 'right', 'bottom', 'left' ][ index ];\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\teditMargins( val, index, setMargin );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ getDesc( index ) } \n\t\t
\n\t);\n}\n\n/**\n * Certificate margins control.\n *\n * @since 6.0.0\n *\n * @param {Object} args Function arguments object.\n * @param {number[]} args.margins Array of numbers representing the certificate's margins.\n * @return {BaseControl} The background control component.\n */\nexport default function MarginsControl( { margins } ) {\n\tconst editMargins = ( val, index, setState ) => {\n\t\tconst newMargins = [ ...margins ];\n\t\tnewMargins[ index ] = val;\n\n\t\tsetState( val );\n\t\teditCertificate( 'margins', newMargins );\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ margins.map( ( margin, index ) => ( ) ) }\n\t\t\t
\n\t\t \n\t);\n}\n","import { __ } from '@wordpress/i18n';\n\nimport { ButtonGroupControl } from '@lifterlms/components';\n\nimport editCertificate from '../edit-certificate';\n\n/**\n * Certificates orientation control component.\n *\n * @since 6.0.0\n *\n * @param {Object} args Component arguments.\n * @param {string} args.orientation Currently selected orientation value.\n * @return {ButtonGroupControl} Control component.\n */\nexport default function OrientationControl( { orientation } ) {\n\tconst { orientations } = window.llms.certificates,\n\t\toptions = Object.entries( orientations ).map( ( [ value, label ] ) => ( { value, label } ) );\n\n\treturn (\n\t\t editCertificate( 'orientation', val ) }\n\t\t/>\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { TextControl } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\nimport editCertificate from '../edit-certificate';\n\n/**\n * Certificates next sequential id control component.\n *\n * @since 6.0.0\n *\n * @param {Object} args Component arguments.\n * @param {string} args.sequentialId Current sequential ID.\n * @return {TextControl} Control component.\n */\nexport default function SequentialIdControl( { sequentialId } ) {\n\tconst [ currId, setId ] = useState( sequentialId );\n\n\tlet { minSequentialId } = window.llms.certificates;\n\n\tif ( ! minSequentialId ) {\n\t\tminSequentialId = sequentialId;\n\t\twindow.llms.certificates.minSequentialId = minSequentialId;\n\t}\n\n\treturn (\n\t\t {\n\t\t\t\tsetId( val );\n\t\t\t\teditCertificate( 'sequential_id', val );\n\t\t\t} }\n\t\t\thelp={ __( 'Used for the {sequential_id} merge code when generating a certificate from this template.', 'lifterlms' ) }\n\t\t/>\n\t);\n}\n","import { __, _x, sprintf } from '@wordpress/i18n';\nimport { SelectControl, TextControl } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\nimport editCertificate from '../edit-certificate';\n\n/**\n * Format the label for a size in the SizeControl.\n *\n * @since 6.0.0\n *\n * @param {Object} args Component args.\n * @param {string} args.name Name of the size.\n * @param {number} args.width Size width.\n * @param {number} args.height Size height.\n * @param {string} args.unit Size unit ID.\n * @return {string} Label for the size.\n */\nfunction formatSizeLabel( { name, width, height, unit } ) {\n\tconst { units } = window.llms.certificates,\n\t\t{ symbol } = units[ unit ] || {};\n\treturn sprintf( '%1$s (%2$s%4$s x %3$s%4$s)', name, width, height, symbol );\n}\n\n/**\n * Control component group for defining a custom size.\n *\n * @since 6.0.0\n *\n * @param {Object} args Component args.\n * @param {number} args.width Current width.\n * @param {number} args.height Current height.\n * @param {string} args.unit Current unit ID.\n * @return {WPElement} The component.\n */\nfunction CustomSizeControl( { width, height, unit } ) {\n\tconst [ currWidth, setWidth ] = useState( width ),\n\t\t[ currHeight, setHeight ] = useState( height ),\n\t\t[ currUnit, setUnit ] = useState( unit );\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t {\n\t\t\t\t\t\tsetWidth( val );\n\t\t\t\t\t\teditCertificate( 'width', val );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t
\n\t\t\t
\n\t\t\t\t {\n\t\t\t\t\t\tsetHeight( val );\n\t\t\t\t\t\teditCertificate( 'height', val );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t
\n\t\t\t
\n\t\t\t\t {\n\t\t\t\t\t\tsetUnit( val );\n\t\t\t\t\t\teditCertificate( 'unit', val );\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ value: 'in', label: __( 'in (Inches)', 'lifterlms' ) },\n\t\t\t\t\t\t{ value: 'mm', label: __( 'mm (Millimeters)', 'lifterlms' ) },\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t
\n\t\t
\n\t);\n}\n\n/**\n * Size control selector.\n *\n * @since 6.0.0\n *\n * @param {Object} args Component args.\n * @param {string} args.size Selected size ID.\n * @param {number} args.width Current width.\n * @param {number} args.height Current height.\n * @param {string} args.unit Current unit.\n * @return {WPElement} Component.\n */\nexport default function SizeControl( { size: selected, width, height, unit } ) {\n\tconst { sizes } = window.llms.certificates,\n\t\toptions = Object.entries( sizes ).map( ( [ value, sizeData ] ) => ( { value, label: formatSizeLabel( sizeData ) } ) ),\n\t\t[ size, setSize ] = useState( selected );\n\n\toptions.push( {\n\t\tvalue: 'CUSTOM',\n\t\tlabel: _x( 'Custom', 'certificate sizing option', 'lifterlms' ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t {\n\t\t\t\t\tsetSize( val );\n\t\t\t\t\teditCertificate( 'size', val );\n\n\t\t\t\t\t// Update other fields so that when switching to custom it always shows the previously selected size data.\n\t\t\t\t\tif ( 'CUSTOM' !== val ) {\n\t\t\t\t\t\tconst newSize = sizes[ val ];\n\t\t\t\t\t\teditCertificate( 'unit', newSize.unit );\n\t\t\t\t\t\teditCertificate( 'width', newSize.width );\n\t\t\t\t\t\teditCertificate( 'height', newSize.height );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t{ 'CUSTOM' === size && ( ) }\n\n\t\t>\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { TextControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nimport editCertificate from '../edit-certificate';\n\n/**\n * Determine if the TitleControl should be displayed.\n *\n * The control is not available for `llms_my_certificate` post types at all and is not used\n * when a `lifterlms/certificate-title` block is found in the content of an `llms_certificate`\n * post type.\n *\n * @since 6.0.0\n *\n * @param {Object} props Component properties.\n * @param {WPElement[]} props.children Child components.\n * @return {?WPElement[]} Child components list or `null` if the components shouldn't display.\n */\nexport function Check( { children } ) {\n\tconst { getCurrentPostType } = useSelect( editorStore ),\n\t\t{ getInserterItems } = useSelect( blockEditorStore );\n\n\tif ( 'llms_certificate' !== getCurrentPostType() ) {\n\t\treturn null;\n\t}\n\n\t// Using this method in favor of `canInsertBlockType()` due to this: https://github.com/WordPress/gutenberg/issues/37540.\n\tconst { isDisabled } = getInserterItems().find( ( { name } ) => 'llms/certificate-title' === name );\n\tif ( isDisabled ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\n/**\n * Certificates title control component.\n *\n * @since 6.0.0\n *\n * @param {Object} args Component arguments.\n * @param {string} args.title Currently selected title value.\n * @return {TextControl} Control component.\n */\nexport default function TitleControl( { title } ) {\n\treturn (\n\t\t editCertificate( 'title', val ) }\n\t\t\thelp={ __( 'Used as the title for certificates generated from this template.', 'lifterlms' ) }\n\t\t/>\n\t);\n}\n","import { AwardCheck } from './award-check';\nimport { AwardCertificateButton } from '../../util';\n\n/**\n * Renders a button / modal interface used to generate awarded certificates.\n *\n * @since 6.0.0\n *\n * @param {Object} params Component options.\n * @param {number} params.postId WP_Post ID of the template.\n * @param {string} params.postType Current post type where the button is being displayed.\n * @param {boolean} params.isSaving Whether or not the editor is currently saving.\n * @param {boolean} params.isPublished Whether or not the current post is published.\n * @return {AwardCheck} Check component which conditionally renders the component.\n */\nexport default function( { postId, postType, isSaving, isPublished } ) {\n\treturn (\n\t\t\n\t\t\t \n\t\t \n\t);\n}\n\n","/**\n * Conditional wrapper component used to determine if the AwardFromTemplate component should be rendered.\n *\n * The component is rendered for certificate templates.\n *\n * @since 6.0.0\n *\n * @param {Object} params Component parameters.\n * @param {Object[]} params.postType Current post type.\n * @param {Object[]} params.children Child components.\n * @return {?Object[]} Returns the children or `null` if the check fails.\n */\nexport function AwardCheck( { postType, children } ) {\n\tif ( postType && 'llms_certificate' === postType ) {\n\t\treturn children;\n\t}\n\treturn null;\n}\n","import { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { PluginPostStatusInfo } from '@wordpress/edit-post';\nimport { store as editorStore } from '@wordpress/editor';\n\nimport AwardButton from './award-button';\nimport ResetButton from './reset-template-button';\n\n/**\n * Renders a button / modal interface used to generate awarded certificates.\n *\n * @since 6.0.0\n *\n * @param {Object} params Component options.\n * @param {boolean} params.isPublished Whether or not the current post is published.\n * @param {boolean} params.isSaving Whether or not the editor is currently saving.\n * @param {number} params.postId WP_Post ID of the template.\n * @param {string} params.postType Current post type where the button is being displayed.\n * @return {PluginPostStatusInfo} The status info component.\n */\nexport function PluginStatusButtons( { isPublished, isSaving, postId, postType } ) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t \n\t\t\t\t
\n\t\t\t
\n\t\t \n\t);\n}\n\nexport default compose( [\n\twithSelect( ( wpSelect ) => {\n\t\tconst {\n\t\t\tisSavingPost,\n\t\t\tisCurrentPostPublished,\n\t\t\tgetCurrentPostId,\n\t\t\tgetCurrentPostType,\n\t\t} = wpSelect( editorStore );\n\t\treturn {\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisSaving: isSavingPost(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tpostType: getCurrentPostType(),\n\t\t};\n\t} ),\n] )( PluginStatusButtons );\n","import { __ } from '@wordpress/i18n';\nimport { Button, Modal } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { dispatch, select } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as editorStore } from '@wordpress/editor';\nimport { synchronizeBlocksWithTemplate } from '@wordpress/blocks';\nimport { doAction } from '@wordpress/hooks';\n\nimport { ResetTemplateCheck } from './reset-template-check';\nimport { editCertificateTitle } from '../../util';\n\n/**\n * Resets the post's default post type template and then triggers a save action.\n *\n * @since 6.0.0\n * @param {Function} onComplete Callback function invoked when the reset and save actions are completed.\n * @param {boolean} isPublished Determines if the current post is published.\n * @return {void}\n */\nfunction resetTemplate( onComplete, isPublished ) {\n\tconst { getBlocks, getTemplate } = select( blockEditorStore ),\n\t\t{ replaceBlocks, insertBlocks } = dispatch( blockEditorStore ),\n\t\t{ editPost, savePost } = dispatch( editorStore ),\n\t\tclientIds = getBlocks().map( ( { clientId } ) => clientId ),\n\t\ttemplate = synchronizeBlocksWithTemplate( [], getTemplate() );\n\n\teditCertificateTitle( '' );\n\tif ( isPublished ) {\n\t\teditPost( { status: 'draft' } );\n\t}\n\n\t/**\n\t * Action run before the default certificate post type template is reset.\n\t *\n\t * @since 6.0.0\n\t *\n\t * @param {Array} template Block template array.\n\t */\n\tdoAction( 'llms.resetCertificateTemplate.before', template );\n\n\tif ( clientIds.length ) {\n\t\treplaceBlocks( clientIds, template );\n\t} else {\n\t\tinsertBlocks( template );\n\t}\n\n\t/**\n\t * Action run after the default certificate post type template is reset.\n\t *\n\t * @since 6.0.0\n\t *\n\t * @param {Array} template Block template array.\n\t */\n\tdoAction( 'llms.resetCertificateTemplate.after', template );\n\n\tsavePost();\n\tonComplete();\n}\n\n/**\n * Resets a certificate to the default block template defined during post type registration.\n *\n * Renders a \"Reset template\" button near the \"Move to trash\" button in the post status\n * area of the editor document settings sidebar.\n *\n * @since 6.0.0\n *\n * @param {Object} props Component properties.\n * @param {boolean} props.isSaving Whether or not the post is currently being saved. The main button is disabled during saves.\n * @param {boolean} props.isPublished Whether or not the post is currently published. If the post is published, it will be switched to a draft during the reset.\n *\n * @return {?ResetTemplateCheck} Returns the child components to render or `null` if the button should not be displayed.\n */\nexport default function( { isSaving, isPublished } ) {\n\tconst [ isOpen, setIsOpen ] = useState( false ),\n\t\tcloseModal = () => setIsOpen( false ),\n\t\topenModal = () => setIsOpen( true );\n\n\tlet msg = __( 'Are you sure you wish to replace the certificate content with the original default layout? This action cannot be undone!', 'lifterlms' );\n\tif ( isPublished ) {\n\t\tmsg = __( \"Are you sure you wish to unpublish the certificate and replace it's content with the original default layout? This action cannot be undone!\", 'lifterlms' );\n\t}\n\n\treturn (\n\t\t\n\t\t\t{ isOpen && (\n\t\t\t\t\n\t\t\t\t\t{ msg }
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ __( 'Cancel', 'lifterlms' ) }\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t\t resetTemplate( closeModal, isPublished ) }>\n\t\t\t\t\t\t\t{ __( 'Reset template', 'lifterlms' ) }\n\t\t\t\t\t\t \n\t\t\t\t\t
\n\t\t\t\t \n\t\t\t) }\n\t\t\t{ __( 'Reset template', 'lifterlms' ) } \n\t\t \n\t);\n}\n","import { useSelect } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Conditional wrapper component used to determine if the ResetTemplate component should be rendered.\n *\n * The component is rendered for certificate templates and awarded certificates so long as the template\n * is *not* connected to a template.\n *\n * @since 6.0.0\n *\n * @param {Object} params Component parameters.\n * @param {Object[]} params.children Child components.\n * @return {?Object[]} Returns the children or `null` if the check fails.\n */\nexport function ResetTemplateCheck( { children } ) {\n\tconst { getCurrentPost } = useSelect( editorStore ),\n\t\tpost = getCurrentPost(),\n\t\t{ type, certificate_template: template } = post;\n\n\tif ( type && ( 'llms_certificate' === type || ( 'llms_my_certificate' === type && 0 === template ) ) ) {\n\t\treturn children;\n\t}\n\n\treturn null;\n}\n","// External deps.\nimport styled from '@emotion/styled';\n\n// WP deps.\nimport { __ } from '@wordpress/i18n';\nimport { PanelRow, ExternalLink } from '@wordpress/components';\nimport { compose } from '@wordpress/compose';\nimport { withSelect, dispatch, useSelect } from '@wordpress/data';\nimport { PluginPostStatusInfo } from '@wordpress/edit-post';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { addQueryArgs, getQueryArg } from '@wordpress/url';\n\n// Internal deps.\nimport { UserSearchControl } from '@lifterlms/components';\n\n/**\n * Force the PanelRow to full-width.\n *\n * @since 6.0.0\n */\nexport const StyledPanelRow = styled( PanelRow )`\n\twidth: 100%;\n`;\n\n/**\n * Outputs information about the selected user.\n *\n * This component is displayed for published certificates in place of the .\n *\n * @since 6.0.0\n *\n * @param {Object} args Component arguments.\n * @param {Object} args.userId WP_User ID of the selected user.\n * @return {WPElement|ExternalLink} Returns a generic element with loading text or an ExternalLink component linking to the\n * the WP admin user edit screen for the selected user.\n */\nfunction SelectedUser( { userId } ) {\n\tconst name = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord } = select( coreStore ),\n\t\t\t\tuser = getEntityRecord( 'root', 'user', userId );\n\t\t\treturn user?.name;\n\t\t},\n\t\t[ userId ]\n\t);\n\n\tif ( ! name ) {\n\t\treturn (\n\t\t\t{ __( 'Loading…', 'lifterlms' ) } \n\t\t);\n\t}\n\n\treturn ( { name } );\n}\n\n/**\n * Render the certificate settings editor panel.\n *\n * @since 6.0.0\n *\n * @param {Object} args Component arguments.\n * @param {string} args.type Current post type.\n * @param {number} args.userId WP User Id.\n * @param {boolean} args.isNew Whether the current post has never been saved.\n * @return {?PluginPostStatusInfo} The component or `null` when rendered in an invalid context.\n */\nfunction CertificateUserSettings( { type, userId, isNew } ) {\n\t// Only load for the right post type.\n\tif ( 'llms_my_certificate' !== type ) {\n\t\treturn null;\n\t}\n\n\t// Retrieve the user ID from the URL.\n\tconst forceId = getQueryArg( window.location.href, 'sid' );\n\tuserId = forceId ? forceId : userId;\n\n\treturn (\n\n\t\t\n\t\t\t\n\t\t\t\t{ __( 'Student', 'lifterlms' ) } \n\n\t\t\t\t{ ( ! isNew || forceId ) && (\n\t\t\t\t\t \n\t\t\t\t) }\n\t\t\t\t{ ( isNew && ! forceId ) && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tconst { editPost } = dispatch( editorStore );\n\t\t\t\t\t\t\teditPost(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tauthor: id, // Update the post author.\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t \n\t\t \n\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select ) => {\n\tconst { getEditedPostAttribute, isEditedPostNew } = select( editorStore );\n\treturn {\n\t\tisNew: isEditedPostNew(),\n\t\ttype: getEditedPostAttribute( 'type' ),\n\t\tuserId: getEditedPostAttribute( 'author' ),\n\t};\n} );\n\nexport default compose( [ applyWithSelect ] )(\n\tCertificateUserSettings\n);\n","// WP deps.\nimport { store as coreStore } from '@wordpress/core-data';\nimport { dispatch } from '@wordpress/data';\n\n/**\n * Creates a new awarded certificate post for a given student with a specified parent template.\n *\n * @since 6.0.0\n *\n * @param {number} studentId WP_User ID.\n * @param {number} templateId WP_Post ID.\n * @return {Promise} A promise that resolves to the WP_Post object api response on success.\n */\nexport default function( studentId, templateId ) {\n\tconst { saveEntityRecord } = dispatch( coreStore );\n\n\treturn saveEntityRecord(\n\t\t'postType',\n\t\t'llms_my_certificate',\n\t\t{\n\t\t\tauthor: studentId,\n\t\t\tcertificate_template: templateId,\n\t\t\tstatus: 'draft',\n\t\t}\n\t);\n}\n","// WP Deps.\nimport { __ } from '@wordpress/i18n';\nimport { Button, Modal } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\n// LLMS Deps.\nimport { PostSearchControl, UserSearchControl } from '@lifterlms/components';\n\n// Internal Deps.\nimport createAward from './create';\nimport getMessage from './message';\nimport { getRedirectUrl, getScratchUrl } from './urls';\n\n/**\n * Button and modal interface for creating a draft certificate from a specified template for a specific student.\n *\n * @since 6.0.0\n *\n * @param {Object} params Component configuration object.\n * @param {string} params.modalTitle Title of the modal.\n * @param {string} params.buttonLabel Text of the button.\n * @param {boolean} params.isDisabled Whether or not the button is disabled.\n * @param {boolean} params.enableScratch When `true`, displays a \"Start from Scratch\" button that links to the awarded certificate editor page.\n * @param {boolean} params.selectStudent When `true`, displays a searchable select element to allow user selection of the user.\n * @param {boolean} params.selectTemplate When `true`, displays a searchable select element to allow user selection of the template.\n * @param {?number} params.studentId WP_User ID of the student to award the certificate to.\n * @param {?number} params.templateId WP_Post ID of the certificate template post to create the certificate from.\n * @return {WPElement} The component.\n */\nexport default function( {\n\tmodalTitle = __( 'Award a New Certificate', 'lifterlms' ),\n\tbuttonLabel = __( 'Award', 'lifterlms' ),\n\tisDisabled = false,\n\tenableScratch = true,\n\tselectStudent = true,\n\tselectTemplate = true,\n\tstudentId = null,\n\ttemplateId = null,\n} ) {\n\tconst [ isOpen, setIsOpen ] = useState( false ),\n\t\t[ isBusy, setIsBusy ] = useState( false ),\n\t\t[ currStudentId, setStudentId ] = useState( studentId ),\n\t\t[ currTemplateId, setTemplateId ] = useState( templateId ),\n\t\tcloseModal = () => setIsOpen( false ),\n\t\topenModal = () => setIsOpen( true ),\n\t\tisReady = currStudentId && currTemplateId,\n\t\tonClick = () => {\n\t\t\tsetIsBusy( true );\n\t\t\tcreateAward( currStudentId, currTemplateId ).then( ( { id } ) => {\n\t\t\t\twindow.location = getRedirectUrl( id );\n\t\t\t} );\n\t\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ isOpen && (\n\t\t\t\t\n\n\t\t\t\t\t{ getMessage( selectStudent, selectTemplate ) }
\n\n\t\t\t\t\t{ selectStudent && (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tconst id = obj?.id || null;\n\t\t\t\t\t\t\t\tsetStudentId( id );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ selectTemplate && (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tconst id = obj?.id || null;\n\t\t\t\t\t\t\t\tsetTemplateId( id );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ __( 'Create Draft' ) }\n\t\t\t\t\t\t \n\n\t\t\t\t\t\t{ enableScratch && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{ __( 'Start from Scratch', 'lifterlms' ) }\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ __( 'Cancel', 'lifterlms' ) }\n\t\t\t\t\t\t \n\t\t\t\t\t
\n\t\t\t\t \n\t\t\t) }\n\t\t\t\n\t\t\t\t{ buttonLabel }\n\t\t\t \n\t\t>\n\t);\n}\n","import { __ } from '@wordpress/i18n';\n\n/**\n * Retrieves the message based on the selectors present in the modal.\n *\n * @since 6.0.0\n *\n * @param {boolean} selectStudent Whether or not the student selector is present.\n * @param {boolean} selectTemplate Whether or not the template selector is present.\n * @return {string} A message string.\n */\nexport default function( selectStudent, selectTemplate ) {\n\tlet msg = '';\n\tif ( selectStudent && selectTemplate ) {\n\t\tmsg = __( 'Create a new certificate award from the selected template for the selected student.', 'lifterlms' );\n\t} else if ( selectStudent && ! selectTemplate ) {\n\t\tmsg = __( 'Create a new certificate award from this template for the selected student.', 'lifterlms' );\n\t} else if ( ! selectStudent && selectTemplate ) {\n\t\tmsg = __( 'Create a new certificate award from the selected template for this student.', 'lifterlms' );\n\t}\n\treturn msg;\n}\n","// WP deps.\nimport { addQueryArgs } from '@wordpress/url';\n\n// LLMS deps.\nimport { getAdminUrl } from '@lifterlms/utils';\n\n/**\n * Retrieves the redirect URL for the newly created certificate.\n *\n * @since 6.0.0\n *\n * @param {number} post WP_Post ID.\n * @return {string} The edit post URL for awarded certificate draft.\n */\nexport function getRedirectUrl( post ) {\n\treturn addQueryArgs(\n\t\t`${ getAdminUrl() }/post.php`,\n\t\t{\n\t\t\tpost,\n\t\t\taction: 'edit',\n\t\t\tnewAwardMsg: 1,\n\t\t}\n\t);\n}\n\n/**\n * Retrieves the url for the \"Start from Scratch\" button.\n *\n * @since 6.0.0\n *\n * @param {?number} sid WP_User ID of the selected student.\n * @return {string} The URL.\n */\nexport function getScratchUrl( sid = null ) {\n\tconst args = {\n\t\tpost_type: 'llms_my_certificate',\n\t};\n\n\tif ( sid ) {\n\t\targs.sid = sid;\n\t}\n\n\treturn addQueryArgs(\n\t\t`${ getAdminUrl() }/post-new.php`,\n\t\targs,\n\t);\n}\n","import { dispatch, select } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Edits the title of the current certificate post type in the block editor.\n *\n * This utility is used to allow sharing functionality between `llms_certificate` and `llms_my_certificate`\n * post types. Depending on the post type, the certificate title is stored in a different post field.\n *\n * To edit the actual post title of a `llms_certificate` post (not the awarded certificate's title), use\n * `wp.data.dispatch( 'core/editor' ).editPost()` directly.\n *\n * @since 6.0.0\n *\n * @param {string} title The desired certificate title.\n * @param {string} postType The current post type, automatically reads it from the current post if omitted.\n * @return {Promise} Promise that resolves when the title edits have been made to the current post.\n */\nexport function editCertificateTitle( title, postType = null ) {\n\tif ( ! postType ) {\n\t\tconst { getCurrentPostType } = select( editorStore );\n\t\tpostType = getCurrentPostType();\n\t}\n\n\tconst { editPost } = dispatch( editorStore ),\n\t\tedits = {};\n\n\tif ( 'llms_certificate' === postType ) {\n\t\tedits.certificate_title = title;\n\t} else if ( 'llms_my_certificate' === postType ) {\n\t\tedits.title = title;\n\t}\n\n\treturn editPost( edits );\n}\n","export { editCertificateTitle } from './edit-certificate-title';\nexport { default as AwardCertificateButton } from './award-certificate-button';\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","module.exports = window[\"React\"];","module.exports = window[\"llms\"][\"components\"];","module.exports = window[\"llms\"][\"icons\"];","module.exports = window[\"llms\"][\"utils\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"compose\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"domReady\"];","module.exports = window[\"wp\"][\"editPost\"];","module.exports = window[\"wp\"][\"editor\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"hooks\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"notices\"];","module.exports = window[\"wp\"][\"plugins\"];","module.exports = window[\"wp\"][\"richText\"];","module.exports = window[\"wp\"][\"url\"];","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\t\tbreak\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && characters.charCodeAt(length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\nexport function prefix (value, length) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// flex, flex-direction\n\t\tcase 6828: case 4268:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// (s)ticky?\n\t\t\tif (charat(value, length + 1) !== 115)\n\t\t\t\tbreak\n\t\t// display: (flex|inline-flex)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n\t\t\t\t// stic(k)y\n\t\t\t\tcase 107:\n\t\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\t\t// (inline-)?fl(e)x\n\t\t\t\tcase 101:\n\t\t\t\t\treturn replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t}\n\t\t\tbreak\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t}\n\n\t\t\treturn WEBKIT + value + MS + value + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import './admin-certificate-editor/index';\n"],"names":["__","compose","withSelect","PluginDocumentSettingPanel","store","editorStore","BackgroundControl","MarginsControl","OrientationControl","SequentialIdControl","SizeControl","TitleControl","Check","TitleControlCheck","CertificateDocumentSettings","_ref","type","title","sequentialId","background","height","margins","orientation","size","unit","width","createElement","className","name","opened","Fragment","applyWithSelect","select","getEditedPostAttribute","dispatch","editCertificate","key","val","editPost","edits","coreStore","subscribe","rawHandler","domReady","blockEditorStore","hasSaved","getFeaturedMedia","getMedia","imageId","getBackgroundImage","mediaRes","default_image","defaultSrc","window","llms","certificates","undefined","source_url","src","applyBlockVisualFixes","style","document","appendChild","createTextNode","head","hasCertificateTitle","getInserterItems","isDisabled","find","maybeRefreshContent","content","editedContent","isSavingPost","isSaving","REGEX","actualMatch","match","editedMatch","length","refreshContent","replaceBlocks","savePost","getBlocks","map","_ref2","clientId","HTML","updateDOM","getCurrentPostAttribute","getCurrentPostType","bg","list","querySelector","displayWidth","displayHeight","padding","margin","join","backgroundImage","backgroundSize","backgroundRepeat","marginLeft","marginRight","minHeight","boxSizing","styles","backgroundColor","display","addFilter","unsubscribe","postType","doUnsubscribe","withFilter","text","registerPlugin","CertificatePostStatusInfo","CertificateUserSettings","render","icon","RichTextToolbarButton","Button","Modal","registerFormatType","insert","useState","CopyButton","Icon","lifterlms","MergeCodeTableRow","closeModal","onChange","value","merge_codes","Object","entries","index","code","textAlign","buttonText","copyText","onCopy","isLink","isSecondary","isSmall","onClick","Edit","props","isOpen","setOpen","openModal","onRequestClose","tagName","edit","serialize","search","URLSearchParams","location","doMigration","parseInt","get","blocks","getAllBlocks","withMigration","migrateClassicBlock","classics","filter","forEach","block","modifyColumnsBlock","settings","blockName","variations","variation","attributes","isStackedOnMobile","noticeStore","getQueryArg","href","createSuccessNotice","useSetting","BaseControl","ColorPalette","usePalette","palette","colors","item","color","startsWith","toLowerCase","setColor","label","id","clearable","styled","TextControl","getDesc","vals","StyledTextControl","MarginControl","editMargins","currMargin","setMargin","marginId","flex","marginTop","setState","newMargins","ButtonGroupControl","orientations","options","selected","currId","setId","minSequentialId","step","min","help","_x","sprintf","SelectControl","formatSizeLabel","units","symbol","CustomSizeControl","currWidth","setWidth","currHeight","setHeight","currUnit","setUnit","placeholder","hideLabelFromVision","_ref3","sizes","_ref4","sizeData","setSize","push","newSize","useSelect","children","AwardCheck","AwardCertificateButton","postId","isPublished","enableScratch","selectTemplate","templateId","PluginPostStatusInfo","AwardButton","ResetButton","PluginStatusButtons","wpSelect","isCurrentPostPublished","getCurrentPostId","synchronizeBlocksWithTemplate","doAction","ResetTemplateCheck","editCertificateTitle","resetTemplate","onComplete","getTemplate","insertBlocks","clientIds","template","status","setIsOpen","msg","maxWidth","variant","disabled","isDestructive","getCurrentPost","post","certificate_template","PanelRow","ExternalLink","addQueryArgs","UserSearchControl","StyledPanelRow","SelectedUser","userId","getEntityRecord","user","page","tab","stab","student_id","isNew","forceId","selectedValue","onUpdate","author","isEditedPostNew","studentId","saveEntityRecord","PostSearchControl","createAward","getMessage","getRedirectUrl","getScratchUrl","modalTitle","buttonLabel","selectStudent","isBusy","setIsBusy","currStudentId","setStudentId","currTemplateId","setTemplateId","isReady","then","isClearable","obj","borderTop","getAdminUrl","action","newAwardMsg","sid","arguments","args","post_type","certificate_title","default"],"sourceRoot":""}
\ No newline at end of file
diff --git a/assets/js/llms-admin-elementor-editor.asset.php b/assets/js/llms-admin-elementor-editor.asset.php
new file mode 100644
index 0000000000..537019b1fa
--- /dev/null
+++ b/assets/js/llms-admin-elementor-editor.asset.php
@@ -0,0 +1 @@
+ array('wp-polyfill'), 'version' => 'adcda79c488b3fc7b474');
diff --git a/assets/js/llms-admin-elementor-editor.js b/assets/js/llms-admin-elementor-editor.js
new file mode 100644
index 0000000000..664ca96e49
--- /dev/null
+++ b/assets/js/llms-admin-elementor-editor.js
@@ -0,0 +1 @@
+jQuery(document).ready((function(e){"undefined"!=typeof elementor&&elementor.modules.layouts.panel.pages.menu.Menu.addItem({name:"Course Builder",title:"Launch Course Builder",icon:"wp-menu-image dashicons-before dashicons-welcome-learn-more",callback:function(){window.location.href=llms_elementor.builder_url}},"navigate_from_page","finder")}));
\ No newline at end of file
diff --git a/assets/js/llms-admin-elementor-editor.js.map b/assets/js/llms-admin-elementor-editor.js.map
new file mode 100644
index 0000000000..7360e9ca5d
--- /dev/null
+++ b/assets/js/llms-admin-elementor-editor.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"js/llms-admin-elementor-editor.js","mappings":";;;;;AAAAA,MAAM,CAACC,QAAQ,CAAC,CAACC,KAAK,CAAC,UAASC,CAAC,EAAE;EAClC,IAAI,OAAOC,SAAS,KAAK,WAAW,EAAE;IACrC;EACD;EAEAA,SAAS,CAACC,OAAO,CAACC,OAAO,CAACC,KAAK,CAACC,KAAK,CAACC,IAAI,CAACC,IAAI,CAACC,OAAO,CAAC;IACvDC,IAAI,EAAC,gBAAgB;IACrBC,KAAK,EAAC,uBAAuB;IAC7BC,IAAI,EAAE,6DAA6D;IACnEC,QAAQ,EAAE,SAASA,QAAQA,CAAA,EAAG;MAC7BC,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAGC,cAAc,CAACC,WAAW;IAClD;EAAC,CAAC,EAAE,oBAAoB,EAAE,QAAQ,CAAC;AACrC,CAAC,CAAC,C","sources":["webpack://lifterlms/./src/js/admin-elementor-editor.js"],"sourcesContent":["jQuery(document).ready(function($) {\n\tif (typeof elementor === 'undefined') {\n\t\treturn;\n\t}\n\n\telementor.modules.layouts.panel.pages.menu.Menu.addItem({\n\t\tname:'Course Builder',\n\t\ttitle:'Launch Course Builder',\n\t\ticon: 'wp-menu-image dashicons-before dashicons-welcome-learn-more',\n\t\tcallback: function callback() {\n\t\t\twindow.location.href = llms_elementor.builder_url;\n\t\t}}, 'navigate_from_page', 'finder');\n});\n"],"names":["jQuery","document","ready","$","elementor","modules","layouts","panel","pages","menu","Menu","addItem","name","title","icon","callback","window","location","href","llms_elementor","builder_url"],"sourceRoot":""}
\ No newline at end of file
diff --git a/assets/js/llms-admin-elementor-editor.min.js b/assets/js/llms-admin-elementor-editor.min.js
new file mode 100644
index 0000000000..1fb22b3a33
--- /dev/null
+++ b/assets/js/llms-admin-elementor-editor.min.js
@@ -0,0 +1,2 @@
+jQuery(document).ready(function(e){"undefined"!=typeof elementor&&elementor.modules.layouts.panel.pages.menu.Menu.addItem({name:"Course Builder",title:"Launch Course Builder",icon:"wp-menu-image dashicons-before dashicons-welcome-learn-more",callback:function(){window.location.href=llms_elementor.builder_url}},"navigate_from_page","finder")});
+//# sourceMappingURL=../maps/js/llms-admin-elementor-editor.min.js.map
diff --git a/assets/js/llms-admin-tables.min.js b/assets/js/llms-admin-tables.min.js
new file mode 100644
index 0000000000..1ec9a6a46d
--- /dev/null
+++ b/assets/js/llms-admin-tables.min.js
@@ -0,0 +1,2 @@
+!function(i){window.llms=window.llms||{};window.llms.admin_tables=new function(){this.$tables=null,this.init=function(){var t=this;t.$tables=i(".llms-gb-table"),t.$tables.length&&t.bind()},this.bind=function(){var s=this;this.$tables.each(function(){var a,n,r,e=i(this);e.parent().find("form#llms-clear-student-progress-cache").on("submit",function(t){t.preventDefault(),s.clear_cache(e,i(this))}),e.on("click",'button[name="llms-table-paging"]',function(t){t.preventDefault(),s.change_page(e,i(this))}),e.on("click",'button[name="llms-table-export"]',function(t){t.preventDefault(),s.export(e,i(this))}),e.on("click","a.llms-sortable",function(t){t.preventDefault(),s.change_order(e,i(this))}),e.parent().find(".llms-table-filters").on("change","select.llms-table-filter",function(t){s.change_filter(e,i(this))}),e.parent().find(".llms-table-search").on("keyup","input",(a=function(t){switch(t.keyCode){case 37:case 38:case 39:case 40:return;default:s.search(e,i(this))}},n=250,r=null,function(){var t=this,e=arguments;window.clearTimeout(r),r=window.setTimeout(function(){a.apply(t,e)},n)}))})},this.clear_cache=function(e,t){var a=this,n=t.find("button");LLMS.Ajax.call({url:t.attr("action"),method:"POST",dataType:"html",data:{_wpnonce:t.find('[name="_wpnonce"]').val(),_wp_http_referer:t.find('[name="_wp_http_referer"]').val(),llms_tool:"clear-cache"},beforeSend:function(){n&&(n.prop("disabled",!0),LLMS.Spinner.start(n,"small"))},error:function(t,e,a){n&&(n.prop("disabled",!1),LLMS.Spinner.stop(n)),console.error(a)},success:function(t){n&&(n.prop("disabled",!1),LLMS.Spinner.stop(n)),a.reload(e,{})}})},this.change_order=function(t,e){this.reload(t,{order:e.attr("data-order"),orderby:e.attr("data-orderby"),page:1})},this.change_filter=function(t,e){this.reload(t,{filter:e.val(),filterby:e.attr("name"),page:1})},this.change_page=function(t,e){this.reload(t,{order:this.get_args(t,"order"),orderby:this.get_args(t,"orderby"),page:e.attr("data-page")})},this.export=function(t,a,e){var n=this,r=t.find(".llms-table-export .llms-table-export-msg"),s=t.find(".llms-table-export .llms-table-progress");function l(){LLMS.Spinner.stop(a,"small"),a.removeAttr("disabled")}LLMS.Ajax.call({data:i.extend({action:"export_admin_table",handler:t.attr("data-handler"),filename:e},JSON.parse(t.attr("data-args"))),beforeSend:function(){a.attr("disabled")||(a.attr("disabled","disabled"),LLMS.Spinner.start(a,"small"))},error:function(t,e,a){var n=LLMS.l10n.translate("An error was encountered generating the export");l(),s.hide(),r.html(''+n+": "+a+" "),console.error(t)},success:function(e){!e.success&&e.message?(l(),s.hide(),r.html(''+e.message+" ")):e.success&&e.data&&e.data.progress&&(r.html(""),s.is("visible")||100===e.data.progress||s.css("display","inline-block"),s.find(".llms-table-progress-text").text(e.data.progress+"%"),s.find(".llms-table-progress-inner").css("width",e.data.progress+"%"),100!==e.data.progress?n.export(t,a,e.data.filename):setTimeout(function(){var t="llms-dl-export";i("#"+t).remove(),i(" ",{id:t,href:e.data.url,style:"display: hidden;",download:""}).appendTo("body"),i("#"+t)[0].click(),l(),s.hide()},1e3))}})},this.get_args=function(t,e){t=JSON.parse(t.attr("data-args"));return e?t[e]||!1:t},this.reload=function(e,t){t=i.extend({action:"get_admin_table_data",handler:e.attr("data-handler")},JSON.parse(e.attr("data-args")),t),LLMS.Ajax.call({data:t,beforeSend:function(){LLMS.Spinner.start(e.closest(".llms-table-wrap"))},success:function(t){LLMS.Spinner.stop(e.closest(".llms-table-wrap")),t.success&&(e.attr("data-args",t.data.args),e.find("thead").replaceWith(t.data.thead),e.find("tbody").replaceWith(t.data.tbody),e.find("tfoot").replaceWith(t.data.tfoot))}})},this.search=function(t,e){var a=e.val();(0===(len=a.length)||3<=len)&&this.reload(t,{page:1,search:e.val()})},this.init()}}(jQuery);
+//# sourceMappingURL=../maps/js/llms-admin-tables.min.js.map
diff --git a/assets/js/llms-admin.min.js b/assets/js/llms-admin.min.js
new file mode 100644
index 0000000000..1031957a68
--- /dev/null
+++ b/assets/js/llms-admin.min.js
@@ -0,0 +1,2 @@
+!function(s){window.llms=window.llms||{},window.llms.widgets=function(){return this.$widgets=s(".llms-widget"),this.$info_toggles=s(".llms-widget-info-toggle"),this.init=function(){this.bind()},this.bind=function(){this.$info_toggles.on("mouseenter mouseleave",function(e){s(this).closest(".llms-widget").toggleClass("info-showing","mouseenter"===e.type)})},this.init(),this};new window.llms.widgets;s.fn.llmsPostsSelect2=function(t){var l=this,t=t||{},e={multiple:!1,placeholder:void 0!==LLMS.l10n?LLMS.l10n.translate("Select a Course/Membership"):"Select a Course/Membership",post_type:l.attr("data-post-type")||"post",post_statuses:l.attr("data-post-statuses")||"publish",instructor_id:null,allow_clear:l.attr("data-post-type")||!1,width:null};s.each(e,function(e){l.attr("data-"+e)&&(t[e]=l.attr("data-"+e))}),"multiple"===l.attr("multiple")&&(t.multiple=!0),t=s.extend(e,t),this.llmsSelect2({allowClear:t.allow_clear,ajax:{dataType:"JSON",delay:250,method:"POST",url:window.ajaxurl,data:function(e){return{action:"select2_query_posts",page:e.page?e.page-1:0,post_type:t.post_type,instructor_id:t.instructor_id,post_statuses:t.post_statuses,term:e.term,_ajax_nonce:window.llms.ajax_nonce}},processResults:function(e,t){return{results:function t(e){return Array.isArray(e)?s.map(e,function(e){return{text:e.name,id:e.id}}):s.map(e,function(e){return{text:e.label,children:t(e.items)}})}(e.items),pagination:{more:e.more}}}},cache:!0,placeholder:t.placeholder,multiple:t.multiple,width:t.width})},s("select.llms-posts-select2").llmsPostsSelect2(),s.fn.llmsStudentsSelect2=function(t){var l,e;return this.length&&(l=this,t=t||{},e={allow_clear:!1,enrolled_in:"",multiple:!1,not_enrolled_in:"",placeholder:void 0!==LLMS.l10n?LLMS.l10n.translate("Select a student"):"Select a student",roles:"",width:"100%"},s.each(e,function(e){l.attr("data-"+e)&&(t[e]=l.attr("data-"+e))}),t=s.extend(e,t),this.llmsSelect2({allowClear:t.allow_clear,ajax:{dataType:"JSON",delay:250,method:"GET",url:window.wpApiSettings.root+"wp/v2/users",data:function(e){return{_wpnonce:window.wpApiSettings.nonce,context:"edit",page:e.page||1,per_page:10,not_enrolled_in:e.not_enrolled_in||t.not_enrolled_in,enrolled_in:e.enrolled_in||t.enrolled_in,roles:e.roles||t.roles,search:e.term,search_columns:"email,name,username"}},processResults:function(e,t){var t=t.page||1,l=this._request.getResponseHeader("X-WP-TotalPages");return{results:s.map(e,function(e){return{text:e.name+" <"+e.email+">",id:e.id}}),pagination:{more:t'+LLMS.l10n.replace("Error: %s",{"%s":e})+"").insertAfter(t)})}}}(jQuery);
+//# sourceMappingURL=../maps/js/llms-admin.min.js.map
diff --git a/assets/js/llms-builder.js b/assets/js/llms-builder.js
new file mode 100644
index 0000000000..598ca1bccb
--- /dev/null
+++ b/assets/js/llms-builder.js
@@ -0,0 +1,11782 @@
+(function($){
+/**
+ * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.
+ * Released under MIT license, http://github.com/requirejs/almond/LICENSE
+ */
+//Going sloppy to avoid 'use strict' string cost, but strict practices should
+//be followed.
+/*global setTimeout: false */
+
+var requirejs, require, define;
+(function (undef) {
+ var main, req, makeMap, handlers,
+ defined = {},
+ waiting = {},
+ config = {},
+ defining = {},
+ hasOwn = Object.prototype.hasOwnProperty,
+ aps = [].slice,
+ jsSuffixRegExp = /\.js$/;
+
+ function hasProp(obj, prop) {
+ return hasOwn.call(obj, prop);
+ }
+
+ /**
+ * Given a relative module name, like ./something, normalize it to
+ * a real name that can be mapped to a path.
+ * @param {String} name the relative name
+ * @param {String} baseName a real name that the name arg is relative
+ * to.
+ * @returns {String} normalized name
+ */
+ function normalize(name, baseName) {
+ var nameParts, nameSegment, mapValue, foundMap, lastIndex,
+ foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,
+ baseParts = baseName && baseName.split("/"),
+ map = config.map,
+ starMap = (map && map['*']) || {};
+
+ //Adjust any relative paths.
+ if (name) {
+ name = name.split('/');
+ lastIndex = name.length - 1;
+
+ // If wanting node ID compatibility, strip .js from end
+ // of IDs. Have to do this here, and not in nameToUrl
+ // because node allows either .js or non .js to map
+ // to same file.
+ if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {
+ name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');
+ }
+
+ // Starts with a '.' so need the baseName
+ if (name[0].charAt(0) === '.' && baseParts) {
+ //Convert baseName to array, and lop off the last part,
+ //so that . matches that 'directory' and not name of the baseName's
+ //module. For instance, baseName of 'one/two/three', maps to
+ //'one/two/three.js', but we want the directory, 'one/two' for
+ //this normalization.
+ normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
+ name = normalizedBaseParts.concat(name);
+ }
+
+ //start trimDots
+ for (i = 0; i < name.length; i++) {
+ part = name[i];
+ if (part === '.') {
+ name.splice(i, 1);
+ i -= 1;
+ } else if (part === '..') {
+ // If at the start, or previous value is still ..,
+ // keep them so that when converted to a path it may
+ // still work when converted to a path, even though
+ // as an ID it is less than ideal. In larger point
+ // releases, may be better to just kick out an error.
+ if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {
+ continue;
+ } else if (i > 0) {
+ name.splice(i - 1, 2);
+ i -= 2;
+ }
+ }
+ }
+ //end trimDots
+
+ name = name.join('/');
+ }
+
+ //Apply map config if available.
+ if ((baseParts || starMap) && map) {
+ nameParts = name.split('/');
+
+ for (i = nameParts.length; i > 0; i -= 1) {
+ nameSegment = nameParts.slice(0, i).join("/");
+
+ if (baseParts) {
+ //Find the longest baseName segment match in the config.
+ //So, do joins on the biggest to smallest lengths of baseParts.
+ for (j = baseParts.length; j > 0; j -= 1) {
+ mapValue = map[baseParts.slice(0, j).join('/')];
+
+ //baseName segment has config, find if it has one for
+ //this name.
+ if (mapValue) {
+ mapValue = mapValue[nameSegment];
+ if (mapValue) {
+ //Match, update name to the new value.
+ foundMap = mapValue;
+ foundI = i;
+ break;
+ }
+ }
+ }
+ }
+
+ if (foundMap) {
+ break;
+ }
+
+ //Check for a star map match, but just hold on to it,
+ //if there is a shorter segment match later in a matching
+ //config, then favor over this star map.
+ if (!foundStarMap && starMap && starMap[nameSegment]) {
+ foundStarMap = starMap[nameSegment];
+ starI = i;
+ }
+ }
+
+ if (!foundMap && foundStarMap) {
+ foundMap = foundStarMap;
+ foundI = starI;
+ }
+
+ if (foundMap) {
+ nameParts.splice(0, foundI, foundMap);
+ name = nameParts.join('/');
+ }
+ }
+
+ return name;
+ }
+
+ function makeRequire(relName, forceSync) {
+ return function () {
+ //A version of a require function that passes a moduleName
+ //value for items that may need to
+ //look up paths relative to the moduleName
+ var args = aps.call(arguments, 0);
+
+ //If first arg is not require('string'), and there is only
+ //one arg, it is the array form without a callback. Insert
+ //a null so that the following concat is correct.
+ if (typeof args[0] !== 'string' && args.length === 1) {
+ args.push(null);
+ }
+ return req.apply(undef, args.concat([relName, forceSync]));
+ };
+ }
+
+ function makeNormalize(relName) {
+ return function (name) {
+ return normalize(name, relName);
+ };
+ }
+
+ function makeLoad(depName) {
+ return function (value) {
+ defined[depName] = value;
+ };
+ }
+
+ function callDep(name) {
+ if (hasProp(waiting, name)) {
+ var args = waiting[name];
+ delete waiting[name];
+ defining[name] = true;
+ main.apply(undef, args);
+ }
+
+ if (!hasProp(defined, name) && !hasProp(defining, name)) {
+ throw new Error('No ' + name);
+ }
+ return defined[name];
+ }
+
+ //Turns a plugin!resource to [plugin, resource]
+ //with the plugin being undefined if the name
+ //did not have a plugin prefix.
+ function splitPrefix(name) {
+ var prefix,
+ index = name ? name.indexOf('!') : -1;
+ if (index > -1) {
+ prefix = name.substring(0, index);
+ name = name.substring(index + 1, name.length);
+ }
+ return [prefix, name];
+ }
+
+ //Creates a parts array for a relName where first part is plugin ID,
+ //second part is resource ID. Assumes relName has already been normalized.
+ function makeRelParts(relName) {
+ return relName ? splitPrefix(relName) : [];
+ }
+
+ /**
+ * Makes a name map, normalizing the name, and using a plugin
+ * for normalization if necessary. Grabs a ref to plugin
+ * too, as an optimization.
+ */
+ makeMap = function (name, relParts) {
+ var plugin,
+ parts = splitPrefix(name),
+ prefix = parts[0],
+ relResourceName = relParts[1];
+
+ name = parts[1];
+
+ if (prefix) {
+ prefix = normalize(prefix, relResourceName);
+ plugin = callDep(prefix);
+ }
+
+ //Normalize according
+ if (prefix) {
+ if (plugin && plugin.normalize) {
+ name = plugin.normalize(name, makeNormalize(relResourceName));
+ } else {
+ name = normalize(name, relResourceName);
+ }
+ } else {
+ name = normalize(name, relResourceName);
+ parts = splitPrefix(name);
+ prefix = parts[0];
+ name = parts[1];
+ if (prefix) {
+ plugin = callDep(prefix);
+ }
+ }
+
+ //Using ridiculous property names for space reasons
+ return {
+ f: prefix ? prefix + '!' + name : name, //fullName
+ n: name,
+ pr: prefix,
+ p: plugin
+ };
+ };
+
+ function makeConfig(name) {
+ return function () {
+ return (config && config.config && config.config[name]) || {};
+ };
+ }
+
+ handlers = {
+ require: function (name) {
+ return makeRequire(name);
+ },
+ exports: function (name) {
+ var e = defined[name];
+ if (typeof e !== 'undefined') {
+ return e;
+ } else {
+ return (defined[name] = {});
+ }
+ },
+ module: function (name) {
+ return {
+ id: name,
+ uri: '',
+ exports: defined[name],
+ config: makeConfig(name)
+ };
+ }
+ };
+
+ main = function (name, deps, callback, relName) {
+ var cjsModule, depName, ret, map, i, relParts,
+ args = [],
+ callbackType = typeof callback,
+ usingExports;
+
+ //Use name if no relName
+ relName = relName || name;
+ relParts = makeRelParts(relName);
+
+ //Call the callback to define the module, if necessary.
+ if (callbackType === 'undefined' || callbackType === 'function') {
+ //Pull out the defined dependencies and pass the ordered
+ //values to the callback.
+ //Default to [require, exports, module] if no deps
+ deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;
+ for (i = 0; i < deps.length; i += 1) {
+ map = makeMap(deps[i], relParts);
+ depName = map.f;
+
+ //Fast path CommonJS standard dependencies.
+ if (depName === "require") {
+ args[i] = handlers.require(name);
+ } else if (depName === "exports") {
+ //CommonJS module spec 1.1
+ args[i] = handlers.exports(name);
+ usingExports = true;
+ } else if (depName === "module") {
+ //CommonJS module spec 1.1
+ cjsModule = args[i] = handlers.module(name);
+ } else if (hasProp(defined, depName) ||
+ hasProp(waiting, depName) ||
+ hasProp(defining, depName)) {
+ args[i] = callDep(depName);
+ } else if (map.p) {
+ map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});
+ args[i] = defined[depName];
+ } else {
+ throw new Error(name + ' missing ' + depName);
+ }
+ }
+
+ ret = callback ? callback.apply(defined[name], args) : undefined;
+
+ if (name) {
+ //If setting exports via "module" is in play,
+ //favor that over return value and exports. After that,
+ //favor a non-undefined return value over exports use.
+ if (cjsModule && cjsModule.exports !== undef &&
+ cjsModule.exports !== defined[name]) {
+ defined[name] = cjsModule.exports;
+ } else if (ret !== undef || !usingExports) {
+ //Use the return value from the function.
+ defined[name] = ret;
+ }
+ }
+ } else if (name) {
+ //May just be an object definition for the module. Only
+ //worry about defining if have a module name.
+ defined[name] = callback;
+ }
+ };
+
+ requirejs = require = req = function (deps, callback, relName, forceSync, alt) {
+ if (typeof deps === "string") {
+ if (handlers[deps]) {
+ //callback in this case is really relName
+ return handlers[deps](callback);
+ }
+ //Just return the module wanted. In this scenario, the
+ //deps arg is the module name, and second arg (if passed)
+ //is just the relName.
+ //Normalize module name, if it contains . or ..
+ return callDep(makeMap(deps, makeRelParts(callback)).f);
+ } else if (!deps.splice) {
+ //deps is a config object, not an array.
+ config = deps;
+ if (config.deps) {
+ req(config.deps, config.callback);
+ }
+ if (!callback) {
+ return;
+ }
+
+ if (callback.splice) {
+ //callback is an array, which means it is a dependency list.
+ //Adjust args if there are dependencies
+ deps = callback;
+ callback = relName;
+ relName = null;
+ } else {
+ deps = undef;
+ }
+ }
+
+ //Support require(['a'])
+ callback = callback || function () {};
+
+ //If relName is a function, it is an errback handler,
+ //so remove it.
+ if (typeof relName === 'function') {
+ relName = forceSync;
+ forceSync = alt;
+ }
+
+ //Simulate async callback;
+ if (forceSync) {
+ main(undef, deps, callback, relName);
+ } else {
+ //Using a non-zero value because of concern for what old browsers
+ //do, and latest browsers "upgrade" to 4 if lower value is used:
+ //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:
+ //If want a value immediately, use require('id') instead -- something
+ //that works in almond on the global level, but not guaranteed and
+ //unlikely to work in other AMD implementations.
+ setTimeout(function () {
+ main(undef, deps, callback, relName);
+ }, 4);
+ }
+
+ return req;
+ };
+
+ /**
+ * Just drops the config on the floor, but returns req in case
+ * the config return value is used.
+ */
+ req.config = function (cfg) {
+ return req(cfg);
+ };
+
+ /**
+ * Expose module registry for debugging and tooling
+ */
+ requirejs._defined = defined;
+
+ define = function (name, deps, callback) {
+ if (typeof name !== 'string') {
+ throw new Error('See almond README: incorrect module build, no module name');
+ }
+
+ //This module may not have dependencies
+ if (!deps.splice) {
+ //deps is not an array, so probably means
+ //an object literal or factory function for
+ //the value. Adjust args.
+ callback = deps;
+ deps = [];
+ }
+
+ if (!hasProp(defined, name) && !hasProp(waiting, name)) {
+ waiting[name] = [name, deps, callback];
+ }
+ };
+
+ define.amd = {
+ jQuery: true
+ };
+}());
+
+define("vendor/almond", function(){});
+
+/**
+ * This is a slightly modified and forward compatible version of the @wordpress/hooks package
+ * as included in the Gutenberg feature plugin version 3.8.0
+ */
+window.llms=window.llms||{};
+// use the core hooks if available
+if ( 'undefined' !== typeof window.wp && 'undefined' !== typeof window.wp.hooks ) {
+ window.llms.hooks = window.wp.hooks;
+// otherwise load our own
+} else {
+ window.llms.hooks=function(n){var r={};function e(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,e),o.l=!0,o.exports}return e.m=n,e.c=r,e.d=function(n,r,t){e.o(n,r)||Object.defineProperty(n,r,{configurable:!1,enumerable:!0,get:t})},e.r=function(n){Object.defineProperty(n,"__esModule",{value:!0})},e.n=function(n){var r=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(r,"a",r),r},e.o=function(n,r){return Object.prototype.hasOwnProperty.call(n,r)},e.p="",e(e.s=209)}({209:function(n,r,e){"use strict";e.r(r);var t=function(n){return"string"!=typeof n||""===n?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(n)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)};var o=function(n){return"string"!=typeof n||""===n?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(n)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(n)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)};var i=function(n){return function(r,e,i){var u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10;if(o(r)&&t(e))if("function"==typeof i)if("number"==typeof u){var c={callback:i,priority:u,namespace:e};if(n[r]){for(var a=n[r].handlers,l=0;lu);)l++;a.splice(l,0,c),(n.__current||[]).forEach(function(n){n.name===r&&n.currentIndex>=l&&n.currentIndex++})}else n[r]={handlers:[c],runs:0};"hookAdded"!==r&&b("hookAdded",r,e,i,u)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}};var u=function(n,r){return function(e,i){if(o(e)&&(r||t(i))){if(!n[e])return 0;var u=0;if(r)u=n[e].handlers.length,n[e]={runs:n[e].runs,handlers:[]};else for(var c=n[e].handlers,a=function(r){c[r].namespace===i&&(c.splice(r,1),u++,(n.__current||[]).forEach(function(n){n.name===e&&n.currentIndex>=r&&n.currentIndex--}))},l=c.length-1;l>=0;l--)a(l);return"hookRemoved"!==e&&b("hookRemoved",e,i),u}}};var c=function(n){return function(r){return r in n}};var a=function(n,r){return function(e){n[e]||(n[e]={handlers:[],runs:0}),n[e].runs++;for(var t=n[e].handlers,o=arguments.length,i=new Array(o>1?o-1:0),u=1;u li, tbody > tr > td" : "_listItem_onMousedown",
+ "dblclick > li, tbody > tr > td" : "_listItem_onDoubleClick",
+ "click" : "_listBackground_onClick",
+ "click ul.collection-view, table.collection-view" : "_listBackground_onClick",
+ "keydown" : "_onKeydown"
+ },
+
+ // only used if Backbone.Courier is available
+ spawnMessages : {
+ "focus" : "focus"
+ },
+
+ //only used if Backbone.Courier is available
+ passMessages : { "*" : "." },
+
+ // viewOption definitions with default values.
+ initializationOptions : [
+ { "collection" : null },
+ { "modelView" : null },
+ { "modelViewOptions" : {} },
+ { "itemTemplate" : null },
+ { "itemTemplateFunction" : null },
+ { "selectable" : true },
+ { "clickToSelect" : true },
+ { "selectableModelsFilter" : null },
+ { "visibleModelsFilter" : null },
+ { "sortableModelsFilter" : null },
+ { "selectMultiple" : false },
+ { "clickToToggle" : false },
+ { "processKeyEvents" : true },
+ { "sortable" : false },
+ { "sortableOptions" : null },
+ { "reuseModelViews" : true },
+ { "detachedRendering" : false },
+ { "emptyListCaption" : null }
+ ],
+
+ initialize : function( options ) {
+ Backbone.ViewOptions.add( this, "initializationOptions" ); // setup the ViewOptions functionality.
+ this.setOptions( options ); // and make use of any provided options
+
+ if( ! this.collection ) this.collection = new Backbone.Collection();
+
+ this._hasBeenRendered = false;
+
+ if( this._isBackboneCourierAvailable() ) {
+ Backbone.Courier.add( this );
+ }
+
+ this.$el.data( "view", this ); // needed for connected sortable lists
+ this.$el.addClass( "collection-view collection-list" ); // collection-list is in there for legacy purposes
+ if( this.selectable ) this.$el.addClass( "selectable" );
+
+ if( this.selectable && this.processKeyEvents )
+ this.$el.attr( "tabindex", 0 ); // so we get keyboard events
+
+ this.selectedItems = [];
+
+ this._updateItemTemplate();
+
+ if( this.collection )
+ this._registerCollectionEvents();
+
+ this.viewManager = new ChildViewContainer();
+ },
+
+ _onOptionsChanged : function( changedOptions, originalOptions ) {
+ var _this = this;
+ var rerender = false;
+
+ _.each( _.keys( changedOptions ), function( changedOptionKey ) {
+ var newVal = changedOptions[ changedOptionKey ];
+ var oldVal = originalOptions[ changedOptionKey ];
+ switch( changedOptionKey ) {
+ case "collection" :
+ if ( newVal !== oldVal ) {
+ _this.stopListening( oldVal );
+ _this._registerCollectionEvents();
+ }
+ break;
+ case "selectMultiple" :
+ if( ! newVal && _this.selectedItems.length > 1 )
+ _this.setSelectedModel( _.first( _this.selectedItems ), { by : "cid" } );
+ break;
+ case "selectable" :
+ if( ! newVal && _this.selectedItems.length > 0 )
+ _this.setSelectedModels( [] );
+
+ if( newVal && this.processKeyEvents ) _this.$el.attr( "tabindex", 0 ); // so we get keyboard events
+ else _this.$el.removeAttr( "tabindex", 0 );
+ break;
+ case "sortable" :
+ changedOptions.sortable ? _this._setupSortable() : _this.$el.sortable( "destroy" );
+ break;
+ case "selectableModelsFilter" :
+ _this.reapplyFilter( 'selectableModels' );
+ break;
+ case "sortableOptions" :
+ _this.$el.sortable( "destroy" );
+ _this._setupSortable();
+ break;
+ case "sortableModelsFilter" :
+ _this.reapplyFilter( 'sortableModels' );
+ break;
+ case "visibleModelsFilter" :
+ _this.reapplyFilter( 'visibleModels' );
+ break;
+ case "itemTemplate" :
+ _this._updateItemTemplate();
+ break;
+ case "processKeyEvents" :
+ if( newVal && this.selectable ) _this.$el.attr( "tabindex", 0 ); // so we get keyboard events
+ else _this.$el.removeAttr( "tabindex", 0 );
+ break;
+ case "modelView" :
+ //need to remove all old view instances
+ _this.viewManager.each( function( view ) {
+ _this.viewManager.remove( view );
+ // destroy the View itself
+ view.remove();
+ } );
+ break;
+ }
+ if( _.contains( kOptionsRequiringRerendering, changedOptionKey ) ) rerender = true;
+ } );
+
+ if( this._hasBeenRendered && rerender ) {
+ this.render();
+ }
+ },
+
+ setOption : function( optionName, optionValue ) { // now is merely a wrapper around backbone.viewOptions' setOptions()
+ var optionHash = {};
+ optionHash[ optionName ] = optionValue;
+ this.setOptions( optionHash );
+ },
+
+ getSelectedModel : function( options ) {
+ return this.selectedItems.length ? _.first( this.getSelectedModels( options ) ) : null;
+ },
+
+ getSelectedModels : function ( options ) {
+ var _this = this;
+
+ options = _.extend( {}, {
+ by : kDefaultReferenceBy
+ }, options );
+
+ var referenceBy = options.by;
+ var items = [];
+
+ switch( referenceBy ) {
+ case "id" :
+ _.each( this.selectedItems, function ( item ) {
+ items.push( _this.collection.get( item ).id );
+ } );
+ break;
+ case "cid" :
+ items = items.concat( this.selectedItems );
+ break;
+ case "offset" :
+ var curLineNumber = 0;
+
+ var itemElements = this._getVisibleItemEls();
+
+ itemElements.each( function() {
+ var thisItemEl = $( this );
+ if( thisItemEl.is( ".selected" ) )
+ items.push( curLineNumber );
+ curLineNumber++;
+ } );
+ break;
+ case "model" :
+ _.each( this.selectedItems, function ( item ) {
+ items.push( _this.collection.get( item ) );
+ } );
+ break;
+ case "view" :
+ _.each( this.selectedItems, function ( item ) {
+ items.push( _this.viewManager.findByModel( _this.collection.get( item ) ) );
+ } );
+ break;
+ default :
+ throw new Error( "Invalid referenceBy option: " + referenceBy );
+ break;
+ }
+
+ return items;
+
+ },
+
+ setSelectedModels : function( newSelectedItems, options ) {
+ if( ! _.isArray( newSelectedItems ) ) throw "Invalid parameter value";
+ if( ! this.selectable && newSelectedItems.length > 0 ) return; // used to throw error, but there are some circumstances in which a list can be selectable at times and not at others, don't want to have to worry about catching errors
+
+ options = _.extend( {}, {
+ silent : false,
+ by : kDefaultReferenceBy
+ }, options );
+
+ var referenceBy = options.by;
+ var newSelectedCids = [];
+
+ switch( referenceBy ) {
+ case "cid" :
+ newSelectedCids = newSelectedItems;
+ break;
+ case "id" :
+ this.collection.each( function( thisModel ) {
+ if( _.contains( newSelectedItems, thisModel.id ) ) newSelectedCids.push( thisModel.cid );
+ } );
+ break;
+ case "model" :
+ newSelectedCids = _.pluck( newSelectedItems, "cid" );
+ break;
+ case "view" :
+ _.each( newSelectedItems, function( item ) {
+ newSelectedCids.push( item.model.cid );
+ } );
+ break;
+ case "offset" :
+ var curLineNumber = 0;
+ var selectedItems = [];
+
+ var itemElements = this._getVisibleItemEls();
+ itemElements.each( function() {
+ var thisItemEl = $( this );
+ if( _.contains( newSelectedItems, curLineNumber ) )
+ newSelectedCids.push( thisItemEl.attr( "data-model-cid" ) );
+ curLineNumber++;
+ } );
+ break;
+ default :
+ throw new Error( "Invalid referenceBy option: " + referenceBy );
+ break;
+ }
+
+ var oldSelectedModels = this.getSelectedModels();
+ var oldSelectedCids = _.clone( this.selectedItems );
+
+ this.selectedItems = this._convertStringsToInts( newSelectedCids );
+ this._validateSelection();
+
+ var newSelectedModels = this.getSelectedModels();
+
+ if( ! this._containSameElements( oldSelectedCids, this.selectedItems ) )
+ {
+ this._addSelectedClassToSelectedItems( oldSelectedCids );
+
+ if( ! options.silent )
+ {
+ if( this._isBackboneCourierAvailable() ) {
+ this.spawn( "selectionChanged", {
+ selectedModels : newSelectedModels,
+ oldSelectedModels : oldSelectedModels
+ } );
+ } else this.trigger( "selectionChanged", newSelectedModels, oldSelectedModels );
+ }
+
+ this.updateDependentControls();
+ }
+ },
+
+ setSelectedModel : function( newSelectedItem, options ) {
+ if( ! newSelectedItem && newSelectedItem !== 0 )
+ this.setSelectedModels( [], options );
+ else
+ this.setSelectedModels( [ newSelectedItem ], options );
+ },
+
+ getView : function( reference, options ) {
+ options = _.extend( {}, {
+ by : kDefaultReferenceBy
+ }, options );
+
+ switch( options.by ) {
+ case "id" :
+ case "cid" :
+ var model = this.collection.get( reference ) || null;
+ return model && this.viewManager.findByModel( model );
+ break;
+ case "offset" :
+ var itemElements = this._getVisibleItemEls();
+ return $( itemElements.get( reference ) );
+ break;
+ case "model" :
+ return this.viewManager.findByModel( reference );
+ break;
+ default :
+ throw new Error( "Invalid referenceBy option: " + referenceBy );
+ break;
+ }
+ },
+
+ render : function() {
+ var _this = this;
+
+ this._hasBeenRendered = true;
+
+ if( this.selectable ) this._saveSelection();
+
+ var modelViewContainerEl;
+
+ // If collection view element is a table and it has a tbody
+ // within it, render the model views inside of the tbody
+ modelViewContainerEl = this._getContainerEl();
+
+ var oldViewManager = this.viewManager;
+ this.viewManager = new ChildViewContainer();
+
+ // detach each of our subviews that we have already created to represent models
+ // in the collection. We are going to re-use the ones that represent models that
+ // are still here, instead of creating new ones, so that we don't loose state
+ // information in the views.
+ oldViewManager.each( function( thisModelView ) {
+ // to boost performance, only detach those views that will be sticking around.
+ // we won't need the other ones later, so no need to detach them individually.
+ if( this.reuseModelViews && this.collection.get( thisModelView.model.cid ) ) {
+ thisModelView.$el.detach();
+ } else thisModelView.remove();
+ }, this );
+
+ modelViewContainerEl.empty();
+ var fragmentContainer;
+
+ if( this.detachedRendering )
+ fragmentContainer = document.createDocumentFragment();
+
+ this.collection.each( function( thisModel ) {
+ var thisModelView = oldViewManager.findByModelCid( thisModel.cid );
+ if( ! this.reuseModelViews || _.isUndefined( thisModelView ) ) {
+ // if the model view has not already been created on a
+ // previous render then create and initialize it now.
+ thisModelView = this._createNewModelView( thisModel, this._getModelViewOptions( thisModel ) );
+ }
+
+ this._insertAndRenderModelView( thisModelView, fragmentContainer || modelViewContainerEl );
+ }, this );
+
+ if( this.detachedRendering )
+ modelViewContainerEl.append( fragmentContainer );
+
+ if( this.sortable ) this._setupSortable();
+
+ this._showEmptyListCaptionIfAppropriate();
+
+ if( this._isBackboneCourierAvailable() )
+ this.spawn( "render" );
+ else this.trigger( "render" );
+
+ if( this.selectable ) {
+ this._restoreSelection();
+ this.updateDependentControls();
+ }
+
+ this.forceRerenderOnNextSortEvent = false;
+ },
+
+ _showEmptyListCaptionIfAppropriate : function ( ) {
+ this._removeEmptyListCaption();
+
+ if( this.emptyListCaption ) {
+ var visibleEls = this._getVisibleItemEls();
+
+ if( visibleEls.length === 0 ) {
+ var emptyListString;
+
+ if( _.isFunction( this.emptyListCaption ) )
+ emptyListString = this.emptyListCaption();
+ else
+ emptyListString = this.emptyListCaption;
+
+ var $emptyListCaptionEl;
+ var $varEl = $( "" + emptyListString + " " );
+
+ // need to wrap the empty caption to make it fit the rendered list structure (either with an li or a tr td)
+ if( this._isRenderedAsList() )
+ $emptyListCaptionEl = $varEl.wrapAll( " " ).parent().css( kStylesForEmptyListCaption );
+ else
+ $emptyListCaptionEl = $varEl.wrapAll( " " ).parent().parent().css( kStylesForEmptyListCaption );
+
+ this._getContainerEl().append( $emptyListCaptionEl );
+ }
+ }
+ },
+
+ _removeEmptyListCaption : function( ) {
+ if( this._isRenderedAsList() )
+ this._getContainerEl().find( "> li > var.empty-list-caption" ).parent().remove();
+ else
+ this._getContainerEl().find( "> tr > td > var.empty-list-caption" ).parent().parent().remove();
+ },
+
+ // Render a single model view in container object "parentElOrDocumentFragment", which is either
+ // a documentFragment or a jquery object. optional arg atIndex is not support for document fragments.
+ _insertAndRenderModelView : function( modelView, parentElOrDocumentFragment, atIndex ) {
+ var thisModelViewWrapped = this._wrapModelView( modelView );
+
+ if( parentElOrDocumentFragment.nodeType === 11 ) // if we are inserting into a document fragment, we need to use the DOM appendChild method
+ parentElOrDocumentFragment.appendChild( thisModelViewWrapped.get( 0 ) );
+ else {
+ var numberOfModelViewsCurrentlyInDOM = parentElOrDocumentFragment.children().length;
+ if( ! _.isUndefined( atIndex ) && atIndex >= 0 && atIndex < numberOfModelViewsCurrentlyInDOM )
+ // note this.collection.length might be greater than parentElOrDocumentFragment.children().length here
+ parentElOrDocumentFragment.children().eq( atIndex ).before( thisModelViewWrapped );
+ else {
+ // if we are attempting to insert a modelView in an position that is beyond what is currently in the
+ // DOM, then make a note that we need to re-render the collection view on the next sort event. If we dont
+ // force this re-render, we can end up with modelViews in the wrong order when the collection defines
+ // a comparator and multiple models are added at once. See https://github.com/rotundasoftware/backbone.collectionView/issues/69
+ if( ! _.isUndefined( atIndex ) && atIndex > numberOfModelViewsCurrentlyInDOM ) this.forceRerenderOnNextSortEvent = true;
+
+ parentElOrDocumentFragment.append( thisModelViewWrapped );
+ }
+ }
+
+ this.viewManager.add( modelView );
+
+ // we have to render the modelView after it has been put in context, as opposed to in the
+ // initialize function of the modelView, because some rendering might be dependent on
+ // the modelView's context in the DOM tree. For example, if the modelView stretch()'s itself,
+ // it must be in full context in the DOM tree or else the stretch will not behave as intended.
+ var renderResult = modelView.render();
+
+ // return false from the view's render function to hide this item
+ if( renderResult === false ) {
+ thisModelViewWrapped.hide();
+ thisModelViewWrapped.addClass( "not-visible" );
+ }
+
+ var hideThisModelView = false;
+ if( _.isFunction( this.visibleModelsFilter ) )
+ hideThisModelView = ! this.visibleModelsFilter( modelView.model );
+
+ if( thisModelViewWrapped.children().length === 1 )
+ thisModelViewWrapped.toggle( ! hideThisModelView );
+ else modelView.$el.toggle( ! hideThisModelView );
+
+ thisModelViewWrapped.toggleClass( "not-visible", hideThisModelView );
+
+ if( ! hideThisModelView && this.emptyListCaption ) this._removeEmptyListCaption();
+ },
+
+ updateDependentControls : function() {
+ if( this._isBackboneCourierAvailable() ) {
+ this.spawn( "updateDependentControls", {
+ selectedModels : this.getSelectedModels()
+ } );
+ } else this.trigger( "updateDependentControls", this.getSelectedModels() );
+ },
+
+ // Override `Backbone.View.remove` to also destroy all Views in `viewManager`
+ remove : function() {
+ this.viewManager.each( function( view ) {
+ view.remove();
+ } );
+
+ Backbone.View.prototype.remove.apply( this, arguments );
+ },
+
+ reapplyFilter : function( whichFilter ) {
+ var _this = this;
+
+ if( ! _.contains( [ "selectableModels", "sortableModels", "visibleModels" ], whichFilter ) ) {
+ throw new Error( "Invalid filter identifier supplied to reapplyFilter: " + whichFilter );
+ }
+
+ switch( whichFilter ) {
+ case "visibleModels":
+ _this.viewManager.each( function( thisModelView ) {
+ var notVisible = _this.visibleModelsFilter && ! _this.visibleModelsFilter.call( _this, thisModelView.model );
+
+ thisModelView.$el.toggleClass( "not-visible", notVisible );
+ if( _this._modelViewHasWrapperLI( thisModelView ) ) {
+ thisModelView.$el.closest( "li" ).toggleClass( "not-visible", notVisible ).toggle( ! notVisible );
+ } else thisModelView.$el.toggle( ! notVisible );
+ } );
+
+ this._showEmptyListCaptionIfAppropriate();
+ break;
+ case "sortableModels":
+ _this.$el.sortable( "destroy" );
+
+ _this.viewManager.each( function( thisModelView ) {
+ var notSortable = _this.sortableModelsFilter && ! _this.sortableModelsFilter.call( _this, thisModelView.model );
+
+ thisModelView.$el.toggleClass( "not-sortable", notSortable );
+ if( _this._modelViewHasWrapperLI( thisModelView ) ) {
+ thisModelView.$el.closest( "li" ).toggleClass( "not-sortable", notSortable );
+ }
+ } );
+
+ _this._setupSortable();
+ break;
+ case "selectableModels":
+ _this.viewManager.each( function( thisModelView ) {
+ var notSelectable = _this.selectableModelsFilter && ! _this.selectableModelsFilter.call( _this, thisModelView.model );
+
+ thisModelView.$el.toggleClass( "not-selectable", notSelectable );
+ if( _this._modelViewHasWrapperLI( thisModelView ) ) {
+ thisModelView.$el.closest( "li" ).toggleClass( "not-selectable", notSelectable );
+ }
+ } );
+
+ _this._validateSelection();
+ break;
+ }
+ },
+
+ // A method to remove the view relating to model.
+ _removeModelView : function( modelView ) {
+ if( this.selectable ) this._saveSelection();
+
+ this.viewManager.remove( modelView ); // Remove the view from the viewManager
+ if( this._modelViewHasWrapperLI( modelView ) ) modelView.$el.parent().remove(); // Remove the li wrapper from the DOM
+ modelView.remove(); // Remove the view from the DOM and stop listening to events
+
+ if( this.selectable ) this._restoreSelection();
+
+ this._showEmptyListCaptionIfAppropriate();
+ },
+
+ _validateSelectionAndRender : function() {
+ this._validateSelection();
+ this.render();
+ },
+
+ _registerCollectionEvents : function() {
+
+ this.listenTo( this.collection, "add", function( model ) {
+ var modelView;
+ if( this._hasBeenRendered ) {
+ modelView = this._createNewModelView( model, this._getModelViewOptions( model ) );
+ this._insertAndRenderModelView( modelView, this._getContainerEl(), this.collection.indexOf( model ) );
+ }
+
+ if( this._isBackboneCourierAvailable() )
+ this.spawn( "add", modelView );
+ else this.trigger( "add", modelView );
+ } );
+
+ this.listenTo( this.collection, "remove", function( model ) {
+ var modelView;
+
+ if( this._hasBeenRendered ) {
+ modelView = this.viewManager.findByModelCid( model.cid );
+ this._removeModelView( modelView );
+ }
+
+ if( this._isBackboneCourierAvailable() )
+ this.spawn( "remove" );
+ else this.trigger( "remove" );
+ } );
+
+ this.listenTo( this.collection, "reset", function() {
+ if( this._hasBeenRendered ) this.render();
+ if( this._isBackboneCourierAvailable() )
+ this.spawn( "reset" );
+ else this.trigger( "reset" );
+ } );
+
+ // we should not be listening to change events on the model as a default behavior. the models
+ // should be responsible for re-rendering themselves if necessary, and if the collection does
+ // also need to re-render as a result of a model change, this should be handled by overriding
+ // this method. by default the collection view should not re-render in response to model changes
+ // this.listenTo( this.collection, "change", function( model ) {
+ // if( this._hasBeenRendered ) this.viewManager.findByModel( model ).render();
+ // if( this._isBackboneCourierAvailable() )
+ // this.spawn( "change", { model : model } );
+ // } );
+
+ this.listenTo( this.collection, "sort", function( collection, options ) {
+ if( this._hasBeenRendered && ( options.add !== true || this.forceRerenderOnNextSortEvent ) ) this.render();
+ if( this._isBackboneCourierAvailable() )
+ this.spawn( "sort" );
+ else this.trigger( "sort" );
+ } );
+ },
+
+ _getContainerEl : function() {
+ if ( this._isRenderedAsTable() ) {
+ // not all tables have a tbody, so we test
+ var tbody = this.$el.find( "> tbody" );
+ if ( tbody.length > 0 )
+ return tbody;
+ }
+ return this.$el;
+ },
+
+ _getClickedItemId : function( theEvent ) {
+ var clickedItemId = null;
+
+ // important to use currentTarget as opposed to target, since we could be bubbling
+ // an event that took place within another collectionList
+ var clickedItemEl = $( theEvent.currentTarget );
+ if( clickedItemEl.closest( ".collection-view" ).get(0) !== this.$el.get(0) ) return;
+
+ // determine which list item was clicked. If we clicked in the blank area
+ // underneath all the elements, we want to know that too, since in this
+ // case we will want to deselect all elements. so check to see if the clicked
+ // DOM element is the list itself to find that out.
+ var clickedItem = clickedItemEl.closest( "[data-model-cid]" );
+ if( clickedItem.length > 0 )
+ {
+ clickedItemId = clickedItem.attr( "data-model-cid" );
+ if( $.isNumeric( clickedItemId ) ) clickedItemId = parseInt( clickedItemId, 10 );
+ }
+
+ return clickedItemId;
+ },
+
+ _updateItemTemplate : function() {
+ var itemTemplateHtml;
+ if( this.itemTemplate )
+ {
+ if( $( this.itemTemplate ).length === 0 )
+ throw "Could not find item template from selector: " + this.itemTemplate;
+
+ itemTemplateHtml = $( this.itemTemplate ).html();
+ }
+ else
+ itemTemplateHtml = this.$( ".item-template" ).html();
+
+ if( itemTemplateHtml ) this.itemTemplateFunction = _.template( itemTemplateHtml );
+
+ },
+
+ _validateSelection : function() {
+ // note can't use the collection's proxy to underscore because "cid" is not an attribute,
+ // but an element of the model object itself.
+ var modelReferenceIds = _.pluck( this.collection.models, "cid" );
+ this.selectedItems = _.intersection( modelReferenceIds, this.selectedItems );
+
+ if( _.isFunction( this.selectableModelsFilter ) )
+ {
+ this.selectedItems = _.filter( this.selectedItems, function( thisItemId ) {
+ return this.selectableModelsFilter.call( this, this.collection.get( thisItemId ) );
+ }, this );
+ }
+ },
+
+ _saveSelection : function() {
+ // save the current selection. use restoreSelection() to restore the selection to the state it was in the last time saveSelection() was called.
+ if( ! this.selectable ) throw "Attempt to save selection on non-selectable list";
+ this.savedSelection = {
+ items : _.clone( this.selectedItems ),
+ offset : this.getSelectedModel( { by : "offset" } )
+ };
+ },
+
+ _restoreSelection : function() {
+ if( ! this.savedSelection ) throw "Attempt to restore selection but no selection has been saved!";
+
+ // reset selectedItems to empty so that we "redraw" all "selected" classes
+ // when we set our new selection. We do this because it is likely that our
+ // contents have been refreshed, and we have thus lost all old "selected" classes.
+ this.setSelectedModels( [], { silent : true } );
+
+ if( this.savedSelection.items.length > 0 )
+ {
+ // first try to restore the old selected items using their reference ids.
+ this.setSelectedModels( this.savedSelection.items, { by : "cid", silent : true } );
+
+ // all the items with the saved reference ids have been removed from the list.
+ // ok. try to restore the selection based on the offset that used to be selected.
+ // this is the expected behavior after a item is deleted from a list (i.e. select
+ // the line that immediately follows the deleted line).
+ if( this.selectedItems.length === 0 )
+ this.setSelectedModel( this.savedSelection.offset, { by : "offset" } );
+
+ // Trigger a selection changed if the previously selected items were not all found
+ if (this.selectedItems.length !== this.savedSelection.items.length)
+ {
+ if( this._isBackboneCourierAvailable() ) {
+ this.spawn( "selectionChanged", {
+ selectedModels : this.getSelectedModels(),
+ oldSelectedModels : []
+ } );
+ } else this.trigger( "selectionChanged", this.getSelectedModels(), [] );
+ }
+ }
+ },
+
+ _addSelectedClassToSelectedItems : function( oldItemsIdsWithSelectedClass ) {
+ if( _.isUndefined( oldItemsIdsWithSelectedClass ) ) oldItemsIdsWithSelectedClass = [];
+
+ // oldItemsIdsWithSelectedClass is used for optimization purposes only. If this info is supplied then we
+ // only have to add / remove the "selected" class from those items that "selected" state has changed.
+
+ var itemsIdsFromWhichSelectedClassNeedsToBeRemoved = oldItemsIdsWithSelectedClass;
+ itemsIdsFromWhichSelectedClassNeedsToBeRemoved = _.without( itemsIdsFromWhichSelectedClassNeedsToBeRemoved, this.selectedItems );
+
+ _.each( itemsIdsFromWhichSelectedClassNeedsToBeRemoved, function( thisItemId ) {
+ this._getContainerEl().find( "[data-model-cid=" + thisItemId + "]" ).removeClass( "selected" );
+
+ if( this._isRenderedAsList() ) {
+ this._getContainerEl().find( "li[data-model-cid=" + thisItemId + "] > *" ).removeClass( "selected" );
+ }
+ }, this );
+
+ var itemsIdsFromWhichSelectedClassNeedsToBeAdded = this.selectedItems;
+ itemsIdsFromWhichSelectedClassNeedsToBeAdded = _.without( itemsIdsFromWhichSelectedClassNeedsToBeAdded, oldItemsIdsWithSelectedClass );
+
+ _.each( itemsIdsFromWhichSelectedClassNeedsToBeAdded, function( thisItemId ) {
+ this._getContainerEl().find( "[data-model-cid=" + thisItemId + "]" ).addClass( "selected" );
+
+ if( this._isRenderedAsList() ) {
+ this._getContainerEl().find( "li[data-model-cid=" + thisItemId + "] > *" ).addClass( "selected" );
+ }
+ }, this );
+ },
+
+ _reorderCollectionBasedOnHTML : function() {
+
+ var _this = this;
+
+ this._getContainerEl().children().each( function() {
+ var thisModelCid = $( this ).attr( "data-model-cid" );
+
+ if( thisModelCid )
+ {
+ // remove the current model and then add it back (at the end of the collection).
+ // When we are done looping through all models, they will be in the correct order.
+ var thisModel = _this.collection.get( thisModelCid );
+ if( thisModel )
+ {
+ _this.collection.remove( thisModel, { silent : true } );
+ _this.collection.add( thisModel, { silent : true, sort : ! _this.collection.comparator } );
+ }
+ }
+ } );
+
+ if( this._isBackboneCourierAvailable() ) this.spawn( "reorder" );
+ else this.collection.trigger( "reorder" );
+
+ if( this.collection.comparator ) this.collection.sort();
+
+ },
+
+ _getModelViewConstructor : function( thisModel ) {
+ return this.modelView || mDefaultModelViewConstructor;
+ },
+
+ _getModelViewOptions : function( thisModel ) {
+ var modelViewOptions = this.modelViewOptions;
+ if( _.isFunction( modelViewOptions ) ) modelViewOptions = modelViewOptions( thisModel );
+
+ return _.extend( { model : thisModel }, modelViewOptions );
+ },
+
+ _createNewModelView : function( model, modelViewOptions ) {
+ var modelViewConstructor = this._getModelViewConstructor( model );
+ if( _.isUndefined( modelViewConstructor ) ) throw "Could not find modelView constructor for model";
+
+ var newModelView = new( modelViewConstructor )( modelViewOptions );
+ newModelView.collectionListView = newModelView.collectionView = this; // collectionListView for legacy
+
+ return newModelView;
+ },
+
+ _wrapModelView : function( modelView ) {
+ var _this = this;
+
+ // we use items client ids as opposed to real ids, since we may not have a representation
+ // of these models on the server
+ var modelViewWrapperEl;
+
+ if( this._isRenderedAsTable() ) {
+ // if we are rendering the collection in a table, the template $el is a tr so we just need to set the data-model-cid
+ modelViewWrapperEl = modelView.$el;
+ modelView.$el.attr( "data-model-cid", modelView.model.cid );
+ }
+ else if( this._isRenderedAsList() ) {
+ // if we are rendering the collection in a list, we need wrap each item in an (if its not already an )
+ // and set the data-model-cid
+ if( modelView.$el.is( "li" ) ) {
+ modelViewWrapperEl = modelView.$el;
+ modelView.$el.attr( "data-model-cid", modelView.model.cid );
+ } else {
+ modelViewWrapperEl = modelView.$el.wrapAll( " " ).parent();
+ }
+ }
+
+ if( _.isFunction( this.sortableModelsFilter ) )
+ if( ! this.sortableModelsFilter.call( _this, modelView.model ) ) {
+ modelViewWrapperEl.addClass( "not-sortable" );
+ modelView.$el.addClass( "not-selectable" );
+ }
+
+ if( _.isFunction( this.selectableModelsFilter ) )
+ if( ! this.selectableModelsFilter.call( _this, modelView.model ) ) {
+ modelViewWrapperEl.addClass( "not-selectable" );
+ modelView.$el.addClass( "not-selectable" );
+ }
+
+ return modelViewWrapperEl;
+ },
+
+ _convertStringsToInts : function( theArray ) {
+ return _.map( theArray, function( thisEl ) {
+ if( ! _.isString( thisEl ) ) return thisEl;
+ var thisElAsNumber = parseInt( thisEl, 10 );
+ return( thisElAsNumber == thisEl ? thisElAsNumber : thisEl );
+ } );
+ },
+
+ _containSameElements : function( arrayA, arrayB ) {
+ if( arrayA.length != arrayB.length ) return false;
+ var intersectionSize = _.intersection( arrayA, arrayB ).length;
+ return intersectionSize == arrayA.length; // and must also equal arrayB.length, since arrayA.length == arrayB.length
+ },
+
+ _isRenderedAsTable : function() {
+ return this.$el.prop( "tagName" ).toLowerCase() === "table";
+ },
+
+ _isRenderedAsList : function() {
+ return ! this._isRenderedAsTable();
+ },
+
+ _modelViewHasWrapperLI : function( modelView ) {
+ return this._isRenderedAsList() && ! modelView.$el.is( "li" );
+ },
+
+ // Returns the wrapper HTML element for each visible modelView.
+ // When rendering in a table context, the returned elements are the $el of each modelView.
+ // When rendering in a list context,
+ // If the $el of the modelView is an , the returned elements are the $el of each modelView.
+ // Otherwise, the returned elements are the 's the collectionView wrapped around each modelView $el.
+ _getVisibleItemEls : function() {
+ var itemElements = [];
+ itemElements = this._getContainerEl().find( "> [data-model-cid]:not(.not-visible)" );
+
+ return itemElements;
+ },
+
+ _charCodes : {
+ upArrow : 38,
+ downArrow : 40
+ },
+
+ _isBackboneCourierAvailable : function() {
+ return !_.isUndefined( Backbone.Courier );
+ },
+
+ _setupSortable : function() {
+ var sortableOptions = _.extend( {
+ axis : "y",
+ distance : 10,
+ forcePlaceholderSize : true,
+ items : this._isRenderedAsTable() ? "> tbody > tr:not(.not-sortable)" : "> li:not(.not-sortable)",
+ start : _.bind( this._sortStart, this ),
+ change : _.bind( this._sortChange, this ),
+ stop : _.bind( this._sortStop, this ),
+ receive : _.bind( this._receive, this ),
+ over : _.bind( this._over, this )
+ }, _.result( this, "sortableOptions" ) );
+
+ this.$el = this.$el.sortable( sortableOptions );
+ //this.$el.sortable( "enable" ); // in case it was disabled previously
+ },
+
+ _sortStart : function( event, ui ) {
+ var modelBeingSorted = this.collection.get( ui.item.attr( "data-model-cid" ) );
+ if( this._isBackboneCourierAvailable() )
+ this.spawn( "sortStart", { modelBeingSorted : modelBeingSorted } );
+ else this.trigger( "sortStart", modelBeingSorted );
+ },
+
+ _sortChange : function( event, ui ) {
+ var modelBeingSorted = this.collection.get( ui.item.attr( "data-model-cid" ) );
+
+ if( this._isBackboneCourierAvailable() )
+ this.spawn( "sortChange", { modelBeingSorted : modelBeingSorted } );
+ else this.trigger( "sortChange", modelBeingSorted );
+ },
+
+ _sortStop : function( event, ui ) {
+ var modelBeingSorted = this.collection.get( ui.item.attr( "data-model-cid" ) );
+ var modelViewContainerEl = this._getContainerEl();
+ var newIndex = modelViewContainerEl.children().index( ui.item );
+
+ if( newIndex == -1 && modelBeingSorted ) {
+ // the element was removed from this list. can happen if this sortable is connected
+ // to another sortable, and the item was dropped into the other sortable.
+ this.collection.remove( modelBeingSorted );
+ }
+
+ if( ! modelBeingSorted ) return; // something is wacky. we don't mess with this case, preferring to guarantee that we can always provide a reference to the model
+
+ this._reorderCollectionBasedOnHTML();
+ this.updateDependentControls();
+
+ if( this._isBackboneCourierAvailable() )
+ this.spawn( "sortStop", { modelBeingSorted : modelBeingSorted, newIndex : newIndex } );
+ else this.trigger( "sortStop", modelBeingSorted, newIndex );
+ },
+
+ _receive : function( event, ui ) {
+
+ var senderListEl = ui.sender;
+ var senderCollectionListView = senderListEl.data( "view" );
+ if( ! senderCollectionListView || ! senderCollectionListView.collection ) return;
+
+ var newIndex = this._getContainerEl().children().index( ui.item );
+ var modelReceived = senderCollectionListView.collection.get( ui.item.attr( "data-model-cid" ) );
+ senderCollectionListView.collection.remove( modelReceived );
+ this.collection.add( modelReceived, { at : newIndex } );
+ modelReceived.collection = this.collection; // otherwise will not get properly set, since modelReceived.collection might already have a value.
+ this.setSelectedModel( modelReceived );
+ },
+
+ _over : function( event, ui ) {
+ // when an item is being dragged into the sortable,
+ // hide the empty list caption if it exists
+ this._getContainerEl().find( "> var.empty-list-caption" ).hide();
+ },
+
+ _onKeydown : function( event ) {
+ if( ! this.processKeyEvents ) return true;
+
+ var trap = false;
+
+ if( this.getSelectedModels( { by : "offset" } ).length == 1 )
+ {
+ // need to trap down and up arrows or else the browser
+ // will end up scrolling a autoscroll div.
+
+ var currentOffset = this.getSelectedModel( { by : "offset" } );
+ if( event.which === this._charCodes.upArrow && currentOffset !== 0 )
+ {
+ this.setSelectedModel( currentOffset - 1, { by : "offset" } );
+ trap = true;
+ }
+ else if( event.which === this._charCodes.downArrow && currentOffset !== this.collection.length - 1 )
+ {
+ this.setSelectedModel( currentOffset + 1, { by : "offset" } );
+ trap = true;
+ }
+ }
+
+ return ! trap;
+ },
+
+ _listItem_onMousedown : function( theEvent ) {
+ var clickedItemId = this._getClickedItemId( theEvent );
+
+ if( clickedItemId ) {
+ var clickedModel = this.collection.get( clickedItemId );
+ if( this._isBackboneCourierAvailable() ) {
+ var data = {
+ clickedModel : clickedModel,
+ metaKeyPressed : theEvent.ctrlKey || theEvent.metaKey
+ };
+
+ _.each( [ 'preventDefault', 'stopPropagation', 'stopImmediatePropagation' ], function( thisMethod ) {
+ data[ thisMethod ] = function() {
+ theEvent[ thisMethod ]();
+ };
+ } );
+
+ this.spawn( "click", data );
+ }
+ else this.trigger( "click", clickedModel );
+ }
+
+ if( ! this.selectable || ! this.clickToSelect ) return;
+
+ if( clickedItemId )
+ {
+ // Exit if an unselectable item was clicked
+ if( _.isFunction( this.selectableModelsFilter ) &&
+ ! this.selectableModelsFilter.call( this, this.collection.get( clickedItemId ) ) )
+ {
+ return;
+ }
+
+ // a selectable list item was clicked
+ if( this.selectMultiple && theEvent.shiftKey )
+ {
+ var firstSelectedItemIndex = -1;
+
+ if( this.selectedItems.length > 0 )
+ {
+ this.collection.find( function( thisItemModel ) {
+ firstSelectedItemIndex++;
+
+ // exit when we find our first selected element
+ return _.contains( this.selectedItems, thisItemModel.cid );
+ }, this );
+ }
+
+ var clickedItemIndex = -1;
+ this.collection.find( function( thisItemModel ) {
+ clickedItemIndex++;
+
+ // exit when we find the clicked element
+ return thisItemModel.cid == clickedItemId;
+ }, this );
+
+ var shiftKeyRootSelectedItemIndex = firstSelectedItemIndex == -1 ? clickedItemIndex : firstSelectedItemIndex;
+ var minSelectedItemIndex = Math.min( clickedItemIndex, shiftKeyRootSelectedItemIndex );
+ var maxSelectedItemIndex = Math.max( clickedItemIndex, shiftKeyRootSelectedItemIndex );
+
+ var newSelectedItems = [];
+ for( var thisIndex = minSelectedItemIndex; thisIndex <= maxSelectedItemIndex; thisIndex ++ )
+ newSelectedItems.push( this.collection.at( thisIndex ).cid );
+ this.setSelectedModels( newSelectedItems, { by : "cid" } );
+
+ // shift clicking will usually highlight selectable text, which we do not want.
+ // this is a cross browser (hopefully) snippet that deselects all text selection.
+ if( document.selection && document.selection.empty )
+ document.selection.empty();
+ else if(window.getSelection) {
+ var sel = window.getSelection();
+ if( sel && sel.removeAllRanges )
+ sel.removeAllRanges();
+ }
+ }
+ else if( ( this.selectMultiple || _.contains( this.selectedItems, clickedItemId ) ) && ( this.clickToToggle || theEvent.metaKey || theEvent.ctrlKey ) )
+ {
+ if( _.contains( this.selectedItems, clickedItemId ) )
+ this.setSelectedModels( _.without( this.selectedItems, clickedItemId ), { by : "cid" } );
+ else this.setSelectedModels( _.union( this.selectedItems, [clickedItemId] ), { by : "cid" } );
+ }
+ else
+ this.setSelectedModels( [ clickedItemId ], { by : "cid" } );
+ }
+ else
+ // the blank area of the list was clicked
+ this.setSelectedModels( [] );
+
+ },
+
+ _listItem_onDoubleClick : function( theEvent ) {
+
+ var clickedItemId = this._getClickedItemId( theEvent );
+
+ if( clickedItemId )
+ {
+ var clickedModel = this.collection.get( clickedItemId );
+
+ if( this._isBackboneCourierAvailable() )
+ this.spawn( "doubleClick", { clickedModel : clickedModel, metaKeyPressed : theEvent.ctrlKey || theEvent.metaKey } );
+ else this.trigger( "doubleClick", clickedModel );
+ }
+ },
+
+ _listBackground_onClick : function( theEvent ) {
+ if( ! this.selectable || ! this.clickToSelect ) return;
+ if( ! $( theEvent.target ).is( ".collection-view" ) ) return;
+
+ this.setSelectedModels( [] );
+ }
+
+ }, {
+ setDefaultModelViewConstructor : function( theConstructor ) {
+ mDefaultModelViewConstructor = theConstructor;
+ }
+ });
+
+ /*
+ * Backbone.ViewOptions, v0.2.4
+ * Copyright (c)2014 Rotunda Software, LLC.
+ * Distributed under MIT license
+ * http://github.com/rotundasoftware/backbone.viewOptions
+ */
+
+ Backbone.ViewOptions = {};
+
+ Backbone.ViewOptions.add = function( view, optionsDeclarationsProperty ) {
+ if( _.isUndefined( optionsDeclarationsProperty ) ) optionsDeclarationsProperty = "options";
+
+ // ****************** Public methods added to view ******************
+
+ view.setOptions = function( options ) {
+ var _this = this;
+ var optionsThatWereChanged = {};
+ var optionsThatWereChangedPreviousValues = {};
+
+ var optionDeclarations = _.result( this, optionsDeclarationsProperty );
+
+ if( ! _.isUndefined( optionDeclarations ) ) {
+ var normalizedOptionDeclarations = _normalizeOptionDeclarations( optionDeclarations );
+
+ _.each( normalizedOptionDeclarations, function( thisOptionProperties, thisOptionName ) {
+ var thisOptionRequired = thisOptionProperties.required;
+ var thisOptionDefaultValue = thisOptionProperties.defaultValue;
+
+ if( thisOptionRequired ) {
+ // note we do not throw an error if a required option is not supplied, but it is
+ // found on the object itself (due to a prior call of view.setOptions, most likely)
+
+ if( ( ! options || ! _.contains( _.keys( options ), thisOptionName ) ) && _.isUndefined( _this[ thisOptionName ] ) )
+ throw new Error( "Required option \"" + thisOptionName + "\" was not supplied." );
+
+ if( options && _.contains( _.keys( options ), thisOptionName ) && _.isUndefined( options[ thisOptionName ] ) )
+ throw new Error( "Required option \"" + thisOptionName + "\" can not be set to undefined." );
+ }
+
+ // attach the supplied value of this option, or the appropriate default value, to the view object
+ if( options && thisOptionName in options && ! _.isUndefined( options[ thisOptionName ] ) ) {
+ var oldValue = _this[ thisOptionName ];
+ var newValue = options[ thisOptionName ];
+ // if this option already exists on the view, and the new value is different,
+ // make a note that we will be changing it
+ if( ! _.isUndefined( oldValue ) && oldValue !== newValue ) {
+ optionsThatWereChangedPreviousValues[ thisOptionName ] = oldValue;
+ optionsThatWereChanged[ thisOptionName ] = newValue;
+ }
+ _this[ thisOptionName ] = newValue;
+ // note we do NOT delete the option off the options object here so that
+ // multiple views can be passed the same options object without issue.
+ }
+ else if( _.isUndefined( _this[ thisOptionName ] ) ) {
+ // note defaults do not write over any existing properties on the view itself.
+ _this[ thisOptionName ] = thisOptionDefaultValue;
+ }
+ } );
+ }
+
+ if( _.keys( optionsThatWereChanged ).length > 0 ) {
+ if( _.isFunction( _this.onOptionsChanged ) )
+ _this.onOptionsChanged( optionsThatWereChanged, optionsThatWereChangedPreviousValues );
+ else if( _.isFunction( _this._onOptionsChanged ) )
+ _this._onOptionsChanged( optionsThatWereChanged, optionsThatWereChangedPreviousValues );
+ }
+ };
+
+ view.getOptions = function() {
+ var optionDeclarations = _.result( this, optionsDeclarationsProperty );
+ if( _.isUndefined( optionDeclarations ) ) return {};
+
+ var normalizedOptionDeclarations = _normalizeOptionDeclarations( optionDeclarations );
+ var optionsNames = _.keys( normalizedOptionDeclarations );
+
+ return _.pick( this, optionsNames );
+ };
+ };
+
+ // ****************** Private Utility Functions ******************
+
+ function _normalizeOptionDeclarations( optionDeclarations ) {
+ // convert our short-hand option syntax (with exclamation marks, etc.)
+ // to a simple array of standard option declaration objects.
+
+ var normalizedOptionDeclarations = {};
+
+ if( ! _.isArray( optionDeclarations ) ) throw new Error( "Option declarations must be an array." );
+
+ _.each( optionDeclarations, function( thisOptionDeclaration ) {
+ var thisOptionName, thisOptionRequired, thisOptionDefaultValue;
+
+ thisOptionRequired = false;
+ thisOptionDefaultValue = undefined;
+
+ if( _.isString( thisOptionDeclaration ) )
+ thisOptionName = thisOptionDeclaration;
+ else if( _.isObject( thisOptionDeclaration ) ) {
+ thisOptionName = _.first( _.keys( thisOptionDeclaration ) );
+ if( _.isFunction( thisOptionDeclaration[ thisOptionName ] ) )
+ thisOptionDefaultValue = thisOptionDeclaration[ thisOptionName ];
+ else
+ thisOptionDefaultValue = _.clone( thisOptionDeclaration[ thisOptionName ] );
+ }
+ else throw new Error( "Each element in the option declarations array must be either a string or an object." );
+
+ if( thisOptionName[ thisOptionName.length - 1 ] === "!" ) {
+ thisOptionRequired = true;
+ thisOptionName = thisOptionName.slice( 0, thisOptionName.length - 1 );
+ }
+
+ normalizedOptionDeclarations[ thisOptionName ] = normalizedOptionDeclarations[ thisOptionName ] || {};
+ normalizedOptionDeclarations[ thisOptionName ].required = thisOptionRequired;
+ if( ! _.isUndefined( thisOptionDefaultValue ) ) normalizedOptionDeclarations[ thisOptionName ].defaultValue = thisOptionDefaultValue;
+ } );
+
+ return normalizedOptionDeclarations;
+ }
+
+
+ // Backbone.BabySitter
+ // -------------------
+ // v0.0.6
+ //
+ // Copyright (c)2013 Derick Bailey, Muted Solutions, LLC.
+ // Distributed under MIT license
+ //
+ // http://github.com/babysitterjs/backbone.babysitter
+
+ // Backbone.ChildViewContainer
+ // ---------------------------
+ //
+ // Provide a container to store, retrieve and
+ // shut down child views.
+
+ ChildViewContainer = (function(Backbone, _){
+
+ // Container Constructor
+ // ---------------------
+
+ var Container = function(views){
+ this._views = {};
+ this._indexByModel = {};
+ this._indexByCustom = {};
+ this._updateLength();
+
+ _.each(views, this.add, this);
+ };
+
+ // Container Methods
+ // -----------------
+
+ _.extend(Container.prototype, {
+
+ // Add a view to this container. Stores the view
+ // by `cid` and makes it searchable by the model
+ // cid (and model itself). Optionally specify
+ // a custom key to store an retrieve the view.
+ add: function(view, customIndex){
+ var viewCid = view.cid;
+
+ // store the view
+ this._views[viewCid] = view;
+
+ // index it by model
+ if (view.model){
+ this._indexByModel[view.model.cid] = viewCid;
+ }
+
+ // index by custom
+ if (customIndex){
+ this._indexByCustom[customIndex] = viewCid;
+ }
+
+ this._updateLength();
+ },
+
+ // Find a view by the model that was attached to
+ // it. Uses the model's `cid` to find it.
+ findByModel: function(model){
+ return this.findByModelCid(model.cid);
+ },
+
+ // Find a view by the `cid` of the model that was attached to
+ // it. Uses the model's `cid` to find the view `cid` and
+ // retrieve the view using it.
+ findByModelCid: function(modelCid){
+ var viewCid = this._indexByModel[modelCid];
+ return this.findByCid(viewCid);
+ },
+
+ // Find a view by a custom indexer.
+ findByCustom: function(index){
+ var viewCid = this._indexByCustom[index];
+ return this.findByCid(viewCid);
+ },
+
+ // Find by index. This is not guaranteed to be a
+ // stable index.
+ findByIndex: function(index){
+ return _.values(this._views)[index];
+ },
+
+ // retrieve a view by it's `cid` directly
+ findByCid: function(cid){
+ return this._views[cid];
+ },
+
+ findIndexByCid : function( cid ) {
+ var index = -1;
+ var view = _.find( this._views, function ( view ) {
+ index++;
+ if( view.model.cid == cid )
+ return view;
+ } );
+ return ( view ) ? index : -1;
+ },
+
+ // Remove a view
+ remove: function(view){
+ var viewCid = view.cid;
+
+ // delete model index
+ if (view.model){
+ delete this._indexByModel[view.model.cid];
+ }
+
+ // delete custom index
+ _.any(this._indexByCustom, function(cid, key) {
+ if (cid === viewCid) {
+ delete this._indexByCustom[key];
+ return true;
+ }
+ }, this);
+
+ // remove the view from the container
+ delete this._views[viewCid];
+
+ // update the length
+ this._updateLength();
+ },
+
+ // Call a method on every view in the container,
+ // passing parameters to the call method one at a
+ // time, like `function.call`.
+ call: function(method){
+ this.apply(method, _.tail(arguments));
+ },
+
+ // Apply a method on every view in the container,
+ // passing parameters to the call method one at a
+ // time, like `function.apply`.
+ apply: function(method, args){
+ _.each(this._views, function(view){
+ if (_.isFunction(view[method])){
+ view[method].apply(view, args || []);
+ }
+ });
+ },
+
+ // Update the `.length` attribute on this container
+ _updateLength: function(){
+ this.length = _.size(this._views);
+ }
+ });
+
+ // Borrowing this code from Backbone.Collection:
+ // http://backbonejs.org/docs/backbone.html#section-106
+ //
+ // Mix in methods from Underscore, for iteration, and other
+ // collection related features.
+ var methods = ['forEach', 'each', 'map', 'find', 'detect', 'filter',
+ 'select', 'reject', 'every', 'all', 'some', 'any', 'include',
+ 'contains', 'invoke', 'toArray', 'first', 'initial', 'rest',
+ 'last', 'without', 'isEmpty', 'pluck'];
+
+ _.each(methods, function(method) {
+ Container.prototype[method] = function() {
+ var views = _.values(this._views);
+ var args = [views].concat(_.toArray(arguments));
+ return _[method].apply(_, args);
+ };
+ });
+
+ // return the public API
+ return Container;
+ })(Backbone, _);
+
+ return Backbone.CollectionView;
+} ) );
+
+/**
+ * backbone.trackit - 0.1.0
+ *
+ * The MIT License
+ * Copyright (c) 2013 The New York Times, CMS Group, Matthew DeLambo
+ *
+ * @since 7.4.0 Added support for deep models (attributes that are objects themselves).
+ */
+(function() {
+
+ // Unsaved Record Keeping
+ // ----------------------
+
+ // Collection of all models in an app that have unsaved changes.
+ var unsavedModels = [];
+
+ // If the given model has unsaved changes then add it to
+ // the `unsavedModels` collection, otherwise remove it.
+ var updateUnsavedModels = function(model) {
+ if (!_.isEmpty(model._unsavedChanges)) {
+ if (!_.findWhere(unsavedModels, {cid:model.cid})) unsavedModels.push(model);
+ } else {
+ unsavedModels = _.filter(unsavedModels, function(m) { return model.cid != m.cid; });
+ }
+ };
+
+ // Unload Handlers
+ // ---------------
+
+ // Helper which returns a prompt message for an unload handler.
+ // Uses the given function name (one of the callback names
+ // from the `model.unsaved` configuration hash) to evaluate
+ // whether a prompt is needed/returned.
+ var getPrompt = function(fnName) {
+ var prompt, args = _.rest(arguments);
+ // Evaluate and return a boolean result. The given `fn` may be a
+ // boolean value, a function, or the name of a function on the model.
+ var evaluateModelFn = function(model, fn) {
+ if (_.isBoolean(fn)) return fn;
+ return (_.isString(fn) ? model[fn] : fn).apply(model, args);
+ };
+ _.each(unsavedModels, function(model) {
+ if (!prompt && evaluateModelFn(model, model._unsavedConfig[fnName]))
+ prompt = model._unsavedConfig.prompt;
+ });
+ return prompt;
+ };
+
+ // Wrap Backbone.History.navigate so that in-app routing
+ // (`router.navigate('/path')`) can be intercepted with a
+ // confirmation if there are any unsaved models.
+ Backbone.History.prototype.navigate = _.wrap(Backbone.History.prototype.navigate, function(oldNav, fragment, options) {
+ var prompt = getPrompt('unloadRouterPrompt', fragment, options);
+ if (prompt) {
+ if (confirm(prompt + ' \n\nAre you sure you want to leave this page?')) {
+ oldNav.call(this, fragment, options);
+ }
+ } else {
+ oldNav.call(this, fragment, options);
+ }
+ });
+
+ // Create a browser unload handler which is triggered
+ // on the refresh, back, or forward button.
+ window.onbeforeunload = function(e) {
+ return getPrompt('unloadWindowPrompt', e);
+ };
+
+ // Backbone.Model API
+ // ------------------
+
+ _.extend(Backbone.Model.prototype, {
+
+ unsaved: {},
+ _trackingChanges: false,
+ _originalAttrs: {},
+ _unsavedChanges: {},
+
+ // Opt in to tracking attribute changes
+ // between saves.
+ startTracking: function() {
+ this._unsavedConfig = _.extend({}, {
+ prompt: 'You have unsaved changes!',
+ unloadRouterPrompt: false,
+ unloadWindowPrompt: false
+ }, this.unsaved || {});
+ this._trackingChanges = true;
+ this._resetTracking();
+ this._triggerUnsavedChanges();
+ return this;
+ },
+
+ // Resets the default tracking values
+ // and stops tracking attribute changes.
+ stopTracking: function() {
+ this._trackingChanges = false;
+ this._originalAttrs = {};
+ this._unsavedChanges = {};
+ this._triggerUnsavedChanges();
+ return this;
+ },
+
+ // Gets rid of accrued changes and
+ // resets state.
+ restartTracking: function() {
+ this._resetTracking();
+ this._triggerUnsavedChanges();
+ return this;
+ },
+
+ // Restores this model's attributes to
+ // their original values since tracking
+ // started, the last save, or last restart.
+ resetAttributes: function() {
+ if (!this._trackingChanges) return;
+ this.attributes = this._originalAttrs;
+ this._resetTracking();
+ this._triggerUnsavedChanges();
+ return this;
+ },
+
+ // Symmetric to Backbone's `model.changedAttributes()`,
+ // except that this returns a hash of the model's attributes that
+ // have changed since the last save, or `false` if there are none.
+ // Like `changedAttributes`, an external attributes hash can be
+ // passed in, returning the attributes in that hash which differ
+ // from the model.
+ unsavedAttributes: function(attrs) {
+ if (!attrs) return _.isEmpty(this._unsavedChanges) ? false : _.clone(this._unsavedChanges);
+ var val, changed = false, old = this._unsavedChanges;
+ for (var attr in attrs) {
+ if (_.isEqual(old[attr], (val = attrs[attr]))) continue;
+ (changed || (changed = {}))[attr] = val;
+ }
+ return changed;
+ },
+
+ /**
+ * Reset tracking.
+ *
+ * @since 7.4.0 Added support for deep models (attributes that are objects themselves),
+ * by using `_.deepClone` in place of `_.clone`.
+ */
+ _resetTracking: function() {
+ this._originalAttrs = _.deepClone(this.attributes);
+ this._unsavedChanges = {};
+ },
+
+ // Trigger an `unsavedChanges` event on this model,
+ // supplying the result of whether there are unsaved
+ // changes and a changed attributes hash.
+ _triggerUnsavedChanges: function() {
+ this.trigger('unsavedChanges', !_.isEmpty(this._unsavedChanges), _.clone(this._unsavedChanges));
+ if (this.unsaved) updateUnsavedModels(this);
+ }
+ });
+
+ // Wrap `model.set()` and update the internal
+ // unsaved changes record keeping.
+ Backbone.Model.prototype.set = _.wrap(Backbone.Model.prototype.set, function(oldSet, key, val, options) {
+ var attrs, ret;
+ if (key == null) return this;
+ // Handle both `"key", value` and `{key: value}` -style arguments.
+ if (typeof key === 'object') {
+ attrs = key;
+ options = val;
+ } else {
+ (attrs = {})[key] = val;
+ }
+ options || (options = {});
+
+ // Delegate to Backbone's set.
+ ret = oldSet.call(this, attrs, options);
+
+ if (this._trackingChanges && !options.silent) {
+ _.each(attrs, _.bind(function(val, key) {
+ if (_.isEqual(this._originalAttrs[key], val))
+ delete this._unsavedChanges[key];
+ else
+ this._unsavedChanges[key] = val;
+ }, this));
+ this._triggerUnsavedChanges();
+ }
+ return ret;
+ });
+
+ // Intercept `model.save()` and reset tracking/unsaved
+ // changes if it was successful.
+ Backbone.sync = _.wrap(Backbone.sync, function(oldSync, method, model, options) {
+ options || (options = {});
+
+ if (method == 'update') {
+ options.success = _.wrap(options.success, _.bind(function(oldSuccess, data, textStatus, jqXHR) {
+ var ret;
+ if (oldSuccess) ret = oldSuccess.call(this, data, textStatus, jqXHR);
+ if (model._trackingChanges) {
+ model._resetTracking();
+ model._triggerUnsavedChanges();
+ }
+ return ret;
+ }, this));
+ }
+ return oldSync(method, model, options);
+ });
+
+})();
+
+define("vendor/backbone.trackit", function(){});
+
+/**
+ * Image object model for use in various models for the 'image' attribute
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Models/Image',[], function() {
+
+ return Backbone.Model.extend( {
+
+ defaults: {
+ enabled: 'no',
+ id: '',
+ size: 'full',
+ src: '',
+ },
+
+ initialize: function() {
+ this.startTracking();
+ },
+
+ } );
+} );
+
+/**
+ * Model relationships mixin
+ *
+ * @since 3.16.0
+ * @version 3.16.11
+ */
+define( 'Models/_Relationships',[], function() {
+
+ return {
+
+ /**
+ * Default relationship settings object
+ *
+ * @type {Object}
+ */
+ relationship_defaults: {
+ parent: {},
+ children: {},
+ },
+
+ /**
+ * Relationship settings object
+ * Should be overridden in the model
+ *
+ * @type {Object}
+ */
+ relationships: {},
+
+ /**
+ * Initialize all parent and child relationships
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ init_relationships: function( options ) {
+
+ var rels = this.get_relationships();
+
+ // initialize parent relationships
+ // useful when adding a model to ensure parent is initialized
+ if ( rels.parent && options && options.parent ) {
+ this.set_parent( options.parent );
+ }
+
+ // initialize all children relationships
+ _.each( rels.children, function( child_data, child_key ) {
+
+ if ( ! child_data.conditional || true === child_data.conditional( this ) ) {
+
+ var child_val = this.get( child_key ),
+ child;
+
+ if ( child_data.lookup ) {
+ child = child_data.lookup( child_val );
+ } else if ( 'model' === child_data.type ) {
+ child = window.llms_builder.construct.get_model( child_data.class, child_val );
+ } else if ( 'collection' === child_data.type ) {
+ child = window.llms_builder.construct.get_collection( child_data.class, child_val );
+ }
+
+ this.set( child_key, child );
+
+ // if the child defines a parent, save a reference to the parent on the child
+ if ( 'model' === child_data.type ) {
+ this._maybe_set_parent_reference( child );
+
+ // save directly to each model in the collection
+ } else if ( 'collection' === child_data.type ) {
+
+ child.parent = this;
+ child.each( function( child_model ) {
+
+ this._maybe_set_parent_reference( child_model );
+
+ }, this );
+
+ }
+
+ }
+
+ }, this );
+
+ },
+
+ /**
+ * Retrieve the property names for all children of the model
+ *
+ * @return array
+ * @since 3.16.11
+ * @version 3.16.11
+ */
+ get_child_props: function() {
+
+ var props = [];
+
+ _.each( this.get_relationships().children, function( data, key ) {
+
+ if ( ! data.conditional || true === data.conditional( this ) ) {
+ props.push( key );
+ }
+
+ }, this );
+
+ return props;
+
+ },
+
+ /**
+ * Retrieve the model's parent (if set)
+ *
+ * @return obj|false
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_parent: function() {
+
+ var rels = this.get_relationships();
+
+ if ( rels.parent ) {
+ return rels.parent.reference;
+ }
+
+ return false;
+
+ },
+
+ /**
+ * Retrieve relationships for the model
+ * Extends with defaults
+ *
+ * @return obj
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_relationships: function() {
+
+ return $.extend( true, this.relationships, this.relationship_defaults );
+
+ },
+
+ /**
+ * Set the parent reference for the given model
+ *
+ * @param obj obj parent model obj
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ set_parent: function( obj ) {
+ this.relationships.parent.reference = obj;
+ },
+
+ /**
+ * Set up the parent relationships for qualifying children during relationship initialization
+ *
+ * @param obj model child model
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ _maybe_set_parent_reference: function( model ) {
+
+ if ( ! model || ! model.get_relationships ) {
+ return;
+ }
+ var rels = model.get_relationships();
+ if ( rels.parent && rels.parent.model === this.get( 'type' ) ) {
+ model.set_parent( this );
+ }
+
+ },
+
+ };
+
+} );
+
+/**
+ * Quiz Question Choice
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Models/QuestionChoice',[ 'Models/Image', 'Models/_Relationships' ], function( Image, Relationships ) {
+
+ return Backbone.Model.extend( _.defaults( {
+
+ /**
+ * Model relationships
+ *
+ * @type {Object}
+ */
+ relationships: {
+ parent: {
+ model: 'llms_question',
+ type: 'model',
+ },
+ children: {
+ choice: {
+ conditional: function( model ) {
+ return ( 'image' === model.get( 'choice_type' ) );
+ },
+ class: 'Image',
+ model: 'image',
+ type: 'model',
+ },
+ },
+ },
+
+ /**
+ * Model defaults
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ defaults: function() {
+ return {
+ id: _.uniqueId( 'temp_' ),
+ choice: '',
+ choice_type: 'text',
+ correct: false,
+ marker: 'A',
+ question_id: '',
+ type: 'choice',
+ }
+ },
+
+ /**
+ * Initializer
+ *
+ * @param obj data object of model attributes
+ * @param obj options additional options
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ initialize: function( data, options ) {
+
+ this.startTracking();
+ this.init_relationships( options );
+
+ },
+
+ /**
+ * Retrieve the choice's parent question
+ *
+ * @return obj
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_parent: function() {
+ return this.collection.parent;
+ },
+
+ /**
+ * Retrieve the ID used when trashing the model
+ *
+ * @return string
+ * @since 3.17.1
+ * @version 3.17.1
+ */
+ get_trash_id: function() {
+ return this.get( 'question_id' ) + ':' + this.get( 'id' );
+ },
+
+ /**
+ * Determine if "selection" is enabled for the question type
+ * Choice type questions are selectable by reorder type questions are not but still use choices
+ *
+ * @return {Boolean}
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ is_selectable: function() {
+ return this.get_parent().get( 'question_type' ).get_choice_selectable();
+ },
+
+ }, Relationships ) );
+
+} );
+
+/**
+ * Question Choice Collection
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Collections/QuestionChoices',[ 'Models/QuestionChoice' ], function( model ) {
+
+ return Backbone.Collection.extend( {
+
+ /**
+ * Model for collection items
+ *
+ * @type obj
+ */
+ model: model,
+
+ initialize: function() {
+
+ // reorder called by QuestionList view when sortable drops occur
+ this.on( 'reorder', this.update_order );
+
+ // when a choice is added or removed, update order
+ this.on( 'add', this.update_order );
+ this.on( 'remove', this.update_order );
+
+ // when a choice is added or remove, ensure min/max correct answers exist
+ this.on( 'add', this.update_correct );
+ this.on( 'remove', this.update_correct );
+
+ // when a choice is toggled, ensure min/max correct exist
+ this.on( 'correct-update', this.update_correct );
+
+ },
+
+ /**
+ * Retrieve the number of correct choices in the collection
+ *
+ * @return int
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ count_correct: function() {
+
+ return _.size( this.get_correct() );
+
+ },
+
+ /**
+ * Retrieve the collection reduced to only correct choices
+ *
+ * @return obj
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_correct: function() {
+ return this.filter( function( choice ) {
+ return choice.get( 'correct' );
+ } );
+ },
+
+ /**
+ * Ensure min/max correct choices exist in the collection based on the question's settings
+ *
+ * @param obj choice model of the choice that was toggled
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ update_correct: function( choice ) {
+
+ if ( ! this.parent.get( 'question_type' ).get_choice_selectable() ) {
+ return;
+ }
+
+ var siblings = this.without( choice ), // exclude the toggled choice from loops
+ question = this.parent;
+
+ // if multiple choices aren't enabled turn all other choices to incorrect
+ if ( 'no' === question.get( 'multi_choices' ) ) {
+ _.each( siblings, function( model ) {
+ model.set( 'correct', false );
+ } );
+ }
+
+ // if we don't have a single correct answer & the question has points, set one
+ // allows users to create quizzes / questions with no points and therefore no correct answers are allowed
+ if ( 0 === this.count_correct() && question.get( 'points' ) > 0 ) {
+ var models = 1 === this.size() ? this.models : siblings;
+ _.first( models ).set( 'correct', true );
+ }
+
+ },
+
+ /**
+ * Update the marker attr of each choice in the list to reflect the order of the collection
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ update_order: function() {
+
+ var self = this,
+ question = this.parent;
+
+ this.each( function( choice ) {
+ choice.set( 'marker', question.get( 'question_type' ).get_choice_markers()[ self.indexOf( choice ) ] );
+ } );
+
+ },
+
+ } );
+
+} );
+
+/**
+ * Quiz Question Type
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Models/QuestionType',[], function() {
+
+ return Backbone.Model.extend( {
+
+ /**
+ * Get model default attributes
+ *
+ * @return obj
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ defaults: function() {
+ return {
+ choices: false,
+ clarifications: true,
+ default_choices: [],
+ description: true,
+ icon: 'question',
+ id: 'generic',
+ image: true,
+ keywords: [],
+ name: 'Generic',
+ placeholder: '',
+ points: true,
+ video: true,
+ }
+ },
+
+ /**
+ * Retrieve an array of keywords for the question type
+ * Used for filtering questions by search term in the quiz builder
+ *
+ * @return array
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_keywords: function() {
+
+ var name = this.get( 'name' ),
+ words = [ name ];
+
+ return words.concat( this.get( 'keywords' ) ).concat( name.split( ' ' ) );
+
+ },
+
+ /**
+ * Get marker array for the question choices
+ *
+ * @return array
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_choice_markers: function() {
+
+ return this._get_choice_option( 'markers' );
+
+ },
+
+ /**
+ * Determine if the question's choices are selectable
+ *
+ * @return bool
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_choice_selectable: function() {
+
+ return this._get_choice_option( 'selectable' );
+
+ },
+
+ /**
+ * Get the choice type (text,image)
+ *
+ * @return string
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_choice_type: function() {
+
+ return this._get_choice_option( 'type' );
+
+ },
+
+ /**
+ * Retrieve defined min. choices
+ *
+ * @return int
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_min_choices: function() {
+
+ return this._get_choice_option( 'min' );
+
+ },
+
+ /**
+ * Get type-defined max choices
+ *
+ * @return string
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_max_choices: function() {
+
+ return this._get_choice_option( 'max' );
+
+ },
+
+ /**
+ * Determine if multi-choice selection is enabled
+ *
+ * @return bool
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_multi_choices: function() {
+
+ var choices = this.get( 'choices' );
+
+ if ( ! choices ) {
+ return false;
+ }
+
+ return this._get_choice_option( 'multi' );
+
+ },
+
+ /**
+ * Retrieve data from the type's "choices" attribute
+ * Allows quick handling of types with no choice definitions w/o additional checks
+ *
+ * @param string option name of the choice option to retrieve
+ * @return mixed
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ _get_choice_option: function( option ) {
+
+ var choices = this.get( 'choices' );
+
+ if ( ! choices || ! choices[ option ] ) {
+ return false;
+ }
+
+ return choices[ option ];
+
+ },
+
+ } );
+
+} );
+
+/**
+ * Utility functions for Models.
+ *
+ * @since 3.16.0
+ * @version 7.4.0
+ */
+define( 'Models/_Utilities',[], function() {
+
+ return {
+
+ fields: [],
+
+ /**
+ * Override Backbone `set` method.
+ *
+ * Takes into account attributes of the form object[prop].
+ *
+ * @since 7.4.0
+ *
+ * @param {Mixed} attr The attribute to be set.
+ * @param {Mixed} val The value to set.
+ */
+ set: function ( attr, val ) {
+
+ if ( 'string' === typeof attr ) {
+
+ const matches = attr.match( /(.*?)\[(.*?)\]/ );
+ if ( matches && 3 === matches.length ) {
+
+ const
+ realAttr = matches[1],
+ currentVal = Backbone.Model.prototype.get.call( this, realAttr );
+
+ var newVal = undefined !== currentVal ? currentVal : {};
+
+ newVal[ matches[2] ] = val;
+
+ arguments[0] = realAttr;
+ arguments[1] = newVal;
+
+ }
+ }
+
+ // Continue with Backbone default `set` behavior.
+ Backbone.Model.prototype.set.apply( this, arguments );
+
+ },
+
+ /**
+ * Override Backbone `get` method.
+ *
+ * Takes into account attributes of the form object[prop].
+ *
+ * @since 7.4.0
+ *
+ * @param {Mixed} attr The attribute name.
+ */
+ get: function( attr ) {
+
+ const matches = attr.match( /(.*?)\[(.*?)\]/ );
+ if ( matches && 3 === matches.length ) {
+ const val = Backbone.Model.prototype.get.call( this, matches[1] );
+ if ( val && undefined !== val[ matches[2] ] ) {
+ return val[ matches[2] ];
+ }
+ }
+
+ // Continue with Backbone default `get` behavior.
+ return Backbone.Model.prototype.get.call( this, attr );
+
+ },
+
+ /**
+ * Retrieve the edit post link for the current model.
+ *
+ * @since 3.16.0
+ *
+ * @return string
+ */
+ get_edit_post_link: function() {
+
+ if ( this.has_temp_id() ) {
+ return '';
+ }
+
+ return window.llms_builder.admin_url + 'post.php?post=' + this.get( 'id' ) + '&action=edit';
+
+ },
+
+ get_view_post_link: function() {
+ if ( this.has_temp_id() ) {
+ return '';
+ }
+
+ if ( this.get( 'permalink' ) ) {
+ return this.get( 'permalink' );
+ }
+
+ if ( this.get( 'status' ) === 'publish' ) {
+ return window.llms_builder.home_url + '?p=' + this.get( 'id' );
+ }
+
+ return window.llms_builder.home_url + '?p=' + this.get( 'id' ) + '&preview=true&post_type=' + this.get( 'type' );
+
+ },
+
+ /**
+ * Retrieve schema fields defined for the model
+ *
+ * @return object
+ * @since 3.17.0
+ * @version 3.17.1
+ */
+ get_settings_fields: function() {
+
+ var schema = this.schema || {};
+ return window.llms_builder.schemas.get( schema, this.get( 'type' ).replace( 'llms_', '' ), this );
+
+ },
+
+ /**
+ * Determine if the model has a temporary ID
+ *
+ * @return {Boolean}
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ has_temp_id: function() {
+
+ return ( ! _.isNumber( this.get( 'id' ) ) && 0 === this.get( 'id' ).indexOf( 'temp_' ) );
+
+ },
+
+ /**
+ * Initializes 3rd party custom schema (field) data for a model
+ *
+ * @return void
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ init_custom_schema: function() {
+
+ var groups = _.filter( this.get_settings_fields(), function( group ) {
+ return ( group.custom );
+ } );
+
+ _.each( groups, function( group ) {
+ _.each( _.flatten( group.fields ), function( field ) {
+
+ var keys = [ field.attribute ],
+ customs = this.get( 'custom' );
+
+ if ( field.switch_attribute ) {
+ keys.push( field.switch_attribute );
+ }
+
+ _.each( keys, function( key ) {
+ var attr = field.attribute_prefix ? field.attribute_prefix + key : key;
+ if ( customs && customs[ attr ] ) {
+ this.set( key, customs[ attr ][0] );
+ }
+ }, this );
+
+ }, this );
+ }, this );
+
+ },
+
+ };
+
+} );
+
+/**
+ * Quiz Question
+ *
+ * @since 3.16.0
+ * @version 3.27.0
+ */
+define( 'Models/Question',[
+ 'Models/Image',
+ 'Collections/Questions',
+ 'Collections/QuestionChoices',
+ 'Models/QuestionType',
+ 'Models/_Relationships',
+ 'Models/_Utilities'
+ ], function(
+ Image,
+ Questions,
+ QuestionChoices,
+ QuestionType,
+ Relationships,
+ Utilities
+ ) {
+
+ return Backbone.Model.extend( _.defaults( {
+
+ /**
+ * Model relationships
+ *
+ * @type {Object}
+ */
+ relationships: {
+ parent: {
+ model: 'llms_quiz',
+ type: 'model',
+ },
+ children: {
+ choices: {
+ class: 'QuestionChoices',
+ model: 'choice',
+ type: 'collection',
+ },
+ image: {
+ class: 'Image',
+ model: 'image',
+ type: 'model',
+ },
+ questions: {
+ class: 'Questions',
+ conditional: function( model ) {
+ var type = model.get( 'question_type' ),
+ type_id = _.isString( type ) ? type : type.get( 'id' );
+ return ( 'group' === type_id );
+ },
+ model: 'llms_question',
+ type: 'collection',
+ },
+ question_type: {
+ class: 'QuestionType',
+ lookup: function( val ) {
+ if ( _.isString( val ) ) {
+ return window.llms_builder.questions.get( val );
+ }
+ return val;
+ },
+ model: 'question_type',
+ type: 'model',
+ },
+ }
+ },
+
+ /**
+ * Model defaults
+ *
+ * @return obj
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ defaults: function() {
+ return {
+ id: _.uniqueId( 'temp_' ),
+ choices: [],
+ content: '',
+ description_enabled: 'no',
+ image: {},
+ multi_choices: 'no',
+ menu_order: 1,
+ points: 1,
+ question_type: 'generic',
+ questions: [], // for question groups
+ parent_id: '',
+ title: '',
+ type: 'llms_question',
+ video_enabled: 'no',
+ video_src: '',
+
+ _expanded: false,
+ }
+ },
+
+ /**
+ * Initializer
+ *
+ * @param obj data object of data for the model
+ * @param obj options additional options
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ initialize: function( data, options ) {
+
+ var self = this;
+
+ this.startTracking();
+ this.init_relationships( options );
+
+ if ( false !== this.get( 'question_type' ).choices ) {
+
+ this._ensure_min_choices();
+
+ // when a choice is removed, maybe add back some defaults so we always have the minimum
+ this.listenTo( this.get( 'choices' ), 'remove', function() {
+ // new items are added at index 0 when there's only 1 item in the collection, not sure why exactly...
+ setTimeout( function() {
+ self._ensure_min_choices();
+ }, 0 );
+ } );
+
+ }
+
+ // ensure question types that don't support points don't record default 1 point in database
+ if ( ! this.get( 'question_type' ).get( 'points' ) ) {
+ this.set( 'points', 0 );
+ }
+
+ _.delay( function( self ) {
+ self.on( 'change:points', self.get_parent().update_points, self.get_parent() );
+ }, 1, this );
+
+ },
+
+ /**
+ * Add a new question choice
+ *
+ * @param obj data object of choice data
+ * @param obj options additional options
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ add_choice: function( data, options ) {
+
+ var max = this.get( 'question_type' ).get_max_choices();
+ if ( this.get( 'choices' ).size() >= max ) {
+ return;
+ }
+
+ data = data || {};
+ options = options || {};
+
+ data.choice_type = this.get( 'question_type' ).get_choice_type();
+ data.question_id = this.get( 'id' );
+ options.parent = this;
+
+ var choice = this.get( 'choices' ).add( data, options );
+
+ Backbone.pubSub.trigger( 'question-add-choice', choice, this );
+
+ },
+
+ /**
+ * Collapse question_type attribute during full syncs to save to database
+ * Not needed because question types cannot be adjusted after question creation
+ * Called from sync controller
+ *
+ * @param obj atts flat object of attributes to be saved to db
+ * @param string sync_type full or partial
+ * full indicates a force resync or that the model isn't persisted yet
+ * @return obj
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ before_save: function( atts, sync_type ) {
+ if ( 'full' === sync_type ) {
+ atts.question_type = this.get( 'question_type' ).get( 'id' );
+ }
+ return atts;
+ },
+
+ /**
+ * Retrieve the model's parent (if set)
+ *
+ * @return obj|false
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_parent: function() {
+
+ var rels = this.get_relationships();
+
+ if ( rels.parent ) {
+ if ( this.collection && this.collection.parent ) {
+ return this.collection.parent;
+ } else if ( rels.parent.reference ) {
+ return rels.parent.reference;
+ }
+ }
+
+ return false;
+
+ },
+
+ /**
+ * Retrieve the translated post type name for the model's type
+ *
+ * @param bool plural if true, returns the plural, otherwise returns singular
+ * @return string
+ * @since 3.27.0
+ * @version 3.27.0
+ */
+ get_l10n_type: function( plural ) {
+
+ if ( plural ) {
+ return LLMS.l10n.translate( 'questions' );
+ }
+
+ return LLMS.l10n.translate( 'question' );
+ },
+
+ /**
+ * Gets the index of the question within it's parent
+ * Question numbers skip content elements
+ * & content elements skip questions
+ *
+ * @return int
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_type_index: function() {
+
+ // current models type, used to check the predicate in the filter function below
+ var curr_type = this.get( 'question_type' ).get( 'id' ),
+ questions;
+
+ questions = this.collection.filter( function( question ) {
+
+ var type = question.get( 'question_type' ).get( 'id' );
+
+ // if current model is not content, return all non-content questions
+ if ( curr_type !== 'content' ) {
+ return ( 'content' !== type );
+ }
+
+ // current model is content, return only content questions
+ return 'content' === type;
+
+ } );
+
+ return questions.indexOf( this );
+
+ },
+
+ /**
+ * Gets iterator for the given type
+ * Questions use numbers and content uses alphabet
+ *
+ * @return mixed
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_type_iterator: function() {
+
+ var index = this.get_type_index();
+
+ if ( -1 === index ) {
+ return '';
+ }
+
+ if ( 'content' === this.get( 'question_type' ).get( 'id' ) ) {
+ var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split( '' );
+ return alphabet[ index ];
+ }
+
+ return index + 1;
+
+ },
+
+ get_qid: function() {
+
+ var parent = this.get_parent_question(),
+ prefix = '';
+
+ if ( parent ) {
+
+ prefix = parent.get_qid() + '.';
+
+ }
+
+ // return short_id + this.get_type_iterator();
+ return prefix + this.get_type_iterator();
+
+ },
+
+ /**
+ * Retrieve the parent question (if the question is in a question group)
+ *
+ * @return obj|false
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_parent_question: function() {
+
+ if ( this.is_in_group() ) {
+
+ return this.collection.parent;
+
+ }
+
+ return false;
+
+ },
+
+ /**
+ * Retrieve the parent quiz
+ *
+ * @return obj
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_parent_quiz: function() {
+ return this.get_parent();
+ },
+
+ /**
+ * Points getter
+ * ensures that 0 is always returned if the question type doesn't support points
+ *
+ * @return int
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_points: function() {
+
+ if ( ! this.get( 'question_type' ).get( 'points' ) ) {
+ return 0;
+ }
+
+ return this.get( 'points' );
+
+ },
+
+ /**
+ * Retrieve the questions percentage value within the quiz
+ *
+ * @return string
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_points_percentage: function() {
+
+ var total = this.get_parent().get( '_points' ),
+ points = this.get( 'points' );
+
+ if ( 0 === total ) {
+ return '0%';
+ }
+
+ return ( ( points / total ) * 100 ).toFixed( 2 ) + '%';
+
+ },
+
+ /**
+ * Determine if the question belongs to a question group
+ *
+ * @return {Boolean}
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ is_in_group: function() {
+
+ return ( 'question' === this.collection.parent.get( 'type' ) );
+
+ },
+
+ _ensure_min_choices: function() {
+
+ var choices = this.get( 'choices' );
+ while ( choices.size() < this.get( 'question_type' ).get_min_choices() ) {
+ this.add_choice();
+ }
+
+ },
+
+ }, Relationships, Utilities ) );
+
+} );
+
+/**
+ * Questions Collection
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Collections/Questions',[ 'Models/Question' ], function( model ) {
+
+ return Backbone.Collection.extend( {
+
+ /**
+ * Model for collection items
+ *
+ * @type obj
+ */
+ model: model,
+
+ /**
+ * Initialize
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ initialize: function() {
+
+ // reorder called by QuestionList view when sortable drops occur
+ this.on( 'reorder', this.update_order );
+
+ // when a question is added or removed, update order
+ this.on( 'add', this.update_order );
+ this.on( 'remove', this.update_order );
+
+ this.on( 'add', this.update_parent );
+
+ },
+
+ /**
+ * Update the order attr of each question in the list to reflect the order of the collection
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ update_order: function() {
+
+ var self = this;
+
+ this.each( function( question ) {
+
+ question.set( 'menu_order', self.indexOf( question ) + 1 );
+
+ } );
+
+ },
+
+ /**
+ * When adding a question to a question list, update the question's parent
+ * Will ensure that questions moved into and out of groups always have the correct parent_id
+ *
+ * @param obj model instance of the question model
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ update_parent: function( model ) {
+
+ model.set( 'parent_id', this.parent.get( 'id' ) );
+
+ },
+
+ } );
+
+} );
+
+/**
+ * Quiz Schema.
+ *
+ * @since 3.17.6
+ * @since 7.4.0 Added upsell for Question Bank and condition in `random_questions` schema.
+ * @since 7.6.2 Added `disable_retake` schema.
+ * @since 7.8.0 Added `can_be_resumed` option.
+ * @version 7.8.0
+
+ */
+define( 'Schemas/Quiz',[], function() {
+
+ return window.llms.hooks.applyFilters( 'llms_define_quiz_schema', {
+
+ default: {
+ title: LLMS.l10n.translate( 'General Settings' ),
+ toggleable: true,
+ fields: [
+ [
+ {
+ attribute: 'permalink',
+ id: 'permalink',
+ type: 'permalink',
+ },
+ ], [
+ {
+ attribute: 'content',
+ id: 'description',
+ label: LLMS.l10n.translate( 'Description' ),
+ type: 'editor',
+ },
+ ], [
+ {
+ attribute: 'passing_percent',
+ id: 'passing-percent',
+ label: LLMS.l10n.translate( 'Passing Percentage' ),
+ min: 0,
+ max: 100,
+ tip: LLMS.l10n.translate( 'Minimum percentage of total points required to pass the quiz' ),
+ type: 'number',
+ },
+ {
+ attribute: 'allowed_attempts',
+ id: 'allowed-attempts',
+ label: LLMS.l10n.translate( 'Limit Attempts' ),
+ switch_attribute: 'limit_attempts',
+ tip: LLMS.l10n.translate( 'Limit the maximum number of times a student can take this quiz' ),
+ type: 'switch-number',
+ },
+ {
+ attribute: 'time_limit',
+ id: 'time-limit',
+ label: LLMS.l10n.translate( 'Time Limit' ),
+ min: 1,
+ max: 360,
+ switch_attribute: 'limit_time',
+ tip: LLMS.l10n.translate( 'Enforce a maximum number of minutes a student can spend on each attempt' ),
+ type: 'switch-number',
+ },
+ ], [
+
+ {
+ attribute: 'can_be_resumed',
+ id: 'resume',
+ label: LLMS.l10n.translate( 'Can be resumed' ),
+ tip: LLMS.l10n.translate( 'Allow a new attempt on this quiz to be resumed' ),
+ type: 'switch',
+ condition: function() {
+ return 'yes' === this.get( 'limit_time' ) ? false : true;
+ }
+ },
+ {
+ attribute: 'show_correct_answer',
+ id: 'show-correct-answer',
+ label: LLMS.l10n.translate( 'Show Correct Answers' ),
+ tip: LLMS.l10n.translate( 'When enabled, students will be shown the correct answer to any question they answered incorrectly.' ),
+ type: 'switch',
+ },
+ {
+ attribute: 'random_questions',
+ id: 'random-questions',
+ label: LLMS.l10n.translate( 'Randomize Question Order' ),
+ tip: LLMS.l10n.translate( 'Display questions in a random order for each attempt. Content questions are locked into their defined positions.' ),
+ type: 'switch',
+ condition: function() {
+ return 'yes' === this.get( 'question_bank' ) ? false : true;
+ }
+ },
+ {
+ attribute: 'disable_retake',
+ id: 'disable-retake',
+ label: LLMS.l10n.translate( 'Disable Retake' ),
+ tip: LLMS.l10n.translate( 'Prevent quiz retake after student passed the quiz.' ),
+ type: 'switch',
+ },
+ ], [
+ {
+ id: 'question-bank',
+ label: LLMS.l10n.translate( 'Question Bank' ),
+ tip: LLMS.l10n.translate( 'A question bank helps prevent cheating and reinforces learning by allowing instructors to create assessments with randomized questions pulled from a bank of questions. (Available in Advanced Quizzes addon)' ),
+ type: 'upsell',
+ text: LLMS.l10n.translate( 'Get LifterLMS Advanced Quizzes' ),
+ url: 'https://lifterlms.com/product/advanced-quizzes/?utm_source=LifterLMS%20Plugin&utm_medium=Quiz%20Builder%20Button&utm_campaign=Advanced%20Question%20Upsell&utm_content=3.16.0&utm_term=Questions%20Bank'
+ }
+ ]
+
+ ],
+ },
+
+ } );
+
+} );
+
+/**
+ * Quiz Model.
+ *
+ * @since 3.16.0
+ * @version 7.5.0
+ */
+define( 'Models/Quiz',[
+ 'Collections/Questions',
+ 'Models/Lesson',
+ 'Models/Question',
+ 'Models/_Relationships',
+ 'Models/_Utilities',
+ 'Schemas/Quiz',
+ ], function(
+ Questions,
+ Lesson,
+ Question,
+ Relationships,
+ Utilities,
+ QuizSchema
+ ) {
+
+ return Backbone.Model.extend( _.defaults( {
+
+ /**
+ * model relationships
+ * @type {Object}
+ */
+ relationships: {
+ parent: {
+ model: 'lesson',
+ type: 'model',
+ },
+ children: {
+ questions: {
+ class: 'Questions',
+ model: 'llms_question',
+ type: 'collection',
+ },
+ }
+ },
+
+ /**
+ * Lesson Settings Schema
+ * @type {Object}
+ */
+ schema: QuizSchema,
+
+ /**
+ * New quiz defaults.
+ *
+ * @since 3.16.0
+ * @since 7.4.0 Added filter for filtering defaults.
+ * @since 7.5.0 Replaced unused `random_answers` property with `random_questions`.
+ * @since 7.8.0 Added filter for filtering defaults and `can_be_resumed` property.
+ *
+ * @return {Object}
+ */
+ defaults: function() {
+
+ return window.llms.hooks.applyFilters( 'llms_quiz_model_defaults', {
+ id: _.uniqueId( 'temp_' ),
+ title: LLMS.l10n.translate( 'New Quiz' ),
+ type: 'llms_quiz',
+ lesson_id: '',
+
+ status: 'draft',
+
+ // editable fields.
+ content: '',
+ allowed_attempts: 5,
+ limit_attempts: 'no',
+ limit_time: 'no',
+ passing_percent: 65,
+ name: '',
+ random_questions: 'no',
+ time_limit: 30,
+ show_correct_answer: 'no',
+ can_be_resumed: 'no',
+ disable_retake: 'no',
+
+ questions: [],
+
+ // calculated.
+ _points: 0,
+
+ // display.
+ permalink: '',
+ _show_settings: false,
+ _questions_loaded: false,
+ } );
+
+ },
+
+ /**
+ * Initializer
+ * @return void
+ * @since 3.16.0
+ * @version 3.24.0
+ */
+ initialize: function() {
+
+ this.init_custom_schema();
+ this.startTracking();
+ this.init_relationships();
+
+ this.listenTo( this.get( 'questions' ), 'add', this.update_points );
+ this.listenTo( this.get( 'questions' ), 'remove', this.update_points );
+
+ this.set( '_points', this.get_total_points() );
+
+ // when a quiz is published, ensure the parent lesson is marked as "Enabled" for quizzing
+ this.on( 'change:status', function() {
+ if ( 'publish' === this.get( 'status' ) ) {
+ this.get_parent().set( 'quiz_enabled', 'yes' );
+ }
+ } );
+
+ window.llms.hooks.doAction( 'llms_quiz_model_init', this );
+
+ },
+
+ /**
+ * Add a new question to the quiz
+ * @param obj data question data
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ add_question: function( data ) {
+
+ data.parent_id = this.get( 'id' );
+ var question = this.get( 'questions' ).add( data, {
+ parent: this,
+ } );
+ Backbone.pubSub.trigger( 'quiz-add-question', question, this );
+
+ },
+
+ /**
+ * Retrieve the translated post type name for the model's type
+ * @param bool plural if true, returns the plural, otherwise returns singular
+ * @return string
+ * @since 3.16.12
+ * @version 3.16.12
+ */
+ get_l10n_type: function( plural ) {
+
+ if ( plural ) {
+ return LLMS.l10n.translate( 'quizzes' );
+ }
+
+ return LLMS.l10n.translate( 'quiz' );
+ },
+
+ /**
+ * Retrieve the quiz's total points
+ * @return int
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_total_points: function() {
+
+ var points = 0;
+
+ this.get( 'questions' ).each( function( question ) {
+ points += question.get_points();
+ } );
+
+ return points;
+
+ },
+
+ /**
+ * Lazy load questions via AJAX
+ * @param {Function} cb callback function
+ * @return void
+ * @since 3.19.2
+ * @version 3.19.2
+ */
+ load_questions: function( cb ) {
+
+ if ( this.get( '_questions_loaded' ) ) {
+
+ cb();
+
+ } else {
+
+ var self = this;
+
+ LLMS.Ajax.call( {
+ data: {
+ action: 'llms_builder',
+ action_type: 'lazy_load',
+ course_id: window.llms_builder.CourseModel.get( 'id' ),
+ load_id: this.get( 'id' ),
+ },
+ error: function( xhr, status, error ) {
+
+ console.log( xhr, status, error );
+ window.llms_builder.debug.log( '==== start load_questions error ====', xhr, status, error, '==== finish load_questions error ====' );
+ cb( true );
+
+ },
+ success: function( res ) {
+ if ( res && res.questions ) {
+ self.set( '_questions_loaded', true );
+ if ( res.questions ) {
+ _.each( res.questions, self.add_question, self );
+ }
+ cb();
+ } else {
+ cb( true );
+ }
+ }
+
+ } );
+
+ }
+
+
+ },
+
+ /**
+ * Update total number of points calculated property
+ * @return int
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ update_points: function() {
+
+ this.set( '_points', this.get_total_points() );
+
+ },
+
+ }, Relationships, Utilities ) );
+
+} );
+
+/**
+ * Lesson Schemas
+ *
+ * @since 3.17.0
+ * @version 3.25.4
+ */
+define( 'Schemas/Lesson',[], function() {
+
+ return window.llms.hooks.applyFilters( 'llms_define_lesson_schema', {
+
+ default: {
+ title: LLMS.l10n.translate( 'General Settings' ),
+ toggleable: true,
+ fields: [
+ [
+ {
+ attribute: 'permalink',
+ id: 'permalink',
+ type: 'permalink',
+ },
+ ], [
+ {
+ attribute: 'video_embed',
+ id: 'video-embed',
+ label: LLMS.l10n.translate( 'Video Embed URL' ),
+ type: 'video_embed',
+ },
+ {
+ attribute: 'audio_embed',
+ id: 'audio-embed',
+ label: LLMS.l10n.translate( 'Audio Embed URL' ),
+ type: 'audio_embed',
+ },
+ ], [
+ {
+ attribute: 'free_lesson',
+ id: 'free-lesson',
+ label: LLMS.l10n.translate( 'Free Lesson' ),
+ tip: LLMS.l10n.translate( 'Free lessons can be accessed without enrollment.' ),
+ type: 'switch',
+ },
+ {
+ attribute: 'require_passing_grade',
+ id: 'require-passing-grade',
+ label: LLMS.l10n.translate( 'Require Passing Grade on Quiz' ),
+ tip: LLMS.l10n.translate( 'When enabled, students must pass this quiz before the lesson can be completed.' ),
+ type: 'switch',
+ condition: function() {
+ return ( 'yes' === this.get( 'quiz_enabled' ) );
+ },
+ },
+ {
+ attribute: 'require_assignment_passing_grade',
+ id: 'require-assignment-passing-grade',
+ label: LLMS.l10n.translate( 'Require Passing Grade on Assignment' ),
+ tip: LLMS.l10n.translate( 'When enabled, students must pass this assignment before the lesson can be completed.' ),
+ type: 'switch',
+ condition: function() {
+ return ( 'undefined' !== window.llms_builder.assignments && 'yes' === this.get( 'assignment_enabled' ) );
+ },
+ },
+ {
+ attribute: 'points',
+ id: 'points',
+ label: LLMS.l10n.translate( 'Lesson Weight' ),
+ label_after: LLMS.l10n.translate( 'POINTS' ),
+ min: 0,
+ max: 99,
+ tip: LLMS.l10n.translate( 'Determines the weight of the lesson when calculating the overall grade of the course.' ),
+ tip_position: 'top-left',
+ type: 'number',
+ condition: function() {
+ return ( ( 'yes' === this.get( 'quiz_enabled' ) ) || ( 'undefined' !== window.llms_builder.assignments && 'yes' === this.get( 'assignment_enabled' ) ) );
+ },
+ },
+ ], [
+ {
+ attribute: 'prerequisite',
+ condition: function() {
+ return ( false === this.is_first_in_course() );
+ },
+ id: 'prerequisite',
+ label: LLMS.l10n.translate( 'Prerequisite' ),
+ switch_attribute: 'has_prerequisite',
+ type: 'switch-select',
+ options: function() {
+ return this.get_available_prereq_options();
+ },
+ },
+ ], [
+ {
+ label: LLMS.l10n.translate( 'Course Drip Method' ),
+ id: 'course-drip',
+ type: 'heading',
+ condition: function() {
+ return ( this.get_course() && 'yes' === this.get_course().get( 'lesson_drip' ) && this.get_course().get( 'drip_method' ) );
+ },
+ detail: LLMS.l10n.translate( 'Drip settings are currently set at the course level, under the Restrictions settings tab. Disable to allow lesson level drip settings.' ) + ' ' + LLMS.l10n.translate( 'Edit Course' ) + ' ',
+ },
+ ], [
+ {
+ label: LLMS.l10n.translate( 'Course Drip Method' ),
+ id: 'course-drip',
+ type: 'heading',
+ condition: function() {
+ return ( ! this.get_course() || 'yes' !== this.get_course().get( 'lesson_drip' ) || ! this.get_course().get( 'drip_method' ) );
+ },
+ detail: LLMS.l10n.translate( 'Drip settings can be set at the course level to release course content at a specified interval, in the Restrictions settings tab.' ) + ' ' + LLMS.l10n.translate( 'Edit Course' ) + ' ',
+ },
+ ], [
+ {
+ attribute: 'drip_method',
+ id: 'drip-method',
+ label: LLMS.l10n.translate( 'Drip Method' ),
+ switch_attribute: 'drip_method',
+ type: 'select',
+ condition: function() {
+ return ( ! this.get_course() || 'yes' !== this.get_course().get( 'lesson_drip' ) || ! this.get_course().get( 'drip_method' ) );
+ },
+ options: function() {
+
+ var options = [
+ {
+ key: '',
+ val: LLMS.l10n.translate( 'None' ),
+ },
+ {
+ key: 'date',
+ val: LLMS.l10n.translate( 'On a specific date' ),
+ },
+ {
+ key: 'enrollment',
+ val: LLMS.l10n.translate( '# of days after course enrollment' ),
+ },
+ ];
+
+ if ( this.get_course() && this.get_course().get( 'start_date' ) ) {
+ options.push( {
+ key: 'start',
+ val: LLMS.l10n.translate( '# of days after course start date' ),
+ } );
+ }
+
+ if ( 'yes' === this.get( 'has_prerequisite' ) ) {
+ options.push( {
+ key: 'prerequisite',
+ val: LLMS.l10n.translate( '# of days after prerequisite lesson completion' ),
+ } );
+ }
+
+ return options;
+
+ },
+ },
+ {
+ attribute: 'days_before_available',
+ condition: function() {
+ if ( this.get_course() && 'yes' === this.get_course().get( 'lesson_drip' ) && this.get_course().get( 'drip_method' ) ) {
+ return false;
+ }
+
+ return ( -1 !== [ 'enrollment', 'start', 'prerequisite' ].indexOf( this.get( 'drip_method' ) ) );
+ },
+ id: 'days-before-available',
+ label: LLMS.l10n.translate( '# of days' ),
+ min: 0,
+ type: 'number',
+ },
+ {
+ attribute: 'date_available',
+ date_format: 'Y-m-d',
+ condition: function() {
+ if ( this.get_course() && 'yes' === this.get_course().get( 'lesson_drip' ) && this.get_course().get( 'drip_method' ) ) {
+ return false;
+ }
+
+ return ( 'date' === this.get( 'drip_method' ) );
+ },
+ id: 'date-available',
+ label: LLMS.l10n.translate( 'Date' ),
+ timepicker: 'false',
+ type: 'datepicker',
+ },
+ {
+ attribute: 'time_available',
+ condition: function() {
+ if ( this.get_course() && 'yes' === this.get_course().get( 'lesson_drip' ) && this.get_course().get( 'drip_method' ) ) {
+ return false;
+ }
+
+ return ( 'date' === this.get( 'drip_method' ) );
+ },
+ datepicker: 'false',
+ date_format: 'h:i A',
+ id: 'time-available',
+ label: LLMS.l10n.translate( 'Time' ),
+ type: 'datepicker',
+ },
+ ],
+ ],
+ },
+
+ } );
+
+} );
+
+/**
+ * Lesson Model
+ *
+ * @since 3.13.0
+ * @version 4.20.0
+ */
+define( 'Models/Lesson',[ 'Models/Quiz', 'Models/_Relationships', 'Models/_Utilities', 'Schemas/Lesson' ], function( Quiz, Relationships, Utilities, LessonSchema ) {
+
+ return Backbone.Model.extend( _.defaults( {
+
+ /**
+ * Model relationships
+ *
+ * @type {Object}
+ */
+ relationships: {
+ parents: {
+ model: 'section',
+ type: 'model',
+ },
+ children: {
+ quiz: {
+ class: 'Quiz',
+ conditional: function( model ) {
+ // if quiz is enabled OR not enabled but we have some quiz data as an obj
+ return ( 'yes' === model.get( 'quiz_enabled' ) || ! _.isEmpty( model.get( 'quiz' ) ) );
+ },
+ model: 'llms_quiz',
+ type: 'model',
+ },
+ },
+ },
+
+ /**
+ * Lesson Settings Schema
+ *
+ * @type {Object}
+ */
+ schema: LessonSchema,
+
+ /**
+ * New lesson defaults
+ *
+ * @since 3.13.0
+ * @since 3.24.0 Unknown.
+ *
+ * @return {Object} Default options associative array (js object).
+ */
+ defaults: function() {
+ return {
+ id: _.uniqueId( 'temp_' ),
+ title: LLMS.l10n.translate( 'New Lesson' ),
+ type: 'lesson',
+ order: this.collection ? this.collection.length + 1 : 1,
+ parent_course: window.llms_builder.course.id,
+ parent_section: '',
+
+ // Urls.
+ edit_url: '',
+ view_url: '',
+
+ // Editable fields.
+ content: '',
+ audio_embed: '',
+ has_prerequisite: 'no',
+ require_passing_grade: 'yes',
+ require_assignment_passing_grade: 'yes',
+ video_embed: '',
+ free_lesson: '',
+ points: 1,
+
+ // Other fields.
+ assignment: {}, // Assignment model/data.
+ assignment_enabled: 'no',
+
+ quiz: {}, // Quiz model/data.
+ quiz_enabled: 'no',
+
+ _forceSync: false,
+
+ };
+ },
+
+ /**
+ * Initializer
+ *
+ * @since 3.16.0
+ * @since 3.17.0 Unknown
+ *
+ * @return {void}
+ */
+ initialize: function() {
+
+ this.init_custom_schema();
+ this.startTracking();
+ this.maybe_init_assignments();
+ this.init_relationships();
+
+ // If the lesson ID isn't set on a quiz, set it.
+ var quiz = this.get( 'quiz' );
+ if ( ! _.isEmpty( quiz ) && ! quiz.get( 'lesson_id' ) ) {
+ quiz.set( 'lesson_id', this.get( 'id' ) );
+ }
+
+ window.llms.hooks.doAction( 'llms_lesson_model_init', this );
+
+ },
+
+ /**
+ * Retrieve a reference to the parent course of the lesson
+ *
+ * @since 3.16.0
+ * @since 4.14.0 Use Section.get_course() in favor of Section.get_parent().
+ *
+ * @return {Object} The parent course model of the lesson.
+ */
+ get_course: function() {
+ return this.get_parent().get_course();
+ },
+
+ /**
+ * Retrieve the translated post type name for the model's type
+ *
+ * @since 3.16.12
+ *
+ * @param bool plural If true, returns the plural, otherwise returns singular.
+ * @return string The translated post type name.
+ */
+ get_l10n_type: function( plural ) {
+
+ if ( plural ) {
+ return LLMS.l10n.translate( 'lessons' );
+ }
+
+ return LLMS.l10n.translate( 'lesson' );
+ },
+
+ /**
+ * Override default get_parent to grab from collection if models parent isn't set
+ *
+ * @since 3.17.0
+ *
+ * @return {Object}|false The parent model or false if not available.
+ */
+ get_parent: function() {
+
+ var rels = this.get_relationships();
+ if ( rels.parent && rels.parent.reference ) {
+ return rels.parent.reference;
+ } else if ( this.collection && this.collection.parent ) {
+ return this.collection.parent;
+ }
+ return false;
+
+ },
+
+ /**
+ * Retrieve the questions percentage value within the quiz
+ *
+ * @since 3.24.0
+ *
+ * @return {String} Questions percentage value within the quiz.
+ */
+ get_points_percentage: function() {
+
+ var total = this.get_course().get_total_points(),
+ points = this.get( 'points' ) * 1;
+
+ if ( ! _.isNumber( points ) ) {
+ points = 0;
+ }
+
+ if ( 0 === total ) {
+ return '0%';
+ }
+
+ return ( ( points / total ) * 100 ).toFixed( 2 ) + '%';
+
+ },
+
+ /**
+ * Retrieve an array of prerequisite options available for the current lesson
+ *
+ * @since 3.17.0
+ *
+ * @return {Object} Prerequisite options.
+ */
+ get_available_prereq_options: function() {
+
+ var parent_section_index = this.get_parent().collection.indexOf( this.get_parent() ),
+ lesson_index_in_section = this.collection.indexOf( this ),
+ options = [];
+
+ this.get_course().get( 'sections' ).each( function( section, curr_sec_index ) {
+ if ( curr_sec_index <= parent_section_index ) {
+ var group = {
+ // Translators: %1$d = section order number, %2$s = section title.
+ label: LLMS.l10n.replace( 'Section %1$d: %2$s', {
+ '%1$d': section.get( 'order' ),
+ '%2$s': section.get( 'title' )
+ } ),
+ options: [],
+ };
+
+ section.get( 'lessons' ).each( function( lesson, curr_les_index ) {
+ if ( curr_sec_index !== parent_section_index || curr_les_index < lesson_index_in_section ) {
+ // Translators: %1$d = lesson order number, %2$s = lesson title.
+ group.options.push( {
+ key: lesson.get( 'id' ),
+ val: LLMS.l10n.replace( 'Lesson %1$d: %2$s', {
+ '%1$d': lesson.get( 'order' ),
+ '%2$s': lesson.get( 'title' )
+ } ),
+ } );
+ }
+ }, this );
+
+ options.push( group );
+ }
+ }, this );
+
+ return options;
+
+ },
+
+ /**
+ * Add a new quiz to the lesson
+ *
+ * @since 3.16.0
+ * @since 3.27.0 Unknown.
+ *
+ * @param {Object} data Object of quiz data used to construct a new quiz model.
+ * @return {Object} Model for the created quiz.
+ */
+ add_quiz: function( data ) {
+
+ data = data || {};
+
+ data.lesson_id = this.id;
+ data._questions_loaded = true;
+
+ if ( ! data.title ) {
+
+ data.title = LLMS.l10n.replace( '%1$s Quiz', {
+ '%1$s': this.get( 'title' ),
+ } );
+
+ }
+
+ this.set( 'quiz', data );
+ this.init_relationships();
+
+ var quiz = this.get( 'quiz' );
+ this.set( 'quiz_enabled', 'yes' );
+
+ window.llms.hooks.doAction( 'llms_lesson_add_quiz', quiz, this );
+
+ return quiz;
+
+ },
+
+ /**
+ * Determine if this is the first lesson
+ *
+ * @since 3.17.0
+ * @since 4.20.0 Use is_first_in_section() new method.
+ *
+ * @return {Boolean} Whether this is the first lesson of its course.
+ */
+ is_first_in_course: function() {
+
+ // If it's not the first item in the section it cant be the first lesson.
+ if ( ! this.is_first_in_section() ) {
+ return false;
+ }
+
+ // If it's not the first section it cant' be first lesson.
+ var section = this.get_parent();
+ if ( section.collection.indexOf( section ) ) {
+ return false;
+ }
+
+ // It's first lesson in first section.
+ return true;
+
+ },
+
+ /**
+ * Determine if this is the last lesson of the course
+ *
+ * @since 4.20.0
+ *
+ * @return {Boolean} Whether this is the last lesson of its course.
+ */
+ is_last_in_course: function() {
+
+ // If it's not last item in the section it cant be the last lesson.
+ if ( ! this.is_last_in_section() ) {
+ return false;
+ }
+
+ // If it's not the last section it cant' be last lesson.
+ var section = this.get_parent();
+ if ( section.collection.indexOf( section ) < ( section.collection.size() - 1 ) ) {
+ return false;
+ }
+
+ // It's last lesson in last section.
+ return true;
+
+ },
+
+ /**
+ * Determine if this is the first lesson within its section
+ *
+ * @since 4.20.0
+ *
+ * @return {Boolean} Whether this is the first lesson of its section.
+ */
+ is_first_in_section: function() {
+ return 0 === this.collection.indexOf( this );
+ },
+
+ /**
+ * Determine if this is the last lesson within its section
+ *
+ * @since 4.20.0
+ *
+ * @return {Boolean} Whether this is the last lesson of its section.
+ */
+ is_last_in_section: function() {
+ return this.collection.indexOf( this ) === ( this.collection.size() - 1 );
+ },
+
+ /**
+ * Get prev lesson in a course
+ *
+ * @since 4.20.0
+ *
+ * @param {String} status Prev lesson post status. If not specified any status will be taken into account.
+ * @return {Object}|false Previous lesson model or `false` if no previous lesson could be found.
+ */
+ get_prev: function( status ) {
+ return this.get_sibling( 'prev', status );
+ },
+
+ /**
+ * Get next lesson in a course
+ *
+ * @since 4.20.0
+ *
+ * @param {String} status Next lesson post status. If not specified any status will be taken into account.
+ * @return {Object}|false Next lesson model or `false` if no next lesson could be found.
+ */
+ get_next: function( status ) {
+ return this.get_sibling( 'next', status );
+ },
+
+ /**
+ * Get a sibling lesson
+ *
+ * @param {String} direction Siblings direction [next|prev]. If not specified will fall back on 'prev'.
+ * @param {String} status Sibling lesson post status. If not specified any status will be taken into account.
+ * @return {Object}|false Sibling lesson model, in the specified direction, or `false` if no sibling lesson could be found.
+ */
+ get_sibling: function( direction, status ) {
+
+ direction = 'next' === direction ? direction : 'prev';
+
+ // Functions and vars to use when direction is 'prev' (default).
+ var is_course_limit_reached_f = 'is_first_in_course',
+ is_section_limit_reached_f = 'is_first_in_section',
+ sibling_index_increment = -1,
+ get_sibling_lesson_in_sibling_section_f = 'last';
+
+ if ( 'next' === direction ) {
+ is_course_limit_reached_f = 'is_last_in_course';
+ is_section_limit_reached_f = 'is_last_in_section';
+ sibling_index_increment = 1,
+ get_sibling_lesson_in_sibling_section_f = 'first';
+ }
+
+ if ( this[ is_course_limit_reached_f ]() ) {
+ return false;
+ }
+
+ var sibling_index = this.collection.indexOf( this ) + sibling_index_increment,
+ sibling_lesson = this.collection.at( sibling_index );
+
+ if ( this[ 'next' === direction ? 'is_last_in_section' : 'is_first_in_section' ]() ) {
+ var cur_section = this.get_parent(),
+ sibling_section = cur_section[ 'get_' + direction ]( false );
+
+ // Skip sibling empty sections.
+ while ( sibling_section && ! sibling_section.get( 'lessons' ).size() ) {
+ sibling_section = sibling_section[ 'get_' + direction ]( false );
+ }
+
+ // Couldn't find any suitable lesson.
+ if ( ! sibling_section || ! sibling_section.get( 'lessons' ).size() ) {
+ return false;
+ }
+
+ sibling_lesson = sibling_section.get( 'lessons' )[ get_sibling_lesson_in_sibling_section_f ]();
+
+ }
+
+ // If we need a specific lesson status.
+ if ( status && status !== sibling_lesson.get( 'status' ) ) {
+ return sibling_lesson.get_sibling( direction, status );
+ }
+
+ return sibling_lesson;
+
+ },
+
+ /**
+ * Initialize lesson assignments *if* the assignments addon is available and enabled
+ *
+ * @since 3.17.0
+ *
+ * @return {Void}
+ */
+ maybe_init_assignments: function() {
+
+ if ( ! window.llms_builder.assignments ) {
+ return;
+ }
+
+ this.relationships.children.assignment = {
+ class: 'Assignment',
+ conditional: function( model ) {
+ // If assignment is enabled OR not enabled but we have some assignment data as an obj.
+ return ( 'yes' === model.get( 'assignment_enabled' ) || ! _.isEmpty( model.get( 'assignment' ) ) );
+ },
+ model: 'llms_assignment',
+ type: 'model',
+ };
+
+ },
+
+ }, Relationships, Utilities ) );
+
+} );
+
+/**
+ * Lessons Collection
+ *
+ * @since 3.13.0
+ * @version 3.17.0
+ */
+define( 'Collections/Lessons',[ 'Models/Lesson' ], function( model ) {
+
+ return Backbone.Collection.extend( {
+
+ /**
+ * Model for collection items
+ *
+ * @type obj
+ */
+ model: model,
+
+ /**
+ * Initializer
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.17.0
+ */
+ initialize: function() {
+
+ // reorder called by LessonList view when sortable drops occur
+ this.on( 'reorder', this.on_reorder );
+
+ // when a lesson is added or removed, update order
+ this.on( 'add', this.on_reorder );
+ this.on( 'remove', this.on_reorder );
+
+ },
+
+ /**
+ * On lesson reorder callback
+ *
+ * Update the order attr of each lesson to reflect the new lesson order
+ * Validate prerequisite (if set) and unset it if it's no longer a valid prereq
+ *
+ * @return void
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ on_reorder: function() {
+ this.update_order();
+ this.validate_prereqs();
+ },
+
+ /**
+ * Update lesson order attribute of all lessons when lessons are reordered
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.17.0
+ */
+ update_order: function() {
+
+ this.each( function( lesson ) {
+ lesson.set( 'order', this.indexOf( lesson ) + 1 );
+ }, this );
+
+ },
+
+ /**
+ * Validate prerequisite (if set) and unset it if it's no longer a valid prereq
+ *
+ * @return void
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ validate_prereqs: function() {
+
+ this.each( function( lesson ) {
+
+ // validate prereqs
+ if ( 'yes' === lesson.get( 'has_prerequisite' ) ) {
+ var valid = _.pluck( _.flatten( _.pluck( lesson.get_available_prereq_options(), 'options' ) ), 'key' );
+ if ( -1 === valid.indexOf( lesson.get( 'prerequisite' ) * 1 ) ) {
+ lesson.set( {
+ prerequisite: 0,
+ has_prerequisite: 'no',
+ } );
+ }
+ }
+
+ }, this );
+
+ },
+
+ } );
+
+} );
+
+/**
+ * Quiz Question Type Collection
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Collections/QuestionTypes',[ 'Models/QuestionType' ], function( model ) {
+
+ return Backbone.Collection.extend( {
+
+ /**
+ * Model for collection items
+ *
+ * @type obj
+ */
+ model: model,
+
+ /**
+ * Initializer
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ initialize: function() {
+
+ this.on( 'add', this.comparator );
+ this.on( 'remove', this.comparator );
+
+ },
+
+ /**
+ * Comparator (sorts collection)
+ *
+ * @param obj model QuestionType model
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ comparator: function( model ) {
+
+ return model.get( 'group' ).order;
+
+ },
+
+ } );
+
+} );
+
+/**
+ * Section Model
+ *
+ * @since 3.16.0
+ * @version 4.20.0
+ */
+define( 'Models/Section',[ 'Collections/Lessons', 'Models/_Relationships' ], function( Lessons, Relationships ) {
+
+ return Backbone.Model.extend( _.defaults( {
+
+ relationships: {
+ parent: {
+ model: 'course',
+ type: 'model',
+ },
+ children: {
+ lessons: {
+ class: 'Lessons',
+ model: 'lesson',
+ type: 'collection',
+ },
+ }
+ },
+
+ /**
+ * New section defaults
+ *
+ * @since 3.16.0
+ *
+ * @return {Object}
+ */
+ defaults: function() {
+ return {
+ id: _.uniqueId( 'temp_' ),
+ lessons: [],
+ order: this.collection ? this.collection.length + 1 : 1,
+ parent_course: window.llms_builder.course.id,
+ title: LLMS.l10n.translate( 'New Section' ),
+ type: 'section',
+
+ // Expand the first 100 sections by default to avoid timeout issues.
+ _expanded: ! this.collection || this.collection.length <= 100 ? true : false,
+ _selected: false,
+ };
+ },
+
+ /**
+ * Initialize
+ *
+ * @since 3.16.0
+ *
+ * @return {void}
+ */
+ initialize: function() {
+
+ this.startTracking();
+ this.init_relationships();
+
+ },
+
+ /**
+ * Add a lesson to the section
+ *
+ * @since 3.16.0
+ * @since 3.16.11 Unknown.
+ *
+ * @param {Object} data Hash of lesson data (creates new lesson)
+ * or existing lesson as a Backbone.Model.
+ * @param {Object} options Hash of options.
+ * @return {Object} Backbone.Model of the new/updated lesson.
+ */
+ add_lesson: function( data, options ) {
+
+ data = data || {};
+ options = options || {};
+
+ if ( data instanceof Backbone.Model ) {
+ data.set( 'status', 'publish' );
+ data.set( 'parent_section', this.get( 'id' ) );
+ data.set_parent( this );
+ } else {
+ data.status = 'publish';
+ data.parent_section = this.get( 'id' );
+ }
+
+ return this.get( 'lessons' ).add( data, options );
+
+ },
+
+ /**
+ * Retrieve the translated post type name for the model's type
+ *
+ * @since 3.16.12
+ *
+ * @param {Boolean} plural If true, returns the plural, otherwise returns singular.
+ * @return {String}
+ */
+ get_l10n_type: function( plural ) {
+
+ if ( plural ) {
+ return LLMS.l10n.translate( 'sections' );
+ }
+
+ return LLMS.l10n.translate( 'section' );
+ },
+
+ /**
+ * Get next section in the collection
+ *
+ * @since 3.16.11
+ *
+ * @param {boolean} circular If true handles the collection in a circle.
+ * If current is the last section, returns the first section.
+ * @return {Object}|false
+ */
+ get_next: function( circular ) {
+ return this._get_sibling( 'next', circular );
+ },
+
+ /**
+ * Retrieve a reference to the parent course of the section
+ *
+ * @since 4.14.0
+ *
+ * @return {Object}
+ */
+ get_course: function() {
+
+ // When working with an unsaved draft course the parent isn't properly set on the creation of a section.
+ if ( ! this.get_parent() ) {
+ this.set_parent( window.llms_builder.CourseModel );
+ }
+
+ return this.get_parent();
+
+ },
+
+ /**
+ * Get prev section in the collection
+ *
+ * @since 3.16.11
+ *
+ * @param {Boolean} circular If true handles the collection in a circle.
+ * If current is the first section, returns the last section.
+ * @return {Object}|false
+ */
+ get_prev: function( circular ) {
+ return this._get_sibling( 'prev', circular );
+ },
+
+ /**
+ * Get a sibling section
+ *
+ * @since 3.16.11
+ * @since 4.20.0 Fix case when the last section was returned when looking for the prev of the first section and not `circular`.
+ *
+ * @param {String} direction Siblings direction [next|prev].
+ * @param {Boolean} circular If true handles the collection in a circle.
+ * If current is the last section, returns the first section.
+ * If current is the first section, returns the last section.
+ * @return {Object}|false
+ */
+ _get_sibling: function( direction, circular ) {
+
+ circular = ( 'undefined' === circular ) ? true : circular;
+
+ var max = this.collection.size() - 1,
+ index = this.collection.indexOf( this ),
+ sibling_index;
+
+ if ( 'next' === direction ) {
+ sibling_index = index + 1;
+ } else if ( 'prev' === direction ) {
+ sibling_index = index - 1;
+ }
+
+ // Don't retrieve greater than max or less than min.
+ if ( sibling_index <= max || sibling_index >= 0 ) {
+
+ return this.collection.at( sibling_index );
+
+ } else if ( circular ) {
+
+ if ( 'next' === direction ) {
+ return this.collection.first();
+ } else if ( 'prev' === direction ) {
+ return this.collection.last();
+ }
+
+ }
+
+ return false;
+
+ },
+
+ }, Relationships ) );
+
+} );
+
+/**
+ * Sections Collection
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Collections/Sections',[ 'Models/Section' ], function( model ) {
+
+ return Backbone.Collection.extend( {
+
+ /**
+ * Model for collection items
+ *
+ * @type obj
+ */
+ model: model,
+
+ /**
+ * Initialize
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ initialize: function() {
+
+ var self = this;
+
+ // reorder called by SectionList view when sortable drops occur
+ this.on( 'reorder', this.update_order );
+
+ // when a section is added or removed, update order
+ this.on( 'add', this.update_order );
+ this.on( 'remove', this.update_order );
+
+ },
+
+ /**
+ * Update the order attr of each section in the list to reflect the order of the collection
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ update_order: function() {
+
+ var self = this;
+
+ this.each( function( section ) {
+
+ section.set( 'order', self.indexOf( section ) + 1 );
+
+ } );
+
+ },
+
+ } );
+
+} );
+
+/**
+ * Lessons Collection
+ *
+ * @since 3.13.0
+ * @version 3.16.0
+ */
+define( 'Collections/loader',[
+ 'Collections/Lessons',
+ 'Collections/QuestionChoices',
+ 'Collections/Questions',
+ 'Collections/QuestionTypes',
+ 'Collections/Sections'
+ ], function(
+ Lessons,
+ QuestionChoices,
+ Questions,
+ QuestionTypes,
+ Sections
+ ) {
+
+ return {
+ Lessons: Lessons,
+ QuestionChoices: QuestionChoices,
+ Questions: Questions,
+ QuestionTypes: QuestionTypes,
+ Sections: Sections,
+ };
+
+} );
+
+/**
+ * Abstract LifterLMS Model
+ *
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+define( 'Models/Abstract',[ 'Models/_Relationships', 'Models/_Utilities' ], function( Relationships, Utilities ) {
+
+ return Backbone.Model.extend( _.defaults( {}, Relationships, Utilities ) );
+
+} );
+
+/**
+ * Course Model.
+ *
+ * @since 3.16.0
+ * @since 3.24.0 Added `get_total_points()` method.
+ * @since 3.37.11 Use lesson author ID instead of author object when adding existing lessons to a course.
+ * @version 5.4.0
+ */
+define( 'Models/Course',[ 'Collections/Sections', 'Models/_Relationships', 'Models/_Utilities' ], function( Sections, Relationships, Utilities ) {
+
+ return Backbone.Model.extend( _.defaults( {
+
+ relationships: {
+ children: {
+ sections: {
+ class: 'Sections',
+ model: 'section',
+ type: 'collection',
+ },
+ }
+ },
+
+ /**
+ * New Course Defaults.
+ *
+ * @since 3.16.0
+ *
+ * @return {Object}
+ */
+ defaults: function() {
+ return {
+ edit_url: '',
+ sections: [],
+ title: 'New Course',
+ type: 'course',
+ view_url: '',
+ }
+ },
+
+ /**
+ * Init.
+ *
+ * @since 3.16.0
+ *
+ * @return {Void}
+ */
+ initialize: function() {
+
+ this.startTracking();
+ this.init_relationships();
+
+ // Sidebar "New Section" button broadcast.
+ Backbone.pubSub.on( 'add-new-section', this.add_section, this );
+
+ // Sidebar "New Lesson" button broadcast.
+ Backbone.pubSub.on( 'add-new-lesson', this.add_lesson, this );
+
+ Backbone.pubSub.on( 'lesson-search-select', this.add_existing_lesson, this );
+
+ },
+
+ /**
+ * Add an existing lesson to the course.
+ *
+ * Duplicate a lesson from this or another course or attach an orphaned lesson.
+ *
+ * @since 3.16.0
+ * @since 3.24.0 Unknown.
+ * @since 3.37.11 Use the author id instead of the author object.
+ * @since 5.4.0 Added filter hook 'llms_adding_existing_lesson_data'.
+ * On cloning, duplicate assignments too, if assignment add-on active and assignment attached.
+ *
+ * @param {Object} lesson Lesson data obj.
+ * @return {Void}
+ */
+ add_existing_lesson: function( lesson ) {
+
+ var data = lesson.data;
+
+ if ( 'clone' === lesson.action ) {
+
+ delete data.id;
+
+ // If a quiz is attached, duplicate the quiz also.
+ if ( data.quiz ) {
+ data.quiz = _.prepareQuizObjectForCloning( data.quiz );
+ data.quiz._questions_loaded = true;
+ }
+
+ // If assignment add-on active and assignment attached, duplicate the assignment too.
+ if ( window.llms_builder.assignments && data.assignment ) {
+ data.assignment = _.prepareAssignmentObjectForCloning( data.assignment );
+ }
+
+ } else {
+
+ data._forceSync = true;
+
+ }
+
+ delete data.order;
+ delete data.parent_course;
+ delete data.parent_section;
+
+ // Use author id instead of the lesson author object.
+ data = _.prepareExistingPostObjectDataForAddingOrCloning( data );
+
+ /**
+ * Filters the data of the existing lesson being added.
+ *
+ * @since 5.4.0
+ *
+ * @param {Object} data Lesson data.
+ * @param {String} action Action being performed. [clone|attach].
+ * @param {Object} course The lesson's course parent model.
+ */
+ data = window.llms.hooks.applyFilters( 'llms_adding_existing_lesson_data', data, lesson.action, this );
+
+ this.add_lesson( data );
+
+ },
+
+ /**
+ * Add a new lesson to the course.
+ *
+ * @since 3.16.0
+ *
+ * @param {Object} data Lesson data.
+ * @return {Object} Backbone.Model of the lesson.
+ */
+ add_lesson: function( data ) {
+
+ data = data || {};
+ var options = {},
+ section;
+
+ if ( ! data.parent_section ) {
+ section = this.get_selected_section();
+ if ( ! section ) {
+ section = this.get( 'sections' ).last();
+ }
+ } else {
+ section = this.get( 'sections' ).get( data.parent_section );
+ }
+
+ data._selected = true;
+
+ data.parent_course = this.get( 'id' );
+
+ var lesson = section.add_lesson( data, options );
+ Backbone.pubSub.trigger( 'new-lesson-added', lesson );
+
+ // Expand the section.
+ section.set( '_expanded', true );
+
+ return lesson;
+
+ },
+
+ /**
+ * Add a new section to the course.
+ *
+ * @since 3.16.0
+ *
+ * @param {Object} data Section data.
+ * @return {Void}
+ */
+ add_section: function( data ) {
+
+ data = data || {};
+ var sections = this.get( 'sections' ),
+ options = {},
+ selected = this.get_selected_section();
+
+ // If a section is selected, add the new section after the currently selected one.
+ if ( selected ) {
+ options.at = sections.indexOf( selected ) + 1;
+ }
+
+ sections.add( data, options );
+
+ },
+
+ /**
+ * Retrieve the currently selected section in the course.
+ *
+ * @since 3.16.0
+ *
+ * @return {Object|undefined}
+ */
+ get_selected_section: function() {
+
+ return this.get( 'sections' ).find( function( model ) {
+ return model.get( '_selected' );
+ } );
+
+ },
+
+ /**
+ * Retrieve the total number of points in the course.
+ *
+ * @since 3.24.0
+ *
+ * @return {Integer}
+ */
+ get_total_points: function() {
+
+ var points = 0;
+
+ this.get( 'sections' ).each( function( section ) {
+ section.get( 'lessons' ).each( function( lesson ) {
+ var lesson_points = lesson.get( 'points' );
+ if ( ! _.isNumber( lesson_points ) ) {
+ lesson_points = 0;
+ }
+ points += lesson_points * 1;
+ } );
+ } );
+
+ return points;
+
+ },
+
+ }, Relationships, Utilities ) );
+
+} );
+
+/**
+ * Load all models
+ *
+ * @return obj
+ * @since 3.16.0
+ * @version 3.17.0
+ */
+define( 'Models/loader',[
+ 'Models/Abstract',
+ 'Models/Course',
+ 'Models/Image',
+ 'Models/Lesson',
+ 'Models/Question',
+ 'Models/QuestionChoice',
+ 'Models/QuestionType',
+ 'Models/Quiz',
+ 'Models/Section'
+ ],
+ function(
+ Abstract,
+ Course,
+ Image,
+ Lesson,
+ Question,
+ QuestionChoice,
+ QuestionType,
+ Quiz,
+ Section
+ ) {
+
+ return {
+ Abstract: Abstract,
+ Course: Course,
+ Image: Image,
+ Lesson: Lesson,
+ Question: Question,
+ QuestionChoice: QuestionChoice,
+ QuestionType: QuestionType,
+ Quiz: Quiz,
+ Section: Section,
+ };
+
+} );
+
+/**
+ * Detachable model
+ *
+ * @package LifterLMS/Scripts
+ *
+ * @since 3.16.12
+ * @version 3.16.12
+ */
+
+define( 'Views/_Detachable',[], function() {
+
+ return {
+
+ /**
+ * DOM Events
+ *
+ * @type {Object}
+ * @since 3.16.12
+ * @version 3.16.12
+ */
+ events: {
+ 'click a[href="#llms-detach-model"]': 'detach_model',
+ 'click button.llms-detach-model': 'detach_model',
+ },
+
+ /**
+ * Detaches a model from it's parent (doesn't delete)
+ *
+ * @param obj event js event object
+ * @return void
+ * @since 3.16.12
+ * @version 3.16.12
+ */
+ detach_model: function( event ) {
+
+ if ( event ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+
+ var msg = LLMS.l10n.replace( 'Are you sure you want to detach this %s?', {
+ '%s': this.model.get_l10n_type(),
+ } );
+
+ if ( window.confirm( msg ) ) {
+
+ if ( this.model.collection ) {
+ this.model.collection.remove( this.model );
+ }
+
+ // publish global event
+ Backbone.pubSub.trigger( 'model-detached', this.model );
+
+ // trigger local event so extending views can run other actions where necessary
+ this.trigger( 'model-trashed', this.model );
+
+ }
+
+ },
+
+ }
+
+} );
+
+/**
+ * Handles UX and Events for inline editing of views
+ *
+ * Use with a Model's View
+ * Allows editing model.title field via .llms-editable-title elements
+ *
+ * @package LifterLMS/Scripts
+ *
+ * @since 3.16.0
+ * @since 3.25.4 Unknown
+ * @since 3.37.11 Replace reference to `wp.editor` with `_.getEditor()` helper.
+ * @version 3.37.11
+ */
+define( 'Views/_Editable',[], function() {
+
+ return {
+
+ media_lib: null,
+
+ /**
+ * DOM Events
+ *
+ * @type {Object}
+ * @since 3.16.0
+ * @version 3.17.8
+ */
+ events: {
+ 'click .llms-add-image': 'open_media_lib',
+ 'click a[href="#llms-edit-slug"]': 'make_slug_editable',
+ 'click a[href="#llms-remove-image"]': 'remove_image',
+ 'change .llms-editable-select select': 'on_select',
+ 'change .llms-switch input[type="checkbox"]': 'toggle_switch',
+ 'change .llms-editable-radio input': 'on_radio_select',
+ 'focusin .llms-input': 'on_focus',
+ 'focusout .llms-input': 'on_blur',
+ 'keydown .llms-input': 'on_keydown',
+ 'input .llms-input[type="number"]': 'on_blur',
+ 'paste .llms-input[data-formatting]': 'on_paste',
+ },
+
+ /**
+ * Retrieve a list of allowed tags for a given element
+ *
+ * @param obj $el jQuery selector for the element
+ * @return array
+ * @since 3.16.0
+ * @version 3.17.8
+ */
+ get_allowed_tags: function( $el ) {
+
+ if ( $el.attr( 'data-formatting' ) ) {
+ return _.map( $el.attr( 'data-formatting' ).split( ',' ), function( tag ) {
+ return tag.trim();
+ } );
+ }
+
+ return [ 'b', 'i', 'u', 'strong', 'em' ];
+
+ },
+
+ /**
+ * Retrieve the content of an element
+ *
+ * @param obj $el jQuery object of the element
+ * @return string
+ * @since 3.16.0
+ * @version 3.17.8
+ */
+ get_content: function( $el ) {
+
+ if ( 'INPUT' === $el[0].tagName ) {
+ return $el.val();
+ }
+
+ if ( ! $el.attr( 'data-formatting' ) && ! $el.hasClass( 'ql-editor' ) ) {
+ return $el.text();
+ }
+
+ return _.stripFormatting( $el.html(), this.get_allowed_tags( $el ) );
+
+ },
+
+ /**
+ * Determine if changes have been made to the element
+ *
+ * @param {[obj]} event js event object
+ * @return {Boolean} true when changes have been made, false otherwise
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ has_changed: function( event ) {
+ var $el = $( event.target );
+ return ( $el.attr( 'data-original-content' ) !== this.get_content( $el ) );
+ },
+
+ /**
+ * Ensure that new content is at least 1 character long
+ *
+ * @param obj event js event object
+ * @return boolean
+ * @since 3.16.0
+ * @version 3.17.2
+ */
+ is_valid: function( event ) {
+
+ var self = this,
+ $el = $( event.target ),
+ content = this.get_content( $el ),
+ type = $el.attr( 'data-type' );
+
+ if ( ( $el.attr( 'required' ) || $el.attr( 'data-required' ) ) && content.length < 1 ) {
+ return false;
+ }
+
+ if ( 'url' === type || 'video' === type ) {
+ if ( ! this._validate_url( this.get_content( $el ) ) ) {
+ return false;
+ }
+
+ } else if ( 'permalink' === type ) {
+
+ LLMS.Ajax.call( {
+ data: {
+ action: 'llms_builder',
+ action_type: 'get_permalink',
+ course_id: window.llms_builder.CourseModel.get( 'id' ),
+ id: self.model.get( 'id' ),
+ title: self.model.get( 'title' ),
+ slug: content,
+ },
+ beforeSend: function() {
+ LLMS.Spinner.start( $el.closest( '.llms-editable-toggle-group' ), 'small' );
+ },
+ success: function( r ) {
+
+ if ( r.permalink && r.slug ) {
+ self.model.set( 'permalink', r.permalink );
+ self.model.set( 'name', r.slug );
+ self.render();
+ }
+
+ }
+ } );
+
+ }
+
+ return true;
+
+ },
+
+ /**
+ * Initialize datepicker elements
+ *
+ * @return void
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ init_datepickers: function() {
+
+ this.$el.find( '.llms-editable-date input' ).each( function() {
+
+ $( this ).datetimepicker( {
+ format: $( this ).attr( 'data-date-format' ) || 'Y-m-d h:i A',
+ datepicker: ( undefined === $( this ).attr( 'data-date-datepicker' ) ) ? true : ( 'true' == $( this ).attr( 'data-date-datepicker' ) ),
+ timepicker: ( undefined === $( this ).attr( 'data-date-timepicker' ) ) ? true : ( 'true' == $( this ).attr( 'data-date-timepicker' ) ),
+ onClose: function( current_time, $input ) {
+ $input.blur();
+ }
+ } );
+
+ } );
+
+ },
+
+ /**
+ * Initialize elements that allow inline formatting
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ init_formatting_els: function() {
+
+ var self = this;
+
+ this.$el.find( '.llms-input-formatting[data-formatting]' ).each( function() {
+
+ var formatting = $( this ).attr( 'data-formatting' ).split( ',' ),
+ attr = $( this ).attr( 'data-attribute' );
+
+ var ed = new Quill( this, {
+ modules: {
+ toolbar: [ formatting ],
+ keyboard: {
+ bindings: {
+ tab: {
+ key: 9,
+ handler: function( range, context ) {
+ return true;
+ },
+ },
+ 13: {
+ key: 13,
+ handler: function( range, context ) {
+ ed.root.blur();
+ return false;
+ },
+ },
+ },
+ },
+ },
+ placeholder: $( this ).attr( 'data-placeholder' ),
+ theme: 'bubble',
+ } );
+
+ ed.on( 'text-change', function( delta, oldDelta, source ) {
+ self.model.set( attr, self.get_content( $( ed.root ) ) );
+ } );
+
+ Backbone.pubSub.trigger( 'formatting-ed-init', ed, $( this ), self );
+
+ } );
+
+ },
+
+ /**
+ * Initialize editable select elements
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.25.4
+ */
+ init_selects: function() {
+
+ this.$el.find( '.llms-editable-select select' ).llmsSelect2( {
+ width: '100%',
+ } ).trigger( 'change' );
+
+ },
+
+ /**
+ * Blur/focusout function for .llms-editable-title elements
+ * Automatically saves changes if changes have been made
+ *
+ * @param obj event js event object
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.6
+ */
+ on_blur: function( event ) {
+
+ event.stopPropagation();
+
+ this.model.set( '_has_focus', false, { silent: true } );
+
+ var self = this,
+ $el = $( event.target ),
+ changed = this.has_changed( event );
+
+ if ( changed ) {
+
+ if ( ! self.is_valid( event ) ) {
+ self.revert_edits( event );
+ } else {
+ this.save_edits( event );
+ }
+
+ }
+
+ },
+
+ /**
+ * Focus event for editable inputs
+ *
+ * @param obj event js event object
+ * @return void
+ * @since 3.16.6
+ * @version 3.16.6
+ */
+ on_focus: function( event ) {
+
+ event.stopPropagation();
+ this.model.set( '_has_focus', true, { silent: true } );
+
+ },
+
+ /**
+ * Handle content pasted into contenteditable fields
+ * This will ensure that HTML from RTF editors isn't pasted into the dom
+ *
+ * @param obj event js event obj
+ * @return void
+ * @since 3.17.8
+ * @version 3.17.8
+ */
+ on_paste: function( event ) {
+
+ event.preventDefault();
+ event.stopPropagation();
+
+ var text = ( event.originalEvent || event ).clipboardData.getData( 'text/plain' );
+ window.document.execCommand( 'insertText', false, text );
+
+ },
+
+ /**
+ * Change event for selectables
+ *
+ * @param obj event js event object
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ on_select: function( event ) {
+
+ var $el = $( event.target ),
+ multi = ( $el.attr( 'multiple' ) ),
+ attr = $el.attr( 'name' ),
+ $selected = $el.find( 'option:selected' ),
+ val;
+
+ if ( multi ) {
+ val = [];
+ val = $selected.map( function() {
+ return this.value;
+ } ).get();
+ } else {
+ val = $selected[0].value;
+ }
+
+ this.model.set( attr, val );
+
+ },
+
+ /**
+ * Change event for radio element groups
+ *
+ * @param obj event js event object
+ * @return void
+ * @since 3.17.6
+ * @version 3.17.6
+ */
+ on_radio_select: function( event ) {
+
+ var $el = $( event.target ),
+ attr = $el.attr( 'name' ),
+ val = $el.val();
+
+ this.model.set( attr, val );
+
+ },
+
+ /**
+ * Keydown function for .llms-editable-title elements
+ * Blurs
+ *
+ * @param {obj} event js event object
+ * @return void
+ * @since 3.16.0
+ * @version 3.17.8
+ */
+ on_keydown: function( event ) {
+
+ event.stopPropagation();
+
+ var self = this,
+ key = event.which || event.keyCode,
+ shift = event.shiftKey;
+ // ctrl = event.metaKey || event.ctrlKey;
+
+ switch ( key ) {
+
+ case 13: // enter
+ // shift + enter should add a return
+ if ( ! shift ) {
+ event.preventDefault();
+ event.target.blur();
+ }
+ break;
+
+ case 27: // escape
+ event.preventDefault();
+ this.revert_edits( event );
+ event.target.blur();
+ break;
+
+ }
+
+ },
+
+ /**
+ * Open the WP media lib
+ *
+ * @param obj event js event object
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.6
+ */
+ open_media_lib: function( event ) {
+
+ event.stopPropagation();
+
+ var self = this,
+ $el = $( event.currentTarget );
+
+ if ( self.media_lib ) {
+
+ self.media_lib.uploader.uploader.param( 'post_id' );
+
+ } else {
+
+ self.media_lib = wp.media.frames.file_frame = wp.media( {
+ title: LLMS.l10n.translate( 'Select an image' ),
+ button: {
+ text: LLMS.l10n.translate( 'Use this image' ),
+ },
+ multiple: false // Set to true to allow multiple files to be selected
+ } );
+
+ self.media_lib.on( 'select', function() {
+
+ var size = $el.attr( 'data-image-size' ),
+ attachment = self.media_lib.state().get( 'selection' ).first().toJSON(),
+ image = self.model.get( $el.attr( 'data-attribute' ) ),
+ url;
+
+ if ( size && attachment.sizes[ size ] ) {
+ url = attachment.sizes[ size ].url;
+ } else {
+ url = attachment.url;
+ }
+
+ image.set( {
+ id: attachment.id,
+ src: url,
+ } );
+
+ } );
+
+ }
+
+ // This flag is used to protect the media files uploaded via places like the Quiz questions (Picture type)
+ self.media_lib.uploader.options.uploader.params.llms = 1;
+
+ self.media_lib.open();
+
+ },
+
+ /**
+ * Click event to remove an image
+ *
+ * @param obj event js event obj
+ * @return voids
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ remove_image: function( event ) {
+
+ event.preventDefault();
+
+ this.model.get( $( event.currentTarget ).attr( 'data-attribute' ) ).set( {
+ id: '',
+ src: '',
+ } );
+
+ },
+
+ /**
+ * Helper to undo changes
+ * Bound to "escape" key via on_keydown function
+ *
+ * @param obj event js event object
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ revert_edits: function( event ) {
+ var $el = $( event.target ),
+ val = $el.attr( 'data-original-content' );
+ $el.html( val );
+ },
+
+ /**
+ * Sync changes to the model and DB
+ *
+ * @param {obj} event js event object
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ save_edits: function( event ) {
+
+ var $el = $( event.target ),
+ val = this.get_content( $el );
+
+ this.model.set( $el.attr( 'data-attribute' ), val );
+
+ },
+
+ /**
+ * Change event for a switch element
+ *
+ * @param obj event js event object
+ * @return void
+ * @since 3.16.0
+ * @version 3.17.0
+ */
+ toggle_switch: function( event ) {
+
+ event.stopPropagation();
+ var $el = $( event.target ),
+ attr = $el.attr( 'name' ),
+ rerender = $el.attr( 'data-rerender' ),
+ val;
+
+ if ( $el.is( ':checked' ) ) {
+ val = $el.attr( 'data-on' ) ? $el.attr( 'data-on' ) : 'yes';
+ } else {
+ val = $el.attr( 'data-off' ) ? $el.attr( 'data-off' ) : 'no';
+ }
+
+ if ( -1 !== attr.indexOf( '.' ) ) {
+
+ var split = attr.split( '.' );
+
+ if ( 'parent' === split[0] ) {
+ this.model.get_parent().set( split[1], val );
+ } else {
+ this.model.get( split[0] ).set( split[1], val );
+ }
+
+ } else {
+
+ this.model.set( attr, val );
+
+ }
+
+ this.trigger( attr.replace( '.', '-' ) + '_toggle', val );
+
+ if ( ! rerender || 'yes' === rerender ) {
+ var self = this;
+ setTimeout( function() {
+ self.render();
+ }, 100 );
+ }
+
+ },
+
+ /**
+ * Initializes a WP Editor on a textarea
+ *
+ * @since 3.16.0
+ * @since 3.37.11 Replace reference to `wp.editor` with `_.getEditor()` helper.
+ *
+ * @param {String} id CSS ID of the editor (don't include #).
+ * @param {Object} settings Optional object of settings to pass to wp.oldEditor.initialize().
+ * @return {Void}
+ */
+ init_editor: function( id, settings ) {
+
+ settings = settings || {};
+
+ var editor = _.getEditor();
+
+ editor.remove( id );
+
+ editor.initialize( id, $.extend( true, editor.getDefaultSettings(), {
+ mediaButtons: true,
+ tinymce: {
+ toolbar1: 'bold,italic,strikethrough,bullist,numlist,blockquote,hr,alignleft,aligncenter,alignright,link,unlink,wp_adv',
+ toolbar2: 'formatselect,underline,alignjustify,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help',
+ setup: _.bind( this.on_editor_ready, this ),
+ }
+ }, settings ) );
+
+ },
+
+ /**
+ * Setup a permalink editor to allow editing of a permalink
+ *
+ * @param obj event js event object
+ * @return void
+ * @since 3.16.6
+ * @version 3.16.6
+ */
+ make_slug_editable: function( event ) {
+
+ var self = this,
+ $btn = $( event.currentTarget ),
+ $link = $btn.prevAll( 'a' ),
+ $input = $btn.prev( 'input.permalink' ),
+ full_url = $link.attr( 'href' ),
+ slug = $input.val(),
+ short_url = full_url.replace( slug, '' );
+
+ // hide the button
+ $btn.hide();
+
+ // make the link not clickable
+ $link.css( {
+ color: '#999',
+ 'pointer-events': 'none',
+ 'text-decoration': 'none',
+ } );
+
+ // remove the current slug & trailing slash from the URL
+ $link.text( short_url.substring( 0, short_url.length - 1 ) );
+
+ // focus in on the field
+ $input.show().focus();
+
+ },
+
+ /**
+ * Callback function called after initialization of an editor
+ *
+ * Updates UI if a label is present.
+ *
+ * Binds a change event to ensure editor changes are saved to the model.
+ *
+ * @since 3.16.0
+ * @since 3.17.1 Uknown.
+ * @since 3.37.11 Replace references to `wp.editor` with `_.getEditor()` helper.
+ *
+ * @param {Object} editor TinyMCE Editor instance.
+ * @return {Void}
+ */
+ on_editor_ready: function( editor ) {
+
+ var self = this,
+ $ed = $( '#' + editor.id ),
+ $parent = $ed.closest( '.llms-editable-editor' ),
+ $label = $parent.find( '.llms-label' ),
+ prop = $ed.attr( 'data-attribute' )
+
+ if ( $label.length ) {
+ $label.prependTo( $parent.find( '.wp-editor-tools' ) );
+ }
+
+ // save changes to the model via Visual ed
+ editor.on( 'change', function( event ) {
+ self.model.set( prop, _.getEditor().getContent( editor.id ) );
+ } );
+
+ // save changes via Text ed
+ $ed.on( 'input', function( event ) {
+ self.model.set( prop, $ed.val() );
+ } );
+
+ // trigger an input on the Text ed when quicktags buttons are clicked
+ $parent.on( 'click', '.quicktags-toolbar .ed_button', function() {
+ setTimeout( function() {
+ $ed.trigger( 'input' );
+ }, 10 );
+ } );
+
+ },
+
+ _validate_url: function( str ) {
+
+ var a = document.createElement( 'a' );
+ a.href = str;
+ return ( a.host && a.host !== window.location.host );
+
+ }
+
+ };
+
+} );
+
+/**
+ * _receive override for Backbone.CollectionView core
+ * enables connection with jQuery UI draggable buttons
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Views/_Receivable',[], function() {
+
+ return {
+
+ /**
+ * Overloads the function from Backbone.CollectionView core because it doesn't properly handle
+ * receives from a jQuery UI draggable object
+ *
+ * @param obj event js event object
+ * @param obj ui jQuery UI object
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ _receive : function( event, ui ) {
+
+ // came from sidebar drag
+ if ( ui.sender.hasClass( 'ui-draggable' ) ) {
+ var index = this._getContainerEl().children().index( ui.helper );
+ ui.helper.remove(); // remove the helper
+ this.collection.add( {}, { at: index } );
+ return;
+ }
+
+ var senderListEl = ui.sender;
+ var senderCollectionListView = senderListEl.data( 'view' );
+ if ( ! senderCollectionListView || ! senderCollectionListView.collection ) {
+ return;
+ }
+
+ var newIndex = this._getContainerEl().children().index( ui.item );
+ var modelReceived = senderCollectionListView.collection.get( ui.item.attr( 'data-model-cid' ) );
+ senderCollectionListView.collection.remove( modelReceived );
+ this.collection.add( modelReceived, { at : newIndex } );
+ modelReceived.collection = this.collection; // otherwise will not get properly set, since modelReceived.collection might already have a value.
+ this.setSelectedModel( modelReceived );
+ },
+
+ }
+
+} );
+
+/**
+ * Shiftable view mixin function
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Views/_Shiftable',[], function() {
+
+ return {
+
+ /**
+ * Conditionally hide action buttons based on section position in collection
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ maybe_hide_shiftable_buttons: function() {
+
+ if ( ! this.model.collection ) {
+ return;
+ }
+
+ var type = this.model.get( 'type' );
+
+ if ( this.model.collection.first() === this.model ) {
+ this.$el.find( '.shift-up--' + type ).hide();
+ } else if ( this.model.collection.last() === this.model ) {
+ this.$el.find( '.shift-down--' + type ).hide();
+ }
+
+ },
+
+ /**
+ * Move an item in a collection from one position to another
+ *
+ * @param int old_index current (old) index within the collection
+ * @param int new_index desired (new) index within the collection
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ shift: function( old_index, new_index ) {
+
+ var collection = this.model.collection;
+
+ collection.remove( this.model );
+ collection.add( this.model, { at: new_index } );
+ collection.trigger( 'reorder' );
+
+ },
+
+ /**
+ * Move an item down the tree one position
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ shift_down: function( e ) {
+
+ e.preventDefault();
+ var index = this.model.collection.indexOf( this.model );
+ this.shift( index, index + 1 );
+
+ },
+
+ /**
+ * Move an item up the tree one position
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ shift_up: function( e ) {
+
+ e.preventDefault();
+ var index = this.model.collection.indexOf( this.model );
+ this.shift( index, index - 1 );
+
+ },
+
+ };
+
+} );
+
+/**
+ * Subview utility mixin
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Views/_Subview',[], function() {
+
+ return {
+
+ subscriptions: {},
+
+ /**
+ * Name of the current subview
+ *
+ * @type {String}
+ */
+ state: '',
+
+ /**
+ * Object of subview data
+ *
+ * @type {Object}
+ */
+ views: {},
+
+ /**
+ * Retrieve a subview by name from this.views
+ *
+ * @param string name name of the subview
+ * @return obl|false
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ get_subview: function( name ) {
+
+ if ( this.views[ name ] ) {
+ return this.views[ name ];
+ }
+
+ return false;
+
+ },
+
+ events_subscribe: function( events ) {
+
+ _.each( events, function( func, event ) {
+
+ this.subscriptions[ event ] = func;
+ Backbone.pubSub.on( event, func, this );
+
+ }, this );
+
+ },
+
+ events_unsubscribe: function() {
+
+ _.each( this.subscriptions, function( func, event ) {
+
+ Backbone.pubSub.off( event, func, this );
+ delete this.subscriptions[ event ];
+
+ }, this );
+
+ },
+
+ /**
+ * Remove a single subview (and all it's subviews) by name
+ *
+ * @param string name name of the subview
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ remove_subview: function( name ) {
+
+ var view = this.get_subview( name );
+
+ if ( ! view ) {
+ return;
+ }
+
+ if ( view.instance ) {
+
+ // remove the subviews if the view has subviews
+ if ( ! _.isEmpty( view.instance.views ) ) {
+ view.instance.events_unsubscribe();
+ view.instance.remove_subviews();
+ }
+
+ view.instance.off();
+ view.instance.off( null, null, null );
+ view.instance.remove();
+ view.instance.undelegateEvents();
+
+ // _.each( view.instance, function( val, key ) {
+ // delete view.instance[ key ];
+ // } );
+
+ view.instance = null;
+
+ }
+
+ },
+
+ /**
+ * Remove all subviews (and all the subviews of those subviews)
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ remove_subviews: function() {
+
+ _.each( this.views, function( data, name ) {
+
+ this.remove_subview( name );
+
+ }, this );
+
+ },
+
+ /**
+ * Render subviews based on current state
+ *
+ * @param obj view_data additional data to pass to the subviews
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ render_subviews: function( view_data ) {
+
+ view_data = view_data || {};
+
+ _.each( this.views, function( data, name ) {
+
+ if ( this.state === data.state ) {
+
+ this.render_subview( name, view_data );
+
+ } else {
+
+ this.remove_subview( name );
+
+ }
+
+ }, this );
+
+ },
+
+ /**
+ * Render a single subview by name
+ *
+ * @param string name name of the subview
+ * @param obj view_data additional data to pass to the subview initializer
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ render_subview: function( name, view_data ) {
+
+ var view = this.get_subview( name );
+
+ if ( ! view ) {
+ return;
+ }
+
+ this.remove_subview( name );
+
+ if ( ! view.instance ) {
+ view.instance = new view.class( view_data );
+ }
+
+ view.instance.render();
+
+ },
+
+ /**
+ * Set the current subview
+ * Must call render after!
+ *
+ * @param string state name of the state [builder|editor]
+ * @return obj this for chaining
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ set_state: function ( state ) {
+
+ this.state = state;
+ return this;
+
+ },
+
+ }
+
+} );
+
+/**
+ * Trashable model
+ *
+ * @type {Object}
+ * @since 3.16.12
+ * @version 3.16.12
+ */
+define( 'Views/_Trashable',[], function() {
+
+ return {
+
+ /**
+ * DOM Events
+ *
+ * @type {Object}
+ * @since 3.16.12
+ * @version 3.16.12
+ */
+ events: {
+ 'click a[href="#llms-trash-model"]': 'trash_model',
+ 'click button.llms-trash-model': 'trash_model',
+ },
+
+ /**
+ * Remove a model from it's parent and delete it
+ *
+ * @param obj event js event object
+ * @return void
+ * @since 3.16.12
+ * @version 3.16.12
+ */
+ trash_model: function( event ) {
+
+ if ( event ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+
+ var msg = LLMS.l10n.replace( 'Are you sure you want to move this %s to the trash?', {
+ '%s': this.model.get_l10n_type(),
+ } );
+
+ if ( window.confirm( msg ) ) {
+
+ if ( this.model.collection ) {
+ this.model.collection.remove( this.model );
+ }
+
+ // publish event
+ Backbone.pubSub.trigger( 'model-trashed', this.model );
+
+ // trigger local event so extending views can run other actions where necessary
+ this.trigger( 'model-trashed', this.model );
+
+ }
+
+ },
+
+ }
+
+} );
+
+/**
+ * Load view mixins
+ *
+ * @package LifterLMS/Scripts
+ *
+ * @since 3.17.1
+ * @version 3.17.1
+ */
+
+define( 'Views/_loader',[
+ 'Views/_Detachable',
+ 'Views/_Editable',
+ 'Views/_Receivable',
+ 'Views/_Shiftable',
+ 'Views/_Subview',
+ 'Views/_Trashable'
+ ],
+ function(
+ Detachable,
+ Editable,
+ Receivable,
+ Shiftable,
+ Subview,
+ Trashable
+ ) {
+
+ return {
+ Detachable: Detachable,
+ Editable: Editable,
+ Receivable: Receivable,
+ Shiftable: Shiftable,
+ Subview: Subview,
+ Trashable: Trashable,
+ };
+
+} );
+
+/**
+ * Constructor functions for constructing models, views, and collections
+ *
+ * @since 3.16.0
+ * @version 3.17.1
+ */
+define( 'Controllers/Construct',[
+ 'Collections/loader',
+ 'Models/loader',
+ 'Views/_loader'
+ ], function(
+ Collections,
+ Models,
+ Views
+ ) {
+
+ return function() {
+
+ /**
+ * Internal getter
+ * Constructs new Collections, Models, and Views
+ *
+ * @param obj type type of object to construct [Collection,Model,View]
+ * @param string name name of the object to construct
+ * @param obj data object data to pass into the object's constructor
+ * @param obj options object options to pass into the constructor
+ * @return obj
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ function get( type, name, data, options ) {
+
+ if ( ! type[ name ] ) {
+ console.log( '"' + name + '" not found.' );
+ return false;
+ }
+
+ return new type[ name ]( data, options );
+
+ }
+
+ /**
+ * Instantiate a collection
+ *
+ * @param string name Collection class name (EG: "Sections")
+ * @param array data Array of model objects to pass to the constructor
+ * @param obj options Object of options to pass to the constructor
+ * @return obj
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ this.get_collection = function( name, data, options ) {
+
+ return get( Collections, name, data, options );
+
+ };
+
+ /**
+ * Instantiate a model
+ *
+ * @param string name Model class name (EG: "Section")
+ * @param obj data Object of model attributes to pass to the constructor
+ * @param obj options Object of options to pass to the constructor
+ * @return obj
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ this.get_model = function( name, data, options ) {
+
+ return get( Models, name, data, options );
+
+ };
+
+ /**
+ * Let 3rd parties extend a view using any of the mixin (_) views
+ *
+ * @param {obj} view base object used for the view
+ * @param... {string} extends any number of strings that should be mixed into the view
+ * @return obj
+ * @since 3.17.1
+ * @version 3.17.1
+ */
+ this.extend_view = function() {
+
+ var view = arguments[0],
+ i = 1;
+
+ while ( arguments[ i ] ) {
+
+ var classname = arguments[ i ];
+ if ( Views[ classname ] ) {
+
+ if ( view.events && Views[ classname ].events ) {
+ view.events = _.defaults( view.events, Views[ classname ].events );
+ }
+
+ view = _.defaults( view, Views[ classname ] );
+
+ }
+
+ i++;
+ }
+
+ return Backbone.View.extend( view );
+
+ };
+
+ /**
+ * Allows custom collection registration by extending the default BackBone collection
+ *
+ * @param string name model name
+ * @param obj props properties to extend the collection with
+ * @return void
+ * @since 3.17.1
+ * @version 3.17.1
+ */
+ this.register_collection = function( name, props ) {
+
+ Collections[ name ] = Backbone.Collection.extend( props );
+
+ };
+
+ /**
+ * Allows custom model registration by extending the default abstract model
+ *
+ * @param string name model name
+ * @param obj props properties to extend the abstract model with
+ * @return void
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ this.register_model = function( name, props ) {
+
+ Models[ name ] = Models['Abstract'].extend( props );
+
+ };
+
+ return this;
+
+ };
+
+} );
+
+/**
+ * LifterLMS Builder Debugging suite
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Controllers/Debug',[], function() {
+
+ return function( settings ) {
+
+ var self = this,
+ enabled = settings.enabled || false;
+
+ /**
+ * Disable debugging
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ this.disable = function() {
+
+ self.log( 'LifterLMS Builder debugging disabled' );
+ enabled = false;
+
+ };
+
+ /**
+ * Enable debugging
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ this.enable = function() {
+
+ enabled = true;
+ self.log( 'LifterLMS Builder debugging enabled' );
+
+ };
+
+ /**
+ * General logging function
+ * Logs to the js console only if logging is enabled
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ this.log = function() {
+
+ if ( ! enabled ) {
+ return;
+ }
+
+ _.each( arguments, function( data ) {
+ console.log( data );
+ } );
+
+ };
+
+ /**
+ * Toggles current state of the logger on or off
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ this.toggle = function() {
+
+ if ( enabled ) {
+ self.disable();
+ } else {
+ self.enable();
+ }
+
+ };
+
+ // on startup, log a message if logging is enabled
+ if ( enabled ) {
+ self.enable();
+ }
+
+ }
+
+} );
+
+/**
+ * Model schema functions
+ *
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+define( 'Controllers/Schemas',[], function() {
+
+ /**
+ * Main Schemas class
+ *
+ * @param obj schemas schemas definitions initialized via PHP filters
+ * @return obj
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ return function( schemas ) {
+
+ // initialize any custom schemas defined via PHP
+ var custom_schemas = schemas;
+ _.each( custom_schemas, function( type ) {
+ _.each( type, function( schema ) {
+ schema.custom = true;
+ } );
+ } );
+
+ /**
+ * Retrieve a schema for a given model by type
+ * Extends default schemas definitions with custom 3rd party definitions
+ *
+ * @param obj schema default schema definition from the model (or empty object if none defined)
+ * @param string model_type the model type ('lesson', 'quiz', etc)
+ * @param obj model Instance of the Backbone.Model for the given model
+ * @return obj
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ this.get = function( schema, model_type, model ) {
+
+ // extend the default schema with custom php schemas for the type if they exist
+ if ( custom_schemas[ model_type ] ) {
+ schema = _.extend( schema, custom_schemas[ model_type ] );
+ }
+
+ return schema;
+
+ };
+
+ return this;
+
+ };
+
+} );
+
+/**
+ * Sync builder data to the server
+ *
+ * @since 3.16.0
+ * @version 4.17.0
+ */
+define( 'Controllers/Sync',[], function() {
+
+ return function( Course, settings ) {
+
+ this.saving = false;
+
+ var self = this,
+ autosave = ( 'yes' === window.llms_builder.autosave ),
+ check_interval = null,
+ check_interval_ms = settings.check_interval_ms || ( ( 'yes' === window.llms_builder.autosave ) ? 10000 : 1000 ),
+ detached = new Backbone.Collection(),
+ trashed = new Backbone.Collection();
+
+ /**
+ * init
+ *
+ * @since 3.16.7
+ *
+ * @return {Void}
+ */
+ function init() {
+
+ // determine if autosaving is possible
+ if ( 'undefined' === typeof wp.heartbeat ) {
+
+ window.llms_builder.debug.log( 'WordPress Heartbeat disabled. Autosaving is disabled!' );
+ autosave = false;
+
+ }
+
+ // setup the check interval
+ if ( check_interval_ms ) {
+ self.set_check_interval( check_interval_ms );
+ }
+
+ // warn when users attempt to leave the page
+ $( window ).on( 'beforeunload', function() {
+
+ if ( self.has_unsaved_changes() ) {
+ check_for_changes();
+ return 'Are you sure you want to abandon your changes?';
+ }
+
+ } );
+
+ };
+
+ /*
+ /$$ /$$ /$$ /$$
+ |__/ | $$ | $$ |__/
+ /$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$ | $$ /$$$$$$ /$$$$$$ /$$
+ | $$| $$__ $$|_ $$_/ /$$__ $$ /$$__ $$| $$__ $$ |____ $$| $$ |____ $$ /$$__ $$| $$
+ | $$| $$ \ $$ | $$ | $$$$$$$$| $$ \__/| $$ \ $$ /$$$$$$$| $$ /$$$$$$$| $$ \ $$| $$
+ | $$| $$ | $$ | $$ /$$| $$_____/| $$ | $$ | $$ /$$__ $$| $$ /$$__ $$| $$ | $$| $$
+ | $$| $$ | $$ | $$$$/| $$$$$$$| $$ | $$ | $$| $$$$$$$| $$ | $$$$$$$| $$$$$$$/| $$
+ |__/|__/ |__/ \___/ \_______/|__/ |__/ |__/ \_______/|__/ \_______/| $$____/ |__/
+ | $$
+ | $$
+ |__/
+ */
+
+ /**
+ * Adds error message(s) to the data object returned by heartbeat-tick
+ *
+ * @param obj data llms_builder data object from heartbeat-tick
+ * @param string|array err error messages array or string
+ * @return obj
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ function add_error_msg( data, err ) {
+
+ if ( 'success' === data.status ) {
+ data.message = [];
+ }
+
+ data.status = 'error';
+ if ( 'string' === typeof err ) {
+ err = [ err ];
+ }
+ data.message = data.message.concat( err );
+
+ return data;
+
+ };
+
+ /**
+ * Publish sync status so other areas of the application can see what's happening here
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ function check_for_changes() {
+
+ var data = {};
+ data.changes = self.get_unsaved_changes();
+ data.has_unsaved_changes = self.has_unsaved_changes( data.changes );
+ data.saving = self.saving;
+
+ window.llms_builder.debug.log( '==== start changes check ====', data, '==== finish changes check ====' );
+
+ Backbone.pubSub.trigger( 'current-save-status', data );
+
+ };
+
+ /**
+ * Manually Save data via Admin AJAX when the heartbeat API has been disabled
+ *
+ * @since 3.16.7
+ * @since 4.17.0 Fixed undefined variable error when logging an error response.
+ *
+ * @return void
+ */
+ function do_ajax_save() {
+
+ // prevent simultaneous saves
+ if ( self.saving ) {
+ return;
+ }
+
+ var changes = self.get_unsaved_changes();
+
+ // only send data if we have data to send
+ if ( self.has_unsaved_changes( changes ) ) {
+
+ changes.id = Course.get( 'id' );
+
+ LLMS.Ajax.call( {
+ data: {
+ action: 'llms_builder',
+ action_type: 'ajax_save',
+ course_id: changes.id,
+ llms_builder: JSON.stringify( changes ),
+ },
+ beforeSend: function() {
+
+ window.llms_builder.debug.log( '==== start do_ajax_save before ====', changes, '==== finish do_ajax_save before ====' );
+
+ self.saving = true;
+
+ Backbone.pubSub.trigger( 'heartbeat-send', self );
+
+ },
+ error: function( xhr, status, error ) {
+
+ window.llms_builder.debug.log( '==== start do_ajax_save error ====', xhr, '==== finish do_ajax_save error ====' );
+
+ self.saving = false;
+
+ Backbone.pubSub.trigger( 'heartbeat-tick', self, {
+ status: 'error',
+ message: xhr.responseText + ' (' + error + ' ' + status + ')',
+ } );
+
+ },
+ success: function( res ) {
+
+ if ( ! res.llms_builder ) {
+ return;
+ }
+
+ window.llms_builder.debug.log( '==== start do_ajax_save success ====', res, '==== finish do_ajax_save success ====' );
+
+ res.llms_builder = process_removals( res.llms_builder );
+ res.llms_builder = process_updates( res.llms_builder );
+
+ self.saving = false;
+
+ Backbone.pubSub.trigger( 'heartbeat-tick', self, res.llms_builder );
+
+ }
+
+ } );
+
+ }
+
+ };
+
+ /**
+ * Retrieve all the attributes changed on a model since the last sync
+ *
+ * For a new model (a model with a temp ID) or a model where _forceSync has been defined ALL atts will be returned
+ * For an existing model (without a temp ID) only retrieves changed attributes as tracked by Backbone.TrackIt
+ *
+ * This function excludes any attributes defined as child attributes via the models relationship settings
+ *
+ * @param obj model instance of a Backbone.Model
+ * @return obj
+ * @since 3.16.0
+ * @version 3.16.6
+ */
+ function get_changed_attributes( model ) {
+
+ var atts = {},
+ sync_type;
+
+ // don't save mid editing
+ if ( model.get( '_has_focus' ) ) {
+ return atts;
+ }
+
+ // model hasn't been persisted to the database to get a real ID yet
+ // send *all* of it's atts
+ if ( has_temp_id( model ) || true === model.get( '_forceSync' ) ) {
+
+ atts = _.clone( model.attributes );
+ sync_type = 'full';
+
+ // only send the changed atts
+ } else {
+
+ atts = model.unsavedAttributes();
+ sync_type = 'partial';
+
+ }
+
+ var exclude = ( model.get_relationships ) ? model.get_child_props() : [];
+ atts = _.omit( atts, function( val, key ) {
+
+ // exclude keys that start with an underscore which are used by the
+ // application but don't need to be stored in the database
+ if ( 0 === key.indexOf( '_' ) ) {
+ return true;
+ } else if ( -1 !== exclude.indexOf( key ) ) {
+ return true;
+ }
+ return false;
+
+ } );
+
+ if ( model.before_save ) {
+ atts = model.before_save( atts, sync_type );
+ }
+
+ return atts;
+
+ };
+
+ /**
+ * Get all the changes to an object (either a Model or a Collection of models)
+ * Returns only changes to models and the IDs of that model (should changes exist)
+ * Uses get_changed_attributes() to determine if all atts or only changed atts are needed
+ * Processes children intelligently to only return changed children rather than the entire collection of children
+ *
+ * @param obj object instance of a Backbone.Model or Backbone.Collection
+ * @return obj|array if object is a model, returns an object
+ * if object is a collection, returns an array of objects
+ * @since 3.16.0
+ * @version 3.16.11
+ */
+ function get_changes_to_object( object ) {
+
+ var changed_atts;
+
+ if ( object instanceof Backbone.Model ) {
+
+ changed_atts = get_changed_attributes( object );
+
+ if ( object.get_relationships ) {
+
+ _.each( object.get_child_props(), function( prop ) {
+
+ var children = get_changes_to_object( object.get( prop ) );
+ if ( ! _.isEmpty( children ) ) {
+ changed_atts[ prop ] = children;
+ }
+
+ } );
+
+ }
+
+ // if we have any data, add the id to the model
+ if ( ! _.isEmpty( changed_atts ) ) {
+ changed_atts.id = object.get( 'id' );
+ }
+
+ } else if ( object instanceof Backbone.Collection ) {
+
+ changed_atts = [];
+ object.each( function( model ) {
+ var model_changes = get_changes_to_object( model );
+ if ( ! _.isEmpty( model_changes ) ) {
+ changed_atts.push( model_changes );
+ }
+ } );
+
+ }
+
+ return changed_atts;
+
+ };
+
+ /**
+ * Determines if a model has a temporary ID or a real persisted ID
+ *
+ * @param obj model instance of a model
+ * @return boolean
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ function has_temp_id( model ) {
+
+ return ( ! _.isNumber( model.id ) && 0 === model.id.indexOf( 'temp_' ) );
+
+ };
+
+ /**
+ * Compares changes synced to the server against current model and restarts
+ * tracking on elements that haven't changed since the last sync
+ *
+ * @param obj model instance of a Backbone.Model
+ * @param obj data data set that was processed by the server
+ * @return void
+ * @since 3.16.11
+ * @version 3.19.4
+ */
+ function maybe_restart_tracking( model, data ) {
+
+ Backbone.pubSub.trigger( model.get( 'type' ) + '-maybe-restart-tracking', model, data );
+
+ var omit = [ 'id', 'orig_id' ];
+
+ if ( model.get_relationships ) {
+ omit.concat( model.get_child_props() );
+ }
+
+ _.each( _.omit( data, omit ), function( val, prop ) {
+
+ if ( _.isEqual( model.get( prop ), val ) ) {
+ delete model._unsavedChanges[ prop ];
+ model._originalAttrs[ prop ] = val;
+ }
+
+ } );
+
+ // if syncing was forced, allow tracking to move forward as normal moving forward
+ model.unset( '_forceSync' );
+
+ };
+
+ /**
+ * Processes response data from heartbeat-tick related to trashing & detaching models
+ * On success, removes from local removal collection
+ * On error, appends error messages to the data object returned to UI for on-screen feedback
+ *
+ * @param obj data data.llms_builder object from heartbeat-tick response
+ * @return obj
+ * @since 3.16.0
+ * @version 3.17.1
+ */
+ function process_removals( data ) {
+
+ // check removals for errors
+ var removals = {
+ detach: detached,
+ trash: trashed,
+ };
+
+ _.each( removals, function( coll, key ) {
+
+ if ( data[ key ] ) {
+
+ var errors = [];
+
+ _.each( data[ key ] , function( info ) {
+
+ // successfully detached, remove it from the detached collection
+ if ( ! info.error ) {
+
+ coll.remove( info.id );
+
+ } else {
+
+ errors.push( info.error );
+
+ }
+
+ } );
+
+ if ( errors.length ) {
+ _.extend( data, add_error_msg( data, errors ) );
+ }
+
+ }
+
+ } );
+
+ return data;
+ }
+
+ /**
+ * Processes response data from heartbeat-tick related to creating / updating a single object
+ * Handles both collections and models as a recursive function
+ *
+ * @param {[type]} data [description]
+ * @param {[type]} type [description]
+ * @param {[type]} parent [description]
+ * @param {[type]} main_data [description]
+ * @return {[type]}
+ * @since 3.16.0
+ * @version 3.16.11
+ */
+ function process_object_updates( data, type, parent, main_data ) {
+
+ if ( ! data[ type ] ) {
+ return data;
+ }
+
+ if ( parent.get( type ) instanceof Backbone.Model ) {
+
+ var info = data[ type ];
+
+ if ( info.error ) {
+
+ _.extend( main_data, add_error_msg( main_data, info.error ) );
+
+ } else {
+
+ var model = parent.get( type );
+
+ // update temp ids with the real id
+ if ( info.id != info.orig_id ) {
+ model.set( 'id', info.id );
+ delete model._unsavedChanges.id;
+ }
+ maybe_restart_tracking( model, info );
+
+ // check children
+ if ( model.get_relationships ) {
+
+ _.each( model.get_child_props(), function( child_key ) {
+ _.extend( data[ type ], process_object_updates( data[ type ], child_key, model, main_data ) );
+ } );
+
+ }
+
+ }
+
+ } else if ( parent.get( type ) instanceof Backbone.Collection ) {
+
+ _.each( data[ type ], function( info, index ) {
+
+ if ( info.error ) {
+
+ _.extend( main_data, add_error_msg( main_data, info.error ) );
+
+ } else {
+
+ var model = parent.get( type ).get( info.orig_id );
+
+ // update temp ids with the real id
+ if ( info.id != info.orig_id ) {
+ model.set( 'id', info.id );
+ delete model._unsavedChanges.id;
+ }
+ maybe_restart_tracking( model, info );
+
+ // check children
+ if ( model.get_relationships ) {
+
+ _.each( model.get_child_props(), function( child_key ) {
+ _.extend( data[ type ], process_object_updates( data[ type ][ index ], child_key, model, main_data ) );
+ } );
+
+ }
+
+ }
+
+ } );
+
+ }
+
+ return main_data;
+
+ };
+
+ /**
+ * Processes response data from heartbeat-tick related to updating & creating new models
+ * On success, removes from local removal collection
+ * On error, appends error messages to the data object returned to UI for on-screen feedback
+ *
+ * @param obj data data.llms_builder object from heartbeat-tick response
+ * @return obj
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ function process_updates( data ) {
+
+ // only mess with updates data
+ if ( ! data.updates ) {
+ return data;
+ }
+
+ if ( data.updates ) {
+ data = process_object_updates( data.updates, 'sections', Course, data );
+ }
+
+ return data;
+
+ };
+
+ /*
+ /$$ /$$ /$$ /$$
+ | $$ | $$|__/ |__/
+ /$$$$$$ /$$ /$$| $$$$$$$ | $$ /$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$
+ /$$__ $$| $$ | $$| $$__ $$| $$| $$ /$$_____/ |____ $$ /$$__ $$| $$
+ | $$ \ $$| $$ | $$| $$ \ $$| $$| $$| $$ /$$$$$$$| $$ \ $$| $$
+ | $$ | $$| $$ | $$| $$ | $$| $$| $$| $$ /$$__ $$| $$ | $$| $$
+ | $$$$$$$/| $$$$$$/| $$$$$$$/| $$| $$| $$$$$$$ | $$$$$$$| $$$$$$$/| $$
+ | $$____/ \______/ |_______/ |__/|__/ \_______/ \_______/| $$____/ |__/
+ | $$ | $$
+ | $$ | $$
+ |__/ |__/
+ */
+
+ /**
+ * Retrieve all unsaved changes for the builder instance
+ *
+ * @return obj
+ * @since 3.16.0
+ * @version 3.17.1
+ */
+ this.get_unsaved_changes = function() {
+
+ return {
+ detach: detached.pluck( 'id' ),
+ trash: trashed.pluck( 'id' ),
+ updates: get_changes_to_object( Course ),
+
+ }
+ };
+
+ /**
+ * Check if the builder instance has unsaved changes
+ *
+ * @param obj changes optionally pass in an object from the return of this.get_unsaved_changes()
+ * save some resources by not running the check twice during heartbeats
+ * @return boolean
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ this.has_unsaved_changes = function( changes ) {
+
+ if ( 'undefined' === typeof changes ) {
+ changes = self.get_unsaved_changes();
+ }
+
+ // check all possible keys, once we find one with content we have some changes to persist
+ var found = _.find( changes, function( data ) {
+
+ return ( false === _.isEmpty( data ) );
+
+ } );
+
+ return found ? true : false;
+
+ };
+
+ /**
+ * Save changes right now.
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.7
+ */
+ this.save_now = function() {
+ if ( autosave ) {
+ wp.heartbeat.connectNow();
+ } else {
+ do_ajax_save();
+ }
+ };
+
+ /**
+ * Update the interval that checks for changes to the builder instance
+ *
+ * @param int ms time (in milliseconds) to run the check on
+ * pass 0 to disable the check
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ this.set_check_interval = function( ms ) {
+ check_interval_ms = ms;
+ if ( check_interval ) {
+ clearInterval( check_interval );
+ }
+ if ( check_interval_ms ) {
+ check_interval = setInterval( check_for_changes, check_interval_ms );
+ }
+ };
+
+ /*
+ /$$ /$$ /$$
+ | $$|__/ | $$
+ | $$ /$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$
+ | $$| $$ /$$_____/|_ $$_/ /$$__ $$| $$__ $$ /$$__ $$ /$$__ $$ /$$_____/
+ | $$| $$| $$$$$$ | $$ | $$$$$$$$| $$ \ $$| $$$$$$$$| $$ \__/| $$$$$$
+ | $$| $$ \____ $$ | $$ /$$| $$_____/| $$ | $$| $$_____/| $$ \____ $$
+ | $$| $$ /$$$$$$$/ | $$$$/| $$$$$$$| $$ | $$| $$$$$$$| $$ /$$$$$$$/
+ |__/|__/|_______/ \___/ \_______/|__/ |__/ \_______/|__/ |_______/
+ */
+
+ /**
+ * Listen for detached models and send them to the server for persistence
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ Backbone.pubSub.on( 'model-detached', function( model ) {
+
+ // detached models with temp ids haven't been persisted so we don't care
+ if ( has_temp_id( model ) ) {
+ return;
+ }
+
+ detached.add( _.clone( model.attributes ) );
+
+ } );
+
+ /**
+ * Listen for trashed models and send them to the server for deletion
+ *
+ * @since 3.16.0
+ * @version 3.17.1
+ */
+ Backbone.pubSub.on( 'model-trashed', function( model ) {
+
+ // if the model has a temp ID we don't have to persist the deletion
+ if ( has_temp_id( model ) ) {
+ return;
+ }
+
+ var data = _.clone( model.attributes );
+
+ if ( model.get_trash_id ) {
+ data.id = model.get_trash_id();
+ }
+
+ trashed.add( data );
+
+ } );
+
+ /*
+ /$$ /$$ /$$ /$$
+ | $$ | $$ | $$ | $$
+ | $$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ | $$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$
+ | $$__ $$ /$$__ $$ |____ $$ /$$__ $$|_ $$_/ | $$__ $$ /$$__ $$ |____ $$|_ $$_/
+ | $$ \ $$| $$$$$$$$ /$$$$$$$| $$ \__/ | $$ | $$ \ $$| $$$$$$$$ /$$$$$$$ | $$
+ | $$ | $$| $$_____/ /$$__ $$| $$ | $$ /$$| $$ | $$| $$_____/ /$$__ $$ | $$ /$$
+ | $$ | $$| $$$$$$$| $$$$$$$| $$ | $$$$/| $$$$$$$/| $$$$$$$| $$$$$$$ | $$$$/
+ |__/ |__/ \_______/ \_______/|__/ \___/ |_______/ \_______/ \_______/ \___/
+ */
+
+
+ /**
+ * Add data to the WP heartbeat to persist new models, changes, and deletions to the DB
+ *
+ * @since 3.16.0
+ * @since 3.16.7 Unknown
+ * @since 4.14.0 Return early when autosaving is disabled.
+ */
+ $( document ).on( 'heartbeat-send', function( event, data ) {
+
+ // Autosaving is disabled.
+ if ( ! autosave ) {
+ return;
+ }
+
+ // prevent simultaneous saves
+ if ( self.saving ) {
+ return;
+ }
+
+ var changes = self.get_unsaved_changes();
+
+ // only send data if we have data to send
+ if ( self.has_unsaved_changes( changes ) ) {
+
+ changes.id = Course.get( 'id' );
+ self.saving = true;
+ data.llms_builder = JSON.stringify( changes );
+
+ }
+
+ window.llms_builder.debug.log( '==== start heartbeat-send ====', data, '==== finish heartbeat-send ====' );
+
+ Backbone.pubSub.trigger( 'heartbeat-send', self );
+
+ } );
+
+ /**
+ * Confirm detachments & deletions and replace temp IDs with new persisted IDs
+ *
+ * @since 3.16.0
+ * @since 4.14.0 Return early when autosaving is disabled.
+ */
+ $( document ).on( 'heartbeat-tick', function( event, data ) {
+
+ // Autosaving is disabled.
+ if ( ! autosave ) {
+ return;
+ }
+
+ if ( ! data.llms_builder ) {
+ return;
+ }
+
+ window.llms_builder.debug.log( '==== start heartbeat-tick ====', data, '==== finish heartbeat-tick ====' );
+
+ data.llms_builder = process_removals( data.llms_builder );
+ data.llms_builder = process_updates( data.llms_builder );
+
+ self.saving = false;
+
+ Backbone.pubSub.trigger( 'heartbeat-tick', self, data.llms_builder );
+
+ } );
+
+ /**
+ * On heartbeat errors publish an error to the main builder application
+ *
+ * @since 3.16.0
+ * @since 4.14.0 Return early when autosaving is disabled.
+ */
+ $( document ).on( 'heartbeat-error', function( event, data ) {
+
+ // Autosaving is disabled.
+ if ( ! autosave ) {
+ return;
+ }
+
+ window.llms_builder.debug.log( '==== start heartbeat-error ====', data, '==== finish heartbeat-error ====' );
+
+ self.saving = false;
+
+ Backbone.pubSub.trigger( 'heartbeat-tick', self, {
+ status: 'error',
+ message: data.responseText + ' (' + data.status + ' ' + data.statusText + ')',
+ } );
+
+ } );
+
+ /*
+ /$$ /$$ /$$
+ |__/ |__/ | $$
+ /$$ /$$$$$$$ /$$ /$$$$$$
+ | $$| $$__ $$| $$|_ $$_/
+ | $$| $$ \ $$| $$ | $$
+ | $$| $$ | $$| $$ | $$ /$$
+ | $$| $$ | $$| $$ | $$$$/
+ |__/|__/ |__/|__/ \___/
+ */
+ init();
+
+ return this;
+
+ };
+
+} );
+
+/**
+ * Single Lesson View
+ * @since 3.16.0
+ * @version 3.27.0
+ */
+define( 'Views/Lesson',[
+ 'Views/_Detachable',
+ 'Views/_Editable',
+ 'Views/_Shiftable',
+ 'Views/_Trashable'
+ ], function(
+ Detachable,
+ Editable,
+ Shiftable,
+ Trashable
+ ) {
+
+ return Backbone.View.extend( _.defaults( {
+
+ /**
+ * Get default attributes for the html wrapper element
+ * @return obj
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ attributes: function() {
+ return {
+ 'data-id': this.model.id,
+ 'data-section-id': this.model.get( 'parent_section' ),
+ };
+ },
+
+ /**
+ * HTML class names
+ * @type {String}
+ */
+ className: 'llms-builder-item llms-lesson',
+
+ /**
+ * Events
+ * @type {Object}
+ * @since 3.16.0
+ * @version 3.16.12
+ */
+ events: _.defaults( {
+ 'click .edit-lesson': 'open_lesson_editor',
+ 'click .llms-headline': 'open_lesson_editor',
+ 'click .edit-quiz': 'open_quiz_editor',
+ 'click .edit-assignment': 'open_assignment_editor',
+ 'click .section-prev': 'section_prev',
+ 'click .section-next': 'section_next',
+ 'click .shift-up--lesson': 'shift_up',
+ 'click .shift-down--lesson': 'shift_down',
+ }, Detachable.events, Editable.events, Trashable.events ),
+
+ /**
+ * HTML element wrapper ID attribute
+ * @return string
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ id: function() {
+ return 'llms-lesson-' + this.model.id;
+ },
+
+ /**
+ * Wrapper Tag name
+ * @type {String}
+ */
+ tagName: 'li',
+
+ /**
+ * Get the underscore template
+ * @type {[type]}
+ */
+ template: wp.template( 'llms-lesson-template' ),
+
+ /**
+ * Initialization callback func (renders the element on screen)
+ * @return void
+ * @since 3.14.1
+ * @version 3.14.1
+ */
+ initialize: function() {
+
+ this.render();
+
+ this.listenTo( this.model, 'change', this.render );
+
+ Backbone.pubSub.on( 'lesson-selected', this.on_select, this );
+ Backbone.pubSub.on( 'new-lesson-added', this.on_select, this );
+
+ },
+
+ /**
+ * Compiles the template and renders the view
+ * @return self (for chaining)
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ render: function() {
+
+ this.$el.html( this.template( this.model ) );
+ this.maybe_hide_shiftable_buttons();
+ if ( this.model.get( '_selected' ) ) {
+ this.$el.addClass( 'selected' );
+ } else {
+ this.$el.removeClass( 'selected' );
+ }
+ return this;
+
+ },
+
+ /**
+ * Click event for the assignment editor action icon
+ * Opens sidebar to the assignment editor tab
+ * @param obj event JS Event obj.
+ * @return void
+ * @since 3.17.0
+ * @version 3.27.0
+ */
+ open_assignment_editor: function( event ) {
+
+ if ( event ) {
+ event.preventDefault();
+ }
+
+ Backbone.pubSub.trigger( 'lesson-selected', this.model, 'assignment' );
+ this.model.set( '_selected', true );
+ this.set_hash( 'assignment' );
+
+ },
+
+ /**
+ * Click event for lesson settings action icon
+ * Opens sidebar to the lesson editor tab
+ * @param obj event JS Event obj.
+ * @return void
+ * @since 3.16.0
+ * @version 3.27.0
+ */
+ open_lesson_editor: function( event ) {
+
+ if ( event ) {
+ event.preventDefault();
+ }
+
+ Backbone.pubSub.trigger( 'lesson-selected', this.model, 'lesson' );
+ this.model.set( '_selected', true );
+ this.set_hash( false );
+
+ },
+
+ /**
+ * Click event for the quiz editor action icon
+ * Opens sidebar to the quiz editor tab
+ * @param obj event JS Event obj.
+ * @return void
+ * @since 3.16.0
+ * @version 3.27.0
+ */
+ open_quiz_editor: function( event ) {
+
+ if ( event ) {
+ event.preventDefault();
+ }
+
+ Backbone.pubSub.trigger( 'lesson-selected', this.model, 'quiz' );
+ this.model.set( '_selected', true );
+ this.set_hash( 'quiz' );
+
+ },
+
+ /**
+ * When a lesson is selected mark it as selected in the hidden prop
+ * Allows views to re-render and reflect current state properly
+ * @param obj model lesson model that's been selected
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ on_select: function( model ) {
+
+ if ( this.model.id !== model.id ) {
+ this.model.set( '_selected', false );
+ }
+
+ },
+
+ /**
+ * Click event for the "Next Section" button
+ * @param obj event js event obj
+ * @return void
+ * @since 3.16.11
+ * @version 3.16.11
+ */
+ section_next: function( event ) {
+ event.preventDefault();
+ this._move_to_section( 'next' );
+ },
+
+ /**
+ * Click event for the "Previous Section" button
+ * @param obj event js event obj
+ * @return void
+ * @since 3.16.11
+ * @version 3.16.11
+ */
+ section_prev: function( event ) {
+ event.preventDefault();
+ this._move_to_section( 'prev' );
+ },
+
+ /**
+ * Adds a hash for deep linking to a specific lesson tab
+ * @param string subtab subtab [quiz|assignment]
+ * @return void
+ * @since 3.27.0
+ * @version 3.27.0
+ */
+ set_hash: function( subtab ) {
+
+ var hash = 'lesson:' + this.model.get( 'id' );
+
+ if ( subtab ) {
+ hash += ':' + subtab;
+ }
+
+ window.location.hash = hash;
+
+ },
+
+ /**
+ * Move the lesson into a new section
+ * @param string direction direction [prev|next]
+ * @return void
+ * @since 3.16.11
+ * @version 3.16.11
+ */
+ _move_to_section: function( direction ) {
+
+ var from_coll = this.model.collection,
+ to_section;
+
+ if ( 'next' === direction ) {
+ to_section = from_coll.parent.get_next();
+ } else if ( 'prev' === direction ) {
+ to_section = from_coll.parent.get_prev();
+ }
+
+ if ( to_section ) {
+
+ from_coll.remove( this.model );
+ to_section.add_lesson( this.model );
+ to_section.set( '_expanded', true );
+
+ }
+
+ },
+
+ }, Detachable, Editable, Shiftable, Trashable ) );
+
+} );
+
+/**
+ * Single Section View
+ *
+ * @since 3.13.0
+ * @version 3.16.0
+ */
+define( 'Views/LessonList',[ 'Views/Lesson', 'Views/_Receivable' ], function( LessonView, Receivable ) {
+
+ return Backbone.CollectionView.extend( _.defaults( {
+
+ className: 'llms-lessons',
+
+ /**
+ * Section model
+ *
+ * @type {[type]}
+ */
+ modelView: LessonView,
+
+ /**
+ * Are sections selectable?
+ *
+ * @type {Bool}
+ */
+ selectable: false,
+
+ /**
+ * Are sections sortable?
+ *
+ * @type {Bool}
+ */
+ sortable: true,
+
+ sortableOptions: {
+ axis: false,
+ connectWith: '.llms-lessons',
+ cursor: 'move',
+ handle: '.drag-lesson',
+ items: '.llms-lesson',
+ placeholder: 'llms-lesson llms-sortable-placeholder',
+ },
+
+ sortable_start: function( collection ) {
+ $( '.llms-lessons' ).addClass( 'dragging' );
+ },
+
+ sortable_stop: function( collection ) {
+ $( '.llms-lessons' ).removeClass( 'dragging' );
+ },
+
+ /**
+ * Overloads the function from Backbone.CollectionView core because it doesn't send stop events
+ * if moving from one sortable to another... :-(
+ *
+ * @param obj event js event object
+ * @param obj ui jQuery UI object
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ _sortStop : function( event, ui ) {
+
+ var modelBeingSorted = this.collection.get( ui.item.attr( 'data-model-cid' ) ),
+ modelViewContainerEl = this._getContainerEl(),
+ newIndex = modelViewContainerEl.children().index( ui.item );
+
+ if ( newIndex == -1 && modelBeingSorted ) {
+ this.collection.remove( modelBeingSorted );
+ }
+
+ this._reorderCollectionBasedOnHTML();
+ this.updateDependentControls();
+
+ if ( this._isBackboneCourierAvailable() ) {
+ this.spawn( 'sortStop', { modelBeingSorted : modelBeingSorted, newIndex : newIndex } );
+ } else {
+ this.trigger( 'sortStop', modelBeingSorted, newIndex );
+ }
+
+ },
+
+ }, Receivable ) );
+
+} );
+
+/**
+ * Single Section View
+ * @since 3.13.0
+ * @version 3.16.12
+ */
+define( 'Views/Section',[
+ 'Views/LessonList',
+ 'Views/_Editable',
+ 'Views/_Shiftable',
+ 'Views/_Trashable'
+ ], function(
+ LessonListView,
+ Editable,
+ Shiftable,
+ Trashable
+ ) {
+
+ return Backbone.View.extend( _.defaults( {
+
+ /**
+ * Get default attributes for the html wrapper element
+ * @return obj
+ * @since 3.13.0
+ * @version 3.13.0
+ */
+ attributes: function() {
+ return {
+ 'data-id': this.model.id,
+ };
+ },
+
+ /**
+ * Element class names
+ * @type {String}
+ */
+ className: 'llms-builder-item llms-section',
+
+ /**
+ * Events
+ * @type {Object}
+ * @since 3.16.0
+ * @version 3.16.12
+ */
+ events: _.defaults( {
+
+ 'click': 'select',
+ 'click .expand': 'expand',
+ 'click .collapse': 'collapse',
+ 'click .shift-up--section': 'shift_up',
+ 'click .shift-down--section': 'shift_down',
+ 'click .new-lesson': 'add_new_lesson',
+ 'click .llms-builder-header': 'toggle',
+ 'mouseenter .llms-lessons': 'on_mouseenter',
+
+ }, Editable.events, Trashable.events ),
+
+ /**
+ * HTML element wrapper ID attribute
+ * @return string
+ * @since 3.13.0
+ * @version 3.13.0
+ */
+ id: function() {
+ return 'llms-section-' + this.model.id;
+ },
+
+ /**
+ * Wrapper Tag name
+ * @type {String}
+ */
+ tagName: 'li',
+
+ /**
+ * Get the underscore template
+ * @type {[type]}
+ */
+ template: wp.template( 'llms-section-template' ),
+
+ /**
+ * Initialization callback func (renders the element on screen)
+ * @return void
+ * @since 3.13.0
+ * @version 3.16.0
+ */
+ initialize: function() {
+
+ this.render();
+ this.listenTo( this.model, 'change', this.render );
+ this.listenTo( this.model, 'change:_expanded', this.toggle_expanded );
+ this.lessonListView.collection.on( 'add', this.on_lesson_add, this );
+
+ this.dragTimeout = null;
+
+ Backbone.pubSub.on( 'expand-all', this.expand, this );
+ Backbone.pubSub.on( 'collapse-all', this.collapse, this );
+
+ },
+
+ /**
+ * Render the section
+ * Initializes a new collection and views for all lessons in the section
+ * @return void
+ * @since 3.13.0
+ * @version 3.16.0
+ */
+ render: function() {
+
+ this.$el.html( this.template( this.model.toJSON() ) );
+
+ this.maybe_hide_shiftable_buttons();
+
+ this.lessonListView = new LessonListView( {
+ el: this.$el.find( '.llms-lessons' ),
+ collection: this.model.get( 'lessons' ),
+ } );
+ this.lessonListView.render();
+ this.lessonListView.on( 'sortStart', this.lessonListView.sortable_start );
+ this.lessonListView.on( 'sortStop', this.lessonListView.sortable_stop );
+
+ // selection changes
+ this.lessonListView.on( 'selectionChanged', this.active_lesson_change, this );
+
+ this.maybe_hide_trash_button();
+
+ return this;
+
+ },
+
+ add_new_lesson: function( event ) {
+
+ event.preventDefault();
+
+ Backbone.pubSub.trigger( 'section-select', this.model );
+ Backbone.pubSub.trigger( 'add-new-lesson' );
+
+ },
+
+ active_lesson_change: function( current, previous ) {
+
+ Backbone.pubSub.trigger( 'active-lesson-change', {
+ current: current,
+ previous: previous,
+ } );
+
+ },
+
+ toggle: function( event, update ) {
+
+ // We only want to expand/collapse when the actual header div is clicked, not an element inside it.
+ if ( 'llms-builder-header' !== event.target.className ) {
+ return;
+ }
+
+ if ( this.model.get( '_expanded' ) ) {
+ this.collapse( event, update );
+ } else {
+ this.expand( event, update );
+ }
+
+ },
+
+ /**
+ * Collapse lessons within the section
+ * @param obj event js event object
+ * @param bool update if true, updates the model to reflect the new state
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ collapse: function( event, update ) {
+
+ if ( 'undefined' === typeof update ) {
+ update = true;
+ }
+
+ if ( event ) {
+ event.stopPropagation();
+ event.preventDefault();
+ }
+
+ this.$el.removeClass( 'expanded' ).find( '.drag-expanded' ).removeClass( 'drag-expanded' );
+ if ( update ) {
+ this.model.set( '_expanded', false );
+ }
+ Backbone.pubSub.trigger( 'section-toggle', this.model );
+
+ },
+
+ /**
+ * Expand lessons within the section
+ * @param obj event js event object
+ * @param bool update if true, updates the model to reflect the new state
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ expand: function( event, update ) {
+
+ if ( 'undefined' === typeof update ) {
+ update = true;
+ }
+
+ if ( event ) {
+ event.stopPropagation();
+ event.preventDefault();
+ }
+
+ this.$el.addClass( 'expanded' );
+ if ( update ) {
+ this.model.set( '_expanded', true );
+ }
+ Backbone.pubSub.trigger( 'section-toggle', this.model );
+
+ },
+
+ maybe_hide_trash_button: function() {
+
+ var $btn = this.$el.find( '.trash--section' );
+
+ if ( this.model.get( 'lessons' ).isEmpty() ) {
+
+ $btn.show();
+
+ } else {
+
+ $btn.hide()
+
+ }
+
+ },
+
+ /**
+ * When a lesson is added to the section trigger a collection reorder & update the lesson's id
+ * @param obj model Lesson model
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ on_lesson_add: function( model ) {
+
+ this.lessonListView.collection.trigger( 'reorder' );
+ model.set( 'parent_section', this.model.get( 'id' ) );
+ this.expand();
+
+ },
+
+ on_mouseenter: function( event ) {
+
+
+ if ( $( event.target ).hasClass( 'dragging' ) ) {
+
+ $( '.drag-expanded' ).removeClass( 'drag-expanded' );
+ $( event.target ).addClass( 'drag-expanded' );
+
+ }
+
+ },
+
+ /**
+ * Expand
+ * @param {[type]} model [description]
+ * @param {[type]} value [description]
+ * @return {[type]}
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ toggle_expanded: function( model, value ) {
+
+ if ( value ) {
+ this.expand( null, false );
+ } else {
+ this.collapse( null, false );
+ }
+
+ },
+
+ }, Editable, Shiftable, Trashable ) );
+
+} );
+
+/**
+ * Single Section View
+ *
+ * @since 3.13.0
+ * @version 3.16.0
+ */
+define( 'Views/SectionList',[ 'Views/Section', 'Views/_Receivable' ], function( SectionView, Receivable ) {
+
+ return Backbone.CollectionView.extend( _.defaults( {
+
+ /**
+ * Parent element
+ *
+ * @type {String}
+ */
+ el: '#llms-sections',
+
+ events : {
+ 'mousedown > li.llms-section > .llms-builder-header .llms-headline' : '_listItem_onMousedown',
+ // 'dblclick > li, tbody > tr > td' : '_listItem_onDoubleClick',
+ 'click' : '_listBackground_onClick',
+ 'click ul.collection-view' : '_listBackground_onClick',
+ 'keydown' : '_onKeydown'
+ },
+
+ /**
+ * Section model
+ *
+ * @type {[type]}
+ */
+ modelView: SectionView,
+
+ /**
+ * Enable keyboard events
+ *
+ * @type {Bool}
+ */
+ processKeyEvents: false,
+
+ /**
+ * Are sections selectable?
+ *
+ * @type {Bool}
+ */
+ selectable: true,
+
+ /**
+ * Are sections sortable?
+ *
+ * @type {Bool}
+ */
+ sortable: true,
+
+ sortableOptions: {
+ axis: false,
+ cursor: 'move',
+ handle: '.drag-section',
+ items: '.llms-section',
+ placeholder: 'llms-section llms-sortable-placeholder',
+ },
+
+ sortable_start: function( collection ) {
+ this.$el.addClass( 'dragging' );
+ },
+
+ sortable_stop: function( collection ) {
+ this.$el.removeClass( 'dragging' );
+ },
+
+ }, Receivable ) );
+
+} );
+
+/**
+ * Single Course View
+ *
+ * @since 3.13.0
+ * @version 3.16.0
+ */
+define( 'Views/Course',[
+ 'Views/SectionList',
+ 'Views/_Detachable',
+ 'Views/_Editable',
+ 'Views/_Shiftable',
+ 'Views/_Trashable'
+], function(
+ SectionListView,
+ Detachable,
+ Editable,
+ Shiftable,
+ Trashable
+) {
+
+ return Backbone.View.extend( _.defaults( {
+
+ /**
+ * Get default attributes for the html wrapper element
+ *
+ * @return obj
+ * @since 3.13.0
+ * @version 3.13.0
+ */
+ attributes: function() {
+ return {
+ 'data-id': this.model.id,
+ };
+ },
+
+ /**
+ * HTML element selector
+ *
+ * @type {String}
+ */
+ el: '#llms-builder-main',
+
+ /**
+ * Wrapper Tag name
+ *
+ * @type {String}
+ */
+ tagName: 'div',
+
+ /**
+ * Get the underscore template
+ *
+ * @type {[type]}
+ */
+ template: wp.template( 'llms-course-template' ),
+
+ /**
+ * Initialization callback func (renders the element on screen)
+ *
+ * @return void
+ * @since 3.13.0
+ * @version 3.13.0
+ */
+ initialize: function() {
+
+ var self = this;
+
+ // this.listenTo( this.model, 'sync', this.render );
+ this.render();
+
+ this.sectionListView = new SectionListView( {
+ collection: this.model.get( 'sections' ),
+ } );
+ this.sectionListView.render();
+ // drag and drop start
+ this.sectionListView.on( 'sortStart', this.sectionListView.sortable_start );
+ // drag and drop stop
+ this.sectionListView.on( 'sortStop', this.sectionListView.sortable_stop );
+ // selection changes
+ this.sectionListView.on( 'selectionChanged', this.active_section_change );
+ // "select" a section when it's added to the course
+ this.listenTo( this.model.get( 'sections' ), 'add', this.on_section_add );
+
+ Backbone.pubSub.on( 'section-toggle', this.on_section_toggle, this );
+
+ Backbone.pubSub.on( 'section-select', this.on_section_select, this );
+
+ Backbone.pubSub.on( 'expand-section', this.expand_section, this );
+
+ Backbone.pubSub.on( 'lesson-selected', this.active_lesson_change, this );
+
+ },
+
+ /**
+ * Events
+ * @type {Object}
+ * @version 7.6.0
+ */
+ events: _.defaults( {
+ 'click .new-section': 'add_new_section',
+ }, Detachable.events, Editable.events, Trashable.events ),
+
+ /**
+ * Compiles the template and renders the view
+ *
+ * @return self (for chaining)
+ * @since 3.13.0
+ * @version 3.13.0
+ */
+ render: function() {
+ this.$el.html( this.template( this.model ) );
+ return this;
+ },
+
+ active_lesson_change: function( model ) {
+
+ // set parent section to be active
+ var section = this.model.get( 'sections' ).get( model.get( 'parent_section' ) );
+ this.sectionListView.setSelectedModel( section );
+
+ },
+
+ /**
+ * When a section "selection" changes in the list
+ * Update each section model so we can figure out which one is selected from other views
+ *
+ * @param array current array of selected models
+ * @param array previous array of previously selected models
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ active_section_change: function( current, previous ) {
+
+ _.each( current, function( model ) {
+ model.set( '_selected', true );
+ } );
+
+ _.each( previous, function( model ) {
+ model.set( '_selected', false );
+ } );
+
+ },
+
+ /**
+ * "Selects" the new section when it's added to the course
+ *
+ * @param obj model Section model that's just been added
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ on_section_add: function( model ) {
+
+ this.sectionListView.setSelectedModel( model );
+
+ },
+
+ /**
+ * When expanding/collapsing sections
+ * if collapsing, unselect, if expanding, select
+ *
+ * @param obj model toggled section
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ on_section_toggle: function( model ) {
+
+ var selected = model.get( '_expanded' ) ? [ model ] : [];
+ this.sectionListView.setSelectedModels( selected );
+
+ },
+
+
+ /**
+ * When doing things like adding a lesson, seelct the section.
+ *
+ * @param obj model toggled section
+ * @return void
+ * @since 7.6.0
+ * @version 7.6.0
+ */
+ on_section_select: function( model ) {
+
+ this.sectionListView.setSelectedModel( model );
+
+ },
+
+ add_new_section: function( event ) {
+
+ event.preventDefault();
+ Backbone.pubSub.trigger( 'add-new-section' );
+ },
+
+
+ }, Editable ) );
+
+} );
+
+/**
+ * Model settings fields view
+ *
+ * @since 3.17.0
+ * @version 4.7.0
+ */
+define( 'Views/SettingsFields',[], function() {
+
+ return Backbone.View.extend( _.defaults( {
+
+ /**
+ * DOM events
+ *
+ * @type {Object}
+ */
+ events: {
+ 'click .llms-settings-group-toggle': 'toggle_group',
+ },
+
+ /**
+ * Processed fields data
+ * Allows access by ID without traversing the schema
+ *
+ * @type {Object}
+ */
+ fields: {},
+
+ /**
+ * Wrapper Tag name
+ *
+ * @type {String}
+ */
+ tagName: 'div',
+
+ /**
+ * Get the underscore template
+ *
+ * @type {[type]}
+ */
+ template: wp.template( 'llms-settings-fields-template' ),
+
+ /**
+ * Initialization callback func (renders the element on screen)
+ *
+ * @return void
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ // initialize: function() {},
+
+ /**
+ * Retrieve an array of all editor fields in all groups
+ *
+ * @return array
+ * @since 3.17.1
+ * @version 3.17.1
+ */
+ get_editor_fields: function() {
+ return _.filter( this.fields, function( field ) {
+ return this.is_editor_field( field.type );
+ }, this );
+ },
+
+ /**
+ * Get settings group data from a model
+ *
+ * @return {[type]}
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ get_groups: function() {
+
+ return this.model.get_settings_fields();
+
+ },
+
+ /**
+ * Determine if a settings group is hidden in localStorage
+ *
+ * @param string group_id id of the group
+ * @return {Boolean}
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ is_group_hidden: function( group_id ) {
+
+ var id = 'llms-' + this.model.get( 'type' ) + '-settings-group--' + group_id;
+
+ if ( 'undefined' !== window.localStorage ) {
+ return ( 'hidden' === window.localStorage.getItem( id ) );
+ }
+
+ return false;
+
+ },
+
+ /**
+ * Get the switch attribute for a field with switches
+ *
+ * @param obj field field data obj
+ * @return string
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ get_switch_attribute: function( field ) {
+
+ return field.switch_attribute ? field.switch_attribute : field.attribute;
+
+ },
+
+ /**
+ * Determine if a field has a switch
+ *
+ * @param string type field type string
+ * @return {Boolean}
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ has_switch: function( type ) {
+ return ( -1 !== type.indexOf( 'switch' ) );
+ },
+
+ /**
+ * Determine if a field is a default (text) field
+ *
+ * @param string type field type string
+ * @return {Boolean}
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ is_default_field: function( type ) {
+
+ var types = [ 'audio_embed', 'datepicker', 'number', 'text', 'video_embed' ];
+ return ( -1 !== types.indexOf( type.replace( 'switch-', '' ) ) );
+
+ },
+
+ /**
+ * Determine if a field is a WYSIWYG editor field
+ *
+ * @param string type field type string
+ * @return {Boolean}
+ * @since 3.17.1
+ * @version 3.17.1
+ */
+ is_editor_field: function( type ) {
+
+ var types = [ 'editor', 'switch-editor' ];
+ return ( -1 !== types.indexOf( type.replace( 'switch-', '' ) ) );
+
+ },
+
+ /**
+ * Determine if a switch is enabled for a field
+ *
+ * @param obj field field data object
+ * @return {Boolean}
+ * @since 3.17.0
+ * @version 3.17.6
+ */
+ is_switch_condition_met: function( field ) {
+
+ return ( field.switch_on === this.model.get( field.switch_attribute ) );
+
+ },
+
+ /**
+ * Compiles the template and renders the view
+ *
+ * @return self (for chaining)
+ * @since 3.17.0
+ * @version 3.17.1
+ */
+ render: function() {
+
+ this.$el.html( this.template( this ) );
+
+ // if editors exist, render them
+ _.each( this.get_editor_fields(), function( field ) {
+ this.render_editor( field );
+ }, this );
+
+ return this;
+
+ },
+
+ /**
+ * Renders an editor field
+ *
+ * @since 3.17.1
+ * @since 3.37.11 Replace references to `wp.editor` with `_.getEditor()` helper.
+ *
+ * @param {Object} field Field data object.
+ * @return {Void}
+ */
+ render_editor: function( field ) {
+
+ var self = this,
+ wpEditor = _.getEditor();
+
+ // Exit early if there's no editor to work with.
+ if ( undefined === wpEditor ) {
+ console.error( 'Unable to access `wp.oldEditor` or `wp.editor`.' );
+ return;
+ }
+
+ wpEditor.remove( field.id );
+ field.settings.tinymce.setup = function( editor ) {
+
+ var $ed = $( '#' + editor.id ),
+ $parent = $ed.closest( '.llms-editable-editor' ),
+ $label = $parent.find( '.llms-label' ),
+ prop = $ed.attr( 'data-attribute' )
+
+ if ( $label.length ) {
+ $label.prependTo( $parent.find( '.wp-editor-tools' ) );
+ }
+
+ // save changes to the model via Visual ed
+ editor.on( 'change', function( event ) {
+ self.model.set( prop, wpEditor.getContent( editor.id ) );
+ } );
+
+ // save changes via Text ed
+ $ed.on( 'input', function( event ) {
+ self.model.set( prop, $ed.val() );
+ } );
+
+ // trigger an input on the Text ed when quicktags buttons are clicked
+ $parent.on( 'click', '.quicktags-toolbar .ed_button', function() {
+ setTimeout( function() {
+ $ed.trigger( 'input' );
+ }, 10 );
+ } );
+ };
+
+ wpEditor.initialize( field.id, field.settings );
+
+ },
+
+ /**
+ * Get the HTML for a select field
+ *
+ * @param obj options flat or multi-dimensional options object
+ * @param string attribute name of the select field's attribute
+ * @return string
+ * @since 3.17.0
+ * @version 3.17.2
+ */
+ render_select_options: function( options, attribute ) {
+
+ var html = '',
+ selected = this.model.get( attribute );
+
+ function option_html( label, val ) {
+
+ return '' + label.substring( 0, 100 ) + ( label.length > 100 ? '...' : '' ) + ' ';
+
+ }
+
+ _.each( options, function( option, index ) {
+
+ // this will be an key:val object
+ if ( 'string' === typeof option ) {
+ html += option_html( option, index );
+ // either option group or array of key,val objects
+ } else if ( 'object' === typeof option ) {
+ // option group
+ if ( option.label && option.options ) {
+ html += '';
+ html += this.render_select_options( option.options, attribute );
+ } else {
+ html += option_html( option.val, option.key );
+ }
+ }
+
+ }, this );
+
+ return html;
+
+ },
+
+ /**
+ * Setup and fill fields with default data based on field type
+ *
+ * @since 3.17.0
+ * @since 3.24.0 Unknown.
+ * @since 3.37.11 Replace reference to `wp.editor` with `_.getEditor()` helper.
+ * @since 4.7.0 Ensure `switch-number` fields are set with the `number` type attribute.
+ *
+ * @param {Object} orig_field Original field as defined in the settings.
+ * @param {Integer} field_index Index of the field in the current row.
+ * @return {Object}
+ */
+ setup_field: function( orig_field, field_index ) {
+
+ var defaults = {
+ classes: [],
+ id: _.uniqueId( orig_field.attribute + '_' ),
+ input_type: 'text',
+ label: '',
+ options: {},
+ placeholder: '',
+ tip: '',
+ tip_position: 'top-right',
+ settings: {},
+ };
+
+ // check the field condition if set
+ if ( orig_field.condition && false === _.bind( orig_field.condition, this.model )() ) {
+ return false;
+ }
+
+ switch ( orig_field.type ) {
+
+ case 'audio_embed':
+ defaults.classes.push( 'llms-editable-audio' );
+ defaults.placeholder = 'https://';
+ defaults.tip = LLMS.l10n.translate( 'Use SoundCloud or Spotify audio URLS.' );
+ defaults.input_type = 'url';
+ break;
+
+ case 'datepicker':
+ defaults.classes.push( 'llms-editable-date' );
+ break;
+
+ case 'editor':
+ case 'switch-editor':
+ var orig_settings = orig_field.settings || {};
+ defaults.settings = $.extend( true, _.getEditor().getDefaultSettings(), {
+ mediaButtons: true,
+ tinymce: {
+ toolbar1: 'bold,italic,strikethrough,bullist,numlist,blockquote,hr,alignleft,aligncenter,alignright,link,unlink,wp_adv',
+ toolbar2: 'formatselect,underline,alignjustify,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help',
+ }
+ }, orig_settings );
+ break;
+
+ case 'number':
+ case 'switch-number':
+ defaults.input_type = 'number';
+ break;
+
+ case 'permalink':
+ defaults.label = LLMS.l10n.translate( 'Permalink' );
+ break;
+
+ case 'video_embed':
+ defaults.classes.push( 'llms-editable-video' );
+ defaults.placeholder = 'https://';
+ defaults.tip = LLMS.l10n.translate( 'Use YouTube, Vimeo, or Wistia video URLS.' );
+ defaults.input_type = 'url';
+ break;
+
+ }
+
+ if ( this.has_switch( orig_field.type ) ) {
+ defaults.switch_on = 'yes';
+ defaults.switch_off = 'no';
+ }
+
+ var field = _.defaults( _.deepClone( orig_field ), defaults );
+
+ // if options is a function run it
+ if ( _.isFunction( field.options ) ) {
+ field.options = _.bind( field.options, this.model )();
+ }
+
+ // if it's a radio field options values can be submitted as images
+ // this will transform those images into html
+ if ( -1 !== [ 'radio', 'switch-radio' ].indexOf( orig_field.type ) ) {
+
+ var has_images = false;
+ _.each( orig_field.options, function( val, key ) {
+ if ( -1 !== val.indexOf( '.png' ) || -1 !== val.indexOf( '.jpg' ) ) {
+ field.options[key] = ' ';
+ has_images = true;
+ }
+ } );
+ if ( has_images ) {
+ field.classes.push( 'has-images' );
+ }
+
+ }
+
+ // transform classes array to a css class string
+ if ( field.classes.length ) {
+ field.classes = ' ' + field.classes.join( ' ' );
+ }
+
+ this.fields[ field.id ] = field;
+
+ return field;
+
+ },
+
+ /**
+ * Determine if toggling a switch select should rerender the view
+ *
+ * @param string field_type field type string
+ * @return boolean
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ should_rerender_on_toggle: function( field_type ) {
+
+ return ( -1 !== field_type.indexOf( 'switch-' ) ) ? 'yes' : 'no';
+
+ },
+
+ /**
+ * Click event for toggling visibility of settings groups
+ * If localStorage is available, persist state
+ *
+ * @param obj event js event object
+ * @return void
+ * @since 3.17.0
+ * @version 3.17.0
+ */
+ toggle_group: function( event ) {
+
+ event.preventDefault();
+
+ var $el = $( event.currentTarget ),
+ $group = $el.closest( '.llms-model-settings' );
+
+ $group.toggleClass( 'hidden' );
+
+ if ( 'undefined' !== window.localStorage ) {
+
+ var id = $group.attr( 'id' );
+ if ( $group.hasClass( 'hidden' ) ) {
+ window.localStorage.setItem( id, 'hidden' );
+ } else {
+ window.localStorage.removeItem( id );
+ }
+
+ }
+
+ },
+
+ } ) );
+
+} );
+
+/**
+ * Lesson Editor (Sidebar) View
+ *
+ * @package LifterLMS/Scripts/Builder
+ *
+ * @since 3.17.0
+ * @since 3.35.2 Added filter `llms_lesson_rerender_change_events` to view re-render change events.
+ * @version 3.35.2
+ */
+define( 'Views/LessonEditor',[
+ 'Views/_Detachable',
+ 'Views/_Editable',
+ 'Views/_Trashable',
+ 'Views/_Subview',
+ 'Views/SettingsFields'
+ ], function(
+ Detachable,
+ Editable,
+ Trashable,
+ Subview,
+ SettingsFields
+ ) {
+
+ return Backbone.View.extend( _.defaults( {
+
+ /**
+ * Current view state
+ *
+ * @type {String}
+ */
+ state: 'default',
+
+ /**
+ * Current Subviews
+ *
+ * @type {Object}
+ */
+ views: {
+ settings: {
+ class: SettingsFields,
+ instance: null,
+ state: 'default',
+ },
+ },
+
+ el: '#llms-editor-lesson',
+
+ /**
+ * Events
+ *
+ * @type {Object}
+ */
+ events: _.defaults( {}, Detachable.events, Editable.events, Trashable.events ),
+
+ /**
+ * Template function
+ *
+ * @type {[type]}
+ */
+ template: wp.template( 'llms-lesson-settings-template' ),
+
+ /**
+ * Init
+ *
+ * @since 3.17.0
+ * @since 3.24.0 Unknown
+ * @since 3.35.2 Added filter to change events.
+ *
+ * @param {obj} data Parent template data.
+ * @return {void}
+ */
+ initialize: function( data ) {
+
+ this.model = data.lesson;
+
+ var change_events = window.llms.hooks.applyFilters( 'llms_lesson_rerender_change_events', [
+ 'change:date_available',
+ 'change:drip_method',
+ 'change:time_available',
+ ] );
+ _.each( change_events, function( event ) {
+ this.listenTo( this.model, event, this.render );
+ }, this );
+
+ // render only the tooltip for points percentage when points change
+ this.listenTo( this.model, 'change:points', this.render_points_percentage );
+
+ // when the "has_prerequisite" attr is toggled ON
+ // trigger the prereq select object to set the default (first available) prereq for the lesson
+ this.listenTo( this.model, 'change:has_prerequisite', function( lesson, val ) {
+ if ( 'yes' === val ) {
+ this.$el.find( 'select[name="prerequisite"]' ).trigger( 'change' );
+ }
+ } );
+
+ },
+
+ /**
+ * Render the view
+ *
+ * @return obj
+ * @since 3.17.0
+ * @version 3.24.0
+ */
+ render: function() {
+
+ this.$el.html( this.template( this.model ) );
+
+ this.remove_subview( 'settings' );
+
+ this.render_subview( 'settings', {
+ el: '#llms-lesson-settings-fields',
+ model: this.model,
+ } );
+
+ this.init_datepickers();
+ this.init_selects();
+
+ this.render_points_percentage();
+
+ return this;
+
+ },
+
+ /**
+ * Render the portion of the template which displays the points percentage
+ *
+ * @return void
+ * @since 3.24.0
+ * @version 3.24.0
+ */
+ render_points_percentage: function() {
+ this.$el.find( '#llms-model-settings-field--points .llms-editable-input' )
+ .addClass( 'tip--top-left' )
+ .attr( 'data-tip', this.model.get_points_percentage() );
+ }
+
+ }, Detachable, Editable, Trashable, Subview, SettingsFields ) );
+
+} );
+
+/**
+ * Popover View
+ *
+ * @since 3.16.0
+ * @version 4.0.0
+ */
+define( 'Views/Popover',[], function() {
+
+ return Backbone.View.extend( {
+
+ /**
+ * Default Properties
+ *
+ * @type {Object}
+ */
+ defaults: {
+ placement: 'auto',
+ // container: document.body,
+ width: 'auto',
+ trigger: 'manual',
+ style: 'light',
+ animation: 'pop',
+ title: '',
+ content: '',
+ closeable: false,
+ backdrop: false,
+ onShow: function( $el ) {},
+ onHide: function( $el ) {},
+ },
+
+ /**
+ * Wrapper Tag name
+ *
+ * @type {String}
+ */
+ tagName: 'div',
+
+ /**
+ * Initialization callback func (renders the element on screen)
+ *
+ * @since 3.14.1
+ * @since 4.0.0 Add RTL support for popovers.
+ *
+ * @return void
+ */
+ initialize: function( data ) {
+
+ if ( this.$el.length ) {
+ this.defaults.container = this.$el.parent();
+ }
+
+ this.args = _.defaults( data.args, this.defaults );
+
+ // Reverse directions for RTL sites.
+ if ( $( 'body' ).hasClass( 'rtl' ) ) {
+
+ if ( -1 !== this.args.placement.indexOf( 'left' ) ) {
+ this.args.placement = this.args.placement.replace( 'left', 'right' );
+ } else if ( -1 !== this.args.placement.indexOf( 'right' ) ) {
+ this.args.placement = this.args.placement.replace( 'right', 'left' );
+ }
+
+ }
+
+ this.render();
+
+ },
+
+ /**
+ * Compiles the template and renders the view
+ *
+ * @since 3.16.0
+ *
+ * @return {Object} Instance of the Backbone.view.
+ */
+ render: function() {
+
+ this.$el.webuiPopover( this.args );
+ return this;
+
+ },
+
+ /**
+ * Hide the popover
+ *
+ * @since 3.16.0
+ * @since 3.16.12 Unknown.
+ *
+ * @return {Object} Instance of the Backbone.view.
+ */
+ hide: function() {
+
+ this.$el.webuiPopover( 'hide' );
+ return this;
+
+ },
+
+ /**
+ * Show the popover
+ *
+ * @since 3.16.0
+ * @since 3.16.12 Unknown.
+ *
+ * @return {Object} Instance of the Backbone.view.
+ */
+ show: function() {
+
+ this.$el.webuiPopover( 'show' );
+ return this;
+
+ },
+
+ } );
+
+} );
+
+/**
+ * Post Popover Search content View
+ *
+ * @since 3.16.0
+ * @version 4.4.0
+ */
+define( 'Views/PostSearch',[], function() {
+
+ return Backbone.View.extend( {
+
+ /**
+ * DOM Events
+ *
+ * @type obj
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ events: {
+ 'select2:select': 'add_post',
+ },
+
+ /**
+ * Wrapper Tag name
+ *
+ * @type {String}
+ */
+ tagName: 'select',
+
+ /**
+ * Initializer
+ *
+ * @param obj data customize the search box with data
+ * @return void
+ * @since 3.16.12
+ * @version 3.16.12
+ */
+ initialize: function( data ) {
+
+ this.post_type = data.post_type;
+ this.searching_message = data.searching_message || LLMS.l10n.translate( 'Searching...' );
+
+ },
+
+ /**
+ * Select event, adds the existing lesson to the course
+ *
+ * @param obj event select2:select event object
+ * @since 3.16.0
+ * @version 3.17.0
+ */
+ add_post: function( event ) {
+
+ var type = this.$el.attr( 'data-post-type' );
+
+ Backbone.pubSub.trigger( type.replace( 'llms_', '' ) + '-search-select', event.params.data, event );
+ this.$el.val( null ).trigger( 'change' );
+
+ },
+
+ /**
+ * Render the section
+ *
+ * Initializes a new collection and views for all lessons in the section.
+ *
+ * @since 3.16.0
+ * @since 3.16.12 Unknown.
+ * @since 4.4.0 Update ajax nonce source.
+ *
+ * @return void
+ */
+ render: function() {
+ var self = this;
+ setTimeout( function () {
+ self.$el.llmsSelect2( {
+ ajax: {
+ dataType: 'JSON',
+ delay: 250,
+ method: 'POST',
+ url: window.ajaxurl,
+ data: function( params ) {
+ return {
+ action: 'llms_builder',
+ action_type: 'search',
+ course_id: window.llms_builder.course.id,
+ post_type: self.post_type,
+ term: params.term,
+ page: params.page,
+ _ajax_nonce: window.llms.ajax_nonce,
+ };
+ },
+ },
+ dropdownParent: $( '.wrap.lifterlms.llms-builder' ),
+ // Don't escape html from render_result.
+ escapeMarkup: function( markup ) {
+ return markup;
+ },
+ placeholder: self.searching_message,
+ templateResult: self.render_result,
+ width: '100%',
+ } );
+ self.$el.attr( 'data-post-type', self.post_type );
+ }, 0 );
+ return this;
+
+ },
+
+ /**
+ * Render a nicer UI for each search result in the in the Select2 search results
+ *
+ * @param object res result data
+ * @return string
+ * @since 3.16.0
+ * @version 3.16.12
+ */
+ render_result: function( res ) {
+
+ var $html = $( '
' );
+
+ if ( res.loading ) {
+ return $html.append( res.text );
+ }
+
+ var $side = $( '' ),
+ $main = $( '
' );
+ icon = ( 'attach' === res.action ) ? 'paperclip' : 'clone',
+ text = ( 'attach' === res.action ) ? LLMS.l10n.translate( 'Attach' ) : LLMS.l10n.translate( 'Clone' );
+
+ $side.append( '' + text + ' ' );
+
+ $main.append( '' + res.data.title + ' ' );
+ $main.append( '' + LLMS.l10n.translate( 'ID' ) + ': ' + res.data.id + ' ' );
+
+ _.each( res.parents, function( parent ) {
+ $main.append( '' + parent + ' ' );
+ } );
+
+ return $html.append( $side ).append( $main );
+
+ },
+
+ } );
+
+} );
+
+/**
+ * Question Type View
+ *
+ * @since 3.16.0
+ * @since 3.30.1 Fixed issue causing multiple binds for add_existing_question events.
+ * @version 5.4.0
+ */
+define( 'Views/QuestionType',[ 'Views/Popover', 'Views/PostSearch' ], function( Popover, QuestionSearch ) {
+
+ return Backbone.View.extend( {
+
+ /**
+ * HTML class names.
+ *
+ * @type {String}
+ */
+ className: 'llms-question-type',
+
+ events: {
+ 'click .llms-add-question': 'add_question',
+ },
+
+ /**
+ * HTML element wrapper ID attribute.
+ *
+ * @since 3.16.0
+ *
+ * @return {String}
+ */
+ id: function() {
+ return 'llms-question-type-' + this.model.id;
+ },
+
+ /**
+ * Wrapper Tag name.
+ *
+ * @type {String}
+ */
+ tagName: 'li',
+
+ /**
+ * Get the underscore template.
+ *
+ * @type {[type]}
+ */
+ template: wp.template( 'llms-question-type-template' ),
+
+ /**
+ * Initialization callback func (renders the element on screen).
+ *
+ * @since 3.16.0
+ *
+ * @return {Void}
+ */
+ initialize: function() {
+
+ this.render();
+
+ },
+
+ /**
+ * Compiles the template and renders the view.
+ *
+ * @since 3.16.0
+ *
+ * @return {Self} For chaining.
+ */
+ render: function() {
+ this.$el.html( this.template( this.model ) );
+ return this;
+ },
+
+ /**
+ * Add a question of the selected type to the current quiz.
+ *
+ * @since 3.16.0
+ * @since 3.27.0 Unknown.
+ *
+ * @return {Void}
+ */
+ add_question: function() {
+
+ if ( 'existing' === this.model.get( 'id' ) ) {
+ this.add_existing_question_click();
+ } else {
+ this.add_new_question();
+ }
+
+ },
+
+ /**
+ * Add a new question to the quiz.
+ *
+ * @since 3.27.0
+ * @since 3.30.1 Fixed issue causing multiple binds.
+ *
+ * @return {Void}
+ */
+ add_existing_question_click: function() {
+
+ var pop = new Popover( {
+ el: '#llms-add-question--existing',
+ args: {
+ backdrop: true,
+ closeable: true,
+ container: '#llms-builder-sidebar',
+ dismissible: true,
+ placement: 'top-left',
+ width: 'calc( 100% - 40px )',
+ offsetLeft: 250,
+ offsetTop: 60,
+ title: LLMS.l10n.translate( 'Add Existing Question' ),
+ content: new QuestionSearch( {
+ post_type: 'llms_question',
+ searching_message: LLMS.l10n.translate( 'Search for existing questions...' ),
+ } ).render().$el,
+ }
+ } );
+
+ pop.show();
+ Backbone.pubSub.on( 'question-search-select', this.add_existing_question, this );
+ Backbone.pubSub.on( 'question-search-select', function( event ) {
+ pop.hide();
+ Backbone.pubSub.off( 'question-search-select', this.add_existing_question, this );
+ }, this );
+
+ },
+
+ /**
+ * Callback event fired when a question is selected from the Add Existing Question popover interface.
+ *
+ * @since 3.27.0
+ * @since 5.4.0 Use author id instead of the question author object.
+ *
+ * @param {Object} event JS event object.
+ * @return {Void}
+ */
+ add_existing_question: function( event ) {
+
+ var question = event.data;
+
+ if ( 'clone' === event.action ) {
+ question = _.prepareQuestionObjectForCloning( question );
+ } else {
+ // Use author id instead of the question author object.
+ question = _.prepareExistingPostObjectDataForAddingOrCloning( question );
+ question._forceSync = true;
+ }
+
+ question._expanded = true;
+ this.quiz.add_question( question );
+
+ this.quiz.trigger( 'new-question-added' );
+
+ },
+
+ /**
+ * Add a new question to the quiz.
+ *
+ * @since 3.27.0
+ *
+ * @return {Void}
+ */
+ add_new_question: function() {
+
+ this.quiz.add_question( {
+ _expanded: true,
+ choices: this.model.get( 'default_choices' ) ? this.model.get( 'default_choices' ) : null,
+ question_type: this.model,
+ } );
+
+ this.quiz.trigger( 'new-question-added' );
+
+ },
+
+ // filter: function( term ) {
+
+ // var words = this.model.get_keywords().map( function( word ) {
+ // return word.toLowerCase();
+ // } );
+
+ // term = term.toLowerCase();
+
+ // if ( -1 === words.indexOf( term ) ) {
+ // this.$el.addClass( 'filtered' );
+ // } else {
+ // this.$el.removeClass( 'filtered' );
+ // }
+
+ // },
+
+ // clear_filter: function() {
+ // this.$el.removeClass( 'filtered' );
+ // }
+
+ } );
+
+} );
+
+/**
+ * Quiz question bank view
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Views/QuestionBank',[ 'Views/QuestionType' ], function( QuestionView ) {
+
+ return Backbone.CollectionView.extend( {
+
+ className: 'llms-question',
+
+ /**
+ * Parent element
+ *
+ * @type {String}
+ */
+ el: '#llms-question-bank',
+
+ /**
+ * Section model
+ *
+ * @type {[type]}
+ */
+ modelView: QuestionView,
+
+ /**
+ * Are sections selectable?
+ *
+ * @type {Bool}
+ */
+ selectable: false,
+
+ /**
+ * Are sections sortable?
+ *
+ * @type {Bool}
+ */
+ sortable: false,
+
+ } );
+
+} );
+
+/**
+ * Single Question Choice View
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Views/QuestionChoice',[ 'Views/_Editable', ], function( Editable ) {
+
+ return Backbone.View.extend( _.defaults( {
+
+ /**
+ * HTML class names
+ * @type {String}
+ */
+ className: 'llms-question-choice',
+
+ events: _.defaults( {
+ 'change input[name="correct"]': 'toggle_correct',
+ 'click .llms-action-icon[href="#llms-add-choice"]': 'add_choice',
+ 'click .llms-action-icon[href="#llms-del-choice"]': 'del_choice',
+ }, Editable.events ),
+
+ /**
+ * HTML element wrapper ID attribute
+ * @return string
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ id: function() {
+ return 'llms-question-choice-' + this.model.id;
+ },
+
+ /**
+ * Wrapper Tag name
+ * @type {String}
+ */
+ tagName: 'li',
+
+ /**
+ * Get the underscore template
+ * @type {[type]}
+ */
+ template: wp.template( 'llms-question-choice-template' ),
+
+ /**
+ * Initialization callback func (renders the element on screen)
+ * @return void
+ * @since 3.14.1
+ * @version 3.14.1
+ */
+ initialize: function() {
+
+ this.render();
+
+ this.listenTo( this.model.collection, 'add', this.maybe_disable_buttons );
+ this.listenTo( this.model, 'change', this.render );
+
+ if ( 'image' === this.model.get( 'choice_type' ) ) {
+ this.listenTo( this.model.get( 'choice' ), 'change', this.render );
+ }
+
+ },
+
+ /**
+ * Compiles the template and renders the view
+ * @return self (for chaining)
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ render: function() {
+ this.$el.html( this.template( this.model ) );
+ return this;
+ },
+
+ /**
+ * Add a new choice to the current choice list
+ * Adds *after* the clicked choice
+ * @param obj event JS event object
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ add_choice: function( event ) {
+
+ event.stopPropagation();
+ event.preventDefault();
+
+ var index = this.model.collection.indexOf( this.model );
+ this.model.collection.parent.add_choice( {}, {
+ at: index + 1,
+ } );
+
+ },
+
+ /**
+ * Delete the choice from the choice list & ensure there's at least one correct choice
+ * @param obj event js event obj
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ del_choice: function( event ) {
+
+ event.preventDefault();
+ Backbone.pubSub.trigger( 'model-trashed', this.model );
+ this.model.collection.remove( this.model );
+
+ },
+
+ /**
+ * When the correct answer input changes sync status to model
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ toggle_correct: function() {
+
+ var correct = this.$el.find( 'input[name="correct"]' ).is( ':checked' );
+ this.model.set( 'correct', correct );
+ this.model.collection.trigger( 'correct-update', this.model );
+
+ },
+
+ }, Editable ) );
+
+} );
+
+/**
+ * Quiz question bank view
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Views/QuestionChoiceList',[ 'Views/QuestionChoice' ], function( ChoiceView ) {
+
+ return Backbone.CollectionView.extend( {
+
+ className: 'llms-quiz-questions',
+
+ /**
+ * Choice model view
+ *
+ * @type {[type]}
+ */
+ modelView: ChoiceView,
+
+ /**
+ * Enable keyboard events
+ *
+ * @type {Bool}
+ */
+ processKeyEvents: false,
+
+ /**
+ * Are sections selectable?
+ *
+ * @type {Bool}
+ */
+ selectable: false,
+
+ /**
+ * Are sections sortable?
+ *
+ * @type {Bool}
+ */
+ sortable: true,
+
+ sortableOptions: {
+ axis: false,
+ // connectWith: '.llms-lessons',
+ cursor: 'move',
+ handle: '.llms-choice-id',
+ items: '.llms-question-choice',
+ placeholder: 'llms-question-choice llms-sortable-placeholder',
+ },
+
+ sortable_start: function( model ) {
+ this.$el.addClass( 'dragging' );
+ },
+
+ sortable_stop: function( model ) {
+ this.$el.removeClass( 'dragging' );
+ },
+
+ } );
+
+} );
+
+/**
+ * Single Question View.
+ *
+ * @since 3.16.0
+ * @version 7.8.0
+ */
+define( 'Views/Question',[
+ 'Views/_Detachable',
+ 'Views/_Editable',
+ 'Views/QuestionChoiceList'
+ ], function(
+ Detachable,
+ Editable,
+ ChoiceListView
+ ) {
+
+ return Backbone.View.extend( _.defaults( {
+
+ /**
+ * Generate CSS classes for the question
+ * @return string
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ className: function() {
+ return 'llms-question qtype--' + this.model.get( 'question_type' ).get( 'id' );
+ },
+
+ events: _.defaults( {
+ 'click .clone--question': 'clone',
+ 'click .delete--question': 'delete',
+ 'click .expand--question': 'expand',
+ 'click .collapse--question': 'collapse',
+ 'change input[name="question_points"]': 'update_points',
+ }, Detachable.events, Editable.events ),
+
+ /**
+ * HTML element wrapper ID attribute
+ * @return string
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ id: function() {
+ return 'llms-question-' + this.model.id;
+ },
+
+ /**
+ * Wrapper Tag name
+ * @type {String}
+ */
+ tagName: 'li',
+
+ /**
+ * Get the underscore template
+ * @type {[type]}
+ */
+ template: wp.template( 'llms-question-template' ),
+
+ /**
+ * Initialization callback func (renders the element on screen)
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ initialize: function() {
+
+ var change_events = [
+ 'change:_expanded',
+ 'change:menu_order',
+ ];
+ _.each( change_events, function( event ) {
+ this.listenTo( this.model, event, this.render );
+ }, this );
+
+ this.listenTo( this.model.get( 'image' ), 'change', this.render );
+
+ this.listenTo( this.model.get_parent(), 'change:_points', this.render_points_percentage );
+
+ this.on( 'multi_choices_toggle', this.multi_choices_toggle, this );
+
+ Backbone.pubSub.on( 'del-question-choice', this.del_choice, this );
+
+ },
+
+ /**
+ * Compiles the template and renders the view.
+ *
+ * @since 3.16.0
+ * @since 7.8.0 Added support for image upload in tinyMCE editor.
+ *
+ * @return self (for chaining)
+ */
+ render: function() {
+
+ this.$el.html( this.template( this.model ) );
+
+ if ( this.model.get( 'question_type').get( 'choices' ) ) {
+
+ this.choiceListView = new ChoiceListView( {
+ el: this.$el.find( '.llms-question-choices' ),
+ collection: this.model.get( 'choices' ),
+ } );
+ this.choiceListView.render();
+ this.choiceListView.on( 'sortStart', this.choiceListView.sortable_start );
+ this.choiceListView.on( 'sortStop', this.choiceListView.sortable_stop );
+
+ }
+
+ if ( 'group' === this.model.get( 'question_type' ).get( 'id' ) ) {
+
+ var self = this;
+ setTimeout( function() {
+ self.questionListView = self.collectionListView.quiz.get_question_list( {
+ el: self.$el.find( '.llms-quiz-questions' ),
+ collection: self.model.get( 'questions' ),
+ } );
+ self.questionListView.render();
+ self.questionListView.on( 'sortStart', self.questionListView.sortable_start );
+ self.questionListView.on( 'sortStop', self.questionListView.sortable_stop );
+ }, 1 );
+
+ }
+
+ if ( this.model.get( 'description_enabled' ) ) {
+ this.init_editor( 'question-desc--' + this.model.get( 'id' ) );
+ }
+
+ if ( this.model.get( 'clarifications_enabled' ) ) {
+ this.init_editor( 'question-clarifications--' + this.model.get( 'id' ), {
+ mediaButtons: true,
+ tinymce: {
+ toolbar1: 'bold,italic,strikethrough,bullist,numlist,alignleft,aligncenter,alignright',
+ toolbar2: '',
+ setup: _.bind( this.on_editor_ready, this ),
+ }
+ } );
+ }
+
+ this.init_formatting_els();
+ this.init_selects();
+
+ return this;
+ },
+
+ /**
+ * rerender points percentage when question points are updated
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ render_points_percentage: function() {
+
+ this.$el.find( '.llms-question-points' ).attr( 'data-tip', this.model.get_points_percentage() );
+
+ },
+
+ /**
+ * Click event to duplicate a question within a quiz
+ * @param obj event js event object
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ clone: function( event ) {
+
+ event.stopPropagation();
+ event.preventDefault();
+ this.model.collection.add( this._get_question_clone( this.model ) );
+
+ },
+
+ /**
+ * Recursive clone function which will correctly clone children of a question
+ * @param obj question question model
+ * @return obj
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ _get_question_clone: function( question ) {
+
+ // create a duplicate
+ var clone = _.clone( question.attributes );
+
+ // remove id (we want the duplicate to have a temp id)
+ delete clone.id;
+
+ clone.parent_id = question.get( 'id' );
+
+ // set the question type ID
+ clone.question_type = question.get( 'question_type' ).get( 'id' );
+
+ // clone the image attributes separately
+ clone.image = _.clone( question.get( 'image' ).attributes );
+
+ // if it has choices clone all the choices
+ if ( question.get( 'choices' ) ) {
+
+ clone.choices = [];
+
+ question.get( 'choices' ).each( function ( choice ) {
+
+ var choice_clone = _.clone( choice.attributes );
+ delete choice_clone.id;
+ delete choice_clone.question_id;
+
+ clone.choices.push( choice_clone );
+
+ } );
+
+ }
+
+ if ( 'group' === question.get( 'question_type' ).get( 'id' ) ) {
+
+ clone.questions = [];
+ question.get( 'questions' ).each( function( child ) {
+ clone.questions.push( this._get_question_clone( child ) );
+ }, this );
+
+ }
+
+ return clone;
+
+ },
+
+ /**
+ * Collapse a question and hide it's settings
+ * @param obj event js event obj.
+ * @return void
+ * @since 3.16.0
+ * @version 3.27.0
+ */
+ collapse: function( event ) {
+
+ if ( event ) {
+ event.preventDefault();
+ }
+
+ this.model.set( '_expanded', false );
+
+ },
+
+ /**
+ * Delete the question from a quiz / question group
+ * @param obj event js event object
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ delete: function( event ) {
+
+ event.preventDefault();
+
+ if ( window.confirm( LLMS.l10n.translate( 'Are you sure you want to delete this question?' ) ) ) {
+
+ this.model.collection.remove( this.model );
+ Backbone.pubSub.trigger( 'model-trashed', this.model );
+
+ }
+
+ },
+
+ /**
+ * Click event to reveal a question's settings & choices
+ * @param obj event js event obj.
+ * @return void
+ * @since 3.16.0
+ * @version 3.27.0
+ */
+ expand: function( event ) {
+
+ if ( event ) {
+ event.preventDefault();
+ }
+
+ this.model.set( '_expanded', true );
+
+ },
+
+ /**
+ * When toggling multiple correct answers *off* remove all correct choices except the first correct choice in the list
+ * @param string val value of the question's `multi_choice` attr [yes|no]
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ multi_choices_toggle: function( val ) {
+
+ if ( 'yes' === val ) {
+ return;
+ }
+
+ this.model.get( 'choices' ).update_correct( _.first( this.model.get( 'choices' ).get_correct() ) );
+
+ },
+
+ /**
+ * Update the model's points when the value of the points input is updated
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ update_points: function() {
+
+ this.model.set( 'points', this.$el.find( 'input[name="question_points"]' ).val() * 1 );
+
+ }
+
+ }, Detachable, Editable ) );
+
+} );
+
+/**
+ * Quiz question bank view
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Views/QuestionList',[ 'Views/Question' ], function( QuestionView ) {
+
+ return Backbone.CollectionView.extend( {
+
+ className: 'llms-quiz-questions',
+
+ /**
+ * Parent element
+ * @type {String}
+ */
+ // el: '#llms-quiz-questions',
+
+ /**
+ * Section model
+ * @type {[type]}
+ */
+ modelView: QuestionView,
+
+ /**
+ * Enable keyboard events
+ * @type {Bool}
+ */
+ processKeyEvents: false,
+
+ /**
+ * Are sections selectable?
+ * @type {Bool}
+ */
+ selectable: false,
+
+ /**
+ * Are sections sortable?
+ * @type {Bool}
+ */
+ sortable: true,
+
+ sortableOptions: {
+ axis: false,
+ connectWith: '.llms-quiz-questions',
+ cursor: 'move',
+ handle: '.llms-data-stamp',
+ items: '.llms-question',
+ placeholder: 'llms-question llms-sortable-placeholder',
+ },
+
+ /**
+ * Highlight drop areas when dragging starts
+ * @param obj model model being sorted
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ sortable_start: function( model ) {
+ var selector = 'group' === model.get( 'question_type' ).get( 'id' ) ? '.llms-editor-tab > .llms-quiz-questions' : '.llms-quiz-questions';
+ $( selector ).addClass( 'dragging' );
+ },
+
+ /**
+ * Remove highlights when dragging stops
+ * @param obj model model being sorted
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ sortable_stop: function() {
+ $( '.llms-quiz-questions' ).removeClass( 'dragging' );
+ },
+
+ /**
+ * Overrides receive to ensure that question groups can't be moved into question groups
+ * @param obj event js event object
+ * @param obj ui jQuery UI Sortable ui object
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ _receive : function( event, ui ) {
+
+ event.stopPropagation();
+
+ // prevent moving a question group into a question group
+ if ( ui.item.hasClass( 'qtype--group' ) && $( event.target ).closest( '.qtype--group' ).length ) {;
+ ui.sender.sortable( 'cancel' );
+ return;
+ }
+
+ var senderListEl = ui.sender;
+ var senderCollectionListView = senderListEl.data( "view" );
+ if( ! senderCollectionListView || ! senderCollectionListView.collection ) return;
+
+ var newIndex = this._getContainerEl().children().index( ui.item );
+ var modelReceived = senderCollectionListView.collection.get( ui.item.attr( "data-model-cid" ) );
+ senderCollectionListView.collection.remove( modelReceived );
+ this.collection.add( modelReceived, { at : newIndex } );
+ modelReceived.collection = this.collection; // otherwise will not get properly set, since modelReceived.collection might already have a value.
+ this.setSelectedModel( modelReceived );
+ },
+
+ /**
+ * Override to allow manipulation of placeholder element
+ * @param {[type]} event [description]
+ * @param {[type]} ui [description]
+ * @return {[type]}
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ _sortStart : function( event, ui ) {
+
+ var modelBeingSorted = this.collection.get( ui.item.attr( "data-model-cid" ) );
+
+ ui.placeholder.addClass( 'qtype--' + modelBeingSorted.get( 'question_type' ).get( 'id' ) );
+
+ if( this._isBackboneCourierAvailable() )
+ this.spawn( "sortStart", { modelBeingSorted : modelBeingSorted } );
+ else this.trigger( "sortStart", modelBeingSorted );
+ },
+
+ /**
+ * Overloads the function from Backbone.CollectionView core because it doesn't send stop events
+ * if moving from one sortable to another... :-(
+ * @param obj event js event object
+ * @param obj ui jQuery UI object
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ _sortStop : function( event, ui ) {
+
+ event.stopPropagation();
+
+ var modelBeingSorted = this.collection.get( ui.item.attr( 'data-model-cid' ) ),
+ modelViewContainerEl = this._getContainerEl(),
+ newIndex = modelViewContainerEl.children().index( ui.item );
+
+ if ( newIndex == -1 && modelBeingSorted ) {
+ this.collection.remove( modelBeingSorted );
+ }
+
+ this._reorderCollectionBasedOnHTML();
+ this.updateDependentControls();
+
+ if( this._isBackboneCourierAvailable() ) {
+ this.spawn( 'sortStop', { modelBeingSorted : modelBeingSorted, newIndex : newIndex } );
+ } else {
+ this.trigger( 'sortStop', modelBeingSorted, newIndex );
+ }
+
+ },
+
+ } );
+
+} );
+
+/**
+ * Single Quiz View.
+ *
+ * @since 3.16.0
+ * @version 5.4.0
+ */
+define( 'Views/Quiz',[
+ 'Models/Quiz',
+ 'Views/Popover',
+ 'Views/PostSearch',
+ 'Views/QuestionBank',
+ 'Views/QuestionList',
+ 'Views/SettingsFields',
+ 'Views/_Detachable',
+ 'Views/_Editable',
+ 'Views/_Subview',
+ 'Views/_Trashable'
+ ], function(
+ QuizModel,
+ Popover,
+ PostSearch,
+ QuestionBank,
+ QuestionList,
+ SettingsFields,
+ Detachable,
+ Editable,
+ Subview,
+ Trashable
+ ) {
+
+ return Backbone.View.extend( _.defaults( {
+
+ /**
+ * Current view state.
+ *
+ * @type {String}
+ */
+ state: 'default',
+
+ /**
+ * Current Subviews.
+ *
+ * @type {Object}
+ */
+ views: {
+ settings: {
+ class: SettingsFields,
+ instance: null,
+ state: 'default',
+ },
+ bank: {
+ class: QuestionBank,
+ instance: null,
+ state: 'default',
+ },
+ list: {
+ class: QuestionList,
+ instance: null,
+ state: 'default',
+ },
+ },
+
+ el: '#llms-editor-quiz',
+
+ /**
+ * Events.
+ *
+ * @type {Object}
+ */
+ events: _.defaults( {
+ 'click #llms-existing-quiz': 'add_existing_quiz_click',
+ 'click #llms-new-quiz': 'add_new_quiz',
+ 'click #llms-show-question-bank': 'show_tools',
+ 'click .bulk-toggle': 'bulk_toggle',
+ // 'keyup #llms-question-bank-filter': 'filter_question_types',
+ // 'search #llms-question-bank-filter': 'filter_question_types',
+ }, Detachable.events, Editable.events, Trashable.events ),
+
+ /**
+ * Wrapper Tag name.
+ *
+ * @type {String}
+ */
+ tagName: 'div',
+
+ /**
+ * Get the underscore template
+ *
+ * @type {[type]}
+ */
+ template: wp.template( 'llms-quiz-template' ),
+
+ /**
+ * Initialization callback func (renders the element on screen).
+ *
+ * @since 3.16.0
+ * @since 3.19.2 Unknown.
+ *
+ * @return {Void}
+ */
+ initialize: function( data ) {
+
+ this.lesson = data.lesson;
+
+ // Initialize the model if the quiz is enabled or it's disabled but we still have data for a quiz.
+ if ( 'yes' === this.lesson.get( 'quiz_enabled' ) || ! _.isEmpty( this.lesson.get( 'quiz' ) ) ) {
+
+ this.model = this.lesson.get( 'quiz' );
+
+ /**
+ * @todo this is a terrible terrible patch
+ * I've spent nearly 3 days trying to figure out how to not use this line of code
+ * ISSUE REPRODUCTION:
+ * Open course builder
+ * Open a lesson (A) and add a quiz
+ * Switch to a new lesson (B)
+ * Add a new quiz
+ * Return to lesson A and the quizzes parent will be set to LESSON B
+ * This will happen for *every* quiz in the builder...
+ * Adding this set_parent on init guarantees that the quizzes correct parent is set
+ * after adding new quizzes to other lessons
+ * it's awful and it's gross...
+ * I'm confused and tired and going to miss release dates again because of it
+ */
+ this.model.set_parent( this.lesson );
+
+ this.listenTo( this.model, 'change:_points', this.render_points );
+
+ }
+
+ this.on( 'model-trashed', this.on_trashed );
+
+ },
+
+ /**
+ * Compiles the template and renders the view.
+ *
+ * @since 3.16.0
+ * @since 3.19.2 Unknown.
+ *
+ * @return {Self} For chaining.
+ */
+ render: function() {
+
+ this.$el.html( this.template( this.model ) );
+
+ // Render the quiz builder.
+ if ( this.model ) {
+
+ // Don't allow interaction until questions are lazy loaded.
+ LLMS.Spinner.start( this.$el );
+
+ this.render_subview( 'settings', {
+ el: '#llms-quiz-settings-fields',
+ model: this.model,
+ } );
+
+ this.init_datepickers();
+ this.init_selects();
+
+ this.render_subview( 'bank', {
+ collection: window.llms_builder.questions,
+ } );
+
+ var last_group = null,
+ group = null;
+ // Let all the question types reference the quiz for adding questions quickly.
+ this.get_subview( 'bank' ).instance.viewManager.each( function( view ) {
+
+ view.quiz = this.model;
+
+ group = view.model.get( 'group' ).name;
+
+ if ( last_group !== group ) {
+ last_group = group;
+ view.$el.before( '' );
+ }
+
+ }, this );
+
+ this.model.load_questions( _.bind( function( err ) {
+
+ if ( err ) {
+ alert( LLMS.l10n.translate( 'An error occurred while trying to load the questions. Please refresh the page and try again.' ) );
+ return this;
+ }
+
+ LLMS.Spinner.stop( this.$el );
+ this.render_subview( 'list', {
+ el: '#llms-quiz-questions',
+ collection: this.model.get( 'questions' ),
+ } );
+ var list = this.get_subview( 'list' ).instance;
+ list.quiz = this;
+ list.collection.on( 'add', function() {
+ list.collection.trigger( 'reorder' );
+ }, this );
+ list.on( 'sortStart', list.sortable_start );
+ list.on( 'sortStop', list.sortable_stop );
+
+ }, this ) );
+
+ this.model.on( 'new-question-added', function() {
+ var $questions = this.$el.find( '#llms-quiz-questions' );
+ $questions.animate( { scrollTop: $questions.prop( 'scrollHeight' ) }, 200 );
+ }, this );
+
+ }
+
+ return this;
+
+ },
+
+ /**
+ * On quiz points update, update the value of the Total Points area in the header.
+ *
+ * @since 3.17.6
+ *
+ * @param {Object} quiz Instance of the quiz model.
+ * @param {Int} points Updated number of points.
+ * @return {Void}
+ */
+ render_points: function( quiz, points ) {
+
+ this.$el.find( '#llms-quiz-total-points' ).text( points );
+
+ },
+
+ /**
+ * Bulk expand / collapse question buttons.
+ *
+ * @since 3.16.0
+ *
+ * @param {Object} Event JS event object.
+ * @return {Void}
+ */
+ bulk_toggle: function( event ) {
+
+ var expanded = ( 'expand' === $( event.target ).attr( 'data-action' ) );
+
+ this.model.get( 'questions' ).each( function( question ) {
+ question.set( '_expanded', expanded );
+ } );
+
+ },
+
+ /**
+ * Adds a new quiz to a lesson which currently has no quiz associated with it.
+ *
+ * @since 3.16.0
+ *
+ * @return {Void}
+ */
+ add_new_quiz: function() {
+
+ var quiz = this.lesson.get( 'quiz' );
+ if ( _.isEmpty( quiz ) ) {
+ quiz = this.lesson.add_quiz();
+ } else {
+ this.lesson.set( 'quiz_enabled', 'yes' );
+ }
+
+ this.model = quiz;
+ this.render();
+
+ },
+
+
+ /**
+ * Add an existing quiz to a lesson.
+ *
+ * @since 3.16.0
+ * @since 3.24.0 Unknown.
+ * @since 5.4.0 Use author id instead of the quiz author object.
+ *
+ * @param {Object} event JS event object.
+ * @return {Void}
+ */
+ add_existing_quiz: function( event ) {
+
+ this.post_search_popover.hide();
+
+ var quiz = event.data;
+
+ if ( 'clone' === event.action ) {
+
+ quiz = _.prepareQuizObjectForCloning( quiz );
+
+ } else {
+
+ // Use author id instead of the quiz author object.
+ quiz = _.prepareExistingPostObjectDataForAddingOrCloning( quiz );
+ quiz._forceSync = true;
+
+ }
+
+ delete quiz.lesson_id;
+
+ this.lesson.add_quiz( quiz );
+ this.model = this.lesson.get( 'quiz' );
+ this.render();
+
+ },
+
+ /**
+ * Open add existing quiz popover.
+ *
+ * @since 3.16.12
+ *
+ * @param {Object} event JS event object.
+ * @return {Void}
+ */
+ add_existing_quiz_click: function( event ) {
+
+ event.preventDefault();
+
+ this.post_search_popover = new Popover( {
+ el: '#llms-existing-quiz',
+ args: {
+ backdrop: true,
+ closeable: true,
+ container: '.wrap.lifterlms.llms-builder',
+ dismissible: true,
+ placement: 'left',
+ width: 480,
+ title: LLMS.l10n.translate( 'Add Existing Quiz' ),
+ content: new PostSearch( {
+ post_type: 'llms_quiz',
+ searching_message: LLMS.l10n.translate( 'Search for existing quizzes...' ),
+ } ).render().$el,
+ onHide: function() {
+ Backbone.pubSub.off( 'quiz-search-select' );
+ },
+ }
+ } );
+
+ this.post_search_popover.show();
+ Backbone.pubSub.once( 'quiz-search-select', this.add_existing_quiz, this );
+
+ },
+
+ // filter_question_types: _.debounce( function( event ) {
+
+ // var term = $( event.target ).val();
+
+ // this.QuestionBankView.viewManager.each( function( view ) {
+ // if ( ! term ) {
+ // view.clear_filter();
+ // } else {
+ // view.filter( term );
+ // }
+ // } );
+
+
+ // }, 300 ),
+
+ /**
+ * Callback function when the quiz has been deleted.
+ *
+ * @since 3.16.6
+ *
+ * @param {Oject} quiz Quiz Model.
+ * @return {Void}
+ */
+ on_trashed: function( quiz ) {
+
+ this.lesson.set( 'quiz_enabled', 'no' );
+ this.lesson.set( 'quiz', '' );
+
+ delete this.model;
+
+ this.render();
+
+ },
+
+ /**
+ * "Add Question" button click event.
+ *
+ * @since 3.16.0
+ *
+ * Creates a popover with question type list interface.
+ *
+ * @return {Void}
+ */
+ show_tools: function() {
+
+ // Create popover,
+ var pop = new Popover( {
+ el: '#llms-show-question-bank',
+ args: {
+ backdrop: true,
+ closeable: true,
+ container: '#llms-builder-sidebar',
+ dismissible: true,
+ placement: 'top-left',
+ width: 'calc( 100% - 40px )',
+ title: LLMS.l10n.translate( 'Add a Question' ),
+ url: '#llms-quiz-tools',
+ }
+ } );
+
+ // Show it.
+ pop.show();
+
+ // If a question is added, hide the popover.
+ this.model.on( 'new-question-added', function() {
+ pop.hide();
+ } );
+
+ },
+
+ get_question_list: function( options ) {
+ return new QuestionList( options );
+ }
+
+ }, Detachable, Editable, Subview, Trashable, SettingsFields ) );
+
+} );
+
+/**
+ * Single Assignment View.
+ *
+ * @package LifterLMS/Scripts
+ *
+ * @since 3.17.0
+ * @version 5.4.0
+ */
+
+define( 'Views/Assignment',[
+ 'Views/Popover',
+ 'Views/PostSearch',
+ 'Views/_Detachable',
+ 'Views/_Editable',
+ 'Views/_Trashable',
+ 'Views/_Subview',
+ 'Views/SettingsFields'
+ ], function(
+ Popover,
+ PostSearch,
+ Detachable,
+ Editable,
+ Trashable,
+ Subview,
+ SettingsFields
+ ) {
+
+ return Backbone.View.extend( _.defaults( {
+
+ /**
+ * Current view state.
+ *
+ * @type {String}
+ */
+ state: 'default',
+
+ /**
+ * Current Subviews.
+ *
+ * @type {Object}
+ */
+ views: {
+ settings: {
+ class: SettingsFields,
+ instance: null,
+ state: 'default',
+ },
+ },
+
+ el: '#llms-editor-assignment',
+
+ /**
+ * DOM Events.
+ *
+ * @since 3.17.1
+ *
+ * @return {Object}
+ */
+ events: function() {
+ var addon_events = this.is_addon_available() ? window.llms_builder.assignments.get_view_events() : {};
+ return _.defaults( {
+ 'click #llms-existing-assignment': 'add_existing_assignment_click',
+ 'click #llms-new-assignment': 'add_new_assignment',
+ }, Detachable.events, Editable.events, Trashable.events, addon_events );
+ },
+
+ /**
+ * Wrapper Tag name.
+ *
+ * @type {String}
+ */
+ tagName: 'div',
+
+ /**
+ * Get the underscore template.
+ *
+ * @type {[type]}
+ */
+ template: wp.template( 'llms-assignment-template' ),
+
+ /**
+ * Initialization callback func (renders the element on screen).
+ *
+ * @since 3.17.0
+ * @since 3.17.2 Unknown.
+ *
+ * @return {Void}
+ */
+ initialize: function( data ) {
+
+ this.lesson = data.lesson;
+
+ // initialize the model if the assignment is enabled or it's disabled but we still have data for a assignment
+ if ( 'yes' === this.lesson.get( 'assignment_enabled' ) || ! _.isEmpty( this.lesson.get( 'assignment' ) ) ) {
+
+ this.model = this.lesson.get( 'assignment' );
+
+ /**
+ * Todo Item.
+ *
+ * @todo this is a terrible terrible patch
+ * I've spent nearly 3 days trying to figure out how to not use this line of code
+ * ISSUE REPRODUCTION:
+ * Open course builder
+ * Open a lesson (A) and add a assignment
+ * Switch to a new lesson (B)
+ * Add a new assignment
+ * Return to lesson A and the assignment's parent will be set to LESSON B
+ * This will happen for *every* assignment in the builder...
+ * Adding this set_parent on init guarantees that the assignment's correct parent is set
+ * after adding new assignment's to other lessons
+ * it's awful and it's gross...
+ * I'm confused and tired and going to miss release dates again because of it
+ */
+ this.model.set_parent( this.lesson );
+
+ }
+
+ this.on( 'model-trashed', this.on_trashed );
+
+ },
+
+ /**
+ * Compiles the template and renders the view.
+ *
+ * @since 3.17.0
+ * @since 3.17.7 Unknown.
+ *
+ * @return {Self} For chaining.
+ */
+ render: function() {
+
+ this.$el.html( this.template( this.model ) );
+
+ if ( this.model && this.is_addon_available() ) {
+
+ this.stopListening( this.model, 'change:assignment_type', this.render );
+
+ this.render_subview( 'settings', {
+ el: '#llms-assignment-settings-fields',
+ model: this.model,
+ } );
+
+ // this.init_datepickers();
+ this.init_selects();
+
+ window.llms_builder.assignments.render_editor( this );
+
+ this.listenTo( this.model, 'change:assignment_type', this.render );
+
+ }
+
+ return this;
+
+ },
+
+ /**
+ * Adds a new assignment to a lesson which currently has no assignment associated with it.
+ *
+ * @since 3.17.0
+ *
+ * @return {Void}
+ */
+ add_new_assignment: function() {
+
+ if ( this.is_addon_available() ) {
+
+ this.model = window.llms_builder.assignments.get_assignment( {
+ /* Translators: %1$s = associated lesson title */
+ title: LLMS.l10n.replace( '%1$s Assignment', {
+ '%1$s': this.lesson.get( 'title' ),
+ } ),
+ lesson_id: this.lesson.get( 'id' ),
+ } );
+
+ this.lesson.set( 'assignment_enabled', 'yes' );
+ this.lesson.set( 'assignment', this.model );
+
+ this.render();
+
+ } else {
+
+ this.show_ad_popover( '#llms-new-assignment' );
+
+ }
+
+ },
+
+ /**
+ * When an assignment is selected from the post select popover
+ * instantiate it and add it to the current lesson.
+ *
+ * @param {Object} event Data from the select2 select event.
+ *
+ * @since 3.17.0
+ * @since 5.4.0 Prepare assignment object for cloning and use author id instead of the quiz author object.
+ */
+ add_existing_assignment: function( event ) {
+
+ this.post_search_popover.hide();
+
+ var assignment = event.data;
+
+ if ( 'clone' === event.action ) {
+
+ assignment = _.prepareAssignmentObjectForCloning( assignment );
+
+ } else {
+
+ // Use author id instead of the assignment author object.
+ assignment = _.prepareExistingPostObjectDataForAddingOrCloning( assignment );
+ assignment._forceSync = true;
+
+ }
+
+ assignment.lesson_id = this.lesson.get( 'id' )
+
+ assignment = window.llms_builder.construct.get_model( 'Assignment', assignment );
+
+ this.lesson.set( 'assignment_enabled', 'yes' );
+ this.lesson.set( 'assignment', assignment );
+ this.model = assignment;
+
+ this.render();
+
+ },
+
+ /**
+ * Open add existing assignment popover.
+ *
+ * @since 3.17.0
+ *
+ * @param {Object} event JS event object.
+ * @return {Void}
+ */
+ add_existing_assignment_click: function( event ) {
+
+ event.preventDefault();
+
+ if ( this.is_addon_available() ) {
+
+ this.post_search_popover = new Popover( {
+ el: '#llms-existing-assignment',
+ args: {
+ backdrop: true,
+ closeable: true,
+ container: '.wrap.lifterlms.llms-builder',
+ dismissible: true,
+ placement: 'left',
+ width: 480,
+ title: LLMS.l10n.translate( 'Add Existing Assignment' ),
+ content: new PostSearch( {
+ post_type: 'llms_assignment',
+ searching_message: LLMS.l10n.translate( 'Search for existing assignments...' ),
+ } ).render().$el,
+ onHide: function() {
+ Backbone.pubSub.off( 'assignment-search-select' );
+ },
+ }
+ } );
+
+ this.post_search_popover.show();
+ Backbone.pubSub.once( 'assignment-search-select', this.add_existing_assignment, this );
+
+ } else {
+
+ this.show_ad_popover( '#llms-existing-assignment' );
+
+ }
+
+ },
+
+ /**
+ * Determine if Assignments addon is available to use.
+ *
+ * @since 3.17.0
+ *
+ * @return {Boolean}
+ */
+ is_addon_available: function() {
+
+ return ( window.llms_builder.assignments );
+
+ },
+
+ /**
+ * Called when assignment is trashed.
+ *
+ * @since 3.17.0
+ *
+ * @param {Oject} assignment Assignment Model.
+ * @return {Void}
+ */
+ on_trashed: function( assignment ) {
+
+ this.lesson.set( 'assignment_enabled', 'no' );
+ this.lesson.set( 'assignment', '' );
+
+ delete this.model;
+
+ this.render();
+
+ },
+
+ /**
+ * Shows a dirty dirty ad popover for advanced assignments.
+ *
+ * @since 3.17.0
+ *
+ * @param {Sring} el The jQuery selector string.
+ * @return {Void}
+ */
+ show_ad_popover: function( el ) {
+
+ var h3 = LLMS.l10n.translate( 'Get Your Students Taking Action' ),
+ p = 'Great learning content is only half of teaching online. When your learners fully engage, they will take your content and move into action. Remove barriers for your learners by telling them what to do to apply what they just learned. Create graded assignments or simply give them a checklist of action items to complete before moving on.',
+ btn = LLMS.l10n.translate( 'Get Assignments Now!' ),
+ url = 'https://lifterlms.com/product/lifterlms-assignments?utm_source=LifterLMS%20Plugin&utm_medium=Assignment%20Builder%20Button&utm_campaign=Assignment%20Addon%20Upsell&utm_content=3.17.0';
+
+ this.ad_popover = new Popover( {
+ el: el,
+ args: {
+ backdrop: true,
+ closeable: true,
+ container: '.wrap.lifterlms.llms-builder',
+ dismissible: true,
+ // placement: 'left',
+ width: 380,
+ title: LLMS.l10n.translate( 'Unlock LifterLMS Assignments' ),
+ // This is here for translation but not actually used by the popover.
+ closeLabel: LLMS.l10n.translate( 'Close' ),
+ content: '' + h3 + ' ' + p + '
' + btn + '
'
+ }
+ } );
+
+ this.ad_popover.show();
+
+ },
+
+ }, Detachable, Editable, Trashable, Subview, SettingsFields ) );
+
+ } );
+
+/**
+ * Sidebar Editor View
+ *
+ * @since 3.16.0
+ * @version 3.27.0
+ */
+define( 'Views/Editor',[
+ 'Views/LessonEditor',
+ 'Views/Quiz',
+ 'Views/Assignment',
+ 'Views/_Subview'
+ ], function(
+ LessonEditor,
+ Quiz,
+ Assignment,
+ Subview
+ ) {
+
+ return Backbone.View.extend( _.defaults( {
+
+ /**
+ * Current view state
+ *
+ * @type {String}
+ */
+ state: 'lesson', // [lesson|quiz]
+
+ /**
+ * Current Subviews
+ *
+ * @type {Object}
+ */
+ views: {
+ lesson: {
+ class: LessonEditor,
+ instance: null,
+ state: 'lesson',
+ },
+ assignment: {
+ class: Assignment,
+ instance: null,
+ state: 'assignment',
+ },
+ quiz: {
+ class: Quiz,
+ instance: null,
+ state: 'quiz',
+ },
+ },
+
+ /**
+ * HTML element selector
+ *
+ * @type {String}
+ */
+ el: '#llms-editor',
+
+ events: {
+ 'click .llms-editor-nav a[href="#llms-editor-close"]': 'close_editor',
+ 'click .llms-editor-nav a:not([href="#llms-editor-close"])': 'switch_tab',
+ },
+
+ /**
+ * Wrapper Tag name
+ *
+ * @type {String}
+ */
+ tagName: 'div',
+
+ /**
+ * Get the underscore template
+ *
+ * @type {[type]}
+ */
+ template: wp.template( 'llms-editor-template' ),
+
+ /**
+ * Initialization callback func (renders the element on screen)
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ initialize: function( data ) {
+
+ this.SidebarView = data.SidebarView;
+ if ( data.tab ) {
+ this.state = data.tab;
+ }
+
+ },
+
+ /**
+ * Compiles the template and renders the view
+ *
+ * @return self (for chaining)
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ render: function( view_data ) {
+
+ view_data = view_data || {};
+
+ this.$el.html( this.template( this ) );
+
+ this.render_subviews( _.extend( view_data, {
+ lesson: this.model,
+ } ) );
+
+ return this;
+
+ },
+
+ /**
+ * Click event for close sidebar editor button
+ * Sends event to main SidebarView to trigger editor closing events
+ *
+ * @param obj event js event obj
+ * @return void
+ * @since 3.16.0
+ * @version 3.27.0
+ */
+ close_editor: function( event ) {
+
+ event.preventDefault();
+ Backbone.pubSub.trigger( 'sidebar-editor-close' );
+ window.location.hash = '';
+
+ },
+
+ /**
+ * Click event for switching tabs in the editor navigation
+ *
+ * @param object event js event object
+ * @return void
+ * @since 3.16.0
+ * @version 3.27.0
+ */
+ switch_tab: function( event ) {
+
+ event.preventDefault();
+
+ var $btn = $( event.target ),
+ view = $btn.attr( 'data-view' ),
+ $tab = this.$el.find( $btn.attr( 'href' ) );
+
+ this.set_state( view ).render();
+ this.set_hash( view );
+
+ // Backbone.pubSub.trigger( 'editor-tab-activated', $btn.attr( 'href' ).substring( 1 ) );
+ },
+
+ /**
+ * Adds a hash for deep linking to a specific lesson tab
+ *
+ * @param string subtab subtab [quiz|assignment]
+ * @return void
+ * @since 3.27.0
+ * @version 3.27.0
+ */
+ set_hash: function( subtab ) {
+
+ var hash = 'lesson:' + this.model.get( 'id' );
+
+ if ( 'lesson' !== subtab ) {
+ hash += ':' + subtab;
+ }
+
+ window.location.hash = hash;
+
+ },
+
+ }, Subview ) );
+
+} );
+
+/**
+ * Sidebar Elements View
+ *
+ * @since 3.16.0
+ * @version 3.16.12
+ */
+define( 'Views/Elements',[ 'Models/Section', 'Views/Section', 'Models/Lesson', 'Views/Lesson', 'Views/Popover', 'Views/PostSearch' ], function( Section, SectionView, Lesson, LessonView, Popover, LessonSearch ) {
+
+ return Backbone.View.extend( {
+
+ /**
+ * HTML element selector
+ *
+ * @type {String}
+ */
+ el: '#llms-elements',
+
+ events: {
+ 'click #llms-new-section': 'add_new_section',
+ 'click #llms-new-lesson': 'add_new_lesson',
+ 'click #llms-existing-lesson': 'add_existing_lesson',
+ },
+
+ /**
+ * Wrapper Tag name
+ *
+ * @type {String}
+ */
+ tagName: 'div',
+
+ /**
+ * Get the underscore template
+ *
+ * @type {[type]}
+ */
+ template: wp.template( 'llms-elements-template' ),
+
+ /**
+ * Initialization callback func (renders the element on screen)
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ initialize: function( data ) {
+
+ // save a reference to the main Course view
+ this.SidebarView = data.SidebarView;
+
+ // watch course sections and enable/disable lesson buttons conditionally
+ this.listenTo( this.SidebarView.CourseView.model.get( 'sections' ), 'add', this.maybe_disable_buttons );
+ this.listenTo( this.SidebarView.CourseView.model.get( 'sections' ), 'remove', this.maybe_disable_buttons );
+
+ },
+
+ /**
+ * Compiles the template and renders the view
+ *
+ * @return self (for chaining)
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ render: function() {
+
+ this.$el.html( this.template() );
+ this.draggable();
+ this.maybe_add_initial_section();
+
+ return this;
+ },
+
+ draggable: function() {
+
+ $( '#llms-new-section' ).draggable( {
+ appendTo: '#llms-sections',
+ cancel: false,
+ connectToSortable: '.llms-sections',
+ helper: function() {
+ return new SectionView( { model: new Section() } ).render().$el;
+ },
+ start: function() {
+ $( '.llms-sections' ).addClass( 'dragging' );
+ },
+ stop: function() {
+ $( '.llms-sections' ).removeClass( 'dragging' );
+ },
+ } );
+
+ $( '#llms-new-lesson' ).draggable( {
+ // appendTo: '#llms-sections .llms-section:first-child .llms-lessons',
+ appendTo: '#llms-sections',
+ cancel: false,
+ connectToSortable: '.llms-lessons',
+ helper: function() {
+ return new LessonView( { model: new Lesson() } ).render().$el;
+ },
+ start: function() {
+
+ $( '.llms-lessons' ).addClass( 'dragging' );
+
+ },
+ stop: function() {
+ $( '.llms-lessons' ).removeClass( 'dragging' );
+ $( '.drag-expanded' ).removeClass( '.drag-expanded' );
+ },
+ } );
+
+ },
+
+ add_new_section: function( event ) {
+
+ event.preventDefault();
+ Backbone.pubSub.trigger( 'add-new-section' );
+ },
+
+ add_new_lesson: function( event ) {
+ event.preventDefault();
+ Backbone.pubSub.trigger( 'add-new-lesson' );
+ },
+
+ /**
+ * Show the popover to add an existing lessons
+ *
+ * @param object event JS Event Object
+ * @return void
+ * @since 3.16.12
+ * @version 3.16.12
+ */
+ add_existing_lesson: function( event ) {
+
+ event.preventDefault();
+
+ var pop = new Popover( {
+ el: '#llms-existing-lesson',
+ args: {
+ backdrop: true,
+ closeable: true,
+ container: '.wrap.lifterlms.llms-builder',
+ dismissible: true,
+ placement: 'left',
+ width: 480,
+ title: LLMS.l10n.translate( 'Add Existing Lesson' ),
+ content: new LessonSearch( {
+ post_type: 'lesson',
+ searching_message: LLMS.l10n.translate( 'Search for existing lessons...' ),
+ } ).render().$el,
+ }
+ } );
+
+ pop.show();
+ Backbone.pubSub.on( 'lesson-search-select', function() {
+ pop.hide()
+ } );
+
+ },
+
+ /**
+ * Disables lesson add buttons if no sections are available to add a lesson to
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ maybe_add_initial_section: function() {
+
+ var $els = $( '#llms-new-lesson, #llms-existing-lesson' );
+
+ if ( ! this.SidebarView.CourseView.model.get( 'sections' ).length ) {
+ Backbone.pubSub.trigger( 'add-new-section' );
+ Backbone.pubSub.trigger( 'add-new-lesson' );
+ Backbone.pubSub.trigger( 'add-new-lesson' );
+ Backbone.pubSub.trigger( 'add-new-lesson' );
+ } else {
+ $els.removeAttr( 'disabled' );
+ }
+
+ },
+
+ } );
+
+} );
+
+/**
+ * Sidebar Utilities View
+ *
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+define( 'Views/Utilities',[], function() {
+
+ return Backbone.View.extend( {
+
+ /**
+ * HTML element selector
+ *
+ * @type {String}
+ */
+ el: '#llms-utilities',
+
+ events: {
+ 'click #llms-collapse-all': 'collapse_all',
+ 'click #llms-expand-all': 'expand_all'
+ },
+
+ /**
+ * Wrapper Tag name
+ *
+ * @type {String}
+ */
+ tagName: 'div',
+
+ /**
+ * Get the underscore template
+ *
+ * @type {[type]}
+ */
+ template: wp.template( 'llms-utilities-template' ),
+
+ /**
+ * Initialization callback func (renders the element on screen)
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ initialize: function() {
+
+ // this.render();
+ },
+
+ /**
+ * Compiles the template and renders the view
+ *
+ * @return self (for chaining)
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ render: function() {
+ this.$el.html( this.template() );
+ return this;
+ },
+
+ /**
+ * Collapse all sections
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ collapse_all: function( event ) {
+ event.preventDefault();
+ Backbone.pubSub.trigger( 'collapse-all' );
+ },
+
+ /**
+ * Expand all sections
+ *
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ expand_all: function( event ) {
+ event.preventDefault();
+ Backbone.pubSub.trigger( 'expand-all' );
+ },
+
+ } );
+
+} );
+
+/**
+ * Main sidebar view
+ *
+ * @since 3.16.0
+ * @version 7.2.0
+ */
+define( 'Views/Sidebar',[
+ 'Views/Editor',
+ 'Views/Elements',
+ 'Views/Utilities',
+ 'Views/_Subview'
+], function(
+ Editor,
+ Elements,
+ Utilities,
+ Subview
+) {
+
+ return Backbone.View.extend( _.defaults( {
+
+ /**
+ * Current builder state
+ * @type {String}
+ */
+ state: 'builder', // [builder|editor]
+
+ /**
+ * Current Subviews
+ * @type {Object}
+ */
+ views: {
+ elements: {
+ class: Elements,
+ instance: null,
+ state: 'builder',
+ },
+ utilities: {
+ class: Utilities,
+ instance: null,
+ state: 'builder',
+ },
+ editor: {
+ class: Editor,
+ instance: null,
+ state: 'editor',
+ },
+ },
+
+ /**
+ * HTML element selector
+ * @type {String}
+ */
+ el: '#llms-builder-sidebar',
+
+ /**
+ * DOM events
+ * @type {Object}
+ */
+ events: {
+ 'click #llms-save-button': 'save_now',
+ 'click #llms-exit-button': 'exit_now',
+ 'click .llms-builder-error': 'clear_errors',
+ },
+
+ /**
+ * Wrapper Tag name
+ * @type {String}
+ */
+ tagName: 'aside',
+
+ /**
+ * Get the underscore template
+ * @type {[type]}
+ */
+ template: wp.template( 'llms-sidebar-template' ),
+
+ /**
+ * Initialization callback func (renders the element on screen)
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ initialize: function( data ) {
+
+ // save a reference to the main Course view
+ this.CourseView = data.CourseView;
+
+ this.render();
+
+ Backbone.pubSub.on( 'current-save-status', this.changes_made, this );
+
+ Backbone.pubSub.on( 'heartbeat-send', this.heartbeat_send, this );
+ Backbone.pubSub.on( 'heartbeat-tick', this.heartbeat_tick, this );
+
+ Backbone.pubSub.on( 'lesson-selected', this.on_lesson_select, this );
+ Backbone.pubSub.on( 'sidebar-editor-close', this.on_editor_close, this );
+
+ this.$saveButton = $( '#llms-save-button' );
+
+ },
+
+ /**
+ * Compiles the template and renders the view
+ * @return self (for chaining)
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ render: function( view_data ) {
+
+ view_data = view_data || {};
+
+ this.$el.html( this.template() );
+
+ this.render_subviews( _.extend( view_data, {
+ SidebarView: this,
+ } ) );
+
+ var $el = $( '.wrap.lifterlms.llms-builder' );
+ if ( 'builder' === this.state ) {
+ $el.removeClass( 'editor-active' );
+ } else {
+ $el.addClass( 'editor-active' );
+ }
+
+ this.$saveButton = this.$el.find( '#llms-save-button' );
+
+ return this;
+
+ },
+
+ /**
+ * Adds error message element
+ * @param {[type]} $err [description]
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ add_error: function( $err ) {
+
+ this.$el.find( '.llms-builder-save' ).prepend( $err );
+
+ },
+
+ /**
+ * Clear any existing error message elements
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ clear_errors: function() {
+
+ this.$el.find( '.llms-builder-save .llms-builder-error' ).remove();
+
+ },
+
+ /**
+ * Update save status button when changes are detected
+ * runs on an interval to check status of course regularly for unsaved changes
+ * @param obj sync instance of the sync controller
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ changes_made: function( sync ) {
+
+ // if a save is currently running, don't do anything
+ if ( sync.saving ) {
+ return;
+ }
+
+ if ( sync.has_unsaved_changes ) {
+
+ this.$saveButton.attr( 'data-status', 'unsaved' );
+ this.$saveButton.removeAttr( 'disabled' );
+
+ } else {
+
+ this.$saveButton.attr( 'data-status', 'saved' );
+ this.$saveButton.attr( 'disabled', 'disabled' );
+
+ }
+
+ },
+
+ /**
+ * Exit the builder and return to the WP Course Editor
+ * @return void
+ * @since 3.16.7
+ * @version 3.16.7
+ */
+ exit_now: function() {
+
+ window.location.href = window.llms_builder.CourseModel.get_edit_post_link();
+
+ },
+
+ /**
+ * Triggered when a heartbeat send event starts containing builder information
+ * @param obj sync instance of the sync controller
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ heartbeat_send: function( sync ) {
+
+ if ( sync.saving ) {
+ LLMS.Spinner.start( this.$saveButton.find( 'i' ), 'small' );
+ this.$saveButton.attr( {
+ 'data-status': 'saving',
+ disabled: 'disabled',
+ } );
+ }
+
+ },
+
+ /**
+ * Triggered when a heartbeat tick completes and updates save status or appends errors
+ * @param obj sync instance of the sync controller
+ * @param obj data updated data
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ heartbeat_tick: function( sync, data ) {
+
+ if ( ! sync.saving ) {
+
+ var status = 'saved';
+
+ this.clear_errors();
+
+ if ( 'error' === data.status ) {
+
+ status = 'error';
+
+ var msg = data.message,
+ $err = $( ' ' );
+
+ if ( 'object' === typeof msg ) {
+ _.each( msg, function( txt ) {
+ $err.append( '' + txt + ' ' );
+ } );
+ } else {
+ $err = $err.append( '' + msg + ' ' );;
+ }
+
+ this.add_error( $err );
+
+ }
+
+ this.$saveButton.find( '.llms-spinning' ).remove();
+ this.$saveButton.attr( {
+ 'data-status': status,
+ disabled: 'disabled',
+ } );
+
+ }
+
+ },
+
+ /**
+ * Determine if the editor is the currently active state
+ * @return boolean
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ is_editor_active: function() {
+
+ return ( 'editor' === this.state );
+
+ },
+
+ /**
+ * Triggered when the editor closes, updates state to be the course builder view
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ on_editor_close: function() {
+
+ this.set_state( 'builder' ).render();
+
+ },
+
+ /**
+ * When a lesson is selected, opens the sidebar to the editor view
+ * @param obj lesson_model instance of the lesson model which was selected
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ on_lesson_select: function( lesson_model, tab ) {
+
+ if ( 'editor' !== this.state ) {
+ this.set_state( 'editor' );
+ } else {
+ this.remove_subview( 'editor' );
+ }
+
+ this.render( {
+ model: lesson_model,
+ tab: tab,
+ } );
+
+ },
+
+ /**
+ * Save button click event
+ * @return void
+ * @since 3.16.0
+ * @version 3.16.0
+ */
+ save_now: function() {
+
+ window.llms_builder.sync.save_now();
+
+ },
+
+ }, Subview ) );
+
+} );
+
+/**
+ * LifterLMS JS Builder App Bootstrap
+ *
+ * @since 3.16.0
+ * @since 3.37.11 Added `_.getEditor()` helper.
+ * @version 5.4.0
+ */
+require( [
+ 'vendor/wp-hooks',
+ 'vendor/backbone.collectionView',
+ 'vendor/backbone.trackit',
+ 'Controllers/Construct',
+ 'Controllers/Debug',
+ 'Controllers/Schemas',
+ 'Controllers/Sync',
+ 'Models/loader',
+ 'Views/Course',
+ 'Views/Sidebar'
+ ], function(
+ Hooks,
+ CV,
+ TrackIt,
+ Construct,
+ Debug,
+ Schemas,
+ Sync,
+ Models,
+ CourseView,
+ SidebarView
+ ) {
+
+ window.llms_builder.debug = new Debug( window.llms_builder.debug );
+ window.llms_builder.construct = new Construct();
+ window.llms_builder.schemas = new Schemas( window.llms_builder.schemas );
+
+ /**
+ * Compare values, used by _.checked & _.selected mixins.
+ *
+ * @since 3.17.2
+ *
+ * @param {Mixed} expected expected Value, probably a string (the value of a select option or checkbox element).
+ * @param {Mixed} mixed actual Actual value, probably a string (the return of model.get( 'something' ) )
+ * but could be an array like a multiselect.
+ * @return {Bool}
+ */
+ function value_compare( expected, actual ) {
+ return ( ( _.isArray( actual ) && -1 !== actual.indexOf( expected ) ) || expected == actual );
+ };
+
+ /**
+ * Underscores templating utilities
+ *
+ * @since 3.17.0
+ * @version 3.27.0
+ */
+ _.mixin( {
+
+ /**
+ * Determine if two values are equal and output checked attribute if they are.
+ *
+ * Useful for templating checkboxes & radio elements
+ * like WP Core PHP checked() but in JS.
+ *
+ * @since 3.17.0
+ * @since 3.17.2 Unknown.
+ *
+ * @param {Mixed} expected Expected element value.
+ * @param {Mixed} actual Actual element value.
+ * @return {String}
+ */
+ checked: function( expected, actual ) {
+ if ( value_compare( expected, actual ) ) {
+ return ' checked="checked"';
+ }
+ return '';
+ },
+
+ /**
+ * Recursively clone an object via _.clone().
+ *
+ * @since 3.17.7
+ *
+ * @param {Object} obj Object to clone.
+ * @return {Object}
+ */
+ deepClone: function( obj ) {
+
+ var clone = _.clone( obj );
+
+ _.each( clone, function( val, key ) {
+ if ( ! _.isFunction( val ) && _.isObject( val ) ) {
+ clone[ key ] = _.deepClone( val );
+ };
+ } );
+
+ return clone;
+
+ },
+
+ /**
+ * Retrieve the wp.editor instance.
+ *
+ * Uses `wp.oldEditor` (when available) which was added in WordPress 5.0.
+ *
+ * Falls back to `wp.editor()` which will usually be the same as `wp.oldEditor` unless
+ * the `@wordpress/editor` module has been loaded by another plugin or a theme.
+ *
+ * @since 3.37.11
+ *
+ * @return {Object}
+ */
+ getEditor: function() {
+
+ if ( undefined !== wp.oldEditor ) {
+
+ var ed = wp.oldEditor;
+
+ // Inline scripts added by WordPress are not ported to `wp.oldEditor`, see https://github.com/WordPress/WordPress/blob/641c632b0c9fde4e094b217f50749984ca43a2fa/wp-includes/class-wp-editor.php#L977.
+ if ( undefined !== wp.editor && undefined !== wp.editor.getDefaultSettings ) {
+ ed.getDefaultSettings = wp.editor.getDefaultSettings;
+ }
+
+ return ed;
+
+ } else if ( undefined !== wp.editor && undefined !== wp.editor.autop ){
+
+ return wp.editor;
+
+ }
+
+ },
+
+ /**
+ * Strips IDs & Parent References from quizzes and all quiz questions.
+ *
+ * @since 3.24.0
+ * @since 3.27.0 Unknown.
+ * @since 5.4.0 Use author id instead of the question author object.
+ *
+ * @param {Object} quiz Raw quiz object (not a model).
+ * @return {Object}
+ */
+ prepareQuizObjectForCloning: function( quiz ) {
+
+ delete quiz.id;
+ delete quiz.lesson_id;
+
+ _.each( quiz.questions, function( question ) {
+
+ question = _.prepareQuestionObjectForCloning( question );
+
+ } );
+
+ // Use author id instead of the quiz author object.
+ quiz = _.prepareExistingPostObjectDataForAddingOrCloning( quiz );
+
+ return quiz;
+
+ },
+
+ /**
+ * Strips IDs & Parent References from a question.
+ *
+ * @since 3.27.0
+ * @since 5.4.0 Use author id instead of the question author object.
+ *
+ * @param {Object} question Raw question object (not a model).
+ * @return {Object}
+ */
+ prepareQuestionObjectForCloning: function( question ) {
+
+ delete question.id;
+ delete question.parent_id;
+
+ if ( question.image && _.isObject( question.image ) ) {
+ question.image._forceSync = true;
+ }
+
+ if ( question.choices ) {
+
+ _.each( question.choices, function( choice ) {
+
+ delete choice.question_id;
+ delete choice.id;
+ if ( 'image' === choice.choice_type && _.isObject( choice.choice ) ) {
+ choice.choice._forceSync = true;
+ }
+
+ } );
+
+ }
+
+ // Use author id instead of the question author object.
+ question = _.prepareExistingPostObjectDataForAddingOrCloning( question );
+
+ return question;
+
+ },
+
+ /**
+ * Strips IDs & Parent References from assignments and all assignment tasks.
+ *
+ * @since 5.4.0
+ *
+ * @param {Object} assignment Raw assignment object (not a model).
+ * @return {Object}
+ */
+ prepareAssignmentObjectForCloning: function( assignment ) {
+
+ delete assignment.id;
+ delete assignment.lesson_id;
+
+ // Clone tasks.
+ if ( 'tasklist' === assignment.assignment_type ) {
+ _.each( assignment.tasks, function( task ) {
+ delete task.id;
+ delete task.assignment_id;
+ } );
+ }
+
+ // Use author id instead of the quiz author object.
+ assignment = _.prepareExistingPostObjectDataForAddingOrCloning( assignment );
+
+ return assignment;
+
+ },
+
+ /**
+ * Prepare post object data for adding or cloning.
+ *
+ * Use author id instead of the post type author object.
+ *
+ * @since 5.4.0
+ *
+ * @param {Object} quiz Raw post object (not a model).
+ * @return {Object}
+ */
+ prepareExistingPostObjectDataForAddingOrCloning: function( post_data ) {
+
+ if ( post_data.author && _.isObject( post_data.author ) && post_data.author.id ) {
+ post_data.author = post_data.author.id;
+ }
+
+ return post_data;
+
+ },
+
+ /**
+ * Determine if two values are equal and output selected attribute if they are.
+ *
+ * Useful for templating select elements
+ * like WP Core PHP selected() but in JS.
+ *
+ *
+ * @since 3.17.0
+ * @since 3.17.2 Unknown.
+ *
+ * @param {Mixed} expected Expected element value.
+ * @param {Mixed} actual Actual element value.
+ * @return {String}
+ */
+ selected: function( expected, actual ) {
+ if ( value_compare( expected, actual ) ) {
+ return ' selected="selected"';
+ }
+ return '';
+ },
+
+ /**
+ * Generic function for stripping HTML tags from a string.
+ *
+ * @since 3.17.8
+ *
+ * @param {String} content Raw string.
+ * @param {Array} allowed_tags Array of allowed HTML tags.
+ * @return {String}
+ */
+ stripFormatting: function( content, allowed_tags ) {
+
+ if ( ! allowed_tags ) {
+ allowed_tags = [ 'b', 'i', 'u', 'strong', 'em' ];
+ }
+
+ var $html = $( '' + content + '
' );
+
+ $html.find( '*' ).not( allowed_tags.join( ',' ) ).each( function( ) {
+
+ $( this ).replaceWith( this.innerHTML );
+
+ } );
+
+ return $html.html();
+
+ },
+
+ } );
+
+ Backbone.pubSub = _.extend( {}, Backbone.Events );
+
+ $( document ).trigger( 'llms-builder-pre-init' );
+
+ window.llms_builder.questions = window.llms_builder.construct.get_collection( 'QuestionTypes', window.llms_builder.questions );
+
+ var CourseModel = window.llms_builder.construct.get_model( 'Course', window.llms_builder.course );
+ window.llms_builder.CourseModel = CourseModel;
+
+ window.llms_builder.sync = new Sync( CourseModel, window.llms_builder.sync );
+
+ var Course = new CourseView( {
+ model: CourseModel,
+ } );
+
+ var Sidebar = new SidebarView( {
+ CourseView: Course
+ } );
+
+ $( document ).trigger( 'llms-builder-init', {
+ course: Course,
+ sidebar: Sidebar,
+ } );
+
+ /**
+ * Do deep linking to Lesson / Quiz / Assignments.
+ *
+ * Hash should be in the form of #lesson:{lesson_id}:{subtab}
+ * subtab can be either "quiz" or "assignment". If none found assumes the "lesson" tab.
+ *
+ * @since 3.27.0
+ * @since 3.30.1 Wait for wp.editor & window.tinymce to load before opening deep link tabs.
+ * @since 3.37.11 Use `_.getEditor()` helper when checking for the presence of `wp.editor`.
+ */
+ if ( window.location.hash ) {
+
+ var hash = window.location.hash;
+ if ( -1 === hash.indexOf( '#lesson:' ) ) {
+ return;
+ }
+ var parts = hash.replace( '#lesson:', '' ).split( ':' ),
+ $lesson = $( '#llms-lesson-' + parts[0] );
+
+ if ( $lesson.length ) {
+
+ LLMS.wait_for( function() {
+ return ( undefined !== _.getEditor() && undefined !== window.tinymce );
+ }, function() {
+ $lesson.closest( '.llms-builder-item.llms-section' ).find( 'a.llms-action-icon.expand' ).trigger( 'click' );
+ var subtab = parts[1] ? parts[1] : 'lesson';
+ $( '#llms-lesson-' + parts[0] ).find( 'a.llms-action-icon.edit-' + subtab ).trigger( 'click' );
+ } );
+
+ }
+
+ }
+
+ } );
+
+define("main", function(){});
+
+}(jQuery));
+
+//# sourceMappingURL=../maps/js/llms-builder.js.map
diff --git a/assets/js/llms-builder.min.js b/assets/js/llms-builder.min.js
new file mode 100644
index 0000000000..bc63116bcb
--- /dev/null
+++ b/assets/js/llms-builder.min.js
@@ -0,0 +1,6 @@
+!function(e){var t,i,n;!function(e){function s(e,t){return y.call(e,t)}function o(e,t){var i,n,s,o,l,r,a,c,d,u,h,_,p=t&&t.split("/"),g=v.map,m=g&&g["*"]||{};if(e){for(e=e.split("/"),l=e.length-1,v.nodeIdCompat&&S.test(e[l])&&(e[l]=e[l].replace(S,"")),"."===e[0].charAt(0)&&p&&(_=p.slice(0,p.length-1),e=_.concat(e)),d=0;d0&&(e.splice(d-1,2),d-=2)}e=e.join("/")}if((p||m)&&g){for(i=e.split("/"),d=i.length;d>0;d-=1){if(n=i.slice(0,d).join("/"),p)for(u=p.length;u>0;u-=1)if((s=g[p.slice(0,u).join("/")])&&(s=s[n])){o=s,r=d;break}if(o)break;!a&&m&&m[n]&&(a=m[n],c=d)}!o&&a&&(o=a,r=c),o&&(i.splice(0,r,o),e=i.join("/"))}return e}function l(t,i){return function(){var n=k.call(arguments,0);return"string"!=typeof n[0]&&1===n.length&&n.push(null),p.apply(e,n.concat([t,i]))}}function r(e){return function(t){return o(t,e)}}function a(e){return function(t){f[e]=t}}function c(t){if(s(b,t)){var i=b[t];delete b[t],w[t]=!0,_.apply(e,i)}if(!s(f,t)&&!s(w,t))throw new Error("No "+t);return f[t]}function d(e){var t,i=e?e.indexOf("!"):-1;return i>-1&&(t=e.substring(0,i),e=e.substring(i+1,e.length)),[t,e]}function u(e){return e?d(e):[]}function h(e){return function(){return v&&v.config&&v.config[e]||{}}}var _,p,g,m,f={},b={},v={},w={},y=Object.prototype.hasOwnProperty,k=[].slice,S=/\.js$/;g=function(e,t){var i,n=d(e),s=n[0],l=t[1];return e=n[1],s&&(s=o(s,l),i=c(s)),s?e=i&&i.normalize?i.normalize(e,r(l)):o(e,l):(e=o(e,l),n=d(e),s=n[0],e=n[1],s&&(i=c(s))),{f:s?s+"!"+e:e,n:e,pr:s,p:i}},m={require:function(e){return l(e)},exports:function(e){var t=f[e];return void 0!==t?t:f[e]={}},module:function(e){return{id:e,uri:"",exports:f[e],config:h(e)}}},_=function(t,i,n,o){var r,d,h,_,p,v,y,k=[],S=typeof n;if(o=o||t,v=u(o),"undefined"===S||"function"===S){for(i=!i.length&&n.length?["require","exports","module"]:i,p=0;p3&&void 0!==arguments[3]?arguments[3]:10;if(s(t)&&n(i))if("function"==typeof o)if("number"==typeof l){var r={callback:o,priority:l,namespace:i};if(e[t]){for(var a=e[t].handlers,c=0;cl);)c++;a.splice(c,0,r),(e.__current||[]).forEach(function(e){e.name===t&&e.currentIndex>=c&&e.currentIndex++})}else e[t]={handlers:[r],runs:0};"hookAdded"!==t&&k("hookAdded",t,i,o,l)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}},l=function(e,t){return function(i,o){if(s(i)&&(t||n(o))){if(!e[i])return 0;var l=0;if(t)l=e[i].handlers.length,e[i]={runs:e[i].runs,handlers:[]};else for(var r=e[i].handlers,a=r.length-1;a>=0;a--)!function(t){r[t].namespace===o&&(r.splice(t,1),l++,(e.__current||[]).forEach(function(e){e.name===i&&e.currentIndex>=t&&e.currentIndex--}))}(a);return"hookRemoved"!==i&&k("hookRemoved",i,o),l}}},r=function(e){return function(t){return t in e}},a=function(e,t){return function(i){e[i]||(e[i]={handlers:[],runs:0}),e[i].runs++;for(var n=e[i].handlers,s=arguments.length,o=new Array(s>1?s-1:0),l=1;l li, tbody > tr > td":"_listItem_onMousedown","dblclick > li, tbody > tr > td":"_listItem_onDoubleClick",click:"_listBackground_onClick","click ul.collection-view, table.collection-view":"_listBackground_onClick",keydown:"_onKeydown"},spawnMessages:{focus:"focus"},passMessages:{"*":"."},initializationOptions:[{collection:null},{modelView:null},{modelViewOptions:{}},{itemTemplate:null},{itemTemplateFunction:null},{selectable:!0},{clickToSelect:!0},{selectableModelsFilter:null},{visibleModelsFilter:null},{sortableModelsFilter:null},{selectMultiple:!1},{clickToToggle:!1},{processKeyEvents:!0},{sortable:!1},{sortableOptions:null},{reuseModelViews:!0},{detachedRendering:!1},{emptyListCaption:null}],initialize:function(e){t.ViewOptions.add(this,"initializationOptions"),this.setOptions(e),this.collection||(this.collection=new t.Collection),this._hasBeenRendered=!1,this._isBackboneCourierAvailable()&&t.Courier.add(this),this.$el.data("view",this),this.$el.addClass("collection-view collection-list"),this.selectable&&this.$el.addClass("selectable"),this.selectable&&this.processKeyEvents&&this.$el.attr("tabindex",0),this.selectedItems=[],this._updateItemTemplate(),this.collection&&this._registerCollectionEvents(),this.viewManager=new ChildViewContainer},_onOptionsChanged:function(t,i){var n=this,s=!1;e.each(e.keys(t),function(l){var r=t[l],a=i[l];switch(l){case"collection":r!==a&&(n.stopListening(a),n._registerCollectionEvents());break;case"selectMultiple":!r&&n.selectedItems.length>1&&n.setSelectedModel(e.first(n.selectedItems),{by:"cid"});break;case"selectable":!r&&n.selectedItems.length>0&&n.setSelectedModels([]),r&&this.processKeyEvents?n.$el.attr("tabindex",0):n.$el.removeAttr("tabindex",0);break;case"sortable":t.sortable?n._setupSortable():n.$el.sortable("destroy");break;case"selectableModelsFilter":n.reapplyFilter("selectableModels");break;case"sortableOptions":n.$el.sortable("destroy"),n._setupSortable();break;case"sortableModelsFilter":n.reapplyFilter("sortableModels");break;case"visibleModelsFilter":n.reapplyFilter("visibleModels");break;case"itemTemplate":n._updateItemTemplate();break;case"processKeyEvents":r&&this.selectable?n.$el.attr("tabindex",0):n.$el.removeAttr("tabindex",0);break;case"modelView":n.viewManager.each(function(e){n.viewManager.remove(e),e.remove()})}e.contains(o,l)&&(s=!0)}),this._hasBeenRendered&&s&&this.render()},setOption:function(e,t){var i={};i[e]=t,this.setOptions(i)},getSelectedModel:function(t){return this.selectedItems.length?e.first(this.getSelectedModels(t)):null},getSelectedModels:function(t){var n=this;t=e.extend({},{by:"model"},t);var s=t.by,o=[];switch(s){case"id":e.each(this.selectedItems,function(e){o.push(n.collection.get(e).id)});break;case"cid":o=o.concat(this.selectedItems);break;case"offset":var l=0;this._getVisibleItemEls().each(function(){i(this).is(".selected")&&o.push(l),l++});break;case"model":e.each(this.selectedItems,function(e){o.push(n.collection.get(e))});break;case"view":e.each(this.selectedItems,function(e){o.push(n.viewManager.findByModel(n.collection.get(e)))});break;default:throw new Error("Invalid referenceBy option: "+s)}return o},setSelectedModels:function(t,n){if(!e.isArray(t))throw"Invalid parameter value";if(this.selectable||!(t.length>0)){n=e.extend({},{silent:!1,by:"model"},n);var s=n.by,o=[];switch(s){case"cid":o=t;break;case"id":this.collection.each(function(i){e.contains(t,i.id)&&o.push(i.cid)});break;case"model":o=e.pluck(t,"cid");break;case"view":e.each(t,function(e){o.push(e.model.cid)});break;case"offset":var l=0;this._getVisibleItemEls().each(function(){var n=i(this);e.contains(t,l)&&o.push(n.attr("data-model-cid")),l++});break;default:throw new Error("Invalid referenceBy option: "+s)}var r=this.getSelectedModels(),a=e.clone(this.selectedItems);this.selectedItems=this._convertStringsToInts(o),this._validateSelection();var c=this.getSelectedModels();this._containSameElements(a,this.selectedItems)||(this._addSelectedClassToSelectedItems(a),n.silent||(this._isBackboneCourierAvailable()?this.spawn("selectionChanged",{selectedModels:c,oldSelectedModels:r}):this.trigger("selectionChanged",c,r)),this.updateDependentControls())}},setSelectedModel:function(e,t){e||0===e?this.setSelectedModels([e],t):this.setSelectedModels([],t)},getView:function(t,n){switch(n=e.extend({},{by:"model"},n),n.by){case"id":case"cid":var s=this.collection.get(t)||null;return s&&this.viewManager.findByModel(s);case"offset":var o=this._getVisibleItemEls();return i(o.get(t));case"model":return this.viewManager.findByModel(t);default:throw new Error("Invalid referenceBy option: "+referenceBy)}},render:function(){this._hasBeenRendered=!0,this.selectable&&this._saveSelection();var t;t=this._getContainerEl();var i=this.viewManager;this.viewManager=new ChildViewContainer,i.each(function(e){this.reuseModelViews&&this.collection.get(e.model.cid)?e.$el.detach():e.remove()},this),t.empty();var n;this.detachedRendering&&(n=document.createDocumentFragment()),this.collection.each(function(s){var o=i.findByModelCid(s.cid);this.reuseModelViews&&!e.isUndefined(o)||(o=this._createNewModelView(s,this._getModelViewOptions(s))),this._insertAndRenderModelView(o,n||t)},this),this.detachedRendering&&t.append(n),this.sortable&&this._setupSortable(),this._showEmptyListCaptionIfAppropriate(),this._isBackboneCourierAvailable()?this.spawn("render"):this.trigger("render"),this.selectable&&(this._restoreSelection(),this.updateDependentControls()),this.forceRerenderOnNextSortEvent=!1},_showEmptyListCaptionIfAppropriate:function(){if(this._removeEmptyListCaption(),this.emptyListCaption){if(0===this._getVisibleItemEls().length){var t;t=e.isFunction(this.emptyListCaption)?this.emptyListCaption():this.emptyListCaption;var n,s=i(""+t+" ");n=this._isRenderedAsList()?s.wrapAll(" ").parent().css(l):s.wrapAll(" ").parent().parent().css(l),this._getContainerEl().append(n)}}},_removeEmptyListCaption:function(){this._isRenderedAsList()?this._getContainerEl().find("> li > var.empty-list-caption").parent().remove():this._getContainerEl().find("> tr > td > var.empty-list-caption").parent().parent().remove()},_insertAndRenderModelView:function(t,i,n){var s=this._wrapModelView(t);if(11===i.nodeType)i.appendChild(s.get(0));else{var o=i.children().length;!e.isUndefined(n)&&n>=0&&no&&(this.forceRerenderOnNextSortEvent=!0),i.append(s))}this.viewManager.add(t),!1===t.render()&&(s.hide(),s.addClass("not-visible"));var l=!1;e.isFunction(this.visibleModelsFilter)&&(l=!this.visibleModelsFilter(t.model)),1===s.children().length?s.toggle(!l):t.$el.toggle(!l),s.toggleClass("not-visible",l),!l&&this.emptyListCaption&&this._removeEmptyListCaption()},updateDependentControls:function(){this._isBackboneCourierAvailable()?this.spawn("updateDependentControls",{selectedModels:this.getSelectedModels()}):this.trigger("updateDependentControls",this.getSelectedModels())},remove:function(){this.viewManager.each(function(e){e.remove()}),t.View.prototype.remove.apply(this,arguments)},reapplyFilter:function(t){var i=this;if(!e.contains(["selectableModels","sortableModels","visibleModels"],t))throw new Error("Invalid filter identifier supplied to reapplyFilter: "+t);switch(t){case"visibleModels":i.viewManager.each(function(e){var t=i.visibleModelsFilter&&!i.visibleModelsFilter.call(i,e.model);e.$el.toggleClass("not-visible",t),i._modelViewHasWrapperLI(e)?e.$el.closest("li").toggleClass("not-visible",t).toggle(!t):e.$el.toggle(!t)}),this._showEmptyListCaptionIfAppropriate();break;case"sortableModels":i.$el.sortable("destroy"),i.viewManager.each(function(e){var t=i.sortableModelsFilter&&!i.sortableModelsFilter.call(i,e.model);e.$el.toggleClass("not-sortable",t),i._modelViewHasWrapperLI(e)&&e.$el.closest("li").toggleClass("not-sortable",t)}),i._setupSortable();break;case"selectableModels":i.viewManager.each(function(e){var t=i.selectableModelsFilter&&!i.selectableModelsFilter.call(i,e.model);e.$el.toggleClass("not-selectable",t),i._modelViewHasWrapperLI(e)&&e.$el.closest("li").toggleClass("not-selectable",t)}),i._validateSelection()}},_removeModelView:function(e){this.selectable&&this._saveSelection(),this.viewManager.remove(e),this._modelViewHasWrapperLI(e)&&e.$el.parent().remove(),e.remove(),this.selectable&&this._restoreSelection(),this._showEmptyListCaptionIfAppropriate()},_validateSelectionAndRender:function(){this._validateSelection(),this.render()},_registerCollectionEvents:function(){this.listenTo(this.collection,"add",function(e){var t;this._hasBeenRendered&&(t=this._createNewModelView(e,this._getModelViewOptions(e)),this._insertAndRenderModelView(t,this._getContainerEl(),this.collection.indexOf(e))),this._isBackboneCourierAvailable()?this.spawn("add",t):this.trigger("add",t)}),this.listenTo(this.collection,"remove",function(e){var t;this._hasBeenRendered&&(t=this.viewManager.findByModelCid(e.cid),this._removeModelView(t)),this._isBackboneCourierAvailable()?this.spawn("remove"):this.trigger("remove")}),this.listenTo(this.collection,"reset",function(){this._hasBeenRendered&&this.render(),this._isBackboneCourierAvailable()?this.spawn("reset"):this.trigger("reset")}),this.listenTo(this.collection,"sort",function(e,t){this._hasBeenRendered&&(!0!==t.add||this.forceRerenderOnNextSortEvent)&&this.render(),this._isBackboneCourierAvailable()?this.spawn("sort"):this.trigger("sort")})},_getContainerEl:function(){if(this._isRenderedAsTable()){var e=this.$el.find("> tbody");if(e.length>0)return e}return this.$el},_getClickedItemId:function(e){var t=null,n=i(e.currentTarget);if(n.closest(".collection-view").get(0)===this.$el.get(0)){var s=n.closest("[data-model-cid]");return s.length>0&&(t=s.attr("data-model-cid"),i.isNumeric(t)&&(t=parseInt(t,10))),t}},_updateItemTemplate:function(){var t;if(this.itemTemplate){if(0===i(this.itemTemplate).length)throw"Could not find item template from selector: "+this.itemTemplate;t=i(this.itemTemplate).html()}else t=this.$(".item-template").html();t&&(this.itemTemplateFunction=e.template(t))},_validateSelection:function(){var t=e.pluck(this.collection.models,"cid");this.selectedItems=e.intersection(t,this.selectedItems),e.isFunction(this.selectableModelsFilter)&&(this.selectedItems=e.filter(this.selectedItems,function(e){return this.selectableModelsFilter.call(this,this.collection.get(e))},this))},_saveSelection:function(){if(!this.selectable)throw"Attempt to save selection on non-selectable list";this.savedSelection={items:e.clone(this.selectedItems),offset:this.getSelectedModel({by:"offset"})}},_restoreSelection:function(){if(!this.savedSelection)throw"Attempt to restore selection but no selection has been saved!";this.setSelectedModels([],{silent:!0}),this.savedSelection.items.length>0&&(this.setSelectedModels(this.savedSelection.items,{by:"cid",silent:!0}),0===this.selectedItems.length&&this.setSelectedModel(this.savedSelection.offset,{by:"offset"}),this.selectedItems.length!==this.savedSelection.items.length&&(this._isBackboneCourierAvailable()?this.spawn("selectionChanged",{selectedModels:this.getSelectedModels(),oldSelectedModels:[]}):this.trigger("selectionChanged",this.getSelectedModels(),[])))},_addSelectedClassToSelectedItems:function(t){e.isUndefined(t)&&(t=[]);var i=t;i=e.without(i,this.selectedItems),e.each(i,function(e){this._getContainerEl().find("[data-model-cid="+e+"]").removeClass("selected"),this._isRenderedAsList()&&this._getContainerEl().find("li[data-model-cid="+e+"] > *").removeClass("selected")},this);var n=this.selectedItems;n=e.without(n,t),e.each(n,function(e){this._getContainerEl().find("[data-model-cid="+e+"]").addClass("selected"),this._isRenderedAsList()&&this._getContainerEl().find("li[data-model-cid="+e+"] > *").addClass("selected")},this)},_reorderCollectionBasedOnHTML:function(){var e=this;this._getContainerEl().children().each(function(){var t=i(this).attr("data-model-cid");if(t){var n=e.collection.get(t);n&&(e.collection.remove(n,{silent:!0}),e.collection.add(n,{silent:!0,sort:!e.collection.comparator}))}}),this._isBackboneCourierAvailable()?this.spawn("reorder"):this.collection.trigger("reorder"),this.collection.comparator&&this.collection.sort()},_getModelViewConstructor:function(e){return this.modelView||s},_getModelViewOptions:function(t){var i=this.modelViewOptions;return e.isFunction(i)&&(i=i(t)),e.extend({model:t},i)},_createNewModelView:function(t,i){var n=this._getModelViewConstructor(t);if(e.isUndefined(n))throw"Could not find modelView constructor for model";var s=new n(i);return s.collectionListView=s.collectionView=this,s},_wrapModelView:function(t){var i,n=this;return this._isRenderedAsTable()?(i=t.$el,t.$el.attr("data-model-cid",t.model.cid)):this._isRenderedAsList()&&(t.$el.is("li")?(i=t.$el,t.$el.attr("data-model-cid",t.model.cid)):i=t.$el.wrapAll(" ").parent()),e.isFunction(this.sortableModelsFilter)&&(this.sortableModelsFilter.call(n,t.model)||(i.addClass("not-sortable"),t.$el.addClass("not-selectable"))),e.isFunction(this.selectableModelsFilter)&&(this.selectableModelsFilter.call(n,t.model)||(i.addClass("not-selectable"),t.$el.addClass("not-selectable"))),i},_convertStringsToInts:function(t){return e.map(t,function(t){if(!e.isString(t))return t;var i=parseInt(t,10);return i==t?i:t})},_containSameElements:function(t,i){return t.length==i.length&&e.intersection(t,i).length==t.length},_isRenderedAsTable:function(){return"table"===this.$el.prop("tagName").toLowerCase()},_isRenderedAsList:function(){return!this._isRenderedAsTable()},_modelViewHasWrapperLI:function(e){return this._isRenderedAsList()&&!e.$el.is("li")},_getVisibleItemEls:function(){return this._getContainerEl().find("> [data-model-cid]:not(.not-visible)")},_charCodes:{upArrow:38,downArrow:40},_isBackboneCourierAvailable:function(){return!e.isUndefined(t.Courier)},_setupSortable:function(){var t=e.extend({axis:"y",distance:10,forcePlaceholderSize:!0,items:this._isRenderedAsTable()?"> tbody > tr:not(.not-sortable)":"> li:not(.not-sortable)",start:e.bind(this._sortStart,this),change:e.bind(this._sortChange,this),stop:e.bind(this._sortStop,this),receive:e.bind(this._receive,this),over:e.bind(this._over,this)},e.result(this,"sortableOptions"));this.$el=this.$el.sortable(t)},_sortStart:function(e,t){var i=this.collection.get(t.item.attr("data-model-cid"));this._isBackboneCourierAvailable()?this.spawn("sortStart",{modelBeingSorted:i}):this.trigger("sortStart",i)},_sortChange:function(e,t){var i=this.collection.get(t.item.attr("data-model-cid"));this._isBackboneCourierAvailable()?this.spawn("sortChange",{modelBeingSorted:i}):this.trigger("sortChange",i)},_sortStop:function(e,t){var i=this.collection.get(t.item.attr("data-model-cid")),n=this._getContainerEl(),s=n.children().index(t.item);-1==s&&i&&this.collection.remove(i),i&&(this._reorderCollectionBasedOnHTML(),this.updateDependentControls(),this._isBackboneCourierAvailable()?this.spawn("sortStop",{modelBeingSorted:i,newIndex:s}):this.trigger("sortStop",i,s))},_receive:function(e,t){var i=t.sender,n=i.data("view");if(n&&n.collection){var s=this._getContainerEl().children().index(t.item),o=n.collection.get(t.item.attr("data-model-cid"));n.collection.remove(o),this.collection.add(o,{at:s}),o.collection=this.collection,this.setSelectedModel(o)}},_over:function(e,t){this._getContainerEl().find("> var.empty-list-caption").hide()},_onKeydown:function(e){if(!this.processKeyEvents)return!0;var t=!1;if(1==this.getSelectedModels({by:"offset"}).length){var i=this.getSelectedModel({by:"offset"});e.which===this._charCodes.upArrow&&0!==i?(this.setSelectedModel(i-1,{by:"offset"}),t=!0):e.which===this._charCodes.downArrow&&i!==this.collection.length-1&&(this.setSelectedModel(i+1,{by:"offset"}),t=!0)}return!t},_listItem_onMousedown:function(t){var i=this._getClickedItemId(t);if(i){var n=this.collection.get(i);if(this._isBackboneCourierAvailable()){var s={clickedModel:n,metaKeyPressed:t.ctrlKey||t.metaKey};e.each(["preventDefault","stopPropagation","stopImmediatePropagation"],function(e){s[e]=function(){t[e]()}}),this.spawn("click",s)}else this.trigger("click",n)}if(this.selectable&&this.clickToSelect)if(i){if(e.isFunction(this.selectableModelsFilter)&&!this.selectableModelsFilter.call(this,this.collection.get(i)))return;if(this.selectMultiple&&t.shiftKey){var o=-1;this.selectedItems.length>0&&this.collection.find(function(t){return o++,e.contains(this.selectedItems,t.cid)},this);var l=-1;this.collection.find(function(e){return l++,e.cid==i},this);for(var r=-1==o?l:o,a=Math.min(l,r),c=Math.max(l,r),d=[],u=a;u<=c;u++)d.push(this.collection.at(u).cid);if(this.setSelectedModels(d,{by:"cid"}),document.selection&&document.selection.empty)document.selection.empty();else if(window.getSelection){var h=window.getSelection();h&&h.removeAllRanges&&h.removeAllRanges()}}else(this.selectMultiple||e.contains(this.selectedItems,i))&&(this.clickToToggle||t.metaKey||t.ctrlKey)?e.contains(this.selectedItems,i)?this.setSelectedModels(e.without(this.selectedItems,i),{by:"cid"}):this.setSelectedModels(e.union(this.selectedItems,[i]),{by:"cid"}):this.setSelectedModels([i],{by:"cid"})}else this.setSelectedModels([])},_listItem_onDoubleClick:function(e){var t=this._getClickedItemId(e);if(t){var i=this.collection.get(t);this._isBackboneCourierAvailable()?this.spawn("doubleClick",{clickedModel:i,metaKeyPressed:e.ctrlKey||e.metaKey}):this.trigger("doubleClick",i)}},_listBackground_onClick:function(e){this.selectable&&this.clickToSelect&&i(e.target).is(".collection-view")&&this.setSelectedModels([])}},{setDefaultModelViewConstructor:function(e){s=e}}),t.ViewOptions={},t.ViewOptions.add=function(t,i){e.isUndefined(i)&&(i="options"),t.setOptions=function(t){var s=this,o={},l={},r=e.result(this,i);if(!e.isUndefined(r)){var a=n(r);e.each(a,function(i,n){var r=i.required,a=i.defaultValue;if(r){if((!t||!e.contains(e.keys(t),n))&&e.isUndefined(s[n]))throw new Error('Required option "'+n+'" was not supplied.');if(t&&e.contains(e.keys(t),n)&&e.isUndefined(t[n]))throw new Error('Required option "'+n+'" can not be set to undefined.')}if(t&&n in t&&!e.isUndefined(t[n])){var c=s[n],d=t[n];e.isUndefined(c)||c===d||(l[n]=c,o[n]=d),s[n]=d}else e.isUndefined(s[n])&&(s[n]=a)})}e.keys(o).length>0&&(e.isFunction(s.onOptionsChanged)?s.onOptionsChanged(o,l):e.isFunction(s._onOptionsChanged)&&s._onOptionsChanged(o,l))},t.getOptions=function(){var t=e.result(this,i);if(e.isUndefined(t))return{};var s=n(t),o=e.keys(s);return e.pick(this,o)}},ChildViewContainer=function(e,t){var i=function(e){this._views={},this._indexByModel={},this._indexByCustom={},this._updateLength(),t.each(e,this.add,this)};t.extend(i.prototype,{add:function(e,t){var i=e.cid;this._views[i]=e,e.model&&(this._indexByModel[e.model.cid]=i),t&&(this._indexByCustom[t]=i),this._updateLength()},findByModel:function(e){return this.findByModelCid(e.cid)},findByModelCid:function(e){var t=this._indexByModel[e];return this.findByCid(t)},findByCustom:function(e){var t=this._indexByCustom[e];return this.findByCid(t)},findByIndex:function(e){return t.values(this._views)[e]},findByCid:function(e){return this._views[e]},findIndexByCid:function(e){var i=-1;return t.find(this._views,function(t){if(i++,t.model.cid==e)return t})?i:-1},remove:function(e){var i=e.cid;e.model&&delete this._indexByModel[e.model.cid],t.any(this._indexByCustom,function(e,t){if(e===i)return delete this._indexByCustom[t],!0},this),delete this._views[i],this._updateLength()},call:function(e){this.apply(e,t.tail(arguments))},apply:function(e,i){t.each(this._views,function(n){t.isFunction(n[e])&&n[e].apply(n,i||[])})},_updateLength:function(){this.length=t.size(this._views)}});var n=["forEach","each","map","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","toArray","first","initial","rest","last","without","isEmpty","pluck"];return t.each(n,function(e){i.prototype[e]=function(){var i=t.values(this._views),n=[i].concat(t.toArray(arguments));return t[e].apply(t,n)}}),i}(0,e),t.CollectionView}),function(){var e=[],t=function(t){_.isEmpty(t._unsavedChanges)?e=_.filter(e,function(e){return t.cid!=e.cid}):_.findWhere(e,{cid:t.cid})||e.push(t)},i=function(t){var i,n=_.rest(arguments),s=function(e,t){return _.isBoolean(t)?t:(_.isString(t)?e[t]:t).apply(e,n)};return _.each(e,function(e){!i&&s(e,e._unsavedConfig[t])&&(i=e._unsavedConfig.prompt)}),i};Backbone.History.prototype.navigate=_.wrap(Backbone.History.prototype.navigate,function(e,t,n){var s=i("unloadRouterPrompt",t,n);s?confirm(s+" \n\nAre you sure you want to leave this page?")&&e.call(this,t,n):e.call(this,t,n)}),window.onbeforeunload=function(e){return i("unloadWindowPrompt",e)},_.extend(Backbone.Model.prototype,{unsaved:{},_trackingChanges:!1,_originalAttrs:{},_unsavedChanges:{},startTracking:function(){return this._unsavedConfig=_.extend({},{prompt:"You have unsaved changes!",unloadRouterPrompt:!1,unloadWindowPrompt:!1},this.unsaved||{}),this._trackingChanges=!0,this._resetTracking(),this._triggerUnsavedChanges(),this},stopTracking:function(){return this._trackingChanges=!1,this._originalAttrs={},this._unsavedChanges={},this._triggerUnsavedChanges(),this},restartTracking:function(){return this._resetTracking(),this._triggerUnsavedChanges(),this},resetAttributes:function(){if(this._trackingChanges)return this.attributes=this._originalAttrs,this._resetTracking(),this._triggerUnsavedChanges(),this},unsavedAttributes:function(e){if(!e)return!_.isEmpty(this._unsavedChanges)&&_.clone(this._unsavedChanges);var t,i=!1,n=this._unsavedChanges;for(var s in e)_.isEqual(n[s],t=e[s])||((i||(i={}))[s]=t);return i},_resetTracking:function(){this._originalAttrs=_.deepClone(this.attributes),this._unsavedChanges={}},_triggerUnsavedChanges:function(){this.trigger("unsavedChanges",!_.isEmpty(this._unsavedChanges),_.clone(this._unsavedChanges)),this.unsaved&&t(this)}}),Backbone.Model.prototype.set=_.wrap(Backbone.Model.prototype.set,function(e,t,i,n){var s,o;return null==t?this:("object"==typeof t?(s=t,n=i):(s={})[t]=i,n||(n={}),o=e.call(this,s,n),this._trackingChanges&&!n.silent&&(_.each(s,_.bind(function(e,t){_.isEqual(this._originalAttrs[t],e)?delete this._unsavedChanges[t]:this._unsavedChanges[t]=e},this)),this._triggerUnsavedChanges()),o)}),Backbone.sync=_.wrap(Backbone.sync,function(e,t,i,n){return n||(n={}),"update"==t&&(n.success=_.wrap(n.success,_.bind(function(e,t,n,s){var o;return e&&(o=e.call(this,t,n,s)),i._trackingChanges&&(i._resetTracking(),i._triggerUnsavedChanges()),o},this))),e(t,i,n)})}(),n("vendor/backbone.trackit",function(){}),n("Models/Image",[],function(){return Backbone.Model.extend({defaults:{enabled:"no",id:"",size:"full",src:""},initialize:function(){this.startTracking()}})}),n("Models/_Relationships",[],function(){return{relationship_defaults:{parent:{},children:{}},relationships:{},init_relationships:function(e){var t=this.get_relationships();t.parent&&e&&e.parent&&this.set_parent(e.parent),_.each(t.children,function(e,t){if(!e.conditional||!0===e.conditional(this)){var i,n=this.get(t);e.lookup?i=e.lookup(n):"model"===e.type?i=window.llms_builder.construct.get_model(e.class,n):"collection"===e.type&&(i=window.llms_builder.construct.get_collection(e.class,n)),this.set(t,i),
+"model"===e.type?this._maybe_set_parent_reference(i):"collection"===e.type&&(i.parent=this,i.each(function(e){this._maybe_set_parent_reference(e)},this))}},this)},get_child_props:function(){var e=[];return _.each(this.get_relationships().children,function(t,i){t.conditional&&!0!==t.conditional(this)||e.push(i)},this),e},get_parent:function(){var e=this.get_relationships();return!!e.parent&&e.parent.reference},get_relationships:function(){return e.extend(!0,this.relationships,this.relationship_defaults)},set_parent:function(e){this.relationships.parent.reference=e},_maybe_set_parent_reference:function(e){if(e&&e.get_relationships){var t=e.get_relationships();t.parent&&t.parent.model===this.get("type")&&e.set_parent(this)}}}}),n("Models/QuestionChoice",["Models/Image","Models/_Relationships"],function(e,t){return Backbone.Model.extend(_.defaults({relationships:{parent:{model:"llms_question",type:"model"},children:{choice:{conditional:function(e){return"image"===e.get("choice_type")},class:"Image",model:"image",type:"model"}}},defaults:function(){return{id:_.uniqueId("temp_"),choice:"",choice_type:"text",correct:!1,marker:"A",question_id:"",type:"choice"}},initialize:function(e,t){this.startTracking(),this.init_relationships(t)},get_parent:function(){return this.collection.parent},get_trash_id:function(){return this.get("question_id")+":"+this.get("id")},is_selectable:function(){return this.get_parent().get("question_type").get_choice_selectable()}},t))}),n("Collections/QuestionChoices",["Models/QuestionChoice"],function(e){return Backbone.Collection.extend({model:e,initialize:function(){this.on("reorder",this.update_order),this.on("add",this.update_order),this.on("remove",this.update_order),this.on("add",this.update_correct),this.on("remove",this.update_correct),this.on("correct-update",this.update_correct)},count_correct:function(){return _.size(this.get_correct())},get_correct:function(){return this.filter(function(e){return e.get("correct")})},update_correct:function(e){if(this.parent.get("question_type").get_choice_selectable()){var t=this.without(e),i=this.parent;if("no"===i.get("multi_choices")&&_.each(t,function(e){e.set("correct",!1)}),0===this.count_correct()&&i.get("points")>0){var n=1===this.size()?this.models:t;_.first(n).set("correct",!0)}}},update_order:function(){var e=this,t=this.parent;this.each(function(i){i.set("marker",t.get("question_type").get_choice_markers()[e.indexOf(i)])})}})}),n("Models/QuestionType",[],function(){return Backbone.Model.extend({defaults:function(){return{choices:!1,clarifications:!0,default_choices:[],description:!0,icon:"question",id:"generic",image:!0,keywords:[],name:"Generic",placeholder:"",points:!0,video:!0}},get_keywords:function(){var e=this.get("name");return[e].concat(this.get("keywords")).concat(e.split(" "))},get_choice_markers:function(){return this._get_choice_option("markers")},get_choice_selectable:function(){return this._get_choice_option("selectable")},get_choice_type:function(){return this._get_choice_option("type")},get_min_choices:function(){return this._get_choice_option("min")},get_max_choices:function(){return this._get_choice_option("max")},get_multi_choices:function(){return!!this.get("choices")&&this._get_choice_option("multi")},_get_choice_option:function(e){var t=this.get("choices");return!(!t||!t[e])&&t[e]}})}),n("Models/_Utilities",[],function(){return{fields:[],set:function(e,t){if("string"==typeof e){const i=e.match(/(.*?)\[(.*?)\]/);if(i&&3===i.length){const n=i[1],s=Backbone.Model.prototype.get.call(this,n);var o=void 0!==s?s:{};o[i[2]]=t,arguments[0]=n,arguments[1]=o}}Backbone.Model.prototype.set.apply(this,arguments)},get:function(e){const t=e.match(/(.*?)\[(.*?)\]/);if(t&&3===t.length){const i=Backbone.Model.prototype.get.call(this,t[1]);if(i&&void 0!==i[t[2]])return i[t[2]]}return Backbone.Model.prototype.get.call(this,e)},get_edit_post_link:function(){return this.has_temp_id()?"":window.llms_builder.admin_url+"post.php?post="+this.get("id")+"&action=edit"},get_view_post_link:function(){return this.has_temp_id()?"":this.get("permalink")?this.get("permalink"):"publish"===this.get("status")?window.llms_builder.home_url+"?p="+this.get("id"):window.llms_builder.home_url+"?p="+this.get("id")+"&preview=true&post_type="+this.get("type")},get_settings_fields:function(){var e=this.schema||{};return window.llms_builder.schemas.get(e,this.get("type").replace("llms_",""),this)},has_temp_id:function(){return!_.isNumber(this.get("id"))&&0===this.get("id").indexOf("temp_")},init_custom_schema:function(){var e=_.filter(this.get_settings_fields(),function(e){return e.custom});_.each(e,function(e){_.each(_.flatten(e.fields),function(e){var t=[e.attribute],i=this.get("custom");e.switch_attribute&&t.push(e.switch_attribute),_.each(t,function(t){var n=e.attribute_prefix?e.attribute_prefix+t:t;i&&i[n]&&this.set(t,i[n][0])},this)},this)},this)}}}),n("Models/Question",["Models/Image","Collections/Questions","Collections/QuestionChoices","Models/QuestionType","Models/_Relationships","Models/_Utilities"],function(e,t,i,n,s,o){return Backbone.Model.extend(_.defaults({relationships:{parent:{model:"llms_quiz",type:"model"},children:{choices:{class:"QuestionChoices",model:"choice",type:"collection"},image:{class:"Image",model:"image",type:"model"},questions:{class:"Questions",conditional:function(e){var t=e.get("question_type");return"group"===(_.isString(t)?t:t.get("id"))},model:"llms_question",type:"collection"},question_type:{class:"QuestionType",lookup:function(e){return _.isString(e)?window.llms_builder.questions.get(e):e},model:"question_type",type:"model"}}},defaults:function(){return{id:_.uniqueId("temp_"),choices:[],content:"",description_enabled:"no",image:{},multi_choices:"no",menu_order:1,points:1,question_type:"generic",questions:[],parent_id:"",title:"",type:"llms_question",video_enabled:"no",video_src:"",_expanded:!1}},initialize:function(e,t){var i=this;this.startTracking(),this.init_relationships(t),!1!==this.get("question_type").choices&&(this._ensure_min_choices(),this.listenTo(this.get("choices"),"remove",function(){setTimeout(function(){i._ensure_min_choices()},0)})),this.get("question_type").get("points")||this.set("points",0),_.delay(function(e){e.on("change:points",e.get_parent().update_points,e.get_parent())},1,this)},add_choice:function(e,t){var i=this.get("question_type").get_max_choices();if(!(this.get("choices").size()>=i)){e=e||{},t=t||{},e.choice_type=this.get("question_type").get_choice_type(),e.question_id=this.get("id"),t.parent=this;var n=this.get("choices").add(e,t);Backbone.pubSub.trigger("question-add-choice",n,this)}},before_save:function(e,t){return"full"===t&&(e.question_type=this.get("question_type").get("id")),e},get_parent:function(){var e=this.get_relationships();if(e.parent){if(this.collection&&this.collection.parent)return this.collection.parent;if(e.parent.reference)return e.parent.reference}return!1},get_l10n_type:function(e){return e?LLMS.l10n.translate("questions"):LLMS.l10n.translate("question")},get_type_index:function(){var e,t=this.get("question_type").get("id");return e=this.collection.filter(function(e){var i=e.get("question_type").get("id");return"content"!==t?"content"!==i:"content"===i}),e.indexOf(this)},get_type_iterator:function(){var e=this.get_type_index();if(-1===e)return"";if("content"===this.get("question_type").get("id")){return"ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("")[e]}return e+1},get_qid:function(){var e=this.get_parent_question(),t="";return e&&(t=e.get_qid()+"."),t+this.get_type_iterator()},get_parent_question:function(){return!!this.is_in_group()&&this.collection.parent},get_parent_quiz:function(){return this.get_parent()},get_points:function(){return this.get("question_type").get("points")?this.get("points"):0},get_points_percentage:function(){var e=this.get_parent().get("_points"),t=this.get("points");return 0===e?"0%":(t/e*100).toFixed(2)+"%"},is_in_group:function(){return"question"===this.collection.parent.get("type")},_ensure_min_choices:function(){for(var e=this.get("choices");e.size()"+LLMS.l10n.translate("Edit Course")+""}],[{label:LLMS.l10n.translate("Course Drip Method"),id:"course-drip",type:"heading",condition:function(){return!this.get_course()||"yes"!==this.get_course().get("lesson_drip")||!this.get_course().get("drip_method")},detail:LLMS.l10n.translate("Drip settings can be set at the course level to release course content at a specified interval, in the Restrictions settings tab.")+" "+LLMS.l10n.translate("Edit Course")+" "}],[{attribute:"drip_method",id:"drip-method",label:LLMS.l10n.translate("Drip Method"),switch_attribute:"drip_method",type:"select",condition:function(){return!this.get_course()||"yes"!==this.get_course().get("lesson_drip")||!this.get_course().get("drip_method")},options:function(){var e=[{key:"",val:LLMS.l10n.translate("None")},{key:"date",val:LLMS.l10n.translate("On a specific date")},{key:"enrollment",val:LLMS.l10n.translate("# of days after course enrollment")}];return this.get_course()&&this.get_course().get("start_date")&&e.push({key:"start",val:LLMS.l10n.translate("# of days after course start date")}),"yes"===this.get("has_prerequisite")&&e.push({key:"prerequisite",val:LLMS.l10n.translate("# of days after prerequisite lesson completion")}),e}},{attribute:"days_before_available",condition:function(){return(!this.get_course()||"yes"!==this.get_course().get("lesson_drip")||!this.get_course().get("drip_method"))&&-1!==["enrollment","start","prerequisite"].indexOf(this.get("drip_method"))},id:"days-before-available",label:LLMS.l10n.translate("# of days"),min:0,type:"number"},{attribute:"date_available",date_format:"Y-m-d",condition:function(){return(!this.get_course()||"yes"!==this.get_course().get("lesson_drip")||!this.get_course().get("drip_method"))&&"date"===this.get("drip_method")},id:"date-available",label:LLMS.l10n.translate("Date"),timepicker:"false",type:"datepicker"},{attribute:"time_available",condition:function(){return(!this.get_course()||"yes"!==this.get_course().get("lesson_drip")||!this.get_course().get("drip_method"))&&"date"===this.get("drip_method")},datepicker:"false",date_format:"h:i A",id:"time-available",label:LLMS.l10n.translate("Time"),type:"datepicker"}]]}})}),n("Models/Lesson",["Models/Quiz","Models/_Relationships","Models/_Utilities","Schemas/Lesson"],function(e,t,i,n){return Backbone.Model.extend(_.defaults({relationships:{parents:{model:"section",type:"model"},children:{quiz:{class:"Quiz",conditional:function(e){return"yes"===e.get("quiz_enabled")||!_.isEmpty(e.get("quiz"))},model:"llms_quiz",type:"model"}}},schema:n,defaults:function(){return{id:_.uniqueId("temp_"),title:LLMS.l10n.translate("New Lesson"),type:"lesson",order:this.collection?this.collection.length+1:1,parent_course:window.llms_builder.course.id,parent_section:"",edit_url:"",view_url:"",content:"",audio_embed:"",has_prerequisite:"no",require_passing_grade:"yes",require_assignment_passing_grade:"yes",video_embed:"",free_lesson:"",points:1,assignment:{},assignment_enabled:"no",quiz:{},quiz_enabled:"no",_forceSync:!1}},initialize:function(){this.init_custom_schema(),this.startTracking(),this.maybe_init_assignments(),this.init_relationships();var e=this.get("quiz");_.isEmpty(e)||e.get("lesson_id")||e.set("lesson_id",this.get("id")),window.llms.hooks.doAction("llms_lesson_model_init",this)},get_course:function(){return this.get_parent().get_course()},get_l10n_type:function(e){return e?LLMS.l10n.translate("lessons"):LLMS.l10n.translate("lesson")},get_parent:function(){var e=this.get_relationships();return e.parent&&e.parent.reference?e.parent.reference:!(!this.collection||!this.collection.parent)&&this.collection.parent},get_points_percentage:function(){var e=this.get_course().get_total_points(),t=1*this.get("points");return _.isNumber(t)||(t=0),0===e?"0%":(t/e*100).toFixed(2)+"%"},get_available_prereq_options:function(){var e=this.get_parent().collection.indexOf(this.get_parent()),t=this.collection.indexOf(this),i=[];return this.get_course().get("sections").each(function(n,s){if(s<=e){var o={label:LLMS.l10n.replace("Section %1$d: %2$s",{"%1$d":n.get("order"),"%2$s":n.get("title")}),options:[]};n.get("lessons").each(function(i,n){(s!==e||n=0)return this.collection.at(i);if(t){if("next"===e)return this.collection.first();if("prev"===e)return this.collection.last()}return!1}},t))}),n("Collections/Sections",["Models/Section"],function(e){return Backbone.Collection.extend({model:e,initialize:function(){this.on("reorder",this.update_order),this.on("add",this.update_order),this.on("remove",this.update_order)},update_order:function(){var e=this;this.each(function(t){t.set("order",e.indexOf(t)+1)})}})}),n("Collections/loader",["Collections/Lessons","Collections/QuestionChoices","Collections/Questions","Collections/QuestionTypes","Collections/Sections"],function(e,t,i,n,s){return{Lessons:e,QuestionChoices:t,Questions:i,QuestionTypes:n,Sections:s}}),n("Models/Abstract",["Models/_Relationships","Models/_Utilities"],function(e,t){return Backbone.Model.extend(_.defaults({},e,t))}),n("Models/Course",["Collections/Sections","Models/_Relationships","Models/_Utilities"],function(e,t,i){return Backbone.Model.extend(_.defaults({relationships:{children:{sections:{class:"Sections",model:"section",type:"collection"}}},defaults:function(){return{edit_url:"",sections:[],title:"New Course",type:"course",view_url:""}},initialize:function(){this.startTracking(),this.init_relationships(),Backbone.pubSub.on("add-new-section",this.add_section,this),Backbone.pubSub.on("add-new-lesson",this.add_lesson,this),Backbone.pubSub.on("lesson-search-select",this.add_existing_lesson,this)},add_existing_lesson:function(e){var t=e.data;"clone"===e.action?(delete t.id,t.quiz&&(t.quiz=_.prepareQuizObjectForCloning(t.quiz),t.quiz._questions_loaded=!0),window.llms_builder.assignments&&t.assignment&&(t.assignment=_.prepareAssignmentObjectForCloning(t.assignment))):t._forceSync=!0,delete t.order,delete t.parent_course,delete t.parent_section,t=_.prepareExistingPostObjectDataForAddingOrCloning(t),t=window.llms.hooks.applyFilters("llms_adding_existing_lesson_data",t,e.action,this),this.add_lesson(t)},add_lesson:function(e){e=e||{};var t,i={};e.parent_section?t=this.get("sections").get(e.parent_section):(t=this.get_selected_section())||(t=this.get("sections").last()),e._selected=!0,e.parent_course=this.get("id");var n=t.add_lesson(e,i);return Backbone.pubSub.trigger("new-lesson-added",n),t.set("_expanded",!0),n},add_section:function(e){e=e||{};var t=this.get("sections"),i={},n=this.get_selected_section();n&&(i.at=t.indexOf(n)+1),t.add(e,i)},get_selected_section:function(){return this.get("sections").find(function(e){return e.get("_selected")})},get_total_points:function(){var e=0;return this.get("sections").each(function(t){t.get("lessons").each(function(t){var i=t.get("points");_.isNumber(i)||(i=0),e+=1*i})}),e}},t,i))}),n("Models/loader",["Models/Abstract","Models/Course","Models/Image","Models/Lesson","Models/Question","Models/QuestionChoice","Models/QuestionType","Models/Quiz","Models/Section"],function(e,t,i,n,s,o,l,r,a){return{Abstract:e,Course:t,Image:i,Lesson:n,Question:s,QuestionChoice:o,QuestionType:l,Quiz:r,Section:a}}),n("Views/_Detachable",[],function(){return{events:{'click a[href="#llms-detach-model"]':"detach_model","click button.llms-detach-model":"detach_model"},detach_model:function(e){e&&(e.preventDefault(),e.stopPropagation());var t=LLMS.l10n.replace("Are you sure you want to detach this %s?",{"%s":this.model.get_l10n_type()});window.confirm(t)&&(this.model.collection&&this.model.collection.remove(this.model),Backbone.pubSub.trigger("model-detached",this.model),this.trigger("model-trashed",this.model))}}}),n("Views/_Editable",[],function(){return{media_lib:null,events:{"click .llms-add-image":"open_media_lib",'click a[href="#llms-edit-slug"]':"make_slug_editable",'click a[href="#llms-remove-image"]':"remove_image","change .llms-editable-select select":"on_select",'change .llms-switch input[type="checkbox"]':"toggle_switch","change .llms-editable-radio input":"on_radio_select","focusin .llms-input":"on_focus","focusout .llms-input":"on_blur","keydown .llms-input":"on_keydown",'input .llms-input[type="number"]':"on_blur","paste .llms-input[data-formatting]":"on_paste"},get_allowed_tags:function(e){return e.attr("data-formatting")?_.map(e.attr("data-formatting").split(","),function(e){return e.trim()}):["b","i","u","strong","em"]},get_content:function(e){return"INPUT"===e[0].tagName?e.val():e.attr("data-formatting")||e.hasClass("ql-editor")?_.stripFormatting(e.html(),this.get_allowed_tags(e)):e.text()},has_changed:function(t){var i=e(t.target);return i.attr("data-original-content")!==this.get_content(i)},is_valid:function(t){var i=this,n=e(t.target),s=this.get_content(n),o=n.attr("data-type");if((n.attr("required")||n.attr("data-required"))&&s.length<1)return!1;if("url"===o||"video"===o){if(!this._validate_url(this.get_content(n)))return!1}else"permalink"===o&&LLMS.Ajax.call({data:{action:"llms_builder",action_type:"get_permalink",course_id:window.llms_builder.CourseModel.get("id"),id:i.model.get("id"),title:i.model.get("title"),slug:s},beforeSend:function(){LLMS.Spinner.start(n.closest(".llms-editable-toggle-group"),"small")},success:function(e){e.permalink&&e.slug&&(i.model.set("permalink",e.permalink),i.model.set("name",e.slug),i.render())}});return!0},init_datepickers:function(){this.$el.find(".llms-editable-date input").each(function(){e(this).datetimepicker({format:e(this).attr("data-date-format")||"Y-m-d h:i A",datepicker:void 0===e(this).attr("data-date-datepicker")||"true"==e(this).attr("data-date-datepicker"),timepicker:void 0===e(this).attr("data-date-timepicker")||"true"==e(this).attr("data-date-timepicker"),onClose:function(e,t){t.blur()}})})},init_formatting_els:function(){var t=this;this.$el.find(".llms-input-formatting[data-formatting]").each(function(){var i=e(this).attr("data-formatting").split(","),n=e(this).attr("data-attribute"),s=new Quill(this,{modules:{toolbar:[i],keyboard:{bindings:{tab:{key:9,handler:function(e,t){return!0}},13:{key:13,handler:function(e,t){return s.root.blur(),!1}}}}},placeholder:e(this).attr("data-placeholder"),theme:"bubble"});s.on("text-change",function(i,o,l){t.model.set(n,t.get_content(e(s.root)))}),Backbone.pubSub.trigger("formatting-ed-init",s,e(this),t)})},init_selects:function(){this.$el.find(".llms-editable-select select").llmsSelect2({width:"100%"}).trigger("change")},on_blur:function(t){t.stopPropagation(),this.model.set("_has_focus",!1,{silent:!0});var i=this;e(t.target);this.has_changed(t)&&(i.is_valid(t)?this.save_edits(t):i.revert_edits(t))},on_focus:function(e){e.stopPropagation(),this.model.set("_has_focus",!0,{silent:!0})},on_paste:function(e){e.preventDefault(),e.stopPropagation();var t=(e.originalEvent||e).clipboardData.getData("text/plain");window.document.execCommand("insertText",!1,t)},on_select:function(t){var i,n=e(t.target),s=n.attr("multiple"),o=n.attr("name"),l=n.find("option:selected");s?(i=[],i=l.map(function(){return this.value}).get()):i=l[0].value,this.model.set(o,i)},on_radio_select:function(t){var i=e(t.target),n=i.attr("name"),s=i.val();this.model.set(n,s)},on_keydown:function(e){e.stopPropagation();var t=e.which||e.keyCode,i=e.shiftKey;switch(t){case 13:i||(e.preventDefault(),e.target.blur());break;case 27:e.preventDefault(),this.revert_edits(e),e.target.blur()}},open_media_lib:function(t){t.stopPropagation();var i=this,n=e(t.currentTarget);i.media_lib?i.media_lib.uploader.uploader.param("post_id"):(i.media_lib=wp.media.frames.file_frame=wp.media({title:LLMS.l10n.translate("Select an image"),button:{text:LLMS.l10n.translate("Use this image")},multiple:!1}),i.media_lib.on("select",function(){var e,t=n.attr("data-image-size"),s=i.media_lib.state().get("selection").first().toJSON(),o=i.model.get(n.attr("data-attribute"));e=t&&s.sizes[t]?s.sizes[t].url:s.url,o.set({id:s.id,src:e})})),i.media_lib.uploader.options.uploader.params.llms=1,i.media_lib.open()},remove_image:function(t){t.preventDefault(),
+this.model.get(e(t.currentTarget).attr("data-attribute")).set({id:"",src:""})},revert_edits:function(t){var i=e(t.target),n=i.attr("data-original-content");i.html(n)},save_edits:function(t){var i=e(t.target),n=this.get_content(i);this.model.set(i.attr("data-attribute"),n)},toggle_switch:function(t){t.stopPropagation();var i,n=e(t.target),s=n.attr("name"),o=n.attr("data-rerender");if(i=n.is(":checked")?n.attr("data-on")?n.attr("data-on"):"yes":n.attr("data-off")?n.attr("data-off"):"no",-1!==s.indexOf(".")){var l=s.split(".");"parent"===l[0]?this.model.get_parent().set(l[1],i):this.model.get(l[0]).set(l[1],i)}else this.model.set(s,i);if(this.trigger(s.replace(".","-")+"_toggle",i),!o||"yes"===o){var r=this;setTimeout(function(){r.render()},100)}},init_editor:function(t,i){i=i||{};var n=_.getEditor();n.remove(t),n.initialize(t,e.extend(!0,n.getDefaultSettings(),{mediaButtons:!0,tinymce:{toolbar1:"bold,italic,strikethrough,bullist,numlist,blockquote,hr,alignleft,aligncenter,alignright,link,unlink,wp_adv",toolbar2:"formatselect,underline,alignjustify,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help",setup:_.bind(this.on_editor_ready,this)}},i))},make_slug_editable:function(t){var i=e(t.currentTarget),n=i.prevAll("a"),s=i.prev("input.permalink"),o=n.attr("href"),l=s.val(),r=o.replace(l,"");i.hide(),n.css({color:"#999","pointer-events":"none","text-decoration":"none"}),n.text(r.substring(0,r.length-1)),s.show().focus()},on_editor_ready:function(t){var i=this,n=e("#"+t.id),s=n.closest(".llms-editable-editor"),o=s.find(".llms-label"),l=n.attr("data-attribute");o.length&&o.prependTo(s.find(".wp-editor-tools")),t.on("change",function(e){i.model.set(l,_.getEditor().getContent(t.id))}),n.on("input",function(e){i.model.set(l,n.val())}),s.on("click",".quicktags-toolbar .ed_button",function(){setTimeout(function(){n.trigger("input")},10)})},_validate_url:function(e){var t=document.createElement("a");return t.href=e,t.host&&t.host!==window.location.host}}}),n("Views/_Receivable",[],function(){return{_receive:function(e,t){if(t.sender.hasClass("ui-draggable")){var i=this._getContainerEl().children().index(t.helper);return t.helper.remove(),void this.collection.add({},{at:i})}var n=t.sender,s=n.data("view");if(s&&s.collection){var o=this._getContainerEl().children().index(t.item),l=s.collection.get(t.item.attr("data-model-cid"));s.collection.remove(l),this.collection.add(l,{at:o}),l.collection=this.collection,this.setSelectedModel(l)}}}}),n("Views/_Shiftable",[],function(){return{maybe_hide_shiftable_buttons:function(){if(this.model.collection){var e=this.model.get("type");this.model.collection.first()===this.model?this.$el.find(".shift-up--"+e).hide():this.model.collection.last()===this.model&&this.$el.find(".shift-down--"+e).hide()}},shift:function(e,t){var i=this.model.collection;i.remove(this.model),i.add(this.model,{at:t}),i.trigger("reorder")},shift_down:function(e){e.preventDefault();var t=this.model.collection.indexOf(this.model);this.shift(t,t+1)},shift_up:function(e){e.preventDefault();var t=this.model.collection.indexOf(this.model);this.shift(t,t-1)}}}),n("Views/_Subview",[],function(){return{subscriptions:{},state:"",views:{},get_subview:function(e){return!!this.views[e]&&this.views[e]},events_subscribe:function(e){_.each(e,function(e,t){this.subscriptions[t]=e,Backbone.pubSub.on(t,e,this)},this)},events_unsubscribe:function(){_.each(this.subscriptions,function(e,t){Backbone.pubSub.off(t,e,this),delete this.subscriptions[t]},this)},remove_subview:function(e){var t=this.get_subview(e);t&&t.instance&&(_.isEmpty(t.instance.views)||(t.instance.events_unsubscribe(),t.instance.remove_subviews()),t.instance.off(),t.instance.off(null,null,null),t.instance.remove(),t.instance.undelegateEvents(),t.instance=null)},remove_subviews:function(){_.each(this.views,function(e,t){this.remove_subview(t)},this)},render_subviews:function(e){e=e||{},_.each(this.views,function(t,i){this.state===t.state?this.render_subview(i,e):this.remove_subview(i)},this)},render_subview:function(e,t){var i=this.get_subview(e);i&&(this.remove_subview(e),i.instance||(i.instance=new i.class(t)),i.instance.render())},set_state:function(e){return this.state=e,this}}}),n("Views/_Trashable",[],function(){return{events:{'click a[href="#llms-trash-model"]':"trash_model","click button.llms-trash-model":"trash_model"},trash_model:function(e){e&&(e.preventDefault(),e.stopPropagation());var t=LLMS.l10n.replace("Are you sure you want to move this %s to the trash?",{"%s":this.model.get_l10n_type()});window.confirm(t)&&(this.model.collection&&this.model.collection.remove(this.model),Backbone.pubSub.trigger("model-trashed",this.model),this.trigger("model-trashed",this.model))}}}),n("Views/_loader",["Views/_Detachable","Views/_Editable","Views/_Receivable","Views/_Shiftable","Views/_Subview","Views/_Trashable"],function(e,t,i,n,s,o){return{Detachable:e,Editable:t,Receivable:i,Shiftable:n,Subview:s,Trashable:o}}),n("Controllers/Construct",["Collections/loader","Models/loader","Views/_loader"],function(e,t,i){return function(){function n(e,t,i,n){return e[t]?new e[t](i,n):(console.log('"'+t+'" not found.'),!1)}return this.get_collection=function(t,i,s){return n(e,t,i,s)},this.get_model=function(e,i,s){return n(t,e,i,s)},this.extend_view=function(){for(var e=arguments[0],t=1;arguments[t];){var n=arguments[t];i[n]&&(e.events&&i[n].events&&(e.events=_.defaults(e.events,i[n].events)),e=_.defaults(e,i[n])),t++}return Backbone.View.extend(e)},this.register_collection=function(t,i){e[t]=Backbone.Collection.extend(i)},this.register_model=function(e,i){t[e]=t.Abstract.extend(i)},this}}),n("Controllers/Debug",[],function(){return function(e){var t=this,i=e.enabled||!1;this.disable=function(){t.log("LifterLMS Builder debugging disabled"),i=!1},this.enable=function(){i=!0,t.log("LifterLMS Builder debugging enabled")},this.log=function(){i&&_.each(arguments,function(e){console.log(e)})},this.toggle=function(){i?t.disable():t.enable()},i&&t.enable()}}),n("Controllers/Schemas",[],function(){return function(e){var t=e;return _.each(t,function(e){_.each(e,function(e){e.custom=!0})}),this.get=function(e,i,n){return t[i]&&(e=_.extend(e,t[i])),e},this}}),n("Controllers/Sync",[],function(){return function(t,i){function n(e,t){return"success"===e.status&&(e.message=[]),e.status="error","string"==typeof t&&(t=[t]),e.message=e.message.concat(t),e}function s(){var e={};e.changes=p.get_unsaved_changes(),e.has_unsaved_changes=p.has_unsaved_changes(e.changes),e.saving=p.saving,window.llms_builder.debug.log("==== start changes check ====",e,"==== finish changes check ===="),Backbone.pubSub.trigger("current-save-status",e)}function o(){if(!p.saving){var e=p.get_unsaved_changes();p.has_unsaved_changes(e)&&(e.id=t.get("id"),LLMS.Ajax.call({data:{action:"llms_builder",action_type:"ajax_save",course_id:e.id,llms_builder:JSON.stringify(e)},beforeSend:function(){window.llms_builder.debug.log("==== start do_ajax_save before ====",e,"==== finish do_ajax_save before ===="),p.saving=!0,Backbone.pubSub.trigger("heartbeat-send",p)},error:function(e,t,i){window.llms_builder.debug.log("==== start do_ajax_save error ====",e,"==== finish do_ajax_save error ===="),p.saving=!1,Backbone.pubSub.trigger("heartbeat-tick",p,{status:"error",message:e.responseText+" ("+i+" "+t+")"})},success:function(e){e.llms_builder&&(window.llms_builder.debug.log("==== start do_ajax_save success ====",e,"==== finish do_ajax_save success ===="),e.llms_builder=d(e.llms_builder),e.llms_builder=h(e.llms_builder),p.saving=!1,Backbone.pubSub.trigger("heartbeat-tick",p,e.llms_builder))}}))}}function l(e){var t,i={};if(e.get("_has_focus"))return i;a(e)||!0===e.get("_forceSync")?(i=_.clone(e.attributes),t="full"):(i=e.unsavedAttributes(),t="partial");var n=e.get_relationships?e.get_child_props():[];return i=_.omit(i,function(e,t){return 0===t.indexOf("_")||-1!==n.indexOf(t)}),e.before_save&&(i=e.before_save(i,t)),i}function r(e){var t;return e instanceof Backbone.Model?(t=l(e),e.get_relationships&&_.each(e.get_child_props(),function(i){var n=r(e.get(i));_.isEmpty(n)||(t[i]=n)}),_.isEmpty(t)||(t.id=e.get("id"))):e instanceof Backbone.Collection&&(t=[],e.each(function(e){var i=r(e);_.isEmpty(i)||t.push(i)})),t}function a(e){return!_.isNumber(e.id)&&0===e.id.indexOf("temp_")}function c(e,t){Backbone.pubSub.trigger(e.get("type")+"-maybe-restart-tracking",e,t);var i=["id","orig_id"];e.get_relationships&&i.concat(e.get_child_props()),_.each(_.omit(t,i),function(t,i){_.isEqual(e.get(i),t)&&(delete e._unsavedChanges[i],e._originalAttrs[i]=t)}),e.unset("_forceSync")}function d(e){var t={detach:b,trash:v};return _.each(t,function(t,i){if(e[i]){var s=[];_.each(e[i],function(e){e.error?s.push(e.error):t.remove(e.id)}),s.length&&_.extend(e,n(e,s))}}),e}function u(e,t,i,s){if(!e[t])return e;if(i.get(t)instanceof Backbone.Model){var o=e[t];if(o.error)_.extend(s,n(s,o.error));else{var l=i.get(t);o.id!=o.orig_id&&(l.set("id",o.id),delete l._unsavedChanges.id),c(l,o),l.get_relationships&&_.each(l.get_child_props(),function(i){_.extend(e[t],u(e[t],i,l,s))})}}else i.get(t)instanceof Backbone.Collection&&_.each(e[t],function(o,l){if(o.error)_.extend(s,n(s,o.error));else{var r=i.get(t).get(o.orig_id);o.id!=o.orig_id&&(r.set("id",o.id),delete r._unsavedChanges.id),c(r,o),r.get_relationships&&_.each(r.get_child_props(),function(i){_.extend(e[t],u(e[t][l],i,r,s))})}});return s}function h(e){return e.updates?(e.updates&&(e=u(e.updates,"sections",t,e)),e):e}this.saving=!1;var p=this,g="yes"===window.llms_builder.autosave,m=null,f=i.check_interval_ms||("yes"===window.llms_builder.autosave?1e4:1e3),b=new Backbone.Collection,v=new Backbone.Collection;return this.get_unsaved_changes=function(){return{detach:b.pluck("id"),trash:v.pluck("id"),updates:r(t)}},this.has_unsaved_changes=function(e){return void 0===e&&(e=p.get_unsaved_changes()),!!_.find(e,function(e){return!1===_.isEmpty(e)})},this.save_now=function(){g?wp.heartbeat.connectNow():o()},this.set_check_interval=function(e){f=e,m&&clearInterval(m),f&&(m=setInterval(s,f))},Backbone.pubSub.on("model-detached",function(e){a(e)||b.add(_.clone(e.attributes))}),Backbone.pubSub.on("model-trashed",function(e){if(!a(e)){var t=_.clone(e.attributes);e.get_trash_id&&(t.id=e.get_trash_id()),v.add(t)}}),e(document).on("heartbeat-send",function(e,i){if(g&&!p.saving){var n=p.get_unsaved_changes();p.has_unsaved_changes(n)&&(n.id=t.get("id"),p.saving=!0,i.llms_builder=JSON.stringify(n)),window.llms_builder.debug.log("==== start heartbeat-send ====",i,"==== finish heartbeat-send ===="),Backbone.pubSub.trigger("heartbeat-send",p)}}),e(document).on("heartbeat-tick",function(e,t){g&&t.llms_builder&&(window.llms_builder.debug.log("==== start heartbeat-tick ====",t,"==== finish heartbeat-tick ===="),t.llms_builder=d(t.llms_builder),t.llms_builder=h(t.llms_builder),p.saving=!1,Backbone.pubSub.trigger("heartbeat-tick",p,t.llms_builder))}),e(document).on("heartbeat-error",function(e,t){g&&(window.llms_builder.debug.log("==== start heartbeat-error ====",t,"==== finish heartbeat-error ===="),p.saving=!1,Backbone.pubSub.trigger("heartbeat-tick",p,{status:"error",message:t.responseText+" ("+t.status+" "+t.statusText+")"}))}),function(){void 0===wp.heartbeat&&(window.llms_builder.debug.log("WordPress Heartbeat disabled. Autosaving is disabled!"),g=!1),f&&p.set_check_interval(f),e(window).on("beforeunload",function(){if(p.has_unsaved_changes())return s(),"Are you sure you want to abandon your changes?"})}(),this}}),n("Views/Lesson",["Views/_Detachable","Views/_Editable","Views/_Shiftable","Views/_Trashable"],function(e,t,i,n){return Backbone.View.extend(_.defaults({attributes:function(){return{"data-id":this.model.id,"data-section-id":this.model.get("parent_section")}},className:"llms-builder-item llms-lesson",events:_.defaults({"click .edit-lesson":"open_lesson_editor","click .llms-headline":"open_lesson_editor","click .edit-quiz":"open_quiz_editor","click .edit-assignment":"open_assignment_editor","click .section-prev":"section_prev","click .section-next":"section_next","click .shift-up--lesson":"shift_up","click .shift-down--lesson":"shift_down"},e.events,t.events,n.events),id:function(){return"llms-lesson-"+this.model.id},tagName:"li",template:wp.template("llms-lesson-template"),initialize:function(){this.render(),this.listenTo(this.model,"change",this.render),Backbone.pubSub.on("lesson-selected",this.on_select,this),Backbone.pubSub.on("new-lesson-added",this.on_select,this)},render:function(){return this.$el.html(this.template(this.model)),this.maybe_hide_shiftable_buttons(),this.model.get("_selected")?this.$el.addClass("selected"):this.$el.removeClass("selected"),this},open_assignment_editor:function(e){e&&e.preventDefault(),Backbone.pubSub.trigger("lesson-selected",this.model,"assignment"),this.model.set("_selected",!0),this.set_hash("assignment")},open_lesson_editor:function(e){e&&e.preventDefault(),Backbone.pubSub.trigger("lesson-selected",this.model,"lesson"),this.model.set("_selected",!0),this.set_hash(!1)},open_quiz_editor:function(e){e&&e.preventDefault(),Backbone.pubSub.trigger("lesson-selected",this.model,"quiz"),this.model.set("_selected",!0),this.set_hash("quiz")},on_select:function(e){this.model.id!==e.id&&this.model.set("_selected",!1)},section_next:function(e){e.preventDefault(),this._move_to_section("next")},section_prev:function(e){e.preventDefault(),this._move_to_section("prev")},set_hash:function(e){var t="lesson:"+this.model.get("id");e&&(t+=":"+e),window.location.hash=t},_move_to_section:function(e){var t,i=this.model.collection;"next"===e?t=i.parent.get_next():"prev"===e&&(t=i.parent.get_prev()),t&&(i.remove(this.model),t.add_lesson(this.model),t.set("_expanded",!0))}},e,t,i,n))}),n("Views/LessonList",["Views/Lesson","Views/_Receivable"],function(t,i){return Backbone.CollectionView.extend(_.defaults({className:"llms-lessons",modelView:t,selectable:!1,sortable:!0,sortableOptions:{axis:!1,connectWith:".llms-lessons",cursor:"move",handle:".drag-lesson",items:".llms-lesson",placeholder:"llms-lesson llms-sortable-placeholder"},sortable_start:function(t){e(".llms-lessons").addClass("dragging")},sortable_stop:function(t){e(".llms-lessons").removeClass("dragging")},_sortStop:function(e,t){var i=this.collection.get(t.item.attr("data-model-cid")),n=this._getContainerEl(),s=n.children().index(t.item);-1==s&&i&&this.collection.remove(i),this._reorderCollectionBasedOnHTML(),this.updateDependentControls(),this._isBackboneCourierAvailable()?this.spawn("sortStop",{modelBeingSorted:i,newIndex:s}):this.trigger("sortStop",i,s)}},i))}),n("Views/Section",["Views/LessonList","Views/_Editable","Views/_Shiftable","Views/_Trashable"],function(t,i,n,s){return Backbone.View.extend(_.defaults({attributes:function(){return{"data-id":this.model.id}},className:"llms-builder-item llms-section",events:_.defaults({click:"select","click .expand":"expand","click .collapse":"collapse","click .shift-up--section":"shift_up","click .shift-down--section":"shift_down","click .new-lesson":"add_new_lesson","click .llms-builder-header":"toggle","mouseenter .llms-lessons":"on_mouseenter"},i.events,s.events),id:function(){return"llms-section-"+this.model.id},tagName:"li",template:wp.template("llms-section-template"),initialize:function(){this.render(),this.listenTo(this.model,"change",this.render),this.listenTo(this.model,"change:_expanded",this.toggle_expanded),this.lessonListView.collection.on("add",this.on_lesson_add,this),this.dragTimeout=null,Backbone.pubSub.on("expand-all",this.expand,this),Backbone.pubSub.on("collapse-all",this.collapse,this)},render:function(){return this.$el.html(this.template(this.model.toJSON())),this.maybe_hide_shiftable_buttons(),this.lessonListView=new t({el:this.$el.find(".llms-lessons"),collection:this.model.get("lessons")}),this.lessonListView.render(),this.lessonListView.on("sortStart",this.lessonListView.sortable_start),this.lessonListView.on("sortStop",this.lessonListView.sortable_stop),this.lessonListView.on("selectionChanged",this.active_lesson_change,this),this.maybe_hide_trash_button(),this},add_new_lesson:function(e){e.preventDefault(),Backbone.pubSub.trigger("section-select",this.model),Backbone.pubSub.trigger("add-new-lesson")},active_lesson_change:function(e,t){Backbone.pubSub.trigger("active-lesson-change",{current:e,previous:t})},toggle:function(e,t){"llms-builder-header"===e.target.className&&(this.model.get("_expanded")?this.collapse(e,t):this.expand(e,t))},collapse:function(e,t){void 0===t&&(t=!0),e&&(e.stopPropagation(),e.preventDefault()),this.$el.removeClass("expanded").find(".drag-expanded").removeClass("drag-expanded"),t&&this.model.set("_expanded",!1),Backbone.pubSub.trigger("section-toggle",this.model)},expand:function(e,t){void 0===t&&(t=!0),e&&(e.stopPropagation(),e.preventDefault()),this.$el.addClass("expanded"),t&&this.model.set("_expanded",!0),Backbone.pubSub.trigger("section-toggle",this.model)},maybe_hide_trash_button:function(){var e=this.$el.find(".trash--section");this.model.get("lessons").isEmpty()?e.show():e.hide()},on_lesson_add:function(e){this.lessonListView.collection.trigger("reorder"),e.set("parent_section",this.model.get("id")),this.expand()},on_mouseenter:function(t){e(t.target).hasClass("dragging")&&(e(".drag-expanded").removeClass("drag-expanded"),e(t.target).addClass("drag-expanded"))},toggle_expanded:function(e,t){t?this.expand(null,!1):this.collapse(null,!1)}},i,n,s))}),n("Views/SectionList",["Views/Section","Views/_Receivable"],function(e,t){return Backbone.CollectionView.extend(_.defaults({el:"#llms-sections",events:{"mousedown > li.llms-section > .llms-builder-header .llms-headline":"_listItem_onMousedown",click:"_listBackground_onClick","click ul.collection-view":"_listBackground_onClick",keydown:"_onKeydown"},modelView:e,processKeyEvents:!1,selectable:!0,sortable:!0,sortableOptions:{axis:!1,cursor:"move",handle:".drag-section",items:".llms-section",placeholder:"llms-section llms-sortable-placeholder"},sortable_start:function(e){this.$el.addClass("dragging")},sortable_stop:function(e){this.$el.removeClass("dragging")}},t))}),n("Views/Course",["Views/SectionList","Views/_Detachable","Views/_Editable","Views/_Shiftable","Views/_Trashable"],function(e,t,i,n,s){return Backbone.View.extend(_.defaults({attributes:function(){return{"data-id":this.model.id}},el:"#llms-builder-main",tagName:"div",template:wp.template("llms-course-template"),initialize:function(){this.render(),this.sectionListView=new e({collection:this.model.get("sections")}),this.sectionListView.render(),this.sectionListView.on("sortStart",this.sectionListView.sortable_start),this.sectionListView.on("sortStop",this.sectionListView.sortable_stop),this.sectionListView.on("selectionChanged",this.active_section_change),this.listenTo(this.model.get("sections"),"add",this.on_section_add),Backbone.pubSub.on("section-toggle",this.on_section_toggle,this),Backbone.pubSub.on("section-select",this.on_section_select,this),Backbone.pubSub.on("expand-section",this.expand_section,this),Backbone.pubSub.on("lesson-selected",this.active_lesson_change,this)},events:_.defaults({"click .new-section":"add_new_section"},t.events,i.events,s.events),render:function(){return this.$el.html(this.template(this.model)),this},active_lesson_change:function(e){var t=this.model.get("sections").get(e.get("parent_section"));this.sectionListView.setSelectedModel(t)},active_section_change:function(e,t){_.each(e,function(e){e.set("_selected",!0)}),_.each(t,function(e){e.set("_selected",!1)})},on_section_add:function(e){this.sectionListView.setSelectedModel(e)},on_section_toggle:function(e){var t=e.get("_expanded")?[e]:[];this.sectionListView.setSelectedModels(t)},on_section_select:function(e){this.sectionListView.setSelectedModel(e)},add_new_section:function(e){e.preventDefault(),Backbone.pubSub.trigger("add-new-section")}},i))}),n("Views/SettingsFields",[],function(){return Backbone.View.extend(_.defaults({events:{"click .llms-settings-group-toggle":"toggle_group"},fields:{},tagName:"div",template:wp.template("llms-settings-fields-template"),get_editor_fields:function(){return _.filter(this.fields,function(e){return this.is_editor_field(e.type)},this)},get_groups:function(){return this.model.get_settings_fields()},is_group_hidden:function(e){var t="llms-"+this.model.get("type")+"-settings-group--"+e;return"undefined"!==window.localStorage&&"hidden"===window.localStorage.getItem(t)},get_switch_attribute:function(e){return e.switch_attribute?e.switch_attribute:e.attribute},has_switch:function(e){return-1!==e.indexOf("switch")},is_default_field:function(e){return-1!==["audio_embed","datepicker","number","text","video_embed"].indexOf(e.replace("switch-",""))},is_editor_field:function(e){return-1!==["editor","switch-editor"].indexOf(e.replace("switch-",""))},is_switch_condition_met:function(e){return e.switch_on===this.model.get(e.switch_attribute)},render:function(){return this.$el.html(this.template(this)),_.each(this.get_editor_fields(),function(e){this.render_editor(e)},this),this},render_editor:function(t){var i=this,n=_.getEditor();if(void 0===n)return void console.error("Unable to access `wp.oldEditor` or `wp.editor`.");n.remove(t.id),t.settings.tinymce.setup=function(t){var s=e("#"+t.id),o=s.closest(".llms-editable-editor"),l=o.find(".llms-label"),r=s.attr("data-attribute");l.length&&l.prependTo(o.find(".wp-editor-tools")),t.on("change",function(e){i.model.set(r,n.getContent(t.id))}),s.on("input",function(e){i.model.set(r,s.val())}),o.on("click",".quicktags-toolbar .ed_button",function(){setTimeout(function(){s.trigger("input")},10)})},n.initialize(t.id,t.settings)},render_select_options:function(e,t){function i(e,t){return'"+e.substring(0,100)+(e.length>100?"...":"")+" "}var n="",s=this.model.get(t);return _.each(e,function(e,s){"string"==typeof e?n+=i(e,s):"object"==typeof e&&(e.label&&e.options?(n+='',n+=this.render_select_options(e.options,t)):n+=i(e.val,e.key))},this),n},setup_field:function(t,i){var n={classes:[],id:_.uniqueId(t.attribute+"_"),input_type:"text",label:"",options:{},placeholder:"",tip:"",tip_position:"top-right",settings:{}};if(t.condition&&!1===_.bind(t.condition,this.model)())return!1;switch(t.type){case"audio_embed":n.classes.push("llms-editable-audio"),n.placeholder="https://",n.tip=LLMS.l10n.translate("Use SoundCloud or Spotify audio URLS."),n.input_type="url";break;case"datepicker":n.classes.push("llms-editable-date");break;case"editor":case"switch-editor":var s=t.settings||{};n.settings=e.extend(!0,_.getEditor().getDefaultSettings(),{mediaButtons:!0,tinymce:{toolbar1:"bold,italic,strikethrough,bullist,numlist,blockquote,hr,alignleft,aligncenter,alignright,link,unlink,wp_adv",toolbar2:"formatselect,underline,alignjustify,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help"}},s);break;case"number":case"switch-number":n.input_type="number";break;case"permalink":n.label=LLMS.l10n.translate("Permalink");break;case"video_embed":n.classes.push("llms-editable-video"),n.placeholder="https://",n.tip=LLMS.l10n.translate("Use YouTube, Vimeo, or Wistia video URLS."),n.input_type="url"}this.has_switch(t.type)&&(n.switch_on="yes",n.switch_off="no");var o=_.defaults(_.deepClone(t),n);if(_.isFunction(o.options)&&(o.options=_.bind(o.options,this.model)()),-1!==["radio","switch-radio"].indexOf(t.type)){var l=!1;_.each(t.options,function(e,t){-1===e.indexOf(".png")&&-1===e.indexOf(".jpg")||(o.options[t]=' ',l=!0)}),l&&o.classes.push("has-images")}return o.classes.length&&(o.classes=" "+o.classes.join(" ")),this.fields[o.id]=o,o},should_rerender_on_toggle:function(e){return-1!==e.indexOf("switch-")?"yes":"no"},toggle_group:function(t){t.preventDefault();var i=e(t.currentTarget),n=i.closest(".llms-model-settings");if(n.toggleClass("hidden"),"undefined"!==window.localStorage){var s=n.attr("id");n.hasClass("hidden")?window.localStorage.setItem(s,"hidden"):window.localStorage.removeItem(s)}}}))}),n("Views/LessonEditor",["Views/_Detachable","Views/_Editable","Views/_Trashable","Views/_Subview","Views/SettingsFields"],function(e,t,i,n,s){return Backbone.View.extend(_.defaults({state:"default",views:{settings:{class:s,instance:null,state:"default"}},el:"#llms-editor-lesson",events:_.defaults({},e.events,t.events,i.events),template:wp.template("llms-lesson-settings-template"),initialize:function(e){this.model=e.lesson;var t=window.llms.hooks.applyFilters("llms_lesson_rerender_change_events",["change:date_available","change:drip_method","change:time_available"]);_.each(t,function(e){this.listenTo(this.model,e,this.render)},this),this.listenTo(this.model,"change:points",this.render_points_percentage),this.listenTo(this.model,"change:has_prerequisite",function(e,t){"yes"===t&&this.$el.find('select[name="prerequisite"]').trigger("change")})},render:function(){return this.$el.html(this.template(this.model)),this.remove_subview("settings"),this.render_subview("settings",{el:"#llms-lesson-settings-fields",model:this.model}),this.init_datepickers(),this.init_selects(),this.render_points_percentage(),this},render_points_percentage:function(){this.$el.find("#llms-model-settings-field--points .llms-editable-input").addClass("tip--top-left").attr("data-tip",this.model.get_points_percentage())}},e,t,i,n,s))}),n("Views/Popover",[],function(){return Backbone.View.extend({defaults:{placement:"auto",width:"auto",trigger:"manual",style:"light",animation:"pop",title:"",content:"",closeable:!1,backdrop:!1,onShow:function(e){},onHide:function(e){}},tagName:"div",initialize:function(t){this.$el.length&&(this.defaults.container=this.$el.parent()),this.args=_.defaults(t.args,this.defaults),e("body").hasClass("rtl")&&(-1!==this.args.placement.indexOf("left")?this.args.placement=this.args.placement.replace("left","right"):-1!==this.args.placement.indexOf("right")&&(this.args.placement=this.args.placement.replace("right","left"))),this.render()},render:function(){return this.$el.webuiPopover(this.args),this},hide:function(){return this.$el.webuiPopover("hide"),this},show:function(){return this.$el.webuiPopover("show"),this}})}),n("Views/PostSearch",[],function(){return Backbone.View.extend({events:{"select2:select":"add_post"},tagName:"select",initialize:function(e){this.post_type=e.post_type,this.searching_message=e.searching_message||LLMS.l10n.translate("Searching...")},add_post:function(e){var t=this.$el.attr("data-post-type");Backbone.pubSub.trigger(t.replace("llms_","")+"-search-select",e.params.data,e),this.$el.val(null).trigger("change")},render:function(){var t=this;return setTimeout(function(){t.$el.llmsSelect2({ajax:{dataType:"JSON",delay:250,method:"POST",url:window.ajaxurl,data:function(e){return{action:"llms_builder",action_type:"search",course_id:window.llms_builder.course.id,post_type:t.post_type,term:e.term,page:e.page,_ajax_nonce:window.llms.ajax_nonce}}},dropdownParent:e(".wrap.lifterlms.llms-builder"),escapeMarkup:function(e){return e},placeholder:t.searching_message,templateResult:t.render_result,width:"100%"}),t.$el.attr("data-post-type",t.post_type)},0),this},render_result:function(t){var i=e('
');if(t.loading)return i.append(t.text);var n=e(''),s=e('
');return icon="attach"===t.action?"paperclip":"clone",text="attach"===t.action?LLMS.l10n.translate("Attach"):LLMS.l10n.translate("Clone"),n.append(''+text+" "),s.append(""+t.data.title+" "),s.append(""+LLMS.l10n.translate("ID")+": "+t.data.id+" "),_.each(t.parents,function(e){s.append(""+e+" ")}),i.append(n).append(s)}})}),n("Views/QuestionType",["Views/Popover","Views/PostSearch"],function(e,t){return Backbone.View.extend({className:"llms-question-type",events:{"click .llms-add-question":"add_question"},id:function(){return"llms-question-type-"+this.model.id},tagName:"li",template:wp.template("llms-question-type-template"),initialize:function(){this.render()},render:function(){return this.$el.html(this.template(this.model)),this},add_question:function(){"existing"===this.model.get("id")?this.add_existing_question_click():this.add_new_question()},add_existing_question_click:function(){var i=new e({el:"#llms-add-question--existing",args:{backdrop:!0,closeable:!0,container:"#llms-builder-sidebar",dismissible:!0,placement:"top-left",width:"calc( 100% - 40px )",offsetLeft:250,offsetTop:60,title:LLMS.l10n.translate("Add Existing Question"),content:new t({post_type:"llms_question",searching_message:LLMS.l10n.translate("Search for existing questions...")}).render().$el}});i.show(),Backbone.pubSub.on("question-search-select",this.add_existing_question,this),Backbone.pubSub.on("question-search-select",function(e){i.hide(),Backbone.pubSub.off("question-search-select",this.add_existing_question,this)},this)},add_existing_question:function(e){var t=e.data;"clone"===e.action?t=_.prepareQuestionObjectForCloning(t):(t=_.prepareExistingPostObjectDataForAddingOrCloning(t),t._forceSync=!0),t._expanded=!0,this.quiz.add_question(t),this.quiz.trigger("new-question-added")},add_new_question:function(){this.quiz.add_question({_expanded:!0,choices:this.model.get("default_choices")?this.model.get("default_choices"):null,question_type:this.model}),this.quiz.trigger("new-question-added")}})}),n("Views/QuestionBank",["Views/QuestionType"],function(e){return Backbone.CollectionView.extend({className:"llms-question",el:"#llms-question-bank",modelView:e,selectable:!1,sortable:!1})}),n("Views/QuestionChoice",["Views/_Editable"],function(e){return Backbone.View.extend(_.defaults({className:"llms-question-choice",events:_.defaults({'change input[name="correct"]':"toggle_correct",'click .llms-action-icon[href="#llms-add-choice"]':"add_choice",'click .llms-action-icon[href="#llms-del-choice"]':"del_choice"},e.events),id:function(){return"llms-question-choice-"+this.model.id},tagName:"li",template:wp.template("llms-question-choice-template"),initialize:function(){this.render(),this.listenTo(this.model.collection,"add",this.maybe_disable_buttons),this.listenTo(this.model,"change",this.render),"image"===this.model.get("choice_type")&&this.listenTo(this.model.get("choice"),"change",this.render)},render:function(){return this.$el.html(this.template(this.model)),this},add_choice:function(e){e.stopPropagation(),e.preventDefault();var t=this.model.collection.indexOf(this.model);this.model.collection.parent.add_choice({},{at:t+1})},del_choice:function(e){e.preventDefault(),Backbone.pubSub.trigger("model-trashed",this.model),this.model.collection.remove(this.model)},toggle_correct:function(){var e=this.$el.find('input[name="correct"]').is(":checked");this.model.set("correct",e),this.model.collection.trigger("correct-update",this.model)}},e))}),n("Views/QuestionChoiceList",["Views/QuestionChoice"],function(e){return Backbone.CollectionView.extend({className:"llms-quiz-questions",modelView:e,processKeyEvents:!1,selectable:!1,sortable:!0,sortableOptions:{axis:!1,cursor:"move",handle:".llms-choice-id",items:".llms-question-choice",placeholder:"llms-question-choice llms-sortable-placeholder"},sortable_start:function(e){this.$el.addClass("dragging")},sortable_stop:function(e){this.$el.removeClass("dragging")}})}),n("Views/Question",["Views/_Detachable","Views/_Editable","Views/QuestionChoiceList"],function(e,t,i){return Backbone.View.extend(_.defaults({className:function(){return"llms-question qtype--"+this.model.get("question_type").get("id")},events:_.defaults({"click .clone--question":"clone","click .delete--question":"delete","click .expand--question":"expand","click .collapse--question":"collapse",'change input[name="question_points"]':"update_points"},e.events,t.events),id:function(){return"llms-question-"+this.model.id},tagName:"li",
+template:wp.template("llms-question-template"),initialize:function(){var e=["change:_expanded","change:menu_order"];_.each(e,function(e){this.listenTo(this.model,e,this.render)},this),this.listenTo(this.model.get("image"),"change",this.render),this.listenTo(this.model.get_parent(),"change:_points",this.render_points_percentage),this.on("multi_choices_toggle",this.multi_choices_toggle,this),Backbone.pubSub.on("del-question-choice",this.del_choice,this)},render:function(){if(this.$el.html(this.template(this.model)),this.model.get("question_type").get("choices")&&(this.choiceListView=new i({el:this.$el.find(".llms-question-choices"),collection:this.model.get("choices")}),this.choiceListView.render(),this.choiceListView.on("sortStart",this.choiceListView.sortable_start),this.choiceListView.on("sortStop",this.choiceListView.sortable_stop)),"group"===this.model.get("question_type").get("id")){var e=this;setTimeout(function(){e.questionListView=e.collectionListView.quiz.get_question_list({el:e.$el.find(".llms-quiz-questions"),collection:e.model.get("questions")}),e.questionListView.render(),e.questionListView.on("sortStart",e.questionListView.sortable_start),e.questionListView.on("sortStop",e.questionListView.sortable_stop)},1)}return this.model.get("description_enabled")&&this.init_editor("question-desc--"+this.model.get("id")),this.model.get("clarifications_enabled")&&this.init_editor("question-clarifications--"+this.model.get("id"),{mediaButtons:!0,tinymce:{toolbar1:"bold,italic,strikethrough,bullist,numlist,alignleft,aligncenter,alignright",toolbar2:"",setup:_.bind(this.on_editor_ready,this)}}),this.init_formatting_els(),this.init_selects(),this},render_points_percentage:function(){this.$el.find(".llms-question-points").attr("data-tip",this.model.get_points_percentage())},clone:function(e){e.stopPropagation(),e.preventDefault(),this.model.collection.add(this._get_question_clone(this.model))},_get_question_clone:function(e){var t=_.clone(e.attributes);return delete t.id,t.parent_id=e.get("id"),t.question_type=e.get("question_type").get("id"),t.image=_.clone(e.get("image").attributes),e.get("choices")&&(t.choices=[],e.get("choices").each(function(e){var i=_.clone(e.attributes);delete i.id,delete i.question_id,t.choices.push(i)})),"group"===e.get("question_type").get("id")&&(t.questions=[],e.get("questions").each(function(e){t.questions.push(this._get_question_clone(e))},this)),t},collapse:function(e){e&&e.preventDefault(),this.model.set("_expanded",!1)},delete:function(e){e.preventDefault(),window.confirm(LLMS.l10n.translate("Are you sure you want to delete this question?"))&&(this.model.collection.remove(this.model),Backbone.pubSub.trigger("model-trashed",this.model))},expand:function(e){e&&e.preventDefault(),this.model.set("_expanded",!0)},multi_choices_toggle:function(e){"yes"!==e&&this.model.get("choices").update_correct(_.first(this.model.get("choices").get_correct()))},update_points:function(){this.model.set("points",1*this.$el.find('input[name="question_points"]').val())}},e,t))}),n("Views/QuestionList",["Views/Question"],function(t){return Backbone.CollectionView.extend({className:"llms-quiz-questions",modelView:t,processKeyEvents:!1,selectable:!1,sortable:!0,sortableOptions:{axis:!1,connectWith:".llms-quiz-questions",cursor:"move",handle:".llms-data-stamp",items:".llms-question",placeholder:"llms-question llms-sortable-placeholder"},sortable_start:function(t){var i="group"===t.get("question_type").get("id")?".llms-editor-tab > .llms-quiz-questions":".llms-quiz-questions";e(i).addClass("dragging")},sortable_stop:function(){e(".llms-quiz-questions").removeClass("dragging")},_receive:function(t,i){if(t.stopPropagation(),i.item.hasClass("qtype--group")&&e(t.target).closest(".qtype--group").length)return void i.sender.sortable("cancel");var n=i.sender,s=n.data("view");if(s&&s.collection){var o=this._getContainerEl().children().index(i.item),l=s.collection.get(i.item.attr("data-model-cid"));s.collection.remove(l),this.collection.add(l,{at:o}),l.collection=this.collection,this.setSelectedModel(l)}},_sortStart:function(e,t){var i=this.collection.get(t.item.attr("data-model-cid"));t.placeholder.addClass("qtype--"+i.get("question_type").get("id")),this._isBackboneCourierAvailable()?this.spawn("sortStart",{modelBeingSorted:i}):this.trigger("sortStart",i)},_sortStop:function(e,t){e.stopPropagation();var i=this.collection.get(t.item.attr("data-model-cid")),n=this._getContainerEl(),s=n.children().index(t.item);-1==s&&i&&this.collection.remove(i),this._reorderCollectionBasedOnHTML(),this.updateDependentControls(),this._isBackboneCourierAvailable()?this.spawn("sortStop",{modelBeingSorted:i,newIndex:s}):this.trigger("sortStop",i,s)}})}),n("Views/Quiz",["Models/Quiz","Views/Popover","Views/PostSearch","Views/QuestionBank","Views/QuestionList","Views/SettingsFields","Views/_Detachable","Views/_Editable","Views/_Subview","Views/_Trashable"],function(t,i,n,s,o,l,r,a,c,d){return Backbone.View.extend(_.defaults({state:"default",views:{settings:{class:l,instance:null,state:"default"},bank:{class:s,instance:null,state:"default"},list:{class:o,instance:null,state:"default"}},el:"#llms-editor-quiz",events:_.defaults({"click #llms-existing-quiz":"add_existing_quiz_click","click #llms-new-quiz":"add_new_quiz","click #llms-show-question-bank":"show_tools","click .bulk-toggle":"bulk_toggle"},r.events,a.events,d.events),tagName:"div",template:wp.template("llms-quiz-template"),initialize:function(e){this.lesson=e.lesson,"yes"!==this.lesson.get("quiz_enabled")&&_.isEmpty(this.lesson.get("quiz"))||(this.model=this.lesson.get("quiz"),this.model.set_parent(this.lesson),this.listenTo(this.model,"change:_points",this.render_points)),this.on("model-trashed",this.on_trashed)},render:function(){if(this.$el.html(this.template(this.model)),this.model){LLMS.Spinner.start(this.$el),this.render_subview("settings",{el:"#llms-quiz-settings-fields",model:this.model}),this.init_datepickers(),this.init_selects(),this.render_subview("bank",{collection:window.llms_builder.questions});var e=null,t=null;this.get_subview("bank").instance.viewManager.each(function(i){i.quiz=this.model,t=i.model.get("group").name,e!==t&&(e=t,i.$el.before('"))},this),this.model.load_questions(_.bind(function(e){if(e)return alert(LLMS.l10n.translate("An error occurred while trying to load the questions. Please refresh the page and try again.")),this;LLMS.Spinner.stop(this.$el),this.render_subview("list",{el:"#llms-quiz-questions",collection:this.model.get("questions")});var t=this.get_subview("list").instance;t.quiz=this,t.collection.on("add",function(){t.collection.trigger("reorder")},this),t.on("sortStart",t.sortable_start),t.on("sortStop",t.sortable_stop)},this)),this.model.on("new-question-added",function(){var e=this.$el.find("#llms-quiz-questions");e.animate({scrollTop:e.prop("scrollHeight")},200)},this)}return this},render_points:function(e,t){this.$el.find("#llms-quiz-total-points").text(t)},bulk_toggle:function(t){var i="expand"===e(t.target).attr("data-action");this.model.get("questions").each(function(e){e.set("_expanded",i)})},add_new_quiz:function(){var e=this.lesson.get("quiz");_.isEmpty(e)?e=this.lesson.add_quiz():this.lesson.set("quiz_enabled","yes"),this.model=e,this.render()},add_existing_quiz:function(e){this.post_search_popover.hide();var t=e.data;"clone"===e.action?t=_.prepareQuizObjectForCloning(t):(t=_.prepareExistingPostObjectDataForAddingOrCloning(t),t._forceSync=!0),delete t.lesson_id,this.lesson.add_quiz(t),this.model=this.lesson.get("quiz"),this.render()},add_existing_quiz_click:function(e){e.preventDefault(),this.post_search_popover=new i({el:"#llms-existing-quiz",args:{backdrop:!0,closeable:!0,container:".wrap.lifterlms.llms-builder",dismissible:!0,placement:"left",width:480,title:LLMS.l10n.translate("Add Existing Quiz"),content:new n({post_type:"llms_quiz",searching_message:LLMS.l10n.translate("Search for existing quizzes...")}).render().$el,onHide:function(){Backbone.pubSub.off("quiz-search-select")}}}),this.post_search_popover.show(),Backbone.pubSub.once("quiz-search-select",this.add_existing_quiz,this)},on_trashed:function(e){this.lesson.set("quiz_enabled","no"),this.lesson.set("quiz",""),delete this.model,this.render()},show_tools:function(){var e=new i({el:"#llms-show-question-bank",args:{backdrop:!0,closeable:!0,container:"#llms-builder-sidebar",dismissible:!0,placement:"top-left",width:"calc( 100% - 40px )",title:LLMS.l10n.translate("Add a Question"),url:"#llms-quiz-tools"}});e.show(),this.model.on("new-question-added",function(){e.hide()})},get_question_list:function(e){return new o(e)}},r,a,c,d,l))}),n("Views/Assignment",["Views/Popover","Views/PostSearch","Views/_Detachable","Views/_Editable","Views/_Trashable","Views/_Subview","Views/SettingsFields"],function(e,t,i,n,s,o,l){return Backbone.View.extend(_.defaults({state:"default",views:{settings:{class:l,instance:null,state:"default"}},el:"#llms-editor-assignment",events:function(){var e=this.is_addon_available()?window.llms_builder.assignments.get_view_events():{};return _.defaults({"click #llms-existing-assignment":"add_existing_assignment_click","click #llms-new-assignment":"add_new_assignment"},i.events,n.events,s.events,e)},tagName:"div",template:wp.template("llms-assignment-template"),initialize:function(e){this.lesson=e.lesson,"yes"!==this.lesson.get("assignment_enabled")&&_.isEmpty(this.lesson.get("assignment"))||(this.model=this.lesson.get("assignment"),this.model.set_parent(this.lesson)),this.on("model-trashed",this.on_trashed)},render:function(){return this.$el.html(this.template(this.model)),this.model&&this.is_addon_available()&&(this.stopListening(this.model,"change:assignment_type",this.render),this.render_subview("settings",{el:"#llms-assignment-settings-fields",model:this.model}),this.init_selects(),window.llms_builder.assignments.render_editor(this),this.listenTo(this.model,"change:assignment_type",this.render)),this},add_new_assignment:function(){this.is_addon_available()?(this.model=window.llms_builder.assignments.get_assignment({title:LLMS.l10n.replace("%1$s Assignment",{"%1$s":this.lesson.get("title")}),lesson_id:this.lesson.get("id")}),this.lesson.set("assignment_enabled","yes"),this.lesson.set("assignment",this.model),this.render()):this.show_ad_popover("#llms-new-assignment")},add_existing_assignment:function(e){this.post_search_popover.hide();var t=e.data;"clone"===e.action?t=_.prepareAssignmentObjectForCloning(t):(t=_.prepareExistingPostObjectDataForAddingOrCloning(t),t._forceSync=!0),t.lesson_id=this.lesson.get("id"),t=window.llms_builder.construct.get_model("Assignment",t),this.lesson.set("assignment_enabled","yes"),this.lesson.set("assignment",t),this.model=t,this.render()},add_existing_assignment_click:function(i){i.preventDefault(),this.is_addon_available()?(this.post_search_popover=new e({el:"#llms-existing-assignment",args:{backdrop:!0,closeable:!0,container:".wrap.lifterlms.llms-builder",dismissible:!0,placement:"left",width:480,title:LLMS.l10n.translate("Add Existing Assignment"),content:new t({post_type:"llms_assignment",searching_message:LLMS.l10n.translate("Search for existing assignments...")}).render().$el,onHide:function(){Backbone.pubSub.off("assignment-search-select")}}}),this.post_search_popover.show(),Backbone.pubSub.once("assignment-search-select",this.add_existing_assignment,this)):this.show_ad_popover("#llms-existing-assignment")},is_addon_available:function(){return window.llms_builder.assignments},on_trashed:function(e){this.lesson.set("assignment_enabled","no"),this.lesson.set("assignment",""),delete this.model,this.render()},show_ad_popover:function(t){var i=LLMS.l10n.translate("Get Your Students Taking Action"),n=LLMS.l10n.translate("Get Assignments Now!");this.ad_popover=new e({el:t,args:{backdrop:!0,closeable:!0,container:".wrap.lifterlms.llms-builder",dismissible:!0,width:380,title:LLMS.l10n.translate("Unlock LifterLMS Assignments"),closeLabel:LLMS.l10n.translate("Close"),content:""+i+' Great learning content is only half of teaching online. When your learners fully engage, they will take your content and move into action. Remove barriers for your learners by telling them what to do to apply what they just learned. Create graded assignments or simply give them a checklist of action items to complete before moving on.
'+n+"
"}}),this.ad_popover.show()}},i,n,s,o,l))}),n("Views/Editor",["Views/LessonEditor","Views/Quiz","Views/Assignment","Views/_Subview"],function(t,i,n,s){return Backbone.View.extend(_.defaults({state:"lesson",views:{lesson:{class:t,instance:null,state:"lesson"},assignment:{class:n,instance:null,state:"assignment"},quiz:{class:i,instance:null,state:"quiz"}},el:"#llms-editor",events:{'click .llms-editor-nav a[href="#llms-editor-close"]':"close_editor",'click .llms-editor-nav a:not([href="#llms-editor-close"])':"switch_tab"},tagName:"div",template:wp.template("llms-editor-template"),initialize:function(e){this.SidebarView=e.SidebarView,e.tab&&(this.state=e.tab)},render:function(e){return e=e||{},this.$el.html(this.template(this)),this.render_subviews(_.extend(e,{lesson:this.model})),this},close_editor:function(e){e.preventDefault(),Backbone.pubSub.trigger("sidebar-editor-close"),window.location.hash=""},switch_tab:function(t){t.preventDefault();var i=e(t.target),n=i.attr("data-view");this.$el.find(i.attr("href"));this.set_state(n).render(),this.set_hash(n)},set_hash:function(e){var t="lesson:"+this.model.get("id");"lesson"!==e&&(t+=":"+e),window.location.hash=t}},s))}),n("Views/Elements",["Models/Section","Views/Section","Models/Lesson","Views/Lesson","Views/Popover","Views/PostSearch"],function(t,i,n,s,o,l){return Backbone.View.extend({el:"#llms-elements",events:{"click #llms-new-section":"add_new_section","click #llms-new-lesson":"add_new_lesson","click #llms-existing-lesson":"add_existing_lesson"},tagName:"div",template:wp.template("llms-elements-template"),initialize:function(e){this.SidebarView=e.SidebarView,this.listenTo(this.SidebarView.CourseView.model.get("sections"),"add",this.maybe_disable_buttons),this.listenTo(this.SidebarView.CourseView.model.get("sections"),"remove",this.maybe_disable_buttons)},render:function(){return this.$el.html(this.template()),this.draggable(),this.maybe_add_initial_section(),this},draggable:function(){e("#llms-new-section").draggable({appendTo:"#llms-sections",cancel:!1,connectToSortable:".llms-sections",helper:function(){return new i({model:new t}).render().$el},start:function(){e(".llms-sections").addClass("dragging")},stop:function(){e(".llms-sections").removeClass("dragging")}}),e("#llms-new-lesson").draggable({appendTo:"#llms-sections",cancel:!1,connectToSortable:".llms-lessons",helper:function(){return new s({model:new n}).render().$el},start:function(){e(".llms-lessons").addClass("dragging")},stop:function(){e(".llms-lessons").removeClass("dragging"),e(".drag-expanded").removeClass(".drag-expanded")}})},add_new_section:function(e){e.preventDefault(),Backbone.pubSub.trigger("add-new-section")},add_new_lesson:function(e){e.preventDefault(),Backbone.pubSub.trigger("add-new-lesson")},add_existing_lesson:function(e){e.preventDefault();var t=new o({el:"#llms-existing-lesson",args:{backdrop:!0,closeable:!0,container:".wrap.lifterlms.llms-builder",dismissible:!0,placement:"left",width:480,title:LLMS.l10n.translate("Add Existing Lesson"),content:new l({post_type:"lesson",searching_message:LLMS.l10n.translate("Search for existing lessons...")}).render().$el}});t.show(),Backbone.pubSub.on("lesson-search-select",function(){t.hide()})},maybe_add_initial_section:function(){var t=e("#llms-new-lesson, #llms-existing-lesson");this.SidebarView.CourseView.model.get("sections").length?t.removeAttr("disabled"):(Backbone.pubSub.trigger("add-new-section"),Backbone.pubSub.trigger("add-new-lesson"),Backbone.pubSub.trigger("add-new-lesson"),Backbone.pubSub.trigger("add-new-lesson"))}})}),n("Views/Utilities",[],function(){return Backbone.View.extend({el:"#llms-utilities",events:{"click #llms-collapse-all":"collapse_all","click #llms-expand-all":"expand_all"},tagName:"div",template:wp.template("llms-utilities-template"),initialize:function(){},render:function(){return this.$el.html(this.template()),this},collapse_all:function(e){e.preventDefault(),Backbone.pubSub.trigger("collapse-all")},expand_all:function(e){e.preventDefault(),Backbone.pubSub.trigger("expand-all")}})}),n("Views/Sidebar",["Views/Editor","Views/Elements","Views/Utilities","Views/_Subview"],function(t,i,n,s){return Backbone.View.extend(_.defaults({state:"builder",views:{elements:{class:i,instance:null,state:"builder"},utilities:{class:n,instance:null,state:"builder"},editor:{class:t,instance:null,state:"editor"}},el:"#llms-builder-sidebar",events:{"click #llms-save-button":"save_now","click #llms-exit-button":"exit_now","click .llms-builder-error":"clear_errors"},tagName:"aside",template:wp.template("llms-sidebar-template"),initialize:function(t){this.CourseView=t.CourseView,this.render(),Backbone.pubSub.on("current-save-status",this.changes_made,this),Backbone.pubSub.on("heartbeat-send",this.heartbeat_send,this),Backbone.pubSub.on("heartbeat-tick",this.heartbeat_tick,this),Backbone.pubSub.on("lesson-selected",this.on_lesson_select,this),Backbone.pubSub.on("sidebar-editor-close",this.on_editor_close,this),this.$saveButton=e("#llms-save-button")},render:function(t){t=t||{},this.$el.html(this.template()),this.render_subviews(_.extend(t,{SidebarView:this}));var i=e(".wrap.lifterlms.llms-builder");return"builder"===this.state?i.removeClass("editor-active"):i.addClass("editor-active"),this.$saveButton=this.$el.find("#llms-save-button"),this},add_error:function(e){this.$el.find(".llms-builder-save").prepend(e)},clear_errors:function(){this.$el.find(".llms-builder-save .llms-builder-error").remove()},changes_made:function(e){e.saving||(e.has_unsaved_changes?(this.$saveButton.attr("data-status","unsaved"),this.$saveButton.removeAttr("disabled")):(this.$saveButton.attr("data-status","saved"),this.$saveButton.attr("disabled","disabled")))},exit_now:function(){window.location.href=window.llms_builder.CourseModel.get_edit_post_link()},heartbeat_send:function(e){e.saving&&(LLMS.Spinner.start(this.$saveButton.find("i"),"small"),this.$saveButton.attr({"data-status":"saving",disabled:"disabled"}))},heartbeat_tick:function(t,i){if(!t.saving){var n="saved";if(this.clear_errors(),"error"===i.status){n="error";var s=i.message,o=e(' ');"object"==typeof s?_.each(s,function(e){o.append(""+e+" ")}):o=o.append(""+s+" "),this.add_error(o)}this.$saveButton.find(".llms-spinning").remove(),this.$saveButton.attr({"data-status":n,disabled:"disabled"})}},is_editor_active:function(){return"editor"===this.state},on_editor_close:function(){this.set_state("builder").render()},on_lesson_select:function(e,t){"editor"!==this.state?this.set_state("editor"):this.remove_subview("editor"),this.render({model:e,tab:t})},save_now:function(){window.llms_builder.sync.save_now()}},s))}),i(["vendor/wp-hooks","vendor/backbone.collectionView","vendor/backbone.trackit","Controllers/Construct","Controllers/Debug","Controllers/Schemas","Controllers/Sync","Models/loader","Views/Course","Views/Sidebar"],function(t,i,n,s,o,l,r,a,c,d){function u(e,t){return _.isArray(t)&&-1!==t.indexOf(e)||e==t}window.llms_builder.debug=new o(window.llms_builder.debug),window.llms_builder.construct=new s,window.llms_builder.schemas=new l(window.llms_builder.schemas),_.mixin({checked:function(e,t){return u(e,t)?' checked="checked"':""},deepClone:function(e){var t=_.clone(e);return _.each(t,function(e,i){!_.isFunction(e)&&_.isObject(e)&&(t[i]=_.deepClone(e))}),t},getEditor:function(){if(void 0!==wp.oldEditor){var e=wp.oldEditor;return void 0!==wp.editor&&void 0!==wp.editor.getDefaultSettings&&(e.getDefaultSettings=wp.editor.getDefaultSettings),e}if(void 0!==wp.editor&&void 0!==wp.editor.autop)return wp.editor},prepareQuizObjectForCloning:function(e){return delete e.id,delete e.lesson_id,_.each(e.questions,function(e){e=_.prepareQuestionObjectForCloning(e)}),e=_.prepareExistingPostObjectDataForAddingOrCloning(e)},prepareQuestionObjectForCloning:function(e){return delete e.id,delete e.parent_id,e.image&&_.isObject(e.image)&&(e.image._forceSync=!0),e.choices&&_.each(e.choices,function(e){delete e.question_id,delete e.id,"image"===e.choice_type&&_.isObject(e.choice)&&(e.choice._forceSync=!0)}),e=_.prepareExistingPostObjectDataForAddingOrCloning(e)},prepareAssignmentObjectForCloning:function(e){return delete e.id,delete e.lesson_id,"tasklist"===e.assignment_type&&_.each(e.tasks,function(e){delete e.id,delete e.assignment_id}),e=_.prepareExistingPostObjectDataForAddingOrCloning(e)},prepareExistingPostObjectDataForAddingOrCloning:function(e){return e.author&&_.isObject(e.author)&&e.author.id&&(e.author=e.author.id),e},selected:function(e,t){return u(e,t)?' selected="selected"':""},stripFormatting:function(t,i){i||(i=["b","i","u","strong","em"]);var n=e(""+t+"
");return n.find("*").not(i.join(",")).each(function(){e(this).replaceWith(this.innerHTML)}),n.html()}}),Backbone.pubSub=_.extend({},Backbone.Events),e(document).trigger("llms-builder-pre-init"),window.llms_builder.questions=window.llms_builder.construct.get_collection("QuestionTypes",window.llms_builder.questions);var h=window.llms_builder.construct.get_model("Course",window.llms_builder.course);window.llms_builder.CourseModel=h,window.llms_builder.sync=new r(h,window.llms_builder.sync);var p=new c({model:h}),g=new d({CourseView:p});if(e(document).trigger("llms-builder-init",{course:p,sidebar:g}),window.location.hash){var m=window.location.hash;if(-1===m.indexOf("#lesson:"))return;var f=m.replace("#lesson:","").split(":"),b=e("#llms-lesson-"+f[0]);b.length&&LLMS.wait_for(function(){return void 0!==_.getEditor()&&void 0!==window.tinymce},function(){b.closest(".llms-builder-item.llms-section").find("a.llms-action-icon.expand").trigger("click");var t=f[1]?f[1]:"lesson";e("#llms-lesson-"+f[0]).find("a.llms-action-icon.edit-"+t).trigger("click")})}}),n("main",function(){})}(jQuery);
+
+//# sourceMappingURL=../maps/js/llms-builder.min.js.map
diff --git a/assets/js/llms-components.js.map b/assets/js/llms-components.js.map
new file mode 100644
index 0000000000..9d3ae31a82
--- /dev/null
+++ b/assets/js/llms-components.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"js/llms-components.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;AAA4C;AACwH;AACrI;AACL;;AAE1B;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,4CAAI,IAAI;;AAExB;AACA;AACA;;AAEA,QAAQ,6CAAK;AACb;AACA;;AAEA,IAAI,4CAAI;AACR;;AAEA,SAAS,6CAAK,QAAQ,4CAAQ;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,6CAAK;AACjB;AACA;AACA,gCAAgC,4CAAI;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAqD,4CAAQ;AAC7D;;AAEA;AACA,yBAAyB,+CAAO;AAChC;;AAEA;AACA;AACA;AACA;AACA,4BAA4B,4CAAI;AAChC;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB,4CAAI;AAC7B;AACA,IAAI,mBAAmB,4CAAI;;AAE3B;AACA;;AAEA;AACA,SAAS,+CAAO,SAAS,6CAAK;AAC9B,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yBAAyB,kBAAkB;AAC3C,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gDAAgD,QAAQ;AACxD;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA,4BAA4B,4CAAQ;;AAEpC;AACA;;AAEA,MAAM,KAAqC;AAC3C;AACA;;AAEA;AACA,oFAAoF;AACpF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iEAAiE;;AAEjE,sBAAsB,mBAAmB;AACzC;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA,KAAK;AACL;;AAEA;AACA;AACA,6BAA6B,6CAAS,EAAE,KAAqC;AAC7E;AACA;AACA;AACA,UAAU,2CAA2C,2CAAO;AAC5D;AACA;AACA,iDAAiD;AACjD;AACA;AACA,MAAM,EAAE,CAEF;AACN,qBAAqB,kDAAU;;AAE/B;AACA,aAAa,iDAAS,CAAC,+CAAO;AAC9B;;AAEA;AACA;;AAEA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,0BAA0B;;AAE/D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,sDAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;AClXY;;AAEvC,2+HAA2+H;;AAE3+H,iCAAiC,4DAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;ACd3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;ACRsC;;AAE7D;AACA;AACA;;AAEA;AACA,SAAS,8DAAsB;AAC/B,CAAC;;AAED,iEAAe,oBAAoB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVmD;AAC9C;AACiB;AACV;AACsD;AACnB;AAC9B;AACmD;;AAExG,uBAAuB;;AAEvB,yCAAyC,oDAAa;AACtD;AACA;AACA;AACA;AACA;AACA,oDAAoD,0DAAW;AAC/D;AACA,CAAC;;AAED,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA;AACA,SAAS,iDAAU;AACnB;;AAEA;AACA;AACA,sBAAsB,iDAAU;AAChC;AACA,gBAAgB,iDAAU;AAC1B;AACA,GAAG;AACH;;AAEA,kCAAkC,oDAAa,GAAG;;AAElD,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA,SAAS,iDAAU;AACnB;;AAEA;AACA;AACA;;AAEA,QAAQ,KAAqC;AAC7C,qGAAqG,SAAS,EAAE;AAChH;;AAEA;AACA;;AAEA,MAAM,KAAqC;AAC3C;AACA;;AAEA,SAAS,8EAAQ,GAAG;AACpB;;AAEA,0CAA0C,iEAAW;AACrD,SAAS,iEAAW;AACpB;AACA,GAAG;AACH,CAAC;AACD;AACA,cAAc,iDAAU;;AAExB;AACA;AACA;;AAEA,sBAAsB,oDAAa;AACnC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,gBAAgB,iDAAU;AAC1B,wBAAwB,oDAAa,YAAY,8EAAQ;AACzD;AACA;AACA,KAAK;AACL,KAAK;;;AAGL,+BAA+B,iDAAU;AACzC;AACA,SAAS,0GAAoB;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;;AAEA,wIAAwI;AACxI;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC,oEAAoE;;AAEpE,iCAAiC;;AAEjC,6DAA6D;AAC7D;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;;AAEA,MAAM,KAAqC;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE,8DAAc;AAChB,cAAc,sHAAwC;AACtD,WAAW,4DAAY;AACvB,GAAG;;AAEH;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,mEAAmB;AACnC,IAAI;AACJ;AACA;;AAEA,mBAAmB,mEAAe,8BAA8B,iDAAU;;AAE1E,MAAM,KAAqC;AAC3C;;AAEA;AACA,mBAAmB,mEAAe,4CAA4C;AAC9E;AACA;;AAEA;AACA;;AAEA;AACA,qFAAqF,MAAqC;AAC1H;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,oDAAa,CAAC,2CAAQ,qBAAqB,oDAAa;AAC9E;AACA;AACA;AACA,GAAG,gBAAgB,oDAAa;AAChC,CAAC;;AAED,IAAI,IAAqC;AACzC;AACA;;AAEsN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzOlJ;AAC5C;AACyI;AAC0C;AACnK;AACT;AACE;AAC2C;AACO;AAC9B;AACyF;;AAE9I;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,4EAAmB;AAC3C;AACA,WAAW,sDAAmB;AAC9B;;AAEA;AACA;AACA,6BAA6B,uEAAO;AACpC,6BAA6B,2EAAkB;;AAE/C,kBAAkB,gBAAgB;AAClC;AACA,IAAI;;;AAGJ,SAAS,sDAAmB;AAC5B;;AAEA,yCAAyC;AACzC;AACA;;AAEA,4BAA4B,2EAAgB;AAC5C,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,mEAAe,sBAAsB,iDAAU,CAAC,uEAAY;AAC/E;AACA;AACA;;;AAGA,iBAAiB,6CAAM;AACvB,EAAE,kHAAoC;AACtC,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,6BAA6B;;AAE7B;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,kHAAoC;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,4DAAY;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA,sEAAsE,aAAa;AACnF;AACA;;AAEA,SAAS,mEAAe;AACxB;;AAEA;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA,qCAAqC,0BAA0B;AAC/D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,SAAS;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ,gBAAgB,KAAqC;AACrD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;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3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAE2B;;;;;;;;;;;;;;;AC3T3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;ACtDvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;ACjD5B;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,SAAS,aAAa;;AAEtB,kCAAkC,mCAAmC;;AAErE,0BAA0B,wBAAwB;AAClD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;;;AAGA,kBAAkB,iCAAiC;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;;AAEA,mDAAmD,aAAoB;AACvE;AACA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,IAAqC;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR,YAAY,KAAqC,yHAAyH;AAC1K;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,QAAQ,IAAqC;AAC7C;AACA;AACA;;AAEA;AACA,CAAC;;AAEqB;;;;;;;;;;;;;;;;;;;;;;;ACzJoC;AACE;AACX;AACe;AACmB;AAC9B;AACmD;;AAExG,+BAA+B,8DAAW;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,gRAAgR,uCAAuC;;AAEvT;AACA;AACA;AACA;AACA,EAAE,8DAAc;AAChB,cAAc,sHAAwC;AACtD,WAAW,4DAAY;AACvB,GAAG;;AAEH;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA,MAAM;AACN,UAAU,KAAqC;AAC/C;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,SAAS;AACtB,YAAY,KAAqC;AACjD;AACA;;AAEA;AACA;AACA,MAAM;;;AAGN,iBAAiB,iDAAgB;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B,iDAAU,CAAC,6CAAY;AACnD;;AAEA;AACA,oBAAoB,mEAAmB;AACvC,QAAQ;AACR;AACA;;AAEA,uBAAuB,mEAAe;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,oDAAa,CAAC,2CAAQ,qBAAqB,oDAAa;AAClF;AACA;AACA;AACA,OAAO,gBAAgB,oDAAa;AACpC,K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W,CAAE3I,KAAM,CAAC;EACnC;AACD;;;;;;;;;;AClGa;;AAEb,cAAc,mBAAO,CAAC,uFAAU;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;;;AAIb,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB,sBAAsB;AACtB,uBAAuB;AACvB,uBAAuB;AACvB,eAAe;AACf,kBAAkB;AAClB,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,gBAAgB;AAChB,mBAAmB;AACnB,wBAAwB;AACxB,yBAAyB;AACzB,yBAAyB;AACzB,iBAAiB;AACjB,oBAAoB;AACpB,kBAAkB;AAClB,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,oBAAoB;AACpB,kBAAkB;AAClB,0BAA0B;AAC1B,cAAc;AACd,GAAG;AACH;;;;;;;;;;;ACpLa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,qKAAyD;AAC3D;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChDgC;AAC3B;AACI;AAC6B;AACkB;AACd;AACA;AAC1B;AAClB;AAC8B;AACE;AACV;AACP;AACQ;AACH;AACH;AACM;AAC5B;AAC+B;AAC7B;;AAErB,+BAA+B,iDAAU;AACzC,0BAA0B,iEAAQ;AAClC,oBAAoB,yEAAe;AACnC,sBAAsB,gDAAmB,CAAC,4DAAM,EAAE,8EAAQ;AAC1D;AACA,GAAG;AACH,CAAC;;AAED,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7B+B;AACsxB;AACxwB;AACN;AACN;AACkB;AAC/C;AACsD;AAC3C;AACL;AACqD;;AAE1F,gDAAgD;;AAEhD,WAAW,MAAqC,GAAG,CAGlD,CAAC;AACF;AACA,0BAA0B,aAAa,SAAS,8BAA8B,WAAW,UAAU,kBAAkB,gBAAgB,UAAU,mBAAmB,eAAe;AACjL,mDAAmD,cAAc;AACjE;AACA;;AAEA;AACA,SAAS,mDAAG,SAAS,8EAAQ;AAC7B;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;;AAE3C,iBAAiB,8CAAO;AACxB,WAAW,yDAAc,CAAC,yDAAc,GAAG,kDAAkD;AAC7F,GAAG,uBAAuB;;AAE1B,qBAAqB,8CAAO;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA,SAAS;;;AAGT;AACA,4DAA4D;;AAE5D;AACA;;AAEA,0BAA0B,yDAAc;AACxC;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA,GAAG;AACH,oBAAoB,8CAAO;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,oBAAoB,8CAAO;AAC3B;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,GAAG;AACH,qBAAqB,8CAAO;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,GAAG;AACH;AACA,yBAAyB,mDAAG,CAAC,2CAAQ,QAAQ,mDAAG;AAChD;AACA,GAAG,iBAAiB,mDAAG;AACvB;AACA,GAAG;AACH;AACA,SAAS,mDAAG,CAAC,2CAAQ,QAAQ,mDAAG;AAChC;AACA,GAAG,uCAAuC,mDAAG;AAC7C;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;;AAEA,gBAAgB,uBAAuB;AACvC;;AAEA,kBAAkB,8BAA8B;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA,sCAAsC,uDAAU;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gCAAgC,yDAAc;AAC9C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,8FAAwB;;AAEtC;AACA,sBAAsB,yDAAW;AACjC,SAAS,mDAAG,UAAU,8EAAQ;AAC9B;AACA,GAAG;AACH,sBAAsB,mDAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,MAAqC,GAAG,CAAE,KAAK,iBAAiB,GAAG,MAAqC,GAAG,CAAE,+CAA+C,cAAc;AACjL,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6CAAM;AACvB,cAAc,6CAAM;AACpB,mBAAmB,6CAAM;AACzB,qBAAqB,6CAAM;AAC3B,yBAAyB,kDAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA,GAAG;AACH,gBAAgB,kDAAW;AAC3B;AACA,GAAG;AACH,qBAAqB,kDAAW;AAChC;AACA;AACA,GAAG;AACH,oBAAoB,kDAAW;AAC/B;AACA;AACA,GAAG;AACH,uBAAuB,kDAAW;AAClC;AACA;AACA,qBAAqB,qDAAqB;AAC1C;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;AACH,sBAAsB,kDAAW;AACjC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,gDAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAM,GAAG;AAChC,qBAAqB,6CAAM;AAC3B,sBAAsB,kDAAW;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;;;AAGN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,MAAM;;;AAGN;AACA,iCAAiC,mBAAmB;AACpD,+EAA+E;;AAE/E;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA,GAAG;AACH,yBAAyB,kDAAW;AACpC;AACA;AACA,8CAA8C;;AAE9C,4DAA4D;;AAE5D;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,MAAM;;;AAGN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,gDAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,8CAA8C;;AAE9C;AACA;AACA;;AAEA,YAAY,MAAqC,GAAG,CAGnD,CAAC;AACF;AACA,0BAA0B,OAAO,SAAS,QAAQ,MAAM,oBAAoB;AAC5E,mDAAmD,cAAc;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA,SAAS,mDAAG,CAAC,2CAAQ,uBAAuB,mDAAG;AAC/C;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,qDAAiB;AACnC,aAAa,qDAAY;AACzB,WAAW,qDAAK;AAChB,qBAAqB,qDAAoB;AACzC,SAAS,qDAAQ;AACjB,gBAAgB,qDAAe;AAC/B,uBAAuB,qDAAsB;AAC7C,sBAAsB,qDAAqB;AAC3C,SAAS,qDAAQ;AACjB,oBAAoB,qDAAmB;AACvC,kBAAkB,qDAAiB;AACnC,QAAQ,qDAAO;AACf,YAAY,qDAAW;AACvB,cAAc,qDAAa;AAC3B,cAAc,qDAAa;AAC3B,mBAAmB,qDAAkB;AACrC,oBAAoB,qDAAmB;AACvC,oBAAoB,qDAAmB;AACvC,UAAU,qDAAS;AACnB,eAAe,qDAAc;AAC7B,eAAe,qDAAK;AACpB,kBAAkB,qDAAiB;AACnC,GAAG;AACH;;AAEA;AACA;;AAEA;AACA,eAAe,yDAAc,GAAG,WAAW;;;AAG3C;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB,kBAAkB;;AAElB,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,yDAAc;AACnC,sBAAsB,yDAAc;AACpC;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yDAAc;AAC3C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA,GAAG,SAAS,qDAAU;AACtB;;AAEA;AACA;AACA;AACA,wDAAwD,wFAAkB;AAC1E;AACA,OAAO;AACP,MAAM;AACN;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,EAAE,+EAAS;;AAEX,eAAe,yDAAY;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,qFAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,SAAS;;AAET;AACA,QAAQ;;;AAGR;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,uBAAuB,yDAAiB;AACxC;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA,yBAAyB,yDAAiB,WAAW,wFAAkB;AACvE,UAAU;AACV,yBAAyB,yDAAkB;AAC3C;AACA,QAAQ;AACR,2BAA2B,yDAAkB;AAC7C;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP,qBAAqB,yDAAY;;AAEjC;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;;AAEA,qBAAqB,yDAAY;AACjC;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yDAAY;;AAEjC;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA,0EAA0E,aAAa;AACvF;AACA;;AAEA,aAAa,2DAAgB;AAC7B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,yDAAiB;AAC9B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,yDAAc;AACrC;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,mDAAmD,yDAAiB;AACpE;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC;AACxC;AACA;;AAEA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;;;AAGR;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,yCAAyC;AACzC;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,aAAa;;AAEb;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,yDAAU;AACxC;AACA;;AAEA,EAAE,kFAAY;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;;;AAGR;AACA,QAAQ,yDAAc;AACtB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,MAAM;;AAEN,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;;AAGA;AACA;AACA,QAAQ;AACR;;;AAGA,aAAa,yDAAc,CAAC,yDAAc,GAAG;AAC7C;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,sDAAsD;;AAEtD,2BAA2B,yDAAc,CAAC,yDAAc,CAAC,yDAAc;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,QAAQ;AACR;AACA,OAAO;;AAEP;AACA;AACA,4BAA4B,gDAAmB,aAAa,8EAAQ;AACpE;AACA;AACA;AACA,oBAAoB,qDAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,0BAA0B,gDAAmB,QAAQ,8EAAQ,GAAG;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD,gDAAmB,cAAc,8EAAQ,GAAG;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,gDAAmB,aAAa,8EAAQ,GAAG;AACzE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,gDAAmB,cAAc,8EAAQ,GAAG;AACtE;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAmB,iBAAiB,8EAAQ,GAAG;AACzE;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAmB,mBAAmB,8EAAQ,GAAG;AAC3E;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,wEAAwE;;;AAGxE;AACA;AACA;AACA;AACA,0BAA0B,gDAAmB,qBAAqB,8EAAQ,GAAG;AAC7E;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAmB,oBAAoB,8EAAQ,GAAG;AAC5E;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gDAAmB,SAAS,8EAAQ,GAAG;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gDAAmB,QAAQ,8EAAQ,GAAG;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,aAAa;AACb;AACA,aAAa;AACb,YAAY;AACZ;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA,SAAS;AACT;AACA,8BAA8B,gDAAmB;AACjD,QAAQ;AACR;AACA;AACA,SAAS;;AAET;AACA,8BAA8B,gDAAmB;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gDAAmB,CAAC,qDAAU,EAAE,8EAAQ,GAAG;AAChF;AACA;AACA;AACA;AACA,4BAA4B,gDAAmB,OAAO,8EAAQ,GAAG;AACjE;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS,gBAAgB,gDAAmB;AAC5C;AACA;AACA;AACA;AACA,SAAS;AACT,8BAA8B,gDAAmB,WAAW,8EAAQ,GAAG;AACvE;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO,GAAG;AACV;AACA;;AAEA,yEAAyE,gDAAmB,aAAa,8EAAQ,GAAG;AACpH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,8BAA8B,gDAAmB;AACjD;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA,gCAAgC,gDAAmB;AACnD;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW,iBAAiB,gDAAmB;AAC/C;AACA;AACA,WAAW;AACX,8BAA8B,gDAAmB;AACjD;AACA,QAAQ;AACR;;AAEA,4BAA4B,gDAAmB;AAC/C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAmB,aAAa,8EAAQ,GAAG;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAmB,kBAAkB,8EAAQ,GAAG;AAC1E;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO,yCAAyC,gDAAmB,UAAU,8EAAQ,GAAG;AACxF;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO,gBAAgB,gDAAmB,iBAAiB,8EAAQ,GAAG;AACtE;AACA,OAAO,sEAAsE,gDAAmB,sBAAsB,8EAAQ,GAAG;AACjI;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAU;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,yDAAY;AAC7B;AACA;AACA;AACA;AACA,QAAQ;AACR;;;AAGA;AACA;AACA;;AAEA,aAAa,yDAAc,CAAC,yDAAc,CAAC,yDAAc,GAAG,kDAAkD;AAC9G;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS;;AAEX;;AAEgJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjsFtF;AACgB;AACY;AACI;AACpB;AACd;AACgB;AACN;AACN;AACc;AACzB;AACR;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gFAAgF;AAChF;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,EAAE;AACF;AACA;;AAEA;AACA;AACA,MAAM,6EAAO;AACb;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8FAAwB;;AAE/C,0BAA0B;AAC1B,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,8BAA8B;AAC3D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,aAAa;AAC5G;AACA;;AAEA;AACA,gBAAgB,oFAAc;AAC9B;;AAEA;AACA,GAAG;AACH;AACA,gBAAgB,oFAAc;AAC9B;AACA;;AAEA;AACA;AACA,GAAG,IAAI;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,4DAA4D;AAC5D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA,UAAU;AACV;;;AAGA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA,6CAA6C;AAC7C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE,qFAAiB,4CAA4C,qFAAiB,6CAA6C,qFAAiB,uCAAuC,qFAAiB,yFAAyF,qFAAiB,6CAA6C,qFAAiB,0CAA0C,qFAAiB,iCAAiC,qFAAiB,0BAA0B,qFAAiB;AACzgB;AACA,0CAA0C,oDAAa;AACvD;AACA,CAAC,GAAG;;AAEJ;AACA,EAAE,+EAAS;;AAEX;;AAEA;AACA;;AAEA,IAAI,qFAAe;;AAEnB,wEAAwE,aAAa;AACrF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA,EAAE,kFAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,+EAAS;;AAEX;;AAEA;AACA;;AAEA,IAAI,qFAAe;;AAEnB,2EAA2E,eAAe;AAC1F;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,0EAA0E;;AAE1E;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA,EAAE,kFAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,wBAAwB,oDAAG,QAAQ,8EAAQ;AAC3C;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,aAAa,oDAAG;AAChB;AACA;AACA;AACA,OAAO,0BAA0B,wDAAY;AAC7C;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4CAAS;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;;AAEA;;AAEA,8CAA8C;;AAE9C,YAAY,MAAqC,GAAG,CAGnD,CAAC;AACF;AACA,gCAAgC,kBAAkB,cAAc,oBAAoB,eAAe,UAAU;AAC7G,mDAAmD,cAAc;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,8FAAwB;;AAEtC,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,SAAS,oDAAG,MAAM,8EAAQ;AAC1B;AACA,GAAG,UAAU,oDAAG;AAChB;AACA,GAAG;AACH;AACA;AACA,SAAS,oDAAG,MAAM,8EAAQ;AAC1B;AACA,GAAG,UAAU,oDAAG;AAChB;AACA,GAAG;AACH,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG,2BAA2B,oDAAG;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG,2BAA2B,oDAAG;AACjC,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,SAAS,8EAAQ,GAAG;AAChC;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,GAAG;AACH;AACA;;AAEA,2BAA2B,0DAAS,uCAAuC,4FAAsB,uBAAuB,aAAa,UAAU,aAAa;AAC5J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,oDAAG;AACZ,sBAAsB,oDAAK;AAC3B,gGAAgG;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,MAAqC,GAAG,CAAE,KAAK,iBAAiB,GAAG,MAAqC,GAAG,CAAE,+CAA+C,cAAc;AACjL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG,eAAe,oDAAG;AACrB;AACA;AACA,GAAG,GAAG,oDAAG;AACT;AACA;AACA,GAAG,GAAG,oDAAG;AACT;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA,KAAK;AACL,GAAG,eAAe,oDAAG,UAAU,8EAAQ,GAAG;AAC1C;AACA;AACA;AACA;AACA,GAAG,WAAW,oDAAG;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,8FAAwB;;AAE/C,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8FAAwB;;AAE3C,SAAS,oDAAG;AACZ;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG,EAAE,oDAAG,UAAU,8EAAQ;AAC1B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA,GAAG,2BAA2B,oDAAG;AACjC;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,CAAC,uDAAU;AACvB;AACA;AACA,WAAW,oDAAG;AACd;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK,EAAE,oDAAG;AACV;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK,aAAa,oDAAG;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oDAAG,QAAQ,8EAAQ;AAC5B;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEw1B;;;;;;;;;;;;;;;;;;;;;AC1jDhxB;AACc;AAChB;AACoB;AACzB;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8FAAwB;;AAEhD;AACA,oBAAoB,6CAAM;AAC1B,gBAAgB,6CAAM;;AAEtB,kBAAkB,+CAAQ;AAC1B,mBAAmB,oFAAc;AACjC;AACA;;AAEA,mBAAmB,+CAAQ;AAC3B,mBAAmB,oFAAc;AACjC;AACA;;AAEA,mBAAmB,+CAAQ;AAC3B,mBAAmB,oFAAc;AACjC;AACA;;AAEA,mBAAmB,+CAAQ;AAC3B,mBAAmB,oFAAc;AACjC;AACA;;AAEA,mBAAmB,+CAAQ;AAC3B,oBAAoB,oFAAc;AAClC;AACA;;AAEA,oBAAoB,+CAAQ;AAC5B,oBAAoB,oFAAc;AAClC;AACA;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CA;;;;;;;;;;;;;;;;AClHA;;AAEA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA,YAAY,WAAW;AACvB;AACA;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,8EAA8E,aAAa;AAC3F;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA,aAAa,UAAU;AACvB;;AAEA;AACA;AACA;;AAE8B;AAC9B;;;;;;;UC3IA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;ACN4D;AAE5D2J,MAAM,CAACC,IAAI,GAAGD,MAAM,CAACC,IAAI,IAAI,CAAC,CAAC;;AAE/B;AACA,MAAM;EAAEC,UAAU,GAAG,CAAC;AAAE,CAAC,GAAGF,MAAM,CAACC,IAAI;;AAEvC;AACA;AACA;AACA;AACA;AACAD,MAAM,CAACC,IAAI,CAACC,UAAU,GAAG;EACxB,GAAGA,UAAU;EACb,GAAGH,qDAAUA;AACd,CAAC,C","sources":["webpack://lifterlms/./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://lifterlms/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://lifterlms/./node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/react/dist/emotion-element-6a883da9.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/serialize/node_modules/@emotion/hash/dist/emotion-hash.esm.js","webpack://lifterlms/./node_modules/@emotion/serialize/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://lifterlms/./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://lifterlms/./node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js","webpack://lifterlms/./packages/components/src/button-group-control/index.js","webpack://lifterlms/./packages/components/src/copy-button/index.js","webpack://lifterlms/./packages/components/src/index.js","webpack://lifterlms/./packages/components/src/search-control/base-search-control.js","webpack://lifterlms/./packages/components/src/search-control/defaults.js","webpack://lifterlms/./packages/components/src/search-control/index.js","webpack://lifterlms/./packages/components/src/search-control/post-search-control.js","webpack://lifterlms/./packages/components/src/search-control/styled-base-control.js","webpack://lifterlms/./packages/components/src/search-control/user-search-control.js","webpack://lifterlms/./packages/components/src/spinner/constants.js","webpack://lifterlms/./packages/components/src/spinner/index.js","webpack://lifterlms/./packages/components/src/spinner/styles.js","webpack://lifterlms/./packages/components/src/spinner/utils.js","webpack://lifterlms/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://lifterlms/./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js","webpack://lifterlms/./node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack://lifterlms/./node_modules/memoize-one/dist/memoize-one.esm.js","webpack://lifterlms/./node_modules/react-select/async/dist/react-select.esm.js","webpack://lifterlms/./node_modules/react-select/dist/Select-54ac8379.esm.js","webpack://lifterlms/./node_modules/react-select/dist/index-a7690a33.esm.js","webpack://lifterlms/./node_modules/react-select/dist/useAsync-9deee0fa.esm.js","webpack://lifterlms/./node_modules/react-select/dist/useStateManager-68425271.esm.js","webpack://lifterlms/external window \"React\"","webpack://lifterlms/external window \"ReactDOM\"","webpack://lifterlms/external window \"lodash\"","webpack://lifterlms/external window [\"wp\",\"apiFetch\"]","webpack://lifterlms/external window [\"wp\",\"components\"]","webpack://lifterlms/external window [\"wp\",\"compose\"]","webpack://lifterlms/external window [\"wp\",\"element\"]","webpack://lifterlms/external window [\"wp\",\"i18n\"]","webpack://lifterlms/external window [\"wp\",\"url\"]","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://lifterlms/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://lifterlms/./node_modules/stylis/src/Enum.js","webpack://lifterlms/./node_modules/stylis/src/Middleware.js","webpack://lifterlms/./node_modules/stylis/src/Parser.js","webpack://lifterlms/./node_modules/stylis/src/Prefixer.js","webpack://lifterlms/./node_modules/stylis/src/Serializer.js","webpack://lifterlms/./node_modules/stylis/src/Tokenizer.js","webpack://lifterlms/./node_modules/stylis/src/Utility.js","webpack://lifterlms/./node_modules/throttle-debounce/esm/index.js","webpack://lifterlms/webpack/bootstrap","webpack://lifterlms/webpack/runtime/compat get default export","webpack://lifterlms/webpack/runtime/define property getters","webpack://lifterlms/webpack/runtime/global","webpack://lifterlms/webpack/runtime/hasOwnProperty shorthand","webpack://lifterlms/webpack/runtime/make namespace object","webpack://lifterlms/./src/js/components.js"],"sourcesContent":["import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, stringify, COMMENT, rulesheet, middleware, prefixer, serialize, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = element.parent === children[0]; // in nested rules comments become children of the \"auto-inserted\" rule\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? children[0].children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default isPropValid;\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import hoistNonReactStatics$1 from 'hoist-non-react-statics';\n\n// this file isolates this package that is not tree-shakeable\n// and if this module doesn't actually contain any logic of its own\n// then Rollup just use 'hoist-non-react-statics' directly in other chunks\n\nvar hoistNonReactStatics = (function (targetComponent, sourceComponent) {\n return hoistNonReactStatics$1(targetComponent, sourceComponent);\n});\n\nexport default hoistNonReactStatics;\n","import { createContext, useContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };\n","import { createElement, useContext, useRef, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-6a883da9.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-6a883da9.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.10.4\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": \"./macro.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.10.0\",\n\t\t\"@emotion/cache\": \"^11.10.0\",\n\t\t\"@emotion/serialize\": \"^1.1.0\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.0\",\n\t\t\"@emotion/utils\": \"^1.2.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.0\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.18.5\",\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.10.0\",\n\t\t\"@emotion/css-prettifier\": \"1.1.0\",\n\t\t\"@emotion/server\": \"11.10.0\",\n\t\t\"@emotion/styled\": \"11.10.4\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": \"./macro.js\"\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n var res = insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727 for some reason Jest evaluates modules twice if some consuming module gets mocked with jest.mock\n\n var isJest = typeof jest !== 'undefined';\n\n if (isBrowser && !isJest) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { useContext, createElement, Fragment } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;\n","import '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport default newStyled;\n","import * as React from 'react';\nimport { useLayoutEffect } from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport default weakMemoize;\n","// WP deps.\nimport { BaseControl, Button, ButtonGroup } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\n/**\n * Button Group Control component\n *\n * Similar to the experimental `` component from @wordpress/components but it allows\n * passing in an array of options.\n *\n * @since 1.0.0\n *\n * @see BaseControl https://github.com/WordPress/gutenberg/tree/trunk/packages/components/src/base-control\n *\n * @param {Object} props Component properties object.\n * @param {string} props.label Control label text.\n * @param {string} props.className Control element css class name attribute.\n * @param {string} props.id Control element ID attribute.\n * @param {Function} props.onClick Callback function when a button in the group is clicked.\n * @param {string} props.selected The value of the currently selected option.\n * @param {Object[]} props.options An array of objects used to create the buttons in the group.\n * Each object should contain at least a \"label\" and \"value\" property and\n * can optionally include an \"icon\" property.\n * @return {BaseControl} The rendered component.\n */\nexport default function( {\n\tlabel,\n\tonClick = () => {},\n\tclassName = null,\n\tid = null,\n\tselected = '',\n\toptions = [],\n} ) {\n\tconst [ selectedValue, setSelectedValue ] = useState( selected );\n\n\tclassName = className ? ` ${ className }` : '';\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ options.map(\n\t\t\t\t\t( { label: buttonLabel, value, icon = null } ) => (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetSelectedValue( value );\n\t\t\t\t\t\t\t\tonClick( value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ buttonLabel }\n\t\t\t\t\t\t \n\t\t\t\t\t)\n\t\t\t\t) }\n\t\t\t \n\t\t \n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { ClipboardButton, Button, Tooltip } from '@wordpress/components';\nimport { useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * A \"click to copy\" button.\n *\n * Uses the `useCopyToClipboard()` hook with a on WP 5.8 & later, otherwise falls back\n * to the deprecated .\n *\n * @since 1.0.0\n *\n * @param {Object} args Component arguments.\n * @param {string} args.buttonText Text to to display within the button.\n * @param {string} args.copyText Text to copy to the clipboard.\n * @param {string} args.tooltipText Text to use in the tooltip wrapper around the button.\n * @param {Function} args.onCopy Copy success callback function.\n * @param {...*} args.buttonProps Remaining properties passed to the underlying component.\n * @return {Object} The copy button fragment.\n */\nexport default function( {\n\tbuttonText,\n\tcopyText,\n\tonCopy,\n\ttooltipText = null,\n\t...buttonProps\n} ) {\n\ttooltipText = tooltipText || __( 'Click to copy.', 'lifterlms' );\n\n\tconst canUseHook = 'undefined' !== typeof useCopyToClipboard;\n\n\t// WP 5.8+.\n\tconst HookButton = () => {\n\t\tconst ref = useCopyToClipboard( copyText, onCopy );\n\t\treturn (\n\t\t\t\n\t\t\t\t{ buttonText }\n\t\t\t \n\t\t);\n\t};\n\n\t// WP < 5.8.\n\tconst BackwardsButton = () => {\n\t\treturn (\n\t\t\t\n\t\t\t\t{ buttonText }\n\t\t\t \n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t{ canUseHook && }\n\t\t\t{ ! canUseHook && }\n\t\t \n\t);\n}\n","export { default as ButtonGroupControl } from './button-group-control';\nexport { default as CopyButton } from './copy-button';\n\nexport * from './search-control';\n\nexport * as Spinner from './spinner';\n","// External Deps.\nimport Select from 'react-select/async';\nimport { debounce } from 'throttle-debounce';\nimport { uniqueId, differenceBy, uniqBy } from 'lodash';\n\n// WP Deps.\nimport { __ } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\n\n// Internal Deps.\nimport { StyledBaseControl } from './styled-base-control';\nimport {\n\tdefaultHydrateValues,\n\tdefaultStyles,\n\tdefaultTheme,\n\tdefaultFormatSearchResults,\n} from './defaults';\n\n/**\n * Searchable element powered by a WordPress REST API endpoint.\n *\n * @since 1.0.0\n *\n * @param {Object} args Component arguments.\n * @param {string} args.searchPath Required. API path used to perform the search.\n * @param {Function} args.onUpdate Callback function invoked when the value of the select changes.\n * The callback function is passed a single parameter, the new selected\n * value object(s). For multiselects it will be an array of objects.\n * If the select is clearable, the value will be `null` when the select\n * is cleared.\n * @param {Array} args.selectedValue The currently selected value(s). If an object is passed, it should contain at least\n * a `label` and `value` key. Can pass IDs as integers and the values will be automatically\n * hydrated.\n * @param {string} args.placeholder The placeholder displayed within an empty search control.\n * @param {string} args.className HTML class attribute added to the select control.\n * @param {string} args.classNamePrefix Prefix added to select control subcomponent classnames. In most circumstances this should not\n * be changed as it is used to style the compontents.\n * @param {number} args.searchDebounceDelay Search debounce delay, in milliseconds.\n * @param {Object} args.additionalSearchArgs Object of additional query string arguments to use with the API request.\n * @param {?string} args.label Search control label, passed to .\n * @param {?string} args.id Search control HTML ID attribute, passed to .\n * @param {?Object[]} args.defaultOptions Array of hydrated objects to preload into the select as options.\n * @param {?Function} args.getSearchArgs Function invoked to generate the query string arguments used when fetching\n * results from the API. The callback function is passed the search string.\n * @param {?Function} args.getSearchURL Function invoked to create the search URL used to fetch results. The function\n * is passed the `searchPath` and generated query string arguments from `getSearchArgs()`.\n * @param {?Function} args.hydrateValues Function invoked to hydrate integer values. The function is passed the currently selected values,\n * the `searchPath`, and an array of cached (and hydrated) objects previously loaded from the server.\n * @param {?Function} args.formatSearchResults Function invoked to format results retrieved from the server. The function is passed an array\n * of objects from the server. It should return an array of objects, each containing at least a\n * value and label property.\n * @param {?Function} args.formatSearchResultLabel Function invoked to format the display label for a result. The function is passed\n * an object representing a single result and should return a string.\n * @param {?Function} args.formatSearchResultValue Function invoked to format the saved value for a result. The function is passed\n * an object representing a single result and should the value to be stored.\n * @param {...*} args.selectProps Any remaining properties are passed to the component, {@link https://react-select.com/props#select-props}.\n * @return {StyledBaseControl} The component.\n */\nexport default function BaseSearchControl( {\n\tsearchPath,\n\tonUpdate = () => {},\n\tselectedValue = [],\n\tadditionalSearchArgs = {},\n\tdefaultOptions = null,\n\tgetSearchArgs = null,\n\tlabel = null,\n\tgetSearchURL = null,\n\thydrateValues = null,\n\tformatSearchResults = null,\n\tformatSearchResultLabel = null,\n\tformatSearchResultValue = null,\n\tid = null,\n\tplaceholder = __( 'Search…', 'lifterlms' ),\n\tclassName = 'llms-base-search-control',\n\tclassNamePrefix = 'llms-search-control',\n\tsearchDebounceDelay = 300,\n\t...selectProps\n} ) {\n\t// Setup state variables.\n\tconst [ loadedResults, setLoadedResults ] = useState( [] ),\n\t\taddLoadedResults = ( newResults ) =>\n\t\t\tsetLoadedResults( loadedResults.concat( newResults ) ),\n\t\t[ value, setValue ] = useState(\n\t\t\tArray.isArray( selectedValue ) ? selectedValue : [ selectedValue ]\n\t\t);\n\n\t// If an ID is stored and passed into component as the selectedValue, hydrate the value from cached results or the API.\n\tuseEffect( () => {\n\t\t// Nothing to hydrate.\n\t\tif ( ! selectedValue.length ) {\n\t\t\treturn;\n\t\t}\n\t\thydrateValues = hydrateValues || defaultHydrateValues;\n\t\thydrateValues( value, searchPath, loadedResults ).then(\n\t\t\t( newValues ) => {\n\t\t\t\tnewValues = formatSearchResults(\n\t\t\t\t\tnewValues,\n\t\t\t\t\tformatSearchResultLabel,\n\t\t\t\t\tformatSearchResultValue\n\t\t\t\t);\n\t\t\t\tconst toAdd = differenceBy( newValues, loadedResults, 'id' );\n\t\t\t\tif ( toAdd.length ) {\n\t\t\t\t\taddLoadedResults( toAdd );\n\t\t\t\t}\n\t\t\t\tsetValue( newValues );\n\t\t\t\treturn newValues;\n\t\t\t}\n\t\t);\n\t}, [ selectedValue ] );\n\n\t/**\n\t * On change function callback.\n\t *\n\t * Updates the current value's state and calls the `onUpdate()` user function.\n\t *\n\t * @since 1.0.0\n\t *\n\t * @param {?Object[]} newValues Newly selected values.\n\t * @return {void}\n\t */\n\tconst onChange = ( newValues ) => {\n\t\tsetValue( Array.isArray( newValues ) ? newValues : [ newValues ] );\n\t\tonUpdate( newValues );\n\t};\n\n\t/**\n\t * Load options from the server.\n\t *\n\t * On search term update callback function.\n\t *\n\t * @since 1.0.0\n\t */\n\tconst loadOptions = debounce(\n\t\tsearchDebounceDelay,\n\t\t( searchQuery, callback ) => {\n\t\t\tapiFetch( {\n\t\t\t\tpath: getSearchURL( searchPath, getSearchArgs( searchQuery ) ),\n\t\t\t} ).then( ( results ) => {\n\t\t\t\tconst formatted = formatSearchResults(\n\t\t\t\t\tresults,\n\t\t\t\t\tformatSearchResultLabel,\n\t\t\t\t\tformatSearchResultValue\n\t\t\t\t);\n\t\t\t\taddLoadedResults( formatted );\n\t\t\t\tcallback( formatted );\n\t\t\t} );\n\t\t}\n\t);\n\n\t// Setup defaults.\n\tid = id || uniqueId( `${ className }--` );\n\n\tformatSearchResults = formatSearchResults || defaultFormatSearchResults;\n\tformatSearchResultLabel = formatSearchResultLabel\n\t\t? formatSearchResultLabel\n\t\t: ( res ) => res?.id;\n\tformatSearchResultValue = formatSearchResultValue\n\t\t? formatSearchResultValue\n\t\t: ( res ) => res?.id;\n\n\tgetSearchArgs = getSearchArgs\n\t\t? getSearchArgs\n\t\t: ( searchQuery ) => ( {\n\t\t\tper_page: 10,\n\t\t\tsearch: searchQuery,\n\t\t\t...additionalSearchArgs,\n\t\t} );\n\n\tgetSearchURL = getSearchURL\n\t\t? getSearchURL\n\t\t: ( path, args ) => addQueryArgs( path, args );\n\n\tselectProps.styles = selectProps.styles || defaultStyles;\n\tselectProps.theme = selectProps.theme || defaultTheme;\n\n\tif ( null === defaultOptions && value.length ) {\n\t\tdefaultOptions = loadedResults.length\n\t\t\t? uniqBy( loadedResults, 'id' )\n\t\t\t: true;\n\t}\n\n\treturn (\n\t\t\n\t\t\t \n\t\t \n\t);\n}\n","// External deps.\nimport { isPlainObject } from 'lodash';\n\n// WP deps.\nimport apiFetch from '@wordpress/api-fetch';\n\n/**\n * Default function used to hydrate stored numeric IDs to the equivalent object.\n *\n * @since 1.0.0\n *\n * @param {Array} values Array of values.\n * @param {string} path API request path.\n * @param {Object[]} loadedResults Array of already-hydrated API results.\n * @return {Object[]} Hydrated result array.\n */\nexport async function defaultHydrateValues( values, path, loadedResults ) {\n\tconst isResultHydrated = ( result ) =>\n\t\tisPlainObject( result ) && result.label && result.value;\n\n\treturn Promise.all(\n\t\tvalues.map( async ( value ) => {\n\t\t\tif ( ! isResultHydrated( value ) && Number.isInteger( value ) ) {\n\t\t\t\tvalue =\n\t\t\t\t\tloadedResults.find( ( { id } ) => id === value ) ||\n\t\t\t\t\t( await apiFetch( { path: `${ path }/${ value }` } ) );\n\t\t\t}\n\n\t\t\treturn value;\n\t\t} )\n\t);\n}\n\n/**\n * Default styles object passed to the underlying component.\n *\n * @type {Object}\n */\nexport const defaultStyles = {\n\tcontrol: ( control ) => ( {\n\t\t...control,\n\t\tborderColor: '#8d96a0',\n\t\t'&:hover': {\n\t\t\t...control[ '&:hover' ],\n\t\t\tborderColor: '#8d96a0',\n\t\t},\n\t} ),\n};\n\n/**\n * Default component theme callback function.\n *\n * Customizes the theme of the component to better match the WordPress editor UI.\n *\n * Uses the default UI color from the current admin theme. The theme doesn't work that well\n * with the other provided theme colors (which are darker than the Select component options which\n * are lighter highlights). So if you're using a non-default admin color scheme the select will probably\n * look a bit weird. I'm sorry.\n *\n * @since 1.0.0\n *\n * @see https://react-select.com/styles#overriding-the-theme\n *\n * @param {Object} theme Theme object.\n * @return {Object} Theme object.\n */\nexport function defaultTheme( theme ) {\n\treturn {\n\t\t...theme,\n\t\tcolors: {\n\t\t\t...theme.colors,\n\t\t\tprimary: 'var( --wp-admin-theme-color )',\n\t\t\t// primary25: '#ccf2ff',\n\t\t\t// primary50: '#b3ecff',\n\t\t\t// primary75: '#4dd2ff',\n\t\t},\n\t\tspacing: {\n\t\t\t...theme.spacing,\n\t\t\tbaseUnit: 2,\n\t\t\tcontrolHeight: 28,\n\t\t\tmenuGutter: 4,\n\t\t},\n\t};\n}\n\n/**\n * Default format search results function.\n *\n * Accepts an array of raw API results adds a label and value for use by the \n * component.\n *\n * @since 1.0.0\n *\n * @param {Object[]} results API result array.\n * @param {Function} formatSearchResultLabel Label formatting function.\n * @param {Function} formatSearchResultValue Value formatting function.\n * @return {Object[]} Formatted results.\n */\nexport function defaultFormatSearchResults(\n\tresults,\n\tformatSearchResultLabel,\n\tformatSearchResultValue\n) {\n\treturn results.map( ( result ) => ( {\n\t\t...result,\n\t\tlabel: formatSearchResultLabel( result ),\n\t\tvalue: formatSearchResultValue( result ),\n\t} ) );\n}\n","import BaseSearchControl from './base-search-control';\nimport PostSearchControl from './post-search-control';\nimport UserSearchControl from './user-search-control';\n\nexport { BaseSearchControl, PostSearchControl, UserSearchControl };\n","import { __, _x, sprintf } from '@wordpress/i18n';\n\nimport BaseSearchControl from './base-search-control';\n\n/**\n * Searchable element powered by a WordPress REST API users endpoint.\n *\n * This component is a wrapper around the component. It is configured\n * to search users via the WordPress user REST API endpoint.\n *\n * @since 1.0.0\n *\n * @param {Object} args Component arguments.\n * @param {string} args.postType Post type endpoint.\n * @param {string} args.baseSearchPath Base search path used to create the searchPath.\n * @param {?string} args.searchPath API path used to perform the search. If passed, will be used instead of the\n * path generated from `args.postType` and `args.baseSearchPath`.\n * @param {string} args.placeholder The placeholder displayed within an empty search control.\n * @param {string} args.className HTML class attribute added to the select control.\n * @param {?Function} args.formatSearchResultLabel Function invoked to format the display label for a result. The function is passed\n * @param {Object} args.additionalSearchArgs An object representing a single result and should return a string.\n * @param {...*} args.baseProps Any remaining properties are passed to the component.\n * @return {BaseSearchControl} The component.\n */\nexport default function PostSearchControl( {\n\tpostType = 'posts',\n\tbaseSearchPath = '/wp/v2/',\n\tsearchPath = null,\n\tclassName = 'llms-post-search-control',\n\tplaceholder = __( 'Search for posts…', 'lifterlms' ),\n\tformatSearchResultLabel = null,\n\tadditionalSearchArgs = {},\n\t...baseProps\n} ) {\n\t// Default result label.\n\tformatSearchResultLabel = formatSearchResultLabel\n\t\t? formatSearchResultLabel\n\t\t: ( { title, id } ) =>\n\t\t\tsprintf(\n\t\t\t\t// Translators: %1$s = Post title; %2$s = Post id.\n\t\t\t\t_x(\n\t\t\t\t\t'%1$s (ID# %2$d)',\n\t\t\t\t\t'Post search result label',\n\t\t\t\t\t'lifterlms'\n\t\t\t\t),\n\t\t\t\ttitle.rendered,\n\t\t\t\tid\n\t\t\t);\n\n\treturn (\n\t\t \n\t);\n}\n","// External deps.\nimport styled from '@emotion/styled';\n\n// WP deps.\nimport { BaseControl } from '@wordpress/components';\n\n/**\n * A component with styles targeting the components within it.\n *\n * Addresses issues arising from WP core styles loaded in the block editor that create visual\n * issues with our components.\n *\n * @since 1.0.0\n */\nexport const StyledBaseControl = styled( BaseControl )`\n\twidth: 100%;\n\t& .llms-search-control__input:focus {\n\t\tbox-shadow: none;\n\t}\n\t& .llms-search-control__menu {\n\t\tbackground: #fff !important;\n\t\tz-index: 9999999 !important;\n\t}\n\t& .llms-search-control__value-container {\n\t\twidth: 100%;\n\t}\n`;\n","import { __, _x, sprintf } from '@wordpress/i18n';\n\nimport BaseSearchControl from './base-search-control';\n\n/**\n * Searchable element powered by a WordPress REST API users endpoint.\n *\n * This component is a wrapper around the component. It is configured\n * to search users via the WordPress user REST API endpoint.\n *\n * @since 1.0.0\n *\n * @param {Object} args Component arguments.\n * @param {string} args.searchPath Required. API path used to perform the search.\n * @param {string} args.placeholder The placeholder displayed within an empty search control.\n * @param {string} args.className HTML class attribute added to the select control.\n * @param {?Function} args.formatSearchResultLabel Function invoked to format the display label for a result. The function is passed\n * @param {Object} args.additionalSearchArgs An object representing a single result and should return a string.\n * @param {...*} args.baseProps Any remaining properties are passed to the component.\n * @return {BaseSearchControl} The component.\n */\nexport default function UserSearchControl( {\n\tsearchPath = '/wp/v2/users',\n\tclassName = 'llms-user-search-control',\n\tplaceholder = __( 'Search users by email or name…', 'lifterlms' ),\n\tformatSearchResultLabel = null,\n\tadditionalSearchArgs = {},\n\t...baseProps\n} ) {\n\t// Default result label.\n\tformatSearchResultLabel = formatSearchResultLabel\n\t\t? formatSearchResultLabel\n\t\t: ( { name, id } ) =>\n\t\t\tsprintf(\n\t\t\t\t// Translators: %1$s = User's name; %2$s = User's id.\n\t\t\t\t_x(\n\t\t\t\t\t'%1$s (ID# %2$d)',\n\t\t\t\t\t'User search result label',\n\t\t\t\t\t'lifterlms'\n\t\t\t\t),\n\t\t\t\tname,\n\t\t\t\tid\n\t\t\t);\n\n\treturn (\n\t\t \n\t);\n}\n","/**\n * Spinner wrapper element class name.\n *\n * @type {string}\n */\nexport const WRAPPER_CLASSNAME = 'llms-spinning';\n\n/**\n * Spinner element class name.\n *\n * @type {string}\n */\nexport const CLASSNAME = 'llms-spinner';\n\n/**\n * Small-sized spinner identifier / class name.\n *\n * @type {string}\n */\nexport const SIZE_SMALL = 'small';\n\n/**\n * Default-sized spinner identifier / class name.\n *\n * @type {string}\n */\nexport const SIZE_DEFAULT = 'default';\n","/* eslint-env jquery */\n\n// Internal deps.\nimport { SIZE_DEFAULT } from './constants';\nimport { create, ensureElementList, find, loadStyles } from './utils';\n\n/**\n * This module was originally included in the LifterLMS Core Javascript in the `LLMS` global object as `LLMS.Spinner`.\n *\n * It has since been relocated here as a module in the `@lifterlms/components` package. During the move it was upgraded\n * to enable usage without the requirement of passing in jQuery selectors.\n *\n * In the future, passing native jQuery selectors into any of these modules will be deprecated in favor of native/vanilla Javascript\n * Elements or selector strings that can be passed into `document.querySelector()` or `document.querySelectorAll()`.\n */\n\n/**\n * Retrieves spinner(s) inside a given element.\n *\n * If the spinner element doesn't already exist it will be created.\n *\n * @since 1.1.0\n *\n * @param {jQuery|Element|string} selector A selector to be parsed by `jQuery()`, an existing `jQuery()` selection, a DOM Element. The first spinner\n * found within the element will be returned. If none found it will be created, appended to the element, and\n * then returned.\n * @param {string} size Size or the spinner element. Accepts \"default\" (40px) or \"small\" (20px).\n * @param {boolean} useJQuery If `true`, the return value will be a jQuery selection as opposed to an Element. This is the default behavior\n * for backwards compatibility but will be removed in a future version.\n * @return {null|Element|jQuery} Returns `null` when the selector cannot be located, otherwise returns an `Element` or `jQuery` selection based on the value\n * of `useJQuery`.\n */\nexport function get( selector, size = SIZE_DEFAULT, useJQuery = true ) {\n\tloadStyles();\n\n\tconst nodeList = ensureElementList( selector );\n\tif ( ! nodeList.length ) {\n\t\treturn null;\n\t}\n\n\tconst wrapper = nodeList[ 0 ],\n\t\t// Find an existing spinner and create it if one doesn't exist.\n\t\tspinner = find( wrapper ) || create( wrapper, size );\n\n\t// Return it.\n\treturn useJQuery && typeof jQuery !== 'undefined'\n\t\t? jQuery( spinner )\n\t\t: spinner;\n}\n\n/**\n * Starts spinner(s) inside a given element or element list.\n *\n * If the spinner element doesn't already exist it will be created.\n *\n * @since 1.1.0\n *\n * @param {jQuery|Element|NodeList|string} selector A selector to be parsed by `jQuery()`, an existing `jQuery()` selection, a DOM Element, or an\n * array of DOM Elements. Each element in the list will have it's spinner started. If a spinner doesn't\n * exist within the element, it will be appended and then started.\n * @param {string} size Size or the spinner element. Accepts \"default\" (40px) or \"small\" (20px).\n * @return {void}\n */\nexport function start( selector, size = SIZE_DEFAULT ) {\n\tensureElementList( selector ).forEach( ( el ) => {\n\t\tconst spinner = get( el, size, false );\n\t\tif ( spinner ) {\n\t\t\tspinner.style.display = 'block';\n\t\t}\n\t} );\n}\n\n/**\n * Stops spinner(s) inside a given element or element list.\n *\n * @since 1.1.0\n *\n * @param {jQuery|Element|NodeList|string} selector A selector to be parsed by `jQuery()`, an existing `jQuery()` selection, a DOM Element, or an\n * array of DOM Elements. Each element in the list will have it's spinner stopped.\n * @return {void}\n */\nexport function stop( selector ) {\n\tensureElementList( selector ).forEach( ( el ) => {\n\t\tconst spinner = get( el, SIZE_DEFAULT, false );\n\t\tif ( spinner ) {\n\t\t\tspinner.style.display = 'none';\n\t\t}\n\t} );\n}\n","import { WRAPPER_CLASSNAME, CLASSNAME, SIZE_SMALL } from './constants';\n\n/**\n * CSS Styles for the components.\n *\n * @type {string}\n */\nexport const STYLES = `\n\t.${ WRAPPER_CLASSNAME } {\n\t\tbackground: rgba( 250, 250, 250, 0.7 );\n\t\tbottom: 0;\n\t\tdisplay: none;\n\t\tleft: 0;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\t\tz-index: 2;\n\t}\n\n\t.${ CLASSNAME } {\n\t\tanimation: llms-spinning 1.5s linear infinite;\n\t\tbox-sizing: border-box;\n\t\tborder: 4px solid #313131;\n\t\tborder-radius: 50%;\n\t\theight: 40px;\n\t\tleft: 50%;\n\t\tmargin-left: -20px;\n\t\tmargin-top: -20px;\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\twidth: 40px;\n\n\t}\n\n\t.${ CLASSNAME }.${ SIZE_SMALL } {\n\t\tborder-width: 2px;\n\t\theight: 20px;\n\t\tmargin-left: -10px;\n\t\tmargin-top: -10px;\n\t\twidth: 20px;\n\t}\n\n\t@keyframes llms-spinning {\n\t\t0% {\n\t\t\ttransform: rotate( 0deg )\n\t\t}\n\t\t50% {\n\t\t\tborder-radius: 5%;\n\t\t}\n\t\t100% {\n\t\t\ttransform: rotate( 220deg) \n\t\t}\n\t}\n`;\n","// WP deps.\nimport { __ } from '@wordpress/i18n';\n\n// Internal deps.\nimport { WRAPPER_CLASSNAME, CLASSNAME, SIZE_DEFAULT } from './constants';\nimport { STYLES } from './styles';\n\n/**\n * Creates a spinner element inside the specified wrapper Element.\n *\n * @since 1.1.0\n *\n * @param {Element} wrapper DOM node to append the created spinner element to.\n * @param {string} size Spinner element size.\n * @return {Element} Returns the created spinner node.\n */\nexport function create( wrapper, size = SIZE_DEFAULT ) {\n\tconst spinner = document.createElement( 'div' ),\n\t\tloadingMsg = __( 'Loading…', 'lifterlms' );\n\n\tspinner.innerHTML = `${ loadingMsg } `;\n\tspinner.classList.add( WRAPPER_CLASSNAME );\n\n\twrapper.appendChild( spinner );\n\n\treturn spinner;\n}\n\n/**\n * Normalizes accepted selector inputs and returns a `NodeList`.\n *\n * When jQuery selection is detected, adds a console deprecation warning as well.\n *\n * @since 1.1.0\n *\n * @param {NodeList|Element|string|jQuery} selector The input selector.\n * @return {Element[]} An array of `Element` objects derived from the selector input.\n */\nexport function ensureElementList( selector ) {\n\tselector =\n\t\ttypeof selector === 'string'\n\t\t\t? document.querySelectorAll( selector )\n\t\t\t: selector;\n\n\t// Already a NodeList.\n\tif ( selector instanceof NodeList ) {\n\t\treturn Array.from( selector );\n\t}\n\n\tconst list = [];\n\tif ( selector instanceof Element ) {\n\t\tlist.push( selector );\n\t} else if ( typeof jQuery !== 'undefined' && selector instanceof jQuery ) {\n\t\tselector.toArray().forEach( ( el ) => list.push( el ) );\n\t}\n\n\treturn list;\n}\n\n/**\n * Locates an existing spinner element which is a direct child of the specified wrapper element.\n *\n * @since 1.1.0\n *\n * @param {Element} wrapper Node element for the wrapper.\n * @return {null|undefined|Element} Returns `null` if no spinners exist within the wrapper, undefined if no spinners are\n * direct descendants of the wrapper, otherwise returns the spinner element.\n */\nexport function find( wrapper ) {\n\tconst spinners = wrapper.querySelectorAll( `.${ WRAPPER_CLASSNAME }` );\n\tif ( ! spinners.length ) {\n\t\treturn null;\n\t}\n\n\treturn Array.from( spinners ).find( ( el ) => wrapper === el.parentNode );\n}\n\n/**\n * Loads CSS styles and appends them to the document's .\n *\n * Attaching CSS directly to the `get()` method means that we don't have to worry about loading CSS files (or relying on CSS) included\n * by the LifterLMS core plugin in order to use this styled component.\n *\n * @since 1.1.0\n *\n * @return {void}\n */\nexport function loadStyles() {\n\tconst STYLE_ID = 'llms-spinner-styles';\n\n\tif ( ! document.getElementById( STYLE_ID ) ) {\n\t\tconst style = document.createElement( 'style' );\n\t\tstyle.textContent = STYLES.replace( /\\n/g, '' )\n\t\t\t.replace( /\\t/g, ' ' )\n\t\t\t.replace( /\\s\\s+/g, ' ' );\n\t\tstyle.id = STYLE_ID;\n\t\tdocument.head.appendChild( style );\n\t}\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { S as Select } from '../../dist/Select-54ac8379.esm.js';\nimport { u as useStateManager } from '../../dist/useStateManager-68425271.esm.js';\nimport { u as useAsync } from '../../dist/useAsync-9deee0fa.esm.js';\nexport { u as useAsync } from '../../dist/useAsync-9deee0fa.esm.js';\nimport '../../dist/index-a7690a33.esm.js';\nimport '@emotion/react';\nimport '@babel/runtime/helpers/taggedTemplateLiteral';\nimport '@babel/runtime/helpers/objectWithoutProperties';\nimport '@babel/runtime/helpers/slicedToArray';\nimport '@babel/runtime/helpers/typeof';\nimport '@babel/runtime/helpers/classCallCheck';\nimport '@babel/runtime/helpers/createClass';\nimport '@babel/runtime/helpers/inherits';\nimport '@babel/runtime/helpers/defineProperty';\nimport 'react-dom';\nimport '@babel/runtime/helpers/toConsumableArray';\nimport 'memoize-one';\n\nvar AsyncSelect = /*#__PURE__*/forwardRef(function (props, ref) {\n var stateManagedProps = useAsync(props);\n var selectProps = useStateManager(stateManagedProps);\n return /*#__PURE__*/React.createElement(Select, _extends({\n ref: ref\n }, selectProps));\n});\n\nexport default AsyncSelect;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { a as _objectSpread2, r as removeProps, s as supportsPassiveEvents, b as clearIndicatorCSS, d as containerCSS, e as css$1, f as dropdownIndicatorCSS, g as groupCSS, h as groupHeadingCSS, i as indicatorsContainerCSS, j as indicatorSeparatorCSS, k as inputCSS, l as loadingIndicatorCSS, m as loadingMessageCSS, n as menuCSS, o as menuListCSS, p as menuPortalCSS, q as multiValueCSS, t as multiValueLabelCSS, u as multiValueRemoveCSS, v as noOptionsMessageCSS, w as optionCSS, x as placeholderCSS, y as css$2, z as valueContainerCSS, A as isTouchCapable, B as isMobileDevice, _ as _createSuper, C as multiValueAsValue, D as singleValueAsValue, E as valueTernary, F as classNames, G as defaultComponents, H as notNullish, I as isDocumentElement, J as cleanValue, K as scrollIntoView, L as noop, M as MenuPlacer } from './index-a7690a33.esm.js';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport * as React from 'react';\nimport { useMemo, Fragment, useRef, useCallback, useEffect, Component } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport memoizeOne from 'memoize-one';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\nvar _ref = process.env.NODE_ENV === \"production\" ? {\n name: \"7pg0cj-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap\"\n} : {\n name: \"1f43avz-a11yText-A11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;label:A11yText;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNSSIsImZpbGUiOiJBMTF5VGV4dC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLy8gQXNzaXN0aXZlIHRleHQgdG8gZGVzY3JpYmUgdmlzdWFsIGVsZW1lbnRzLiBIaWRkZW4gZm9yIHNpZ2h0ZWQgdXNlcnMuXG5jb25zdCBBMTF5VGV4dCA9IChwcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ10pID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAnYTExeVRleHQnLFxuICAgICAgekluZGV4OiA5OTk5LFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogJ3JlY3QoMXB4LCAxcHgsIDFweCwgMXB4KScsXG4gICAgICBoZWlnaHQ6IDEsXG4gICAgICB3aWR0aDogMSxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQTExeVRleHQ7XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1\n};\n\nvar A11yText = function A11yText(props) {\n return jsx(\"span\", _extends({\n css: _ref\n }, props));\n};\n\nvar defaultAriaLiveMessages = {\n guidance: function guidance(props) {\n var isSearchable = props.isSearchable,\n isMulti = props.isMulti,\n isDisabled = props.isDisabled,\n tabSelectsValue = props.tabSelectsValue,\n context = props.context;\n\n switch (context) {\n case 'menu':\n return \"Use Up and Down to choose options\".concat(isDisabled ? '' : ', press Enter to select the currently focused option', \", press Escape to exit the menu\").concat(tabSelectsValue ? ', press Tab to select the option and exit the menu' : '', \".\");\n\n case 'input':\n return \"\".concat(props['aria-label'] || 'Select', \" is focused \").concat(isSearchable ? ',type to refine list' : '', \", press Down to open the menu, \").concat(isMulti ? ' press left to focus selected values' : '');\n\n case 'value':\n return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n\n default:\n return '';\n }\n },\n onChange: function onChange(props) {\n var action = props.action,\n _props$label = props.label,\n label = _props$label === void 0 ? '' : _props$label,\n labels = props.labels,\n isDisabled = props.isDisabled;\n\n switch (action) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return \"option \".concat(label, \", deselected.\");\n\n case 'clear':\n return 'All selected options have been cleared.';\n\n case 'initial-input-focus':\n return \"option\".concat(labels.length > 1 ? 's' : '', \" \").concat(labels.join(','), \", selected.\");\n\n case 'select-option':\n return isDisabled ? \"option \".concat(label, \" is disabled. Select another option.\") : \"option \".concat(label, \", selected.\");\n\n default:\n return '';\n }\n },\n onFocus: function onFocus(props) {\n var context = props.context,\n focused = props.focused,\n options = props.options,\n _props$label2 = props.label,\n label = _props$label2 === void 0 ? '' : _props$label2,\n selectValue = props.selectValue,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected;\n\n var getArrayIndex = function getArrayIndex(arr, item) {\n return arr && arr.length ? \"\".concat(arr.indexOf(item) + 1, \" of \").concat(arr.length) : '';\n };\n\n if (context === 'value' && selectValue) {\n return \"value \".concat(label, \" focused, \").concat(getArrayIndex(selectValue, focused), \".\");\n }\n\n if (context === 'menu') {\n var disabled = isDisabled ? ' disabled' : '';\n var status = \"\".concat(isSelected ? 'selected' : 'focused').concat(disabled);\n return \"option \".concat(label, \" \").concat(status, \", \").concat(getArrayIndex(options, focused), \".\");\n }\n\n return '';\n },\n onFilter: function onFilter(props) {\n var inputValue = props.inputValue,\n resultsMessage = props.resultsMessage;\n return \"\".concat(resultsMessage).concat(inputValue ? ' for search term ' + inputValue : '', \".\");\n }\n};\n\nvar LiveRegion = function LiveRegion(props) {\n var ariaSelection = props.ariaSelection,\n focusedOption = props.focusedOption,\n focusedValue = props.focusedValue,\n focusableOptions = props.focusableOptions,\n isFocused = props.isFocused,\n selectValue = props.selectValue,\n selectProps = props.selectProps,\n id = props.id;\n var ariaLiveMessages = selectProps.ariaLiveMessages,\n getOptionLabel = selectProps.getOptionLabel,\n inputValue = selectProps.inputValue,\n isMulti = selectProps.isMulti,\n isOptionDisabled = selectProps.isOptionDisabled,\n isSearchable = selectProps.isSearchable,\n menuIsOpen = selectProps.menuIsOpen,\n options = selectProps.options,\n screenReaderStatus = selectProps.screenReaderStatus,\n tabSelectsValue = selectProps.tabSelectsValue;\n var ariaLabel = selectProps['aria-label'];\n var ariaLive = selectProps['aria-live']; // Update aria live message configuration when prop changes\n\n var messages = useMemo(function () {\n return _objectSpread2(_objectSpread2({}, defaultAriaLiveMessages), ariaLiveMessages || {});\n }, [ariaLiveMessages]); // Update aria live selected option when prop changes\n\n var ariaSelected = useMemo(function () {\n var message = '';\n\n if (ariaSelection && messages.onChange) {\n var option = ariaSelection.option,\n selectedOptions = ariaSelection.options,\n removedValue = ariaSelection.removedValue,\n removedValues = ariaSelection.removedValues,\n value = ariaSelection.value; // select-option when !isMulti does not return option so we assume selected option is value\n\n var asOption = function asOption(val) {\n return !Array.isArray(val) ? val : null;\n }; // If there is just one item from the action then get its label\n\n\n var selected = removedValue || option || asOption(value);\n var label = selected ? getOptionLabel(selected) : ''; // If there are multiple items from the action then return an array of labels\n\n var multiSelected = selectedOptions || removedValues || undefined;\n var labels = multiSelected ? multiSelected.map(getOptionLabel) : [];\n\n var onChangeProps = _objectSpread2({\n // multiSelected items are usually items that have already been selected\n // or set by the user as a default value so we assume they are not disabled\n isDisabled: selected && isOptionDisabled(selected, selectValue),\n label: label,\n labels: labels\n }, ariaSelection);\n\n message = messages.onChange(onChangeProps);\n }\n\n return message;\n }, [ariaSelection, messages, isOptionDisabled, selectValue, getOptionLabel]);\n var ariaFocused = useMemo(function () {\n var focusMsg = '';\n var focused = focusedOption || focusedValue;\n var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));\n\n if (focused && messages.onFocus) {\n var onFocusProps = {\n focused: focused,\n label: getOptionLabel(focused),\n isDisabled: isOptionDisabled(focused, selectValue),\n isSelected: isSelected,\n options: options,\n context: focused === focusedOption ? 'menu' : 'value',\n selectValue: selectValue\n };\n focusMsg = messages.onFocus(onFocusProps);\n }\n\n return focusMsg;\n }, [focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, options, selectValue]);\n var ariaResults = useMemo(function () {\n var resultsMsg = '';\n\n if (menuIsOpen && options.length && messages.onFilter) {\n var resultsMessage = screenReaderStatus({\n count: focusableOptions.length\n });\n resultsMsg = messages.onFilter({\n inputValue: inputValue,\n resultsMessage: resultsMessage\n });\n }\n\n return resultsMsg;\n }, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus]);\n var ariaGuidance = useMemo(function () {\n var guidanceMsg = '';\n\n if (messages.guidance) {\n var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';\n guidanceMsg = messages.guidance({\n 'aria-label': ariaLabel,\n context: context,\n isDisabled: focusedOption && isOptionDisabled(focusedOption, selectValue),\n isMulti: isMulti,\n isSearchable: isSearchable,\n tabSelectsValue: tabSelectsValue\n });\n }\n\n return guidanceMsg;\n }, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, selectValue, tabSelectsValue]);\n var ariaContext = \"\".concat(ariaFocused, \" \").concat(ariaResults, \" \").concat(ariaGuidance);\n var ScreenReaderText = jsx(Fragment, null, jsx(\"span\", {\n id: \"aria-selection\"\n }, ariaSelected), jsx(\"span\", {\n id: \"aria-context\"\n }, ariaContext));\n var isInitialFocus = (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus';\n return jsx(Fragment, null, jsx(A11yText, {\n id: id\n }, isInitialFocus && ScreenReaderText), jsx(A11yText, {\n \"aria-live\": ariaLive,\n \"aria-atomic\": \"false\",\n \"aria-relevant\": \"additions text\"\n }, isFocused && !isInitialFocus && ScreenReaderText));\n};\n\nvar diacritics = [{\n base: 'A',\n letters: \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\"\n}, {\n base: 'AA',\n letters: \"\\uA732\"\n}, {\n base: 'AE',\n letters: \"\\xC6\\u01FC\\u01E2\"\n}, {\n base: 'AO',\n letters: \"\\uA734\"\n}, {\n base: 'AU',\n letters: \"\\uA736\"\n}, {\n base: 'AV',\n letters: \"\\uA738\\uA73A\"\n}, {\n base: 'AY',\n letters: \"\\uA73C\"\n}, {\n base: 'B',\n letters: \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\"\n}, {\n base: 'C',\n letters: \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\"\n}, {\n base: 'D',\n letters: \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\"\n}, {\n base: 'DZ',\n letters: \"\\u01F1\\u01C4\"\n}, {\n base: 'Dz',\n letters: \"\\u01F2\\u01C5\"\n}, {\n base: 'E',\n letters: \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\"\n}, {\n base: 'F',\n letters: \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\"\n}, {\n base: 'G',\n letters: \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\"\n}, {\n base: 'H',\n letters: \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\"\n}, {\n base: 'I',\n letters: \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\"\n}, {\n base: 'J',\n letters: \"J\\u24BF\\uFF2A\\u0134\\u0248\"\n}, {\n base: 'K',\n letters: \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\"\n}, {\n base: 'L',\n letters: \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\"\n}, {\n base: 'LJ',\n letters: \"\\u01C7\"\n}, {\n base: 'Lj',\n letters: \"\\u01C8\"\n}, {\n base: 'M',\n letters: \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\"\n}, {\n base: 'N',\n letters: \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\"\n}, {\n base: 'NJ',\n letters: \"\\u01CA\"\n}, {\n base: 'Nj',\n letters: \"\\u01CB\"\n}, {\n base: 'O',\n letters: \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\"\n}, {\n base: 'OI',\n letters: \"\\u01A2\"\n}, {\n base: 'OO',\n letters: \"\\uA74E\"\n}, {\n base: 'OU',\n letters: \"\\u0222\"\n}, {\n base: 'P',\n letters: \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\"\n}, {\n base: 'Q',\n letters: \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\"\n}, {\n base: 'R',\n letters: \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\"\n}, {\n base: 'S',\n letters: \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\"\n}, {\n base: 'T',\n letters: \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\"\n}, {\n base: 'TZ',\n letters: \"\\uA728\"\n}, {\n base: 'U',\n letters: \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\"\n}, {\n base: 'V',\n letters: \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\"\n}, {\n base: 'VY',\n letters: \"\\uA760\"\n}, {\n base: 'W',\n letters: \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\"\n}, {\n base: 'X',\n letters: \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\"\n}, {\n base: 'Y',\n letters: \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\"\n}, {\n base: 'Z',\n letters: \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\"\n}, {\n base: 'a',\n letters: \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\"\n}, {\n base: 'aa',\n letters: \"\\uA733\"\n}, {\n base: 'ae',\n letters: \"\\xE6\\u01FD\\u01E3\"\n}, {\n base: 'ao',\n letters: \"\\uA735\"\n}, {\n base: 'au',\n letters: \"\\uA737\"\n}, {\n base: 'av',\n letters: \"\\uA739\\uA73B\"\n}, {\n base: 'ay',\n letters: \"\\uA73D\"\n}, {\n base: 'b',\n letters: \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\"\n}, {\n base: 'c',\n letters: \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\"\n}, {\n base: 'd',\n letters: \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\"\n}, {\n base: 'dz',\n letters: \"\\u01F3\\u01C6\"\n}, {\n base: 'e',\n letters: \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\"\n}, {\n base: 'f',\n letters: \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\"\n}, {\n base: 'g',\n letters: \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\"\n}, {\n base: 'h',\n letters: \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\"\n}, {\n base: 'hv',\n letters: \"\\u0195\"\n}, {\n base: 'i',\n letters: \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\"\n}, {\n base: 'j',\n letters: \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\"\n}, {\n base: 'k',\n letters: \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\"\n}, {\n base: 'l',\n letters: \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\"\n}, {\n base: 'lj',\n letters: \"\\u01C9\"\n}, {\n base: 'm',\n letters: \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\"\n}, {\n base: 'n',\n letters: \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\"\n}, {\n base: 'nj',\n letters: \"\\u01CC\"\n}, {\n base: 'o',\n letters: \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\"\n}, {\n base: 'oi',\n letters: \"\\u01A3\"\n}, {\n base: 'ou',\n letters: \"\\u0223\"\n}, {\n base: 'oo',\n letters: \"\\uA74F\"\n}, {\n base: 'p',\n letters: \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\"\n}, {\n base: 'q',\n letters: \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\"\n}, {\n base: 'r',\n letters: \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\"\n}, {\n base: 's',\n letters: \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\"\n}, {\n base: 't',\n letters: \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\"\n}, {\n base: 'tz',\n letters: \"\\uA729\"\n}, {\n base: 'u',\n letters: \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\"\n}, {\n base: 'v',\n letters: \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\"\n}, {\n base: 'vy',\n letters: \"\\uA761\"\n}, {\n base: 'w',\n letters: \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\"\n}, {\n base: 'x',\n letters: \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\"\n}, {\n base: 'y',\n letters: \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\"\n}, {\n base: 'z',\n letters: \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\"\n}];\nvar anyDiacritic = new RegExp('[' + diacritics.map(function (d) {\n return d.letters;\n}).join('') + ']', 'g');\nvar diacriticToBase = {};\n\nfor (var i = 0; i < diacritics.length; i++) {\n var diacritic = diacritics[i];\n\n for (var j = 0; j < diacritic.letters.length; j++) {\n diacriticToBase[diacritic.letters[j]] = diacritic.base;\n }\n}\n\nvar stripDiacritics = function stripDiacritics(str) {\n return str.replace(anyDiacritic, function (match) {\n return diacriticToBase[match];\n });\n};\n\nvar memoizedStripDiacriticsForInput = memoizeOne(stripDiacritics);\n\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\n\nvar defaultStringify = function defaultStringify(option) {\n return \"\".concat(option.label, \" \").concat(option.value);\n};\n\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n // eslint-disable-next-line no-underscore-dangle\n if (option.data.__isNew__) return true;\n\n var _ignoreCase$ignoreAcc = _objectSpread2({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n\n if (ignoreAccents) {\n input = memoizedStripDiacriticsForInput(input);\n candidate = stripDiacritics(candidate);\n }\n\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nvar _excluded = [\"innerRef\"];\nfunction DummyInput(_ref) {\n var innerRef = _ref.innerRef,\n props = _objectWithoutProperties(_ref, _excluded);\n\n // Remove animation props not meant for HTML elements\n var filteredProps = removeProps(props, 'onExited', 'in', 'enter', 'exit', 'appear');\n return jsx(\"input\", _extends({\n ref: innerRef\n }, filteredProps, {\n css: /*#__PURE__*/css({\n label: 'dummyInput',\n // get rid of any default styles\n background: 0,\n border: 0,\n // important! this hides the flashing cursor\n caretColor: 'transparent',\n fontSize: 'inherit',\n gridArea: '1 / 1 / 2 / 3',\n outline: 0,\n padding: 0,\n // important! without `width` browsers won't allow focus\n width: 1,\n // remove cursor on desktop\n color: 'transparent',\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(.01)'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:DummyInput;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCTSIsImZpbGUiOiJEdW1teUlucHV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgcmVtb3ZlUHJvcHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIER1bW15SW5wdXQoe1xuICBpbm5lclJlZixcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snaW5wdXQnXSAmIHtcbiAgcmVhZG9ubHkgaW5uZXJSZWY6IFJlZjxIVE1MSW5wdXRFbGVtZW50Pjtcbn0pIHtcbiAgLy8gUmVtb3ZlIGFuaW1hdGlvbiBwcm9wcyBub3QgbWVhbnQgZm9yIEhUTUwgZWxlbWVudHNcbiAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IHJlbW92ZVByb3BzKFxuICAgIHByb3BzLFxuICAgICdvbkV4aXRlZCcsXG4gICAgJ2luJyxcbiAgICAnZW50ZXInLFxuICAgICdleGl0JyxcbiAgICAnYXBwZWFyJ1xuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgey4uLmZpbHRlcmVkUHJvcHN9XG4gICAgICBjc3M9e3tcbiAgICAgICAgbGFiZWw6ICdkdW1teUlucHV0JyxcbiAgICAgICAgLy8gZ2V0IHJpZCBvZiBhbnkgZGVmYXVsdCBzdHlsZXNcbiAgICAgICAgYmFja2dyb3VuZDogMCxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHRoaXMgaGlkZXMgdGhlIGZsYXNoaW5nIGN1cnNvclxuICAgICAgICBjYXJldENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgICAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnLFxuICAgICAgICBvdXRsaW5lOiAwLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHdpdGhvdXQgYHdpZHRoYCBicm93c2VycyB3b24ndCBhbGxvdyBmb2N1c1xuICAgICAgICB3aWR0aDogMSxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIGRlc2t0b3BcbiAgICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG5cbiAgICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBtb2JpbGUgd2hpbHN0IG1haW50YWluaW5nIFwic2Nyb2xsIGludG8gdmlld1wiIGJlaGF2aW91clxuICAgICAgICBsZWZ0OiAtMTAwLFxuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoLjAxKScsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG4iXX0= */\")\n }));\n}\n\nvar cancelScroll = function cancelScroll(event) {\n event.preventDefault();\n event.stopPropagation();\n};\n\nfunction useScrollCapture(_ref) {\n var isEnabled = _ref.isEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var isBottom = useRef(false);\n var isTop = useRef(false);\n var touchStart = useRef(0);\n var scrollTarget = useRef(null);\n var handleEventDelta = useCallback(function (event, delta) {\n if (scrollTarget.current === null) return;\n var _scrollTarget$current = scrollTarget.current,\n scrollTop = _scrollTarget$current.scrollTop,\n scrollHeight = _scrollTarget$current.scrollHeight,\n clientHeight = _scrollTarget$current.clientHeight;\n var target = scrollTarget.current;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false; // reset bottom/top flags\n\n if (availableScroll > delta && isBottom.current) {\n if (onBottomLeave) onBottomLeave(event);\n isBottom.current = false;\n }\n\n if (isDeltaPositive && isTop.current) {\n if (onTopLeave) onTopLeave(event);\n isTop.current = false;\n } // bottom limit\n\n\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !isBottom.current) {\n onBottomArrive(event);\n }\n\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n isBottom.current = true; // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !isTop.current) {\n onTopArrive(event);\n }\n\n target.scrollTop = 0;\n shouldCancelScroll = true;\n isTop.current = true;\n } // cancel scroll\n\n\n if (shouldCancelScroll) {\n cancelScroll(event);\n }\n }, [onBottomArrive, onBottomLeave, onTopArrive, onTopLeave]);\n var onWheel = useCallback(function (event) {\n handleEventDelta(event, event.deltaY);\n }, [handleEventDelta]);\n var onTouchStart = useCallback(function (event) {\n // set touch start so we can calculate touchmove delta\n touchStart.current = event.changedTouches[0].clientY;\n }, []);\n var onTouchMove = useCallback(function (event) {\n var deltaY = touchStart.current - event.changedTouches[0].clientY;\n handleEventDelta(event, deltaY);\n }, [handleEventDelta]);\n var startListening = useCallback(function (el) {\n // bail early if no element is available to attach to\n if (!el) return;\n var notPassive = supportsPassiveEvents ? {\n passive: false\n } : false;\n el.addEventListener('wheel', onWheel, notPassive);\n el.addEventListener('touchstart', onTouchStart, notPassive);\n el.addEventListener('touchmove', onTouchMove, notPassive);\n }, [onTouchMove, onTouchStart, onWheel]);\n var stopListening = useCallback(function (el) {\n // bail early if no element is available to detach from\n if (!el) return;\n el.removeEventListener('wheel', onWheel, false);\n el.removeEventListener('touchstart', onTouchStart, false);\n el.removeEventListener('touchmove', onTouchMove, false);\n }, [onTouchMove, onTouchStart, onWheel]);\n useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n startListening(element);\n return function () {\n stopListening(element);\n };\n }, [isEnabled, startListening, stopListening]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n boxSizing: 'border-box',\n // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\n\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\n\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\n\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n} // `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\n\n\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar activeScrollLocks = 0;\nvar listenerOptions = {\n capture: false,\n passive: false\n};\nfunction useScrollLock(_ref) {\n var isEnabled = _ref.isEnabled,\n _ref$accountForScroll = _ref.accountForScrollbars,\n accountForScrollbars = _ref$accountForScroll === void 0 ? true : _ref$accountForScroll;\n var originalStyles = useRef({});\n var scrollTarget = useRef(null);\n var addScrollLock = useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style;\n\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n originalStyles.current[key] = val;\n });\n } // apply the lock styles and padding if this is the first scroll lock\n\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(originalStyles.current.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n\n if (targetStyle) {\n targetStyle.paddingRight = \"\".concat(adjustedPadding, \"px\");\n }\n } // account for touch devices\n\n\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, listenerOptions); // Allow scroll on provided target\n\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n } // increment active scroll locks\n\n\n activeScrollLocks += 1;\n }, [accountForScrollbars]);\n var removeScrollLock = useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style; // safely decrement active scroll locks\n\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0); // reapply original body styles, if any\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = originalStyles.current[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n } // remove touch listeners\n\n\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, listenerOptions);\n\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n }\n }, [accountForScrollbars]);\n useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n addScrollLock(element);\n return function () {\n removeScrollLock(element);\n };\n }, [isEnabled, addScrollLock, removeScrollLock]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\nvar blurSelectInput = function blurSelectInput() {\n return document.activeElement && document.activeElement.blur();\n};\n\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"1kfdb0e\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0\"\n} : {\n name: \"bp8cua-ScrollManager\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;label:ScrollManager;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbE1hbmFnZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStDVSIsImZpbGUiOiJTY3JvbGxNYW5hZ2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgRnJhZ21lbnQsIFJlYWN0RWxlbWVudCwgUmVmQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlU2Nyb2xsQ2FwdHVyZSBmcm9tICcuL3VzZVNjcm9sbENhcHR1cmUnO1xuaW1wb3J0IHVzZVNjcm9sbExvY2sgZnJvbSAnLi91c2VTY3JvbGxMb2NrJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IChyZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PikgPT4gUmVhY3RFbGVtZW50O1xuICByZWFkb25seSBsb2NrRW5hYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgY2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IG9uQm90dG9tQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Cb3R0b21MZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IG9uVG9wQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Ub3BMZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IGJsdXJTZWxlY3RJbnB1dCA9ICgpID0+XG4gIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmJsdXIoKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2Nyb2xsTWFuYWdlcih7XG4gIGNoaWxkcmVuLFxuICBsb2NrRW5hYmxlZCxcbiAgY2FwdHVyZUVuYWJsZWQgPSB0cnVlLFxuICBvbkJvdHRvbUFycml2ZSxcbiAgb25Cb3R0b21MZWF2ZSxcbiAgb25Ub3BBcnJpdmUsXG4gIG9uVG9wTGVhdmUsXG59OiBQcm9wcykge1xuICBjb25zdCBzZXRTY3JvbGxDYXB0dXJlVGFyZ2V0ID0gdXNlU2Nyb2xsQ2FwdHVyZSh7XG4gICAgaXNFbmFibGVkOiBjYXB0dXJlRW5hYmxlZCxcbiAgICBvbkJvdHRvbUFycml2ZSxcbiAgICBvbkJvdHRvbUxlYXZlLFxuICAgIG9uVG9wQXJyaXZlLFxuICAgIG9uVG9wTGVhdmUsXG4gIH0pO1xuICBjb25zdCBzZXRTY3JvbGxMb2NrVGFyZ2V0ID0gdXNlU2Nyb2xsTG9jayh7IGlzRW5hYmxlZDogbG9ja0VuYWJsZWQgfSk7XG5cbiAgY29uc3QgdGFyZ2V0UmVmOiBSZWZDYWxsYmFjazxIVE1MRWxlbWVudD4gPSAoZWxlbWVudCkgPT4ge1xuICAgIHNldFNjcm9sbENhcHR1cmVUYXJnZXQoZWxlbWVudCk7XG4gICAgc2V0U2Nyb2xsTG9ja1RhcmdldChlbGVtZW50KTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxGcmFnbWVudD5cbiAgICAgIHtsb2NrRW5hYmxlZCAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBvbkNsaWNrPXtibHVyU2VsZWN0SW5wdXR9XG4gICAgICAgICAgY3NzPXt7IHBvc2l0aW9uOiAnZml4ZWQnLCBsZWZ0OiAwLCBib3R0b206IDAsIHJpZ2h0OiAwLCB0b3A6IDAgfX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7Y2hpbGRyZW4odGFyZ2V0UmVmKX1cbiAgICA8L0ZyYWdtZW50PlxuICApO1xufVxuIl19 */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\n\nfunction ScrollManager(_ref) {\n var children = _ref.children,\n lockEnabled = _ref.lockEnabled,\n _ref$captureEnabled = _ref.captureEnabled,\n captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var setScrollCaptureTarget = useScrollCapture({\n isEnabled: captureEnabled,\n onBottomArrive: onBottomArrive,\n onBottomLeave: onBottomLeave,\n onTopArrive: onTopArrive,\n onTopLeave: onTopLeave\n });\n var setScrollLockTarget = useScrollLock({\n isEnabled: lockEnabled\n });\n\n var targetRef = function targetRef(element) {\n setScrollCaptureTarget(element);\n setScrollLockTarget(element);\n };\n\n return jsx(Fragment, null, lockEnabled && jsx(\"div\", {\n onClick: blurSelectInput,\n css: _ref2\n }), children(targetRef));\n}\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\nvar getOptionLabel$1 = function getOptionLabel(option) {\n return option.label;\n};\nvar getOptionValue$1 = function getOptionValue(option) {\n return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\nvar defaultStyles = {\n clearIndicator: clearIndicatorCSS,\n container: containerCSS,\n control: css$1,\n dropdownIndicator: dropdownIndicatorCSS,\n group: groupCSS,\n groupHeading: groupHeadingCSS,\n indicatorsContainer: indicatorsContainerCSS,\n indicatorSeparator: indicatorSeparatorCSS,\n input: inputCSS,\n loadingIndicator: loadingIndicatorCSS,\n loadingMessage: loadingMessageCSS,\n menu: menuCSS,\n menuList: menuListCSS,\n menuPortal: menuPortalCSS,\n multiValue: multiValueCSS,\n multiValueLabel: multiValueLabelCSS,\n multiValueRemove: multiValueRemoveCSS,\n noOptionsMessage: noOptionsMessageCSS,\n option: optionCSS,\n placeholder: placeholderCSS,\n singleValue: css$2,\n valueContainer: valueContainerCSS\n}; // Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // initialize with source styles\n var styles = _objectSpread2({}, source); // massage in target styles\n\n\n Object.keys(target).forEach(function (keyAsString) {\n var key = keyAsString;\n\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\nvar borderRadius = 4; // Used to calculate consistent margin/padding on elements\n\nvar baseUnit = 4; // The minimum height of the control\n\nvar controlHeight = 38; // The amount of space between the control and menu */\n\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nvar defaultProps = {\n 'aria-live': 'polite',\n backspaceRemovesValue: true,\n blurInputOnSelect: isTouchCapable(),\n captureMenuScroll: !isTouchCapable(),\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel$1,\n getOptionValue: getOptionValue$1,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return \"\".concat(count, \" result\").concat(count !== 1 ? 's' : '', \" available\");\n },\n styles: {},\n tabIndex: 0,\n tabSelectsValue: true\n};\n\nfunction toCategorizedOption(props, option, selectValue, index) {\n var isDisabled = _isOptionDisabled(props, option, selectValue);\n\n var isSelected = _isOptionSelected(props, option, selectValue);\n\n var label = getOptionLabel(props, option);\n var value = getOptionValue(props, option);\n return {\n type: 'option',\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n label: label,\n value: value,\n index: index\n };\n}\n\nfunction buildCategorizedOptions(props, selectValue) {\n return props.options.map(function (groupOrOption, groupOrOptionIndex) {\n if ('options' in groupOrOption) {\n var categorizedOptions = groupOrOption.options.map(function (option, optionIndex) {\n return toCategorizedOption(props, option, selectValue, optionIndex);\n }).filter(function (categorizedOption) {\n return isFocusable(props, categorizedOption);\n });\n return categorizedOptions.length > 0 ? {\n type: 'group',\n data: groupOrOption,\n options: categorizedOptions,\n index: groupOrOptionIndex\n } : undefined;\n }\n\n var categorizedOption = toCategorizedOption(props, groupOrOption, selectValue, groupOrOptionIndex);\n return isFocusable(props, categorizedOption) ? categorizedOption : undefined;\n }).filter(notNullish);\n}\n\nfunction buildFocusableOptionsFromCategorizedOptions(categorizedOptions) {\n return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {\n if (categorizedOption.type === 'group') {\n optionsAccumulator.push.apply(optionsAccumulator, _toConsumableArray(categorizedOption.options.map(function (option) {\n return option.data;\n })));\n } else {\n optionsAccumulator.push(categorizedOption.data);\n }\n\n return optionsAccumulator;\n }, []);\n}\n\nfunction buildFocusableOptions(props, selectValue) {\n return buildFocusableOptionsFromCategorizedOptions(buildCategorizedOptions(props, selectValue));\n}\n\nfunction isFocusable(props, categorizedOption) {\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue;\n var data = categorizedOption.data,\n isSelected = categorizedOption.isSelected,\n label = categorizedOption.label,\n value = categorizedOption.value;\n return (!shouldHideSelectedOptions(props) || !isSelected) && _filterOption(props, {\n label: label,\n value: value,\n data: data\n }, inputValue);\n}\n\nfunction getNextFocusedValue(state, nextSelectValue) {\n var focusedValue = state.focusedValue,\n lastSelectValue = state.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n\n return null;\n}\n\nfunction getNextFocusedOption(state, options) {\n var lastFocusedOption = state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n}\n\nvar getOptionLabel = function getOptionLabel(props, data) {\n return props.getOptionLabel(data);\n};\n\nvar getOptionValue = function getOptionValue(props, data) {\n return props.getOptionValue(data);\n};\n\nfunction _isOptionDisabled(props, option, selectValue) {\n return typeof props.isOptionDisabled === 'function' ? props.isOptionDisabled(option, selectValue) : false;\n}\n\nfunction _isOptionSelected(props, option, selectValue) {\n if (selectValue.indexOf(option) > -1) return true;\n\n if (typeof props.isOptionSelected === 'function') {\n return props.isOptionSelected(option, selectValue);\n }\n\n var candidate = getOptionValue(props, option);\n return selectValue.some(function (i) {\n return getOptionValue(props, i) === candidate;\n });\n}\n\nfunction _filterOption(props, option, inputValue) {\n return props.filterOption ? props.filterOption(option, inputValue) : true;\n}\n\nvar shouldHideSelectedOptions = function shouldHideSelectedOptions(props) {\n var hideSelectedOptions = props.hideSelectedOptions,\n isMulti = props.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n};\n\nvar instanceId = 1;\n\nvar Select = /*#__PURE__*/function (_Component) {\n _inherits(Select, _Component);\n\n var _super = _createSuper(Select);\n\n // Misc. Instance Properties\n // ------------------------------\n // TODO\n // Refs\n // ------------------------------\n // Lifecycle\n // ------------------------------\n function Select(_props) {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _super.call(this, _props);\n _this.state = {\n ariaSelection: null,\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n selectValue: [],\n clearFocusValueOnUpdate: false,\n prevWasFocused: false,\n inputIsHiddenAfterUpdate: undefined,\n prevProps: undefined\n };\n _this.blockOptionHover = false;\n _this.isComposing = false;\n _this.commonProps = void 0;\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n _this.instancePrefix = '';\n _this.openAfterFocus = false;\n _this.scrollToFocusedOptionOnUpdate = false;\n _this.userIsDragging = void 0;\n _this.controlRef = null;\n\n _this.getControlRef = function (ref) {\n _this.controlRef = ref;\n };\n\n _this.focusedOptionRef = null;\n\n _this.getFocusedOptionRef = function (ref) {\n _this.focusedOptionRef = ref;\n };\n\n _this.menuListRef = null;\n\n _this.getMenuListRef = function (ref) {\n _this.menuListRef = ref;\n };\n\n _this.inputRef = null;\n\n _this.getInputRef = function (ref) {\n _this.inputRef = ref;\n };\n\n _this.focus = _this.focusInput;\n _this.blur = _this.blurInput;\n\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n actionMeta.name = name;\n\n _this.ariaOnChange(newValue, actionMeta);\n\n onChange(newValue, actionMeta);\n };\n\n _this.setValue = function (newValue, action, option) {\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti,\n inputValue = _this$props2.inputValue;\n\n _this.onInputChange('', {\n action: 'set-value',\n prevInputValue: inputValue\n });\n\n if (closeMenuOnSelect) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n\n _this.onMenuClose();\n } // when the select value should change, we should reset focusedValue\n\n\n _this.setState({\n clearFocusValueOnUpdate: true\n });\n\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n };\n\n _this.selectOption = function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti,\n name = _this$props3.name;\n var selectValue = _this.state.selectValue;\n\n var deselected = isMulti && _this.isOptionSelected(newValue, selectValue);\n\n var isDisabled = _this.isOptionDisabled(newValue, selectValue);\n\n if (deselected) {\n var candidate = _this.getOptionValue(newValue);\n\n _this.setValue(multiValueAsValue(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n })), 'deselect-option', newValue);\n } else if (!isDisabled) {\n // Select option if option is not disabled\n if (isMulti) {\n _this.setValue(multiValueAsValue([].concat(_toConsumableArray(selectValue), [newValue])), 'select-option', newValue);\n } else {\n _this.setValue(singleValueAsValue(newValue), 'select-option');\n }\n } else {\n _this.ariaOnChange(singleValueAsValue(newValue), {\n action: 'select-option',\n option: newValue,\n name: name\n });\n\n return;\n }\n\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n };\n\n _this.removeValue = function (removedValue) {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n\n var candidate = _this.getOptionValue(removedValue);\n\n var newValueArray = selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n });\n var newValue = valueTernary(isMulti, newValueArray, newValueArray[0] || null);\n\n _this.onChange(newValue, {\n action: 'remove-value',\n removedValue: removedValue\n });\n\n _this.focusInput();\n };\n\n _this.clearValue = function () {\n var selectValue = _this.state.selectValue;\n\n _this.onChange(valueTernary(_this.props.isMulti, [], null), {\n action: 'clear',\n removedValues: selectValue\n });\n };\n\n _this.popValue = function () {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n var newValueArray = selectValue.slice(0, selectValue.length - 1);\n var newValue = valueTernary(isMulti, newValueArray, newValueArray[0] || null);\n\n _this.onChange(newValue, {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n\n _this.getValue = function () {\n return _this.state.selectValue;\n };\n\n _this.cx = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return classNames.apply(void 0, [_this.props.classNamePrefix].concat(args));\n };\n\n _this.getOptionLabel = function (data) {\n return getOptionLabel(_this.props, data);\n };\n\n _this.getOptionValue = function (data) {\n return getOptionValue(_this.props, data);\n };\n\n _this.getStyles = function (key, props) {\n var base = defaultStyles[key](props);\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n\n _this.getElementId = function (element) {\n return \"\".concat(_this.instancePrefix, \"-\").concat(element);\n };\n\n _this.getComponents = function () {\n return defaultComponents(_this.props);\n };\n\n _this.buildCategorizedOptions = function () {\n return buildCategorizedOptions(_this.props, _this.state.selectValue);\n };\n\n _this.getCategorizedOptions = function () {\n return _this.props.menuIsOpen ? _this.buildCategorizedOptions() : [];\n };\n\n _this.buildFocusableOptions = function () {\n return buildFocusableOptionsFromCategorizedOptions(_this.buildCategorizedOptions());\n };\n\n _this.getFocusableOptions = function () {\n return _this.props.menuIsOpen ? _this.buildFocusableOptions() : [];\n };\n\n _this.ariaOnChange = function (value, actionMeta) {\n _this.setState({\n ariaSelection: _objectSpread2({\n value: value\n }, actionMeta)\n });\n };\n\n _this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n _this.focusInput();\n };\n\n _this.onMenuMouseMove = function (event) {\n _this.blockOptionHover = false;\n };\n\n _this.onControlMouseDown = function (event) {\n // Event captured by dropdown indicator\n if (event.defaultPrevented) {\n return;\n }\n\n var openMenuOnClick = _this.props.openMenuOnClick;\n\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n _this.onMenuClose();\n }\n }\n\n if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n event.preventDefault();\n }\n };\n\n _this.onDropdownIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n\n _this.focusInput();\n\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\n\n event.preventDefault();\n };\n\n _this.onClearIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n _this.clearValue();\n\n event.preventDefault();\n _this.openAfterFocus = false;\n\n if (event.type === 'touchend') {\n _this.focusInput();\n } else {\n setTimeout(function () {\n return _this.focusInput();\n });\n }\n };\n\n _this.onScroll = function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n };\n\n _this.onCompositionStart = function () {\n _this.isComposing = true;\n };\n\n _this.onCompositionEnd = function () {\n _this.isComposing = false;\n };\n\n _this.onTouchStart = function (_ref2) {\n var touches = _ref2.touches;\n var touch = touches && touches.item(0);\n\n if (!touch) {\n return;\n }\n\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n };\n\n _this.onTouchMove = function (_ref3) {\n var touches = _ref3.touches;\n var touch = touches && touches.item(0);\n\n if (!touch) {\n return;\n }\n\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n\n _this.onTouchEnd = function (event) {\n if (_this.userIsDragging) return; // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n } // reset move vars\n\n\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n };\n\n _this.onControlTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onControlMouseDown(event);\n };\n\n _this.onClearIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onClearIndicatorMouseDown(event);\n };\n\n _this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onDropdownIndicatorMouseDown(event);\n };\n\n _this.handleInputChange = function (event) {\n var prevInputValue = _this.props.inputValue;\n var inputValue = event.currentTarget.value;\n\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n\n _this.onInputChange(inputValue, {\n action: 'input-change',\n prevInputValue: prevInputValue\n });\n\n if (!_this.props.menuIsOpen) {\n _this.onMenuOpen();\n }\n };\n\n _this.onInputFocus = function (event) {\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n\n _this.setState({\n inputIsHiddenAfterUpdate: false,\n isFocused: true\n });\n\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n\n _this.openAfterFocus = false;\n };\n\n _this.onInputBlur = function (event) {\n var prevInputValue = _this.props.inputValue;\n\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n\n return;\n }\n\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n\n _this.onInputChange('', {\n action: 'input-blur',\n prevInputValue: prevInputValue\n });\n\n _this.onMenuClose();\n\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n\n _this.onOptionHover = function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n\n _this.setState({\n focusedOption: focusedOption\n });\n };\n\n _this.shouldHideSelectedOptions = function () {\n return shouldHideSelectedOptions(_this.props);\n };\n\n _this.onKeyDown = function (event) {\n var _this$props5 = _this.props,\n isMulti = _this$props5.isMulti,\n backspaceRemovesValue = _this$props5.backspaceRemovesValue,\n escapeClearsValue = _this$props5.escapeClearsValue,\n inputValue = _this$props5.inputValue,\n isClearable = _this$props5.isClearable,\n isDisabled = _this$props5.isDisabled,\n menuIsOpen = _this$props5.menuIsOpen,\n onKeyDown = _this$props5.onKeyDown,\n tabSelectsValue = _this$props5.tabSelectsValue,\n openMenuOnFocus = _this$props5.openMenuOnFocus;\n var _this$state = _this.state,\n focusedOption = _this$state.focusedOption,\n focusedValue = _this$state.focusedValue,\n selectValue = _this$state.selectValue;\n if (isDisabled) return;\n\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n\n if (event.defaultPrevented) {\n return;\n }\n } // Block option hover events when the user has just pressed a key\n\n\n _this.blockOptionHover = true;\n\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('previous');\n\n break;\n\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('next');\n\n break;\n\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n\n if (focusedValue) {\n _this.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n\n if (isMulti) {\n _this.popValue();\n } else if (isClearable) {\n _this.clearValue();\n }\n }\n\n break;\n\n case 'Tab':\n if (_this.isComposing) return;\n\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption || // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'Enter':\n if (event.keyCode === 229) {\n // ignore the keydown event from an Input Method Editor(IME)\n // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n break;\n }\n\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (_this.isComposing) return;\n\n _this.selectOption(focusedOption);\n\n break;\n }\n\n return;\n\n case 'Escape':\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n\n _this.onInputChange('', {\n action: 'menu-close',\n prevInputValue: inputValue\n });\n\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n\n break;\n\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n\n if (!menuIsOpen) {\n _this.openMenu('first');\n\n break;\n }\n\n if (!focusedOption) return;\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n\n break;\n\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n\n break;\n\n case 'PageUp':\n if (!menuIsOpen) return;\n\n _this.focusOption('pageup');\n\n break;\n\n case 'PageDown':\n if (!menuIsOpen) return;\n\n _this.focusOption('pagedown');\n\n break;\n\n case 'Home':\n if (!menuIsOpen) return;\n\n _this.focusOption('first');\n\n break;\n\n case 'End':\n if (!menuIsOpen) return;\n\n _this.focusOption('last');\n\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n };\n\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n _this.state.selectValue = cleanValue(_props.value);\n return _this;\n }\n\n _createClass(Select, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props6 = this.props,\n isDisabled = _this$props6.isDisabled,\n menuIsOpen = _this$props6.menuIsOpen;\n var isFocused = this.state.isFocused;\n\n if ( // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled || // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n }\n\n if (isFocused && isDisabled && !prevProps.isDisabled) {\n // ensure select state gets blurred in case Select is programmatically disabled while focused\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n isFocused: false\n }, this.onMenuClose);\n } // scroll the focused option into view if necessary\n\n\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n } // ==============================\n // Consumer Handlers\n // ==============================\n\n }, {\n key: \"onMenuOpen\",\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: \"onMenuClose\",\n value: function onMenuClose() {\n this.onInputChange('', {\n action: 'menu-close',\n prevInputValue: this.props.inputValue\n });\n this.props.onMenuClose();\n }\n }, {\n key: \"onInputChange\",\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n } // ==============================\n // Methods\n // ==============================\n\n }, {\n key: \"focusInput\",\n value: function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n }\n }, {\n key: \"blurInput\",\n value: function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n } // aliased for consumers\n\n }, {\n key: \"openMenu\",\n value: function openMenu(focusOption) {\n var _this2 = this;\n\n var _this$state2 = this.state,\n selectValue = _this$state2.selectValue,\n isFocused = _this$state2.isFocused;\n var focusableOptions = this.buildFocusableOptions();\n var openAtIndex = focusOption === 'first' ? 0 : focusableOptions.length - 1;\n\n if (!this.props.isMulti) {\n var selectedIndex = focusableOptions.indexOf(selectValue[0]);\n\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n } // only scroll if the menu isn't already open\n\n\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.setState({\n inputIsHiddenAfterUpdate: false,\n focusedValue: null,\n focusedOption: focusableOptions[openAtIndex]\n }, function () {\n return _this2.onMenuOpen();\n });\n }\n }, {\n key: \"focusValue\",\n value: function focusValue(direction) {\n var _this$state3 = this.state,\n selectValue = _this$state3.selectValue,\n focusedValue = _this$state3.focusedValue; // Only multiselects support value focusing\n\n if (!this.props.isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n\n if (!focusedValue) {\n focusedIndex = -1;\n }\n\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n\n break;\n\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n\n break;\n }\n\n this.setState({\n inputIsHidden: nextFocus !== -1,\n focusedValue: selectValue[nextFocus]\n });\n }\n }, {\n key: \"focusOption\",\n value: function focusOption() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n var pageSize = this.props.pageSize;\n var focusedOption = this.state.focusedOption;\n var options = this.getFocusableOptions();\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n\n var focusedIndex = options.indexOf(focusedOption);\n\n if (!focusedOption) {\n focusedIndex = -1;\n }\n\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n }\n }, {\n key: \"getTheme\",\n value: // ==============================\n // Getters\n // ==============================\n function getTheme() {\n // Use the default theme if there are no customizations.\n if (!this.props.theme) {\n return defaultTheme;\n } // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n\n\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n } // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n\n\n return _objectSpread2(_objectSpread2({}, defaultTheme), this.props.theme);\n }\n }, {\n key: \"getCommonProps\",\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n cx = this.cx,\n getStyles = this.getStyles,\n getValue = this.getValue,\n selectOption = this.selectOption,\n setValue = this.setValue,\n props = this.props;\n var isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var hasValue = this.hasValue();\n return {\n clearValue: clearValue,\n cx: cx,\n getStyles: getStyles,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n selectProps: props,\n setValue: setValue,\n theme: this.getTheme()\n };\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n }\n }, {\n key: \"hasOptions\",\n value: function hasOptions() {\n return !!this.getFocusableOptions().length;\n }\n }, {\n key: \"isClearable\",\n value: function isClearable() {\n var _this$props7 = this.props,\n isClearable = _this$props7.isClearable,\n isMulti = _this$props7.isMulti; // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n\n if (isClearable === undefined) return isMulti;\n return isClearable;\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option, selectValue) {\n return _isOptionDisabled(this.props, option, selectValue);\n }\n }, {\n key: \"isOptionSelected\",\n value: function isOptionSelected(option, selectValue) {\n return _isOptionSelected(this.props, option, selectValue);\n }\n }, {\n key: \"filterOption\",\n value: function filterOption(option, inputValue) {\n return _filterOption(this.props, option, inputValue);\n }\n }, {\n key: \"formatOptionLabel\",\n value: function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var _inputValue = this.props.inputValue;\n var _selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: _inputValue,\n selectValue: _selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: \"formatGroupLabel\",\n value: function formatGroupLabel(data) {\n return this.props.formatGroupLabel(data);\n } // ==============================\n // Mouse Handlers\n // ==============================\n\n }, {\n key: \"startListeningComposition\",\n value: // ==============================\n // Composition Handlers\n // ==============================\n function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n }\n }, {\n key: \"stopListeningComposition\",\n value: function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n }, {\n key: \"startListeningToTouch\",\n value: // ==============================\n // Touch Handlers\n // ==============================\n function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n }\n }, {\n key: \"stopListeningToTouch\",\n value: function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n }, {\n key: \"renderInput\",\n value: // ==============================\n // Renderers\n // ==============================\n function renderInput() {\n var _this$props8 = this.props,\n isDisabled = _this$props8.isDisabled,\n isSearchable = _this$props8.isSearchable,\n inputId = _this$props8.inputId,\n inputValue = _this$props8.inputValue,\n tabIndex = _this$props8.tabIndex,\n form = _this$props8.form,\n menuIsOpen = _this$props8.menuIsOpen;\n\n var _this$getComponents = this.getComponents(),\n Input = _this$getComponents.Input;\n\n var _this$state4 = this.state,\n inputIsHidden = _this$state4.inputIsHidden,\n ariaSelection = _this$state4.ariaSelection;\n var commonProps = this.commonProps;\n var id = inputId || this.getElementId('input'); // aria attributes makes the JSX \"noisy\", separated for clarity\n\n var ariaAttributes = _objectSpread2(_objectSpread2(_objectSpread2({\n 'aria-autocomplete': 'list',\n 'aria-expanded': menuIsOpen,\n 'aria-haspopup': true,\n 'aria-errormessage': this.props['aria-errormessage'],\n 'aria-invalid': this.props['aria-invalid'],\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby'],\n role: 'combobox'\n }, menuIsOpen && {\n 'aria-controls': this.getElementId('listbox'),\n 'aria-owns': this.getElementId('listbox')\n }), !isSearchable && {\n 'aria-readonly': true\n }), this.hasValue() ? (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus' && {\n 'aria-describedby': this.getElementId('live-region')\n } : {\n 'aria-describedby': this.getElementId('placeholder')\n });\n\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return /*#__PURE__*/React.createElement(DummyInput, _extends({\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: noop,\n onFocus: this.onInputFocus,\n disabled: isDisabled,\n tabIndex: tabIndex,\n inputMode: \"none\",\n form: form,\n value: \"\"\n }, ariaAttributes));\n }\n\n return /*#__PURE__*/React.createElement(Input, _extends({}, commonProps, {\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n spellCheck: \"false\",\n tabIndex: tabIndex,\n form: form,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: \"renderPlaceholderOrValue\",\n value: function renderPlaceholderOrValue() {\n var _this3 = this;\n\n var _this$getComponents2 = this.getComponents(),\n MultiValue = _this$getComponents2.MultiValue,\n MultiValueContainer = _this$getComponents2.MultiValueContainer,\n MultiValueLabel = _this$getComponents2.MultiValueLabel,\n MultiValueRemove = _this$getComponents2.MultiValueRemove,\n SingleValue = _this$getComponents2.SingleValue,\n Placeholder = _this$getComponents2.Placeholder;\n\n var commonProps = this.commonProps;\n var _this$props9 = this.props,\n controlShouldRenderValue = _this$props9.controlShouldRenderValue,\n isDisabled = _this$props9.isDisabled,\n isMulti = _this$props9.isMulti,\n inputValue = _this$props9.inputValue,\n placeholder = _this$props9.placeholder;\n var _this$state5 = this.state,\n selectValue = _this$state5.selectValue,\n focusedValue = _this$state5.focusedValue,\n isFocused = _this$state5.isFocused;\n\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : /*#__PURE__*/React.createElement(Placeholder, _extends({}, commonProps, {\n key: \"placeholder\",\n isDisabled: isDisabled,\n isFocused: isFocused,\n innerProps: {\n id: this.getElementId('placeholder')\n }\n }), placeholder);\n }\n\n if (isMulti) {\n return selectValue.map(function (opt, index) {\n var isOptionFocused = opt === focusedValue;\n var key = \"\".concat(_this3.getOptionLabel(opt), \"-\").concat(_this3.getOptionValue(opt));\n return /*#__PURE__*/React.createElement(MultiValue, _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isOptionFocused,\n isDisabled: isDisabled,\n key: key,\n index: index,\n removeProps: {\n onClick: function onClick() {\n return _this3.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this3.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n },\n data: opt\n }), _this3.formatOptionLabel(opt, 'value'));\n });\n }\n\n if (inputValue) {\n return null;\n }\n\n var singleValue = selectValue[0];\n return /*#__PURE__*/React.createElement(SingleValue, _extends({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n }\n }, {\n key: \"renderClearIndicator\",\n value: function renderClearIndicator() {\n var _this$getComponents3 = this.getComponents(),\n ClearIndicator = _this$getComponents3.ClearIndicator;\n\n var commonProps = this.commonProps;\n var _this$props10 = this.props,\n isDisabled = _this$props10.isDisabled,\n isLoading = _this$props10.isLoading;\n var isFocused = this.state.isFocused;\n\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderLoadingIndicator\",\n value: function renderLoadingIndicator() {\n var _this$getComponents4 = this.getComponents(),\n LoadingIndicator = _this$getComponents4.LoadingIndicator;\n\n var commonProps = this.commonProps;\n var _this$props11 = this.props,\n isDisabled = _this$props11.isDisabled,\n isLoading = _this$props11.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(LoadingIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderIndicatorSeparator\",\n value: function renderIndicatorSeparator() {\n var _this$getComponents5 = this.getComponents(),\n DropdownIndicator = _this$getComponents5.DropdownIndicator,\n IndicatorSeparator = _this$getComponents5.IndicatorSeparator; // separator doesn't make sense without the dropdown indicator\n\n\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return /*#__PURE__*/React.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderDropdownIndicator\",\n value: function renderDropdownIndicator() {\n var _this$getComponents6 = this.getComponents(),\n DropdownIndicator = _this$getComponents6.DropdownIndicator;\n\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(DropdownIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this4 = this;\n\n var _this$getComponents7 = this.getComponents(),\n Group = _this$getComponents7.Group,\n GroupHeading = _this$getComponents7.GroupHeading,\n Menu = _this$getComponents7.Menu,\n MenuList = _this$getComponents7.MenuList,\n MenuPortal = _this$getComponents7.MenuPortal,\n LoadingMessage = _this$getComponents7.LoadingMessage,\n NoOptionsMessage = _this$getComponents7.NoOptionsMessage,\n Option = _this$getComponents7.Option;\n\n var commonProps = this.commonProps;\n var focusedOption = this.state.focusedOption;\n var _this$props12 = this.props,\n captureMenuScroll = _this$props12.captureMenuScroll,\n inputValue = _this$props12.inputValue,\n isLoading = _this$props12.isLoading,\n loadingMessage = _this$props12.loadingMessage,\n minMenuHeight = _this$props12.minMenuHeight,\n maxMenuHeight = _this$props12.maxMenuHeight,\n menuIsOpen = _this$props12.menuIsOpen,\n menuPlacement = _this$props12.menuPlacement,\n menuPosition = _this$props12.menuPosition,\n menuPortalTarget = _this$props12.menuPortalTarget,\n menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,\n noOptionsMessage = _this$props12.noOptionsMessage,\n onMenuScrollToTop = _this$props12.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props12.onMenuScrollToBottom;\n if (!menuIsOpen) return null; // TODO: Internal Option Type here\n\n var render = function render(props, id) {\n var type = props.type,\n data = props.data,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected,\n label = props.label,\n value = props.value;\n var isFocused = focusedOption === data;\n var onHover = isDisabled ? undefined : function () {\n return _this4.onOptionHover(data);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this4.selectOption(data);\n };\n var optionId = \"\".concat(_this4.getElementId('option'), \"-\").concat(id);\n var innerProps = {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1\n };\n return /*#__PURE__*/React.createElement(Option, _extends({}, commonProps, {\n innerProps: innerProps,\n data: data,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: type,\n value: value,\n isFocused: isFocused,\n innerRef: isFocused ? _this4.getFocusedOptionRef : undefined\n }), _this4.formatOptionLabel(props.data, 'menu'));\n };\n\n var menuUI;\n\n if (this.hasOptions()) {\n menuUI = this.getCategorizedOptions().map(function (item) {\n if (item.type === 'group') {\n var _data = item.data,\n options = item.options,\n groupIndex = item.index;\n var groupId = \"\".concat(_this4.getElementId('group'), \"-\").concat(groupIndex);\n var headingId = \"\".concat(groupId, \"-heading\");\n return /*#__PURE__*/React.createElement(Group, _extends({}, commonProps, {\n key: groupId,\n data: _data,\n options: options,\n Heading: GroupHeading,\n headingProps: {\n id: headingId,\n data: item.data\n },\n label: _this4.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option, \"\".concat(groupIndex, \"-\").concat(option.index));\n }));\n } else if (item.type === 'option') {\n return render(item, \"\".concat(item.index));\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(LoadingMessage, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n\n if (_message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(NoOptionsMessage, commonProps, _message);\n }\n\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n var menuElement = /*#__PURE__*/React.createElement(MenuPlacer, _extends({}, commonProps, menuPlacementProps), function (_ref4) {\n var ref = _ref4.ref,\n _ref4$placerProps = _ref4.placerProps,\n placement = _ref4$placerProps.placement,\n maxHeight = _ref4$placerProps.maxHeight;\n return /*#__PURE__*/React.createElement(Menu, _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this4.onMenuMouseDown,\n onMouseMove: _this4.onMenuMouseMove,\n id: _this4.getElementId('listbox')\n },\n isLoading: isLoading,\n placement: placement\n }), /*#__PURE__*/React.createElement(ScrollManager, {\n captureEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom,\n lockEnabled: menuShouldBlockScroll\n }, function (scrollTargetRef) {\n return /*#__PURE__*/React.createElement(MenuList, _extends({}, commonProps, {\n innerRef: function innerRef(instance) {\n _this4.getMenuListRef(instance);\n\n scrollTargetRef(instance);\n },\n isLoading: isLoading,\n maxHeight: maxHeight,\n focusedOption: focusedOption\n }), menuUI);\n }));\n }); // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n\n return menuPortalTarget || menuPosition === 'fixed' ? /*#__PURE__*/React.createElement(MenuPortal, _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n }\n }, {\n key: \"renderFormField\",\n value: function renderFormField() {\n var _this5 = this;\n\n var _this$props13 = this.props,\n delimiter = _this$props13.delimiter,\n isDisabled = _this$props13.isDisabled,\n isMulti = _this$props13.isMulti,\n name = _this$props13.name;\n var selectValue = this.state.selectValue;\n if (!name || isDisabled) return;\n\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this5.getOptionValue(opt);\n }).join(delimiter);\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(\"input\", {\n key: \"i-\".concat(i),\n name: name,\n type: \"hidden\",\n value: _this5.getOptionValue(opt)\n });\n }) : /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\"\n });\n return /*#__PURE__*/React.createElement(\"div\", null, input);\n }\n } else {\n var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value\n });\n }\n }\n }, {\n key: \"renderLiveRegion\",\n value: function renderLiveRegion() {\n var commonProps = this.commonProps;\n var _this$state6 = this.state,\n ariaSelection = _this$state6.ariaSelection,\n focusedOption = _this$state6.focusedOption,\n focusedValue = _this$state6.focusedValue,\n isFocused = _this$state6.isFocused,\n selectValue = _this$state6.selectValue;\n var focusableOptions = this.getFocusableOptions();\n return /*#__PURE__*/React.createElement(LiveRegion, _extends({}, commonProps, {\n id: this.getElementId('live-region'),\n ariaSelection: ariaSelection,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n isFocused: isFocused,\n selectValue: selectValue,\n focusableOptions: focusableOptions\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$getComponents8 = this.getComponents(),\n Control = _this$getComponents8.Control,\n IndicatorsContainer = _this$getComponents8.IndicatorsContainer,\n SelectContainer = _this$getComponents8.SelectContainer,\n ValueContainer = _this$getComponents8.ValueContainer;\n\n var _this$props14 = this.props,\n className = _this$props14.className,\n id = _this$props14.id,\n isDisabled = _this$props14.isDisabled,\n menuIsOpen = _this$props14.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return /*#__PURE__*/React.createElement(SelectContainer, _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), /*#__PURE__*/React.createElement(Control, _extends({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused,\n menuIsOpen: menuIsOpen\n }), /*#__PURE__*/React.createElement(ValueContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/React.createElement(IndicatorsContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n var prevProps = state.prevProps,\n clearFocusValueOnUpdate = state.clearFocusValueOnUpdate,\n inputIsHiddenAfterUpdate = state.inputIsHiddenAfterUpdate,\n ariaSelection = state.ariaSelection,\n isFocused = state.isFocused,\n prevWasFocused = state.prevWasFocused;\n var options = props.options,\n value = props.value,\n menuIsOpen = props.menuIsOpen,\n inputValue = props.inputValue,\n isMulti = props.isMulti;\n var selectValue = cleanValue(value);\n var newMenuOptionsState = {};\n\n if (prevProps && (value !== prevProps.value || options !== prevProps.options || menuIsOpen !== prevProps.menuIsOpen || inputValue !== prevProps.inputValue)) {\n var focusableOptions = menuIsOpen ? buildFocusableOptions(props, selectValue) : [];\n var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state, selectValue) : null;\n var focusedOption = getNextFocusedOption(state, focusableOptions);\n newMenuOptionsState = {\n selectValue: selectValue,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n clearFocusValueOnUpdate: false\n };\n } // some updates should toggle the state of the input visibility\n\n\n var newInputIsHiddenState = inputIsHiddenAfterUpdate != null && props !== prevProps ? {\n inputIsHidden: inputIsHiddenAfterUpdate,\n inputIsHiddenAfterUpdate: undefined\n } : {};\n var newAriaSelection = ariaSelection;\n var hasKeptFocus = isFocused && prevWasFocused;\n\n if (isFocused && !hasKeptFocus) {\n // If `value` or `defaultValue` props are not empty then announce them\n // when the Select is initially focused\n newAriaSelection = {\n value: valueTernary(isMulti, selectValue, selectValue[0] || null),\n options: selectValue,\n action: 'initial-input-focus'\n };\n hasKeptFocus = !prevWasFocused;\n } // If the 'initial-input-focus' action has been set already\n // then reset the ariaSelection to null\n\n\n if ((ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus') {\n newAriaSelection = null;\n }\n\n return _objectSpread2(_objectSpread2(_objectSpread2({}, newMenuOptionsState), newInputIsHiddenState), {}, {\n prevProps: props,\n ariaSelection: newAriaSelection,\n prevWasFocused: hasKeptFocus\n });\n }\n }]);\n\n return Select;\n}(Component);\n\nSelect.defaultProps = defaultProps;\n\nexport { Select as S, getOptionLabel$1 as a, defaultProps as b, createFilter as c, defaultTheme as d, getOptionValue$1 as g, mergeStyles as m };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { jsx, keyframes, css as css$2, ClassNames } from '@emotion/react';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _defineProperty$1 from '@babel/runtime/helpers/esm/defineProperty';\nimport { Component, createContext } from 'react';\nimport { createPortal } from 'react-dom';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nvar _excluded$3 = [\"className\", \"clearValue\", \"cx\", \"getStyles\", \"getValue\", \"hasValue\", \"isMulti\", \"isRtl\", \"options\", \"selectOption\", \"selectProps\", \"setValue\", \"theme\"];\n// ==============================\n// NO OP\n// ==============================\nvar noop = function noop() {};\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n @returns 'react-select__comp react-select__comp--some'\n*/\n\nfunction applyPrefixToName(prefix, name) {\n if (!name) {\n return prefix;\n } else if (name[0] === '-') {\n return prefix + name;\n } else {\n return prefix + '__' + name;\n }\n}\n\nfunction classNames(prefix, state, className) {\n var arr = [className];\n\n if (state && prefix) {\n for (var key in state) {\n if (state.hasOwnProperty(key) && state[key]) {\n arr.push(\"\".concat(applyPrefixToName(prefix, key)));\n }\n }\n }\n\n return arr.filter(function (i) {\n return i;\n }).map(function (i) {\n return String(i).trim();\n }).join(' ');\n} // ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n if (isArray(value)) return value.filter(Boolean);\n if (_typeof(value) === 'object' && value !== null) return [value];\n return [];\n}; // ==============================\n// Clean Common Props\n// ==============================\n\nvar cleanCommonProps = function cleanCommonProps(props) {\n //className\n props.className;\n props.clearValue;\n props.cx;\n props.getStyles;\n props.getValue;\n props.hasValue;\n props.isMulti;\n props.isRtl;\n props.options;\n props.selectOption;\n props.selectProps;\n props.setValue;\n props.theme;\n var innerProps = _objectWithoutProperties(props, _excluded$3);\n\n return _objectSpread2({}, innerProps);\n}; // ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n if (onInputChange) {\n var _newValue = onInputChange(inputValue, actionMeta);\n\n if (typeof _newValue === 'string') return _newValue;\n }\n\n return inputValue;\n} // ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n} // Normalized Scroll Top\n// ------------------------------\n\nfunction normalizedHeight(el) {\n if (isDocumentElement(el)) {\n return window.innerHeight;\n }\n\n return el.clientHeight;\n} // Normalized scrollTo & scrollTop\n// ------------------------------\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n\n return el.scrollTop;\n}\nfunction scrollTo(el, top) {\n // with a scroll distance, we perform scroll on the element\n if (isDocumentElement(el)) {\n window.scrollTo(0, top);\n return;\n }\n\n el.scrollTop = top;\n} // Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === 'absolute';\n var overflowRx = /(auto|scroll)/;\n if (style.position === 'fixed') return document.documentElement;\n\n for (var parent = element; parent = parent.parentElement;) {\n style = getComputedStyle(parent);\n\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n\n if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent;\n }\n }\n\n return document.documentElement;\n} // Animated Scroll To\n// ------------------------------\n\n/**\n @param t: time (elapsed)\n @param b: initial value\n @param c: amount of change\n @param d: duration\n*/\n\nfunction easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n}\n\nfunction animatedScrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n var start = getScrollTop(element);\n var change = to - start;\n var increment = 10;\n var currentTime = 0;\n\n function animateScroll() {\n currentTime += increment;\n var val = easeOutCubic(currentTime, start, change, duration);\n scrollTo(element, val);\n\n if (currentTime < duration) {\n window.requestAnimationFrame(animateScroll);\n } else {\n callback(element);\n }\n }\n\n animateScroll();\n} // Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n var menuRect = menuEl.getBoundingClientRect();\n var focusedRect = focusedEl.getBoundingClientRect();\n var overScroll = focusedEl.offsetHeight / 3;\n\n if (focusedRect.bottom + overScroll > menuRect.bottom) {\n scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n } else if (focusedRect.top - overScroll < menuRect.top) {\n scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n }\n} // ==============================\n// Get bounding client object\n// ==============================\n// cannot get keys using array notation with DOMRect\n\nfunction getBoundingClientObj(element) {\n var rect = element.getBoundingClientRect();\n return {\n bottom: rect.bottom,\n height: rect.height,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n width: rect.width\n };\n}\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n} // ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n try {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n } catch (e) {\n return false;\n }\n} // ==============================\n// Passive Event Detector\n// ==============================\n// https://github.com/rafgraph/detect-it/blob/main/src/index.ts#L19-L36\n\nvar passiveOptionAccessed = false;\nvar options = {\n get passive() {\n return passiveOptionAccessed = true;\n }\n\n}; // check for SSR\n\nvar w = typeof window !== 'undefined' ? window : {};\n\nif (w.addEventListener && w.removeEventListener) {\n w.addEventListener('p', noop, options);\n w.removeEventListener('p', noop, false);\n}\n\nvar supportsPassiveEvents = passiveOptionAccessed;\nfunction notNullish(item) {\n return item != null;\n}\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction valueTernary(isMulti, multiValue, singleValue) {\n return isMulti ? multiValue : singleValue;\n}\nfunction singleValueAsValue(singleValue) {\n return singleValue;\n}\nfunction multiValueAsValue(multiValue) {\n return multiValue;\n}\nvar removeProps = function removeProps(propsObj) {\n for (var _len = arguments.length, properties = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n properties[_key - 1] = arguments[_key];\n }\n\n var propsMap = Object.entries(propsObj).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n\n return !properties.includes(key);\n });\n return propsMap.reduce(function (newProps, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n val = _ref4[1];\n\n newProps[key] = val;\n return newProps;\n }, {});\n};\n\nfunction getMenuPlacement(_ref) {\n var maxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n placement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n theme = _ref.theme;\n var spacing = theme.spacing;\n var scrollParent = getScrollParent(menuEl);\n var defaultState = {\n placement: 'bottom',\n maxHeight: maxHeight\n }; // something went wrong, return default state\n\n if (!menuEl || !menuEl.offsetParent) return defaultState; // we can't trust `scrollParent.scrollHeight` --> it may increase when\n // the menu is rendered\n\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n\n var viewHeight = isFixedPosition ? window.innerHeight : normalizedHeight(scrollParent);\n var scrollTop = getScrollTop(scrollParent);\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n\n switch (placement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n } // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n } // 4. Forked beviour when there isn't enough space below\n // AUTO: flip the menu, render above\n\n\n if (placement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = maxHeight;\n var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n\n if (spaceAbove >= minHeight) {\n _constrainedHeight = Math.min(spaceAbove - marginBottom - spacing.controlHeight, maxHeight);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight\n };\n } // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n\n\n if (placement === 'bottom') {\n if (shouldScroll) {\n scrollTo(scrollParent, scrollDown);\n }\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n }\n\n break;\n\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = maxHeight; // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n } // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n\n default:\n throw new Error(\"Invalid placement provided \\\"\".concat(placement, \"\\\".\"));\n }\n\n return defaultState;\n} // Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = {\n bottom: 'top',\n top: 'bottom'\n };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\n\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\n\nvar menuCSS = function menuCSS(_ref2) {\n var _ref3;\n\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _ref3 = {\n label: 'menu'\n }, _defineProperty$1(_ref3, alignToControl(placement), '100%'), _defineProperty$1(_ref3, \"backgroundColor\", colors.neutral0), _defineProperty$1(_ref3, \"borderRadius\", borderRadius), _defineProperty$1(_ref3, \"boxShadow\", '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)'), _defineProperty$1(_ref3, \"marginBottom\", spacing.menuGutter), _defineProperty$1(_ref3, \"marginTop\", spacing.menuGutter), _defineProperty$1(_ref3, \"position\", 'absolute'), _defineProperty$1(_ref3, \"width\", '100%'), _defineProperty$1(_ref3, \"zIndex\", 1), _ref3;\n};\nvar PortalPlacementContext = /*#__PURE__*/createContext({\n getPortalPlacement: null\n}); // NOTE: internal only\n\nvar MenuPlacer = /*#__PURE__*/function (_Component) {\n _inherits(MenuPlacer, _Component);\n\n var _super = _createSuper(MenuPlacer);\n\n function MenuPlacer() {\n var _this;\n\n _classCallCheck(this, MenuPlacer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n maxHeight: _this.props.maxMenuHeight,\n placement: null\n };\n _this.context = void 0;\n\n _this.getPlacement = function (ref) {\n var _this$props = _this.props,\n minMenuHeight = _this$props.minMenuHeight,\n maxMenuHeight = _this$props.maxMenuHeight,\n menuPlacement = _this$props.menuPlacement,\n menuPosition = _this$props.menuPosition,\n menuShouldScrollIntoView = _this$props.menuShouldScrollIntoView,\n theme = _this$props.theme;\n if (!ref) return; // DO NOT scroll if position is fixed\n\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: ref,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n theme: theme\n });\n var getPortalPlacement = _this.context.getPortalPlacement;\n if (getPortalPlacement) getPortalPlacement(state);\n\n _this.setState(state);\n };\n\n _this.getUpdatedProps = function () {\n var menuPlacement = _this.props.menuPlacement;\n var placement = _this.state.placement || coercePlacement(menuPlacement);\n return _objectSpread2(_objectSpread2({}, _this.props), {}, {\n placement: placement,\n maxHeight: _this.state.maxHeight\n });\n };\n\n return _this;\n }\n\n _createClass(MenuPlacer, [{\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n return children({\n ref: this.getPlacement,\n placerProps: this.getUpdatedProps()\n });\n }\n }]);\n\n return MenuPlacer;\n}(Component);\nMenuPlacer.contextType = PortalPlacementContext;\n\nvar Menu = function Menu(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('menu', props),\n className: cx({\n menu: true\n }, className),\n ref: innerRef\n }, innerProps), children);\n};\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref4) {\n var maxHeight = _ref4.maxHeight,\n baseUnit = _ref4.theme.spacing.baseUnit;\n return {\n maxHeight: maxHeight,\n overflowY: 'auto',\n paddingBottom: baseUnit,\n paddingTop: baseUnit,\n position: 'relative',\n // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n };\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n innerRef = props.innerRef,\n isMulti = props.isMulti;\n return jsx(\"div\", _extends({\n css: getStyles('menuList', props),\n className: cx({\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }, className),\n ref: innerRef\n }, innerProps), children);\n}; // ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref5) {\n var _ref5$theme = _ref5.theme,\n baseUnit = _ref5$theme.spacing.baseUnit,\n colors = _ref5$theme.colors;\n return {\n color: colors.neutral40,\n padding: \"\".concat(baseUnit * 2, \"px \").concat(baseUnit * 3, \"px\"),\n textAlign: 'center'\n };\n};\n\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\nvar NoOptionsMessage = function NoOptionsMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('noOptionsMessage', props),\n className: cx({\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }, className)\n }, innerProps), children);\n};\nNoOptionsMessage.defaultProps = {\n children: 'No options'\n};\nvar LoadingMessage = function LoadingMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('loadingMessage', props),\n className: cx({\n 'menu-notice': true,\n 'menu-notice--loading': true\n }, className)\n }, innerProps), children);\n};\nLoadingMessage.defaultProps = {\n children: 'Loading...'\n}; // ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref6) {\n var rect = _ref6.rect,\n offset = _ref6.offset,\n position = _ref6.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\nvar MenuPortal = /*#__PURE__*/function (_Component2) {\n _inherits(MenuPortal, _Component2);\n\n var _super2 = _createSuper(MenuPortal);\n\n function MenuPortal() {\n var _this2;\n\n _classCallCheck(this, MenuPortal);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _this2.state = {\n placement: null\n };\n\n _this2.getPortalPlacement = function (_ref7) {\n var placement = _ref7.placement;\n var initialPlacement = coercePlacement(_this2.props.menuPlacement); // avoid re-renders if the placement has not changed\n\n if (placement !== initialPlacement) {\n _this2.setState({\n placement: placement\n });\n }\n };\n\n return _this2;\n }\n\n _createClass(MenuPortal, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n appendTo = _this$props2.appendTo,\n children = _this$props2.children,\n className = _this$props2.className,\n controlElement = _this$props2.controlElement,\n cx = _this$props2.cx,\n innerProps = _this$props2.innerProps,\n menuPlacement = _this$props2.menuPlacement,\n position = _this$props2.menuPosition,\n getStyles = _this$props2.getStyles;\n var isFixed = position === 'fixed'; // bail early if required elements aren't present\n\n if (!appendTo && !isFixed || !controlElement) {\n return null;\n }\n\n var placement = this.state.placement || coercePlacement(menuPlacement);\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = isFixed ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n var state = {\n offset: offset,\n position: position,\n rect: rect\n }; // same wrapper element whether fixed or portalled\n\n var menuWrapper = jsx(\"div\", _extends({\n css: getStyles('menuPortal', state),\n className: cx({\n 'menu-portal': true\n }, className)\n }, innerProps), children);\n return jsx(PortalPlacementContext.Provider, {\n value: {\n getPortalPlacement: this.getPortalPlacement\n }\n }, appendTo ? /*#__PURE__*/createPortal(menuWrapper, appendTo) : menuWrapper);\n }\n }]);\n\n return MenuPortal;\n}(Component);\n\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n label: 'container',\n direction: isRtl ? 'rtl' : undefined,\n pointerEvents: isDisabled ? 'none' : undefined,\n // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends({\n css: getStyles('container', props),\n className: cx({\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }, className)\n }, innerProps), children);\n}; // ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2) {\n var spacing = _ref2.theme.spacing,\n isMulti = _ref2.isMulti,\n hasValue = _ref2.hasValue,\n controlShouldRenderValue = _ref2.selectProps.controlShouldRenderValue;\n return {\n alignItems: 'center',\n display: isMulti && hasValue && controlShouldRenderValue ? 'flex' : 'grid',\n flex: 1,\n flexWrap: 'wrap',\n padding: \"\".concat(spacing.baseUnit / 2, \"px \").concat(spacing.baseUnit * 2, \"px\"),\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n };\n};\nvar ValueContainer = function ValueContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n innerProps = props.innerProps,\n isMulti = props.isMulti,\n getStyles = props.getStyles,\n hasValue = props.hasValue;\n return jsx(\"div\", _extends({\n css: getStyles('valueContainer', props),\n className: cx({\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }, className)\n }, innerProps), children);\n}; // ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n innerProps = props.innerProps,\n getStyles = props.getStyles;\n return jsx(\"div\", _extends({\n css: getStyles('indicatorsContainer', props),\n className: cx({\n indicators: true\n }, className)\n }, innerProps), children);\n};\n\nvar _templateObject;\n\nvar _excluded$2 = [\"size\"];\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"8mmkcg\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0\"\n} : {\n name: \"tj5bde-Svg\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;label:Svg;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdCSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgSWNvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5jb25zdCBTdmcgPSAoe1xuICBzaXplLFxuICAuLi5wcm9wc1xufTogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZTogbnVtYmVyIH0pID0+IChcbiAgPHN2Z1xuICAgIGhlaWdodD17c2l6ZX1cbiAgICB3aWR0aD17c2l6ZX1cbiAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICBjc3M9e3tcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgZmlsbDogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBsaW5lSGVpZ2h0OiAxLFxuICAgICAgc3Ryb2tlOiAnY3VycmVudENvbG9yJyxcbiAgICAgIHN0cm9rZVdpZHRoOiAwLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IHR5cGUgQ3Jvc3NJY29uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgQ3Jvc3NJY29uID0gKHByb3BzOiBDcm9zc0ljb25Qcm9wcykgPT4gKFxuICA8U3ZnIHNpemU9ezIwfSB7Li4ucHJvcHN9PlxuICAgIDxwYXRoIGQ9XCJNMTQuMzQ4IDE0Ljg0OWMtMC40NjkgMC40NjktMS4yMjkgMC40NjktMS42OTcgMGwtMi42NTEtMy4wMzAtMi42NTEgMy4wMjljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDAtMC40NjktMC40NjktMC40NjktMS4yMjkgMC0xLjY5N2wyLjc1OC0zLjE1LTIuNzU5LTMuMTUyYy0wLjQ2OS0wLjQ2OS0wLjQ2OS0xLjIyOCAwLTEuNjk3czEuMjI4LTAuNDY5IDEuNjk3IDBsMi42NTIgMy4wMzEgMi42NTEtMy4wMzFjMC40NjktMC40NjkgMS4yMjgtMC40NjkgMS42OTcgMHMwLjQ2OSAxLjIyOSAwIDEuNjk3bC0yLjc1OCAzLjE1MiAyLjc1OCAzLjE1YzAuNDY5IDAuNDY5IDAuNDY5IDEuMjI5IDAgMS42OTh6XCIgLz5cbiAgPC9Tdmc+XG4pO1xuZXhwb3J0IHR5cGUgRG93bkNoZXZyb25Qcm9wcyA9IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU/OiBudW1iZXIgfTtcbmV4cG9ydCBjb25zdCBEb3duQ2hldnJvbiA9IChwcm9wczogRG93bkNoZXZyb25Qcm9wcykgPT4gKFxuICA8U3ZnIHNpemU9ezIwfSB7Li4ucHJvcHN9PlxuICAgIDxwYXRoIGQ9XCJNNC41MTYgNy41NDhjMC40MzYtMC40NDYgMS4wNDMtMC40ODEgMS41NzYgMGwzLjkwOCAzLjc0NyAzLjkwOC0zLjc0N2MwLjUzMy0wLjQ4MSAxLjE0MS0wLjQ0NiAxLjU3NCAwIDAuNDM2IDAuNDQ1IDAuNDA4IDEuMTk3IDAgMS42MTUtMC40MDYgMC40MTgtNC42OTUgNC41MDItNC42OTUgNC41MDItMC4yMTcgMC4yMjMtMC41MDIgMC4zMzUtMC43ODcgMC4zMzVzLTAuNTctMC4xMTItMC43ODktMC4zMzVjMCAwLTQuMjg3LTQuMDg0LTQuNjk1LTQuNTAycy0wLjQzNi0xLjE3IDAtMS42MTV6XCIgLz5cbiAgPC9Tdmc+XG4pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgQnV0dG9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25JbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBUaGUgY2hpbGRyZW4gdG8gYmUgcmVuZGVyZWQgaW5zaWRlIHRoZSBpbmRpY2F0b3IuICovXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICAvKiogUHJvcHMgdGhhdCB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUgY2hpbGRyZW4uICovXG4gIGlubmVyUHJvcHM6IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snZGl2J107XG4gIC8qKiBUaGUgZm9jdXNlZCBzdGF0ZSBvZiB0aGUgc2VsZWN0LiAqL1xuICBpc0ZvY3VzZWQ6IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbmNvbnN0IGJhc2VDU1MgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oe1xuICBpc0ZvY3VzZWQsXG4gIHRoZW1lOiB7XG4gICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgIGNvbG9ycyxcbiAgfSxcbn06XG4gIHwgRHJvcGRvd25JbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPlxuICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw2MCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuXG4gICc6aG92ZXInOiB7XG4gICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBkcm9wZG93bkluZGljYXRvckNTUyA9IGJhc2VDU1M7XG5leHBvcnQgY29uc3QgRHJvcGRvd25JbmRpY2F0b3IgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHByb3BzOiBEcm9wZG93bkluZGljYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+XG4pID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2dldFN0eWxlcygnZHJvcGRvd25JbmRpY2F0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Z2V0U3R5bGVzKCdjbGVhckluZGljYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgIHtcbiAgICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICAgJ2NsZWFyLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8Q3Jvc3NJY29uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZXBhcmF0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGljYXRvclNlcGFyYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpbm5lclByb3BzPzogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ107XG59XG5cbmV4cG9ydCBjb25zdCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oe1xuICBpc0Rpc2FibGVkLFxuICB0aGVtZToge1xuICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICBjb2xvcnMsXG4gIH0sXG59OiBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPik6IENTU09iamVjdFdpdGhMYWJlbCA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gIGFsaWduU2VsZjogJ3N0cmV0Y2gnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgbWFyZ2luQm90dG9tOiBiYXNlVW5pdCAqIDIsXG4gIG1hcmdpblRvcDogYmFzZVVuaXQgKiAyLFxuICB3aWR0aDogMSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2luZGljYXRvclNlcGFyYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goeyAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUgfSwgY2xhc3NOYW1lKX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KHtcbiAgaXNGb2N1c2VkLFxuICBzaXplLFxuICB0aGVtZToge1xuICAgIGNvbG9ycyxcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gIH0sXG59OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcbiAgYWxpZ25TZWxmOiAnY2VudGVyJyxcbiAgZm9udFNpemU6IHNpemUsXG4gIGxpbmVIZWlnaHQ6IDEsXG4gIG1hcmdpblJpZ2h0OiBzaXplLFxuICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbn0pO1xuXG5pbnRlcmZhY2UgTG9hZGluZ0RvdFByb3BzIHtcbiAgZGVsYXk6IG51bWJlcjtcbiAgb2Zmc2V0OiBib29sZWFuO1xufVxuY29uc3QgTG9hZGluZ0RvdCA9ICh7IGRlbGF5LCBvZmZzZXQgfTogTG9hZGluZ0RvdFByb3BzKSA9PiAoXG4gIDxzcGFuXG4gICAgY3NzPXt7XG4gICAgICBhbmltYXRpb246IGAke2xvYWRpbmdEb3RBbmltYXRpb25zfSAxcyBlYXNlLWluLW91dCAke2RlbGF5fW1zIGluZmluaXRlO2AsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdjdXJyZW50Q29sb3InLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnMWVtJyxcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgbWFyZ2luTGVmdDogb2Zmc2V0ID8gJzFlbScgOiB1bmRlZmluZWQsXG4gICAgICBoZWlnaHQ6ICcxZW0nLFxuICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICB3aWR0aDogJzFlbScsXG4gICAgfX1cbiAgLz5cbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGluZ0luZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xuICAvKiogU2V0IHNpemUgb2YgdGhlIGNvbnRhaW5lci4gKi9cbiAgc2l6ZTogbnVtYmVyO1xufVxuZXhwb3J0IGNvbnN0IExvYWRpbmdJbmRpY2F0b3IgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHByb3BzOiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcywgaXNSdGwgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2xvYWRpbmdJbmRpY2F0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXswfSBvZmZzZXQ9e2lzUnRsfSAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezE2MH0gb2Zmc2V0IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MzIwfSBvZmZzZXQ9eyFpc1J0bH0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Mb2FkaW5nSW5kaWNhdG9yLmRlZmF1bHRQcm9wcyA9IHsgc2l6ZTogNCB9O1xuIl19 */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = _objectWithoutProperties(_ref, _excluded$2);\n\n return jsx(\"svg\", _extends({\n height: size,\n width: size,\n viewBox: \"0 0 20 20\",\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n css: _ref2\n }, props));\n};\n\nvar CrossIcon = function CrossIcon(props) {\n return jsx(Svg, _extends({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z\"\n }));\n};\nvar DownChevron = function DownChevron(props) {\n return jsx(Svg, _extends({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\"\n }));\n}; // ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref3) {\n var isFocused = _ref3.isFocused,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return {\n label: 'indicatorContainer',\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n };\n};\n\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('dropdownIndicator', props),\n className: cx({\n indicator: true,\n 'dropdown-indicator': true\n }, className)\n }, innerProps), children || jsx(DownChevron, null));\n};\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('clearIndicator', props),\n className: cx({\n indicator: true,\n 'clear-indicator': true\n }, className)\n }, innerProps), children || jsx(CrossIcon, null));\n}; // ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4) {\n var isDisabled = _ref4.isDisabled,\n _ref4$theme = _ref4.theme,\n baseUnit = _ref4$theme.spacing.baseUnit,\n colors = _ref4$theme.colors;\n return {\n label: 'indicatorSeparator',\n alignSelf: 'stretch',\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2,\n width: 1\n };\n};\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"span\", _extends({}, innerProps, {\n css: getStyles('indicatorSeparator', props),\n className: cx({\n 'indicator-separator': true\n }, className)\n }));\n}; // ==============================\n// Loading\n// ==============================\n\nvar loadingDotAnimations = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n 0%, 80%, 100% { opacity: 0; }\\n 40% { opacity: 1; }\\n\"])));\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref5) {\n var isFocused = _ref5.isFocused,\n size = _ref5.size,\n _ref5$theme = _ref5.theme,\n colors = _ref5$theme.colors,\n baseUnit = _ref5$theme.spacing.baseUnit;\n return {\n label: 'loadingIndicator',\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n };\n};\n\nvar LoadingDot = function LoadingDot(_ref6) {\n var delay = _ref6.delay,\n offset = _ref6.offset;\n return jsx(\"span\", {\n css: /*#__PURE__*/css$2({\n animation: \"\".concat(loadingDotAnimations, \" 1s ease-in-out \").concat(delay, \"ms infinite;\"),\n backgroundColor: 'currentColor',\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : undefined,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:LoadingDot;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFQSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgSWNvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5jb25zdCBTdmcgPSAoe1xuICBzaXplLFxuICAuLi5wcm9wc1xufTogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZTogbnVtYmVyIH0pID0+IChcbiAgPHN2Z1xuICAgIGhlaWdodD17c2l6ZX1cbiAgICB3aWR0aD17c2l6ZX1cbiAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICBjc3M9e3tcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgZmlsbDogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBsaW5lSGVpZ2h0OiAxLFxuICAgICAgc3Ryb2tlOiAnY3VycmVudENvbG9yJyxcbiAgICAgIHN0cm9rZVdpZHRoOiAwLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IHR5cGUgQ3Jvc3NJY29uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgQ3Jvc3NJY29uID0gKHByb3BzOiBDcm9zc0ljb25Qcm9wcykgPT4gKFxuICA8U3ZnIHNpemU9ezIwfSB7Li4ucHJvcHN9PlxuICAgIDxwYXRoIGQ9XCJNMTQuMzQ4IDE0Ljg0OWMtMC40NjkgMC40NjktMS4yMjkgMC40NjktMS42OTcgMGwtMi42NTEtMy4wMzAtMi42NTEgMy4wMjljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDAtMC40NjktMC40NjktMC40NjktMS4yMjkgMC0xLjY5N2wyLjc1OC0zLjE1LTIuNzU5LTMuMTUyYy0wLjQ2OS0wLjQ2OS0wLjQ2OS0xLjIyOCAwLTEuNjk3czEuMjI4LTAuNDY5IDEuNjk3IDBsMi42NTIgMy4wMzEgMi42NTEtMy4wMzFjMC40NjktMC40NjkgMS4yMjgtMC40NjkgMS42OTcgMHMwLjQ2OSAxLjIyOSAwIDEuNjk3bC0yLjc1OCAzLjE1MiAyLjc1OCAzLjE1YzAuNDY5IDAuNDY5IDAuNDY5IDEuMjI5IDAgMS42OTh6XCIgLz5cbiAgPC9Tdmc+XG4pO1xuZXhwb3J0IHR5cGUgRG93bkNoZXZyb25Qcm9wcyA9IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU/OiBudW1iZXIgfTtcbmV4cG9ydCBjb25zdCBEb3duQ2hldnJvbiA9IChwcm9wczogRG93bkNoZXZyb25Qcm9wcykgPT4gKFxuICA8U3ZnIHNpemU9ezIwfSB7Li4ucHJvcHN9PlxuICAgIDxwYXRoIGQ9XCJNNC41MTYgNy41NDhjMC40MzYtMC40NDYgMS4wNDMtMC40ODEgMS41NzYgMGwzLjkwOCAzLjc0NyAzLjkwOC0zLjc0N2MwLjUzMy0wLjQ4MSAxLjE0MS0wLjQ0NiAxLjU3NCAwIDAuNDM2IDAuNDQ1IDAuNDA4IDEuMTk3IDAgMS42MTUtMC40MDYgMC40MTgtNC42OTUgNC41MDItNC42OTUgNC41MDItMC4yMTcgMC4yMjMtMC41MDIgMC4zMzUtMC43ODcgMC4zMzVzLTAuNTctMC4xMTItMC43ODktMC4zMzVjMCAwLTQuMjg3LTQuMDg0LTQuNjk1LTQuNTAycy0wLjQzNi0xLjE3IDAtMS42MTV6XCIgLz5cbiAgPC9Tdmc+XG4pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgQnV0dG9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25JbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBUaGUgY2hpbGRyZW4gdG8gYmUgcmVuZGVyZWQgaW5zaWRlIHRoZSBpbmRpY2F0b3IuICovXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICAvKiogUHJvcHMgdGhhdCB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUgY2hpbGRyZW4uICovXG4gIGlubmVyUHJvcHM6IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snZGl2J107XG4gIC8qKiBUaGUgZm9jdXNlZCBzdGF0ZSBvZiB0aGUgc2VsZWN0LiAqL1xuICBpc0ZvY3VzZWQ6IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbmNvbnN0IGJhc2VDU1MgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oe1xuICBpc0ZvY3VzZWQsXG4gIHRoZW1lOiB7XG4gICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgIGNvbG9ycyxcbiAgfSxcbn06XG4gIHwgRHJvcGRvd25JbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPlxuICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw2MCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuXG4gICc6aG92ZXInOiB7XG4gICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBkcm9wZG93bkluZGljYXRvckNTUyA9IGJhc2VDU1M7XG5leHBvcnQgY29uc3QgRHJvcGRvd25JbmRpY2F0b3IgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHByb3BzOiBEcm9wZG93bkluZGljYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+XG4pID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2dldFN0eWxlcygnZHJvcGRvd25JbmRpY2F0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Z2V0U3R5bGVzKCdjbGVhckluZGljYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgIHtcbiAgICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICAgJ2NsZWFyLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8Q3Jvc3NJY29uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZXBhcmF0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGljYXRvclNlcGFyYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpbm5lclByb3BzPzogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ107XG59XG5cbmV4cG9ydCBjb25zdCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oe1xuICBpc0Rpc2FibGVkLFxuICB0aGVtZToge1xuICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICBjb2xvcnMsXG4gIH0sXG59OiBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPik6IENTU09iamVjdFdpdGhMYWJlbCA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gIGFsaWduU2VsZjogJ3N0cmV0Y2gnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgbWFyZ2luQm90dG9tOiBiYXNlVW5pdCAqIDIsXG4gIG1hcmdpblRvcDogYmFzZVVuaXQgKiAyLFxuICB3aWR0aDogMSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2luZGljYXRvclNlcGFyYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goeyAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUgfSwgY2xhc3NOYW1lKX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KHtcbiAgaXNGb2N1c2VkLFxuICBzaXplLFxuICB0aGVtZToge1xuICAgIGNvbG9ycyxcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gIH0sXG59OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcbiAgYWxpZ25TZWxmOiAnY2VudGVyJyxcbiAgZm9udFNpemU6IHNpemUsXG4gIGxpbmVIZWlnaHQ6IDEsXG4gIG1hcmdpblJpZ2h0OiBzaXplLFxuICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbn0pO1xuXG5pbnRlcmZhY2UgTG9hZGluZ0RvdFByb3BzIHtcbiAgZGVsYXk6IG51bWJlcjtcbiAgb2Zmc2V0OiBib29sZWFuO1xufVxuY29uc3QgTG9hZGluZ0RvdCA9ICh7IGRlbGF5LCBvZmZzZXQgfTogTG9hZGluZ0RvdFByb3BzKSA9PiAoXG4gIDxzcGFuXG4gICAgY3NzPXt7XG4gICAgICBhbmltYXRpb246IGAke2xvYWRpbmdEb3RBbmltYXRpb25zfSAxcyBlYXNlLWluLW91dCAke2RlbGF5fW1zIGluZmluaXRlO2AsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdjdXJyZW50Q29sb3InLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnMWVtJyxcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgbWFyZ2luTGVmdDogb2Zmc2V0ID8gJzFlbScgOiB1bmRlZmluZWQsXG4gICAgICBoZWlnaHQ6ICcxZW0nLFxuICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICB3aWR0aDogJzFlbScsXG4gICAgfX1cbiAgLz5cbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGluZ0luZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xuICAvKiogU2V0IHNpemUgb2YgdGhlIGNvbnRhaW5lci4gKi9cbiAgc2l6ZTogbnVtYmVyO1xufVxuZXhwb3J0IGNvbnN0IExvYWRpbmdJbmRpY2F0b3IgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHByb3BzOiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcywgaXNSdGwgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2xvYWRpbmdJbmRpY2F0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXswfSBvZmZzZXQ9e2lzUnRsfSAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezE2MH0gb2Zmc2V0IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MzIwfSBvZmZzZXQ9eyFpc1J0bH0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Mb2FkaW5nSW5kaWNhdG9yLmRlZmF1bHRQcm9wcyA9IHsgc2l6ZTogNCB9O1xuIl19 */\")\n });\n};\n\nvar LoadingIndicator = function LoadingIndicator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends({\n css: getStyles('loadingIndicator', props),\n className: cx({\n indicator: true,\n 'loading-indicator': true\n }, className)\n }, innerProps), jsx(LoadingDot, {\n delay: 0,\n offset: isRtl\n }), jsx(LoadingDot, {\n delay: 160,\n offset: true\n }), jsx(LoadingDot, {\n delay: 320,\n offset: !isRtl\n }));\n};\nLoadingIndicator.defaultProps = {\n size: 4\n};\n\nvar css$1 = function css(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return {\n label: 'control',\n alignItems: 'center',\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? \"0 0 0 1px \".concat(colors.primary) : undefined,\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms',\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n };\n};\n\nvar Control = function Control(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n className = props.className,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps,\n menuIsOpen = props.menuIsOpen;\n return jsx(\"div\", _extends({\n ref: innerRef,\n css: getStyles('control', props),\n className: cx({\n control: true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused,\n 'control--menu-is-open': menuIsOpen\n }, className)\n }, innerProps), children);\n};\n\nvar _excluded$1 = [\"data\"];\nvar groupCSS = function groupCSS(_ref) {\n var spacing = _ref.theme.spacing;\n return {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\n\nvar Group = function Group(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n Heading = props.Heading,\n headingProps = props.headingProps,\n innerProps = props.innerProps,\n label = props.label,\n theme = props.theme,\n selectProps = props.selectProps;\n return jsx(\"div\", _extends({\n css: getStyles('group', props),\n className: cx({\n group: true\n }, className)\n }, innerProps), jsx(Heading, _extends({}, headingProps, {\n selectProps: selectProps,\n theme: theme,\n getStyles: getStyles,\n cx: cx\n }), label), jsx(\"div\", null, children));\n};\n\nvar groupHeadingCSS = function groupHeadingCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n label: 'group',\n color: '#999',\n cursor: 'default',\n display: 'block',\n fontSize: '75%',\n fontWeight: 500,\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n };\n};\nvar GroupHeading = function GroupHeading(props) {\n var getStyles = props.getStyles,\n cx = props.cx,\n className = props.className;\n\n var _cleanCommonProps = cleanCommonProps(props);\n _cleanCommonProps.data;\n var innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded$1);\n\n return jsx(\"div\", _extends({\n css: getStyles('groupHeading', props),\n className: cx({\n 'group-heading': true\n }, className)\n }, innerProps));\n};\n\nvar _excluded = [\"innerRef\", \"isDisabled\", \"isHidden\", \"inputClassName\"];\nvar inputCSS = function inputCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n value = _ref.value,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread2({\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n visibility: isDisabled ? 'hidden' : 'visible',\n color: colors.neutral80,\n // force css to recompute when value change due to @emotion bug.\n // We can remove it whenever the bug is fixed.\n transform: value ? 'translateZ(0)' : ''\n }, containerStyle);\n};\nvar spacingStyle = {\n gridArea: '1 / 2',\n font: 'inherit',\n minWidth: '2px',\n border: 0,\n margin: 0,\n outline: 0,\n padding: 0\n};\nvar containerStyle = {\n flex: '1 1 auto',\n display: 'inline-grid',\n gridArea: '1 / 1 / 2 / 3',\n gridTemplateColumns: '0 min-content',\n '&:after': _objectSpread2({\n content: 'attr(data-value) \" \"',\n visibility: 'hidden',\n whiteSpace: 'pre'\n }, spacingStyle)\n};\n\nvar inputStyle = function inputStyle(isHidden) {\n return _objectSpread2({\n label: 'input',\n color: 'inherit',\n background: 0,\n opacity: isHidden ? 0 : 1,\n width: '100%'\n }, spacingStyle);\n};\n\nvar Input = function Input(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n value = props.value;\n\n var _cleanCommonProps = cleanCommonProps(props),\n innerRef = _cleanCommonProps.innerRef,\n isDisabled = _cleanCommonProps.isDisabled,\n isHidden = _cleanCommonProps.isHidden,\n inputClassName = _cleanCommonProps.inputClassName,\n innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded);\n\n return jsx(\"div\", {\n className: cx({\n 'input-container': true\n }, className),\n css: getStyles('input', props),\n \"data-value\": value || ''\n }, jsx(\"input\", _extends({\n className: cx({\n input: true\n }, inputClassName),\n ref: innerRef,\n style: inputStyle(isHidden),\n disabled: isDisabled\n }, innerProps)));\n};\n\nvar multiValueCSS = function multiValueCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return {\n label: 'multiValue',\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n display: 'flex',\n margin: spacing.baseUnit / 2,\n minWidth: 0 // resolves flex/text-overflow bug\n\n };\n};\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n overflow: 'hidden',\n padding: 3,\n paddingLeft: 6,\n textOverflow: cropWithEllipsis || cropWithEllipsis === undefined ? 'ellipsis' : undefined,\n whiteSpace: 'nowrap'\n };\n};\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return {\n alignItems: 'center',\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused ? colors.dangerLight : undefined,\n display: 'flex',\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n };\n};\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return jsx(\"div\", innerProps, children);\n};\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\nfunction MultiValueRemove(_ref5) {\n var children = _ref5.children,\n innerProps = _ref5.innerProps;\n return jsx(\"div\", _extends({\n role: \"button\"\n }, innerProps), children || jsx(CrossIcon, {\n size: 14\n }));\n}\n\nvar MultiValue = function MultiValue(props) {\n var children = props.children,\n className = props.className,\n components = props.components,\n cx = props.cx,\n data = props.data,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n removeProps = props.removeProps,\n selectProps = props.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n return jsx(ClassNames, null, function (_ref6) {\n var css = _ref6.css,\n emotionCx = _ref6.cx;\n return jsx(Container, {\n data: data,\n innerProps: _objectSpread2({\n className: emotionCx(css(getStyles('multiValue', props)), cx({\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n }, className))\n }, innerProps),\n selectProps: selectProps\n }, jsx(Label, {\n data: data,\n innerProps: {\n className: emotionCx(css(getStyles('multiValueLabel', props)), cx({\n 'multi-value__label': true\n }, className))\n },\n selectProps: selectProps\n }, children), jsx(Remove, {\n data: data,\n innerProps: _objectSpread2({\n className: emotionCx(css(getStyles('multiValueRemove', props)), cx({\n 'multi-value__remove': true\n }, className)),\n 'aria-label': \"Remove \".concat(children || 'option')\n }, removeProps),\n selectProps: selectProps\n }));\n });\n};\n\nvar optionCSS = function optionCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'option',\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n padding: \"\".concat(spacing.baseUnit * 2, \"px \").concat(spacing.baseUnit * 3, \"px\"),\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: !isDisabled ? isSelected ? colors.primary : colors.primary50 : undefined\n }\n };\n};\n\nvar Option = function Option(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('option', props),\n className: cx({\n option: true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }, className),\n ref: innerRef,\n \"aria-disabled\": isDisabled\n }, innerProps), children);\n};\n\nvar placeholderCSS = function placeholderCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'placeholder',\n color: colors.neutral50,\n gridArea: '1 / 1 / 2 / 3',\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2\n };\n};\n\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('placeholder', props),\n className: cx({\n placeholder: true\n }, className)\n }, innerProps), children);\n};\n\nvar css = function css(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'singleValue',\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n gridArea: '1 / 1 / 2 / 3',\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n };\n};\n\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('singleValue', props),\n className: cx({\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }, className)\n }, innerProps), children);\n};\n\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option,\n Placeholder: Placeholder,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue,\n ValueContainer: ValueContainer\n};\nvar defaultComponents = function defaultComponents(props) {\n return _objectSpread2(_objectSpread2({}, components), props.components);\n};\n\nexport { isTouchCapable as A, isMobileDevice as B, multiValueAsValue as C, singleValueAsValue as D, valueTernary as E, classNames as F, defaultComponents as G, notNullish as H, isDocumentElement as I, cleanValue as J, scrollIntoView as K, noop as L, MenuPlacer as M, handleInputChange as N, _createSuper as _, _objectSpread2 as a, clearIndicatorCSS as b, components as c, containerCSS as d, css$1 as e, dropdownIndicatorCSS as f, groupCSS as g, groupHeadingCSS as h, indicatorsContainerCSS as i, indicatorSeparatorCSS as j, inputCSS as k, loadingIndicatorCSS as l, loadingMessageCSS as m, menuCSS as n, menuListCSS as o, menuPortalCSS as p, multiValueCSS as q, removeProps as r, supportsPassiveEvents as s, multiValueLabelCSS as t, multiValueRemoveCSS as u, noOptionsMessageCSS as v, optionCSS as w, placeholderCSS as x, css as y, valueContainerCSS as z };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { N as handleInputChange, a as _objectSpread2 } from './index-a7690a33.esm.js';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport { useRef, useState, useEffect, useCallback } from 'react';\n\nvar _excluded = [\"defaultOptions\", \"cacheOptions\", \"loadOptions\", \"options\", \"isLoading\", \"onInputChange\", \"filterOption\"];\nfunction useAsync(_ref) {\n var _ref$defaultOptions = _ref.defaultOptions,\n propsDefaultOptions = _ref$defaultOptions === void 0 ? false : _ref$defaultOptions,\n _ref$cacheOptions = _ref.cacheOptions,\n cacheOptions = _ref$cacheOptions === void 0 ? false : _ref$cacheOptions,\n propsLoadOptions = _ref.loadOptions;\n _ref.options;\n var _ref$isLoading = _ref.isLoading,\n propsIsLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,\n propsOnInputChange = _ref.onInputChange,\n _ref$filterOption = _ref.filterOption,\n filterOption = _ref$filterOption === void 0 ? null : _ref$filterOption,\n restSelectProps = _objectWithoutProperties(_ref, _excluded);\n\n var propsInputValue = restSelectProps.inputValue;\n var lastRequest = useRef(undefined);\n var mounted = useRef(false);\n\n var _useState = useState(Array.isArray(propsDefaultOptions) ? propsDefaultOptions : undefined),\n _useState2 = _slicedToArray(_useState, 2),\n defaultOptions = _useState2[0],\n setDefaultOptions = _useState2[1];\n\n var _useState3 = useState(typeof propsInputValue !== 'undefined' ? propsInputValue : ''),\n _useState4 = _slicedToArray(_useState3, 2),\n stateInputValue = _useState4[0],\n setStateInputValue = _useState4[1];\n\n var _useState5 = useState(propsDefaultOptions === true),\n _useState6 = _slicedToArray(_useState5, 2),\n isLoading = _useState6[0],\n setIsLoading = _useState6[1];\n\n var _useState7 = useState(undefined),\n _useState8 = _slicedToArray(_useState7, 2),\n loadedInputValue = _useState8[0],\n setLoadedInputValue = _useState8[1];\n\n var _useState9 = useState([]),\n _useState10 = _slicedToArray(_useState9, 2),\n loadedOptions = _useState10[0],\n setLoadedOptions = _useState10[1];\n\n var _useState11 = useState(false),\n _useState12 = _slicedToArray(_useState11, 2),\n passEmptyOptions = _useState12[0],\n setPassEmptyOptions = _useState12[1];\n\n var _useState13 = useState({}),\n _useState14 = _slicedToArray(_useState13, 2),\n optionsCache = _useState14[0],\n setOptionsCache = _useState14[1];\n\n var _useState15 = useState(undefined),\n _useState16 = _slicedToArray(_useState15, 2),\n prevDefaultOptions = _useState16[0],\n setPrevDefaultOptions = _useState16[1];\n\n var _useState17 = useState(undefined),\n _useState18 = _slicedToArray(_useState17, 2),\n prevCacheOptions = _useState18[0],\n setPrevCacheOptions = _useState18[1];\n\n if (cacheOptions !== prevCacheOptions) {\n setOptionsCache({});\n setPrevCacheOptions(cacheOptions);\n }\n\n if (propsDefaultOptions !== prevDefaultOptions) {\n setDefaultOptions(Array.isArray(propsDefaultOptions) ? propsDefaultOptions : undefined);\n setPrevDefaultOptions(propsDefaultOptions);\n }\n\n useEffect(function () {\n mounted.current = true;\n return function () {\n mounted.current = false;\n };\n }, []);\n var loadOptions = useCallback(function (inputValue, callback) {\n if (!propsLoadOptions) return callback();\n var loader = propsLoadOptions(inputValue, callback);\n\n if (loader && typeof loader.then === 'function') {\n loader.then(callback, function () {\n return callback();\n });\n }\n }, [propsLoadOptions]);\n useEffect(function () {\n if (propsDefaultOptions === true) {\n loadOptions(stateInputValue, function (options) {\n if (!mounted.current) return;\n setDefaultOptions(options || []);\n setIsLoading(!!lastRequest.current);\n });\n } // NOTE: this effect is designed to only run when the component mounts,\n // so we don't want to include any hook dependencies\n // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n var onInputChange = useCallback(function (newValue, actionMeta) {\n var inputValue = handleInputChange(newValue, actionMeta, propsOnInputChange);\n\n if (!inputValue) {\n lastRequest.current = undefined;\n setStateInputValue('');\n setLoadedInputValue('');\n setLoadedOptions([]);\n setIsLoading(false);\n setPassEmptyOptions(false);\n return;\n }\n\n if (cacheOptions && optionsCache[inputValue]) {\n setStateInputValue(inputValue);\n setLoadedInputValue(inputValue);\n setLoadedOptions(optionsCache[inputValue]);\n setIsLoading(false);\n setPassEmptyOptions(false);\n } else {\n var request = lastRequest.current = {};\n setStateInputValue(inputValue);\n setIsLoading(true);\n setPassEmptyOptions(!loadedInputValue);\n loadOptions(inputValue, function (options) {\n if (!mounted) return;\n if (request !== lastRequest.current) return;\n lastRequest.current = undefined;\n setIsLoading(false);\n setLoadedInputValue(inputValue);\n setLoadedOptions(options || []);\n setPassEmptyOptions(false);\n setOptionsCache(options ? _objectSpread2(_objectSpread2({}, optionsCache), {}, _defineProperty({}, inputValue, options)) : optionsCache);\n });\n }\n }, [cacheOptions, loadOptions, loadedInputValue, optionsCache, propsOnInputChange]);\n var options = passEmptyOptions ? [] : stateInputValue && loadedInputValue ? loadedOptions : defaultOptions || [];\n return _objectSpread2(_objectSpread2({}, restSelectProps), {}, {\n options: options,\n isLoading: isLoading || propsIsLoading,\n onInputChange: onInputChange,\n filterOption: filterOption\n });\n}\n\nexport { useAsync as u };\n","import { a as _objectSpread2 } from './index-a7690a33.esm.js';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport { useState, useCallback } from 'react';\n\nvar _excluded = [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\", \"inputValue\", \"menuIsOpen\", \"onChange\", \"onInputChange\", \"onMenuClose\", \"onMenuOpen\", \"value\"];\nfunction useStateManager(_ref) {\n var _ref$defaultInputValu = _ref.defaultInputValue,\n defaultInputValue = _ref$defaultInputValu === void 0 ? '' : _ref$defaultInputValu,\n _ref$defaultMenuIsOpe = _ref.defaultMenuIsOpen,\n defaultMenuIsOpen = _ref$defaultMenuIsOpe === void 0 ? false : _ref$defaultMenuIsOpe,\n _ref$defaultValue = _ref.defaultValue,\n defaultValue = _ref$defaultValue === void 0 ? null : _ref$defaultValue,\n propsInputValue = _ref.inputValue,\n propsMenuIsOpen = _ref.menuIsOpen,\n propsOnChange = _ref.onChange,\n propsOnInputChange = _ref.onInputChange,\n propsOnMenuClose = _ref.onMenuClose,\n propsOnMenuOpen = _ref.onMenuOpen,\n propsValue = _ref.value,\n restSelectProps = _objectWithoutProperties(_ref, _excluded);\n\n var _useState = useState(propsInputValue !== undefined ? propsInputValue : defaultInputValue),\n _useState2 = _slicedToArray(_useState, 2),\n stateInputValue = _useState2[0],\n setStateInputValue = _useState2[1];\n\n var _useState3 = useState(propsMenuIsOpen !== undefined ? propsMenuIsOpen : defaultMenuIsOpen),\n _useState4 = _slicedToArray(_useState3, 2),\n stateMenuIsOpen = _useState4[0],\n setStateMenuIsOpen = _useState4[1];\n\n var _useState5 = useState(propsValue !== undefined ? propsValue : defaultValue),\n _useState6 = _slicedToArray(_useState5, 2),\n stateValue = _useState6[0],\n setStateValue = _useState6[1];\n\n var onChange = useCallback(function (value, actionMeta) {\n if (typeof propsOnChange === 'function') {\n propsOnChange(value, actionMeta);\n }\n\n setStateValue(value);\n }, [propsOnChange]);\n var onInputChange = useCallback(function (value, actionMeta) {\n var newValue;\n\n if (typeof propsOnInputChange === 'function') {\n newValue = propsOnInputChange(value, actionMeta);\n }\n\n setStateInputValue(newValue !== undefined ? newValue : value);\n }, [propsOnInputChange]);\n var onMenuOpen = useCallback(function () {\n if (typeof propsOnMenuOpen === 'function') {\n propsOnMenuOpen();\n }\n\n setStateMenuIsOpen(true);\n }, [propsOnMenuOpen]);\n var onMenuClose = useCallback(function () {\n if (typeof propsOnMenuClose === 'function') {\n propsOnMenuClose();\n }\n\n setStateMenuIsOpen(false);\n }, [propsOnMenuClose]);\n var inputValue = propsInputValue !== undefined ? propsInputValue : stateInputValue;\n var menuIsOpen = propsMenuIsOpen !== undefined ? propsMenuIsOpen : stateMenuIsOpen;\n var value = propsValue !== undefined ? propsValue : stateValue;\n return _objectSpread2(_objectSpread2({}, restSelectProps), {}, {\n inputValue: inputValue,\n menuIsOpen: menuIsOpen,\n onChange: onChange,\n onInputChange: onInputChange,\n onMenuClose: onMenuClose,\n onMenuOpen: onMenuOpen,\n value: value\n });\n}\n\nexport { useStateManager as u };\n","module.exports = window[\"React\"];","module.exports = window[\"ReactDOM\"];","module.exports = window[\"lodash\"];","module.exports = window[\"wp\"][\"apiFetch\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"compose\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"url\"];","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\t\tbreak\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && characters.charCodeAt(length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\nexport function prefix (value, length) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// flex, flex-direction\n\t\tcase 6828: case 4268:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// (s)ticky?\n\t\t\tif (charat(value, length + 1) !== 115)\n\t\t\t\tbreak\n\t\t// display: (flex|inline-flex)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n\t\t\t\t// stic(k)y\n\t\t\t\tcase 107:\n\t\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\t\t// (inline-)?fl(e)x\n\t\t\t\tcase 101:\n\t\t\t\t\treturn replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t}\n\t\t\tbreak\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t}\n\n\t\t\treturn WEBKIT + value + MS + value + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {boolean} [noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset).\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {boolean} [debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nfunction throttle (delay, noTrailing, callback, debounceMode) {\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel() {\n clearExistingTimeout();\n cancelled = true;\n } // `noTrailing` defaults to falsy.\n\n\n if (typeof noTrailing !== 'boolean') {\n debounceMode = callback;\n callback = noTrailing;\n noTrailing = undefined;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {\n arguments_[_key] = arguments[_key];\n }\n\n var self = this;\n var elapsed = Date.now() - lastExec;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, arguments_);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n /*\n * In throttle mode, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {boolean} [atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @returns {Function} A new, debounced function.\n */\n\nfunction debounce (delay, atBegin, callback) {\n return callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n}\n\nexport { debounce, throttle };\n//# sourceMappingURL=index.js.map\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import * as Components from '../../packages/components/src';\n\nwindow.llms = window.llms || {};\n\n// Preserve components from `lifterlms-blocks`.\nconst { components = {} } = window.llms;\n\n/**\n * Expose @lifterlms/components via the global `window.llms` object.\n *\n * @since 6.0.0\n */\nwindow.llms.components = {\n\t...components,\n\t...Components,\n};\n"],"names":["BaseControl","Button","ButtonGroup","useState","_ref","label","onClick","className","id","selected","options","selectedValue","setSelectedValue","createElement","style","display","map","_ref2","buttonLabel","value","icon","padding","key","isPrimary","isSecondary","__","ClipboardButton","Tooltip","useCopyToClipboard","buttonText","copyText","onCopy","tooltipText","buttonProps","canUseHook","HookButton","ref","_extends","BackwardsButton","text","default","ButtonGroupControl","CopyButton","_Spinner","Spinner","Select","debounce","uniqueId","differenceBy","uniqBy","useEffect","apiFetch","addQueryArgs","StyledBaseControl","defaultHydrateValues","defaultStyles","defaultTheme","defaultFormatSearchResults","BaseSearchControl","searchPath","onUpdate","additionalSearchArgs","defaultOptions","getSearchArgs","getSearchURL","hydrateValues","formatSearchResults","formatSearchResultLabel","formatSearchResultValue","placeholder","classNamePrefix","searchDebounceDelay","selectProps","loadedResults","setLoadedResults","addLoadedResults","newResults","concat","setValue","Array","isArray","length","then","newValues","toAdd","onChange","loadOptions","searchQuery","callback","path","results","formatted","res","per_page","search","args","styles","theme","isPlainObject","values","isResultHydrated","result","Promise","all","Number","isInteger","find","control","borderColor","colors","primary","spacing","baseUnit","controlHeight","menuGutter","PostSearchControl","UserSearchControl","_x","sprintf","postType","baseSearchPath","baseProps","title","rendered","styled","name","WRAPPER_CLASSNAME","CLASSNAME","SIZE_SMALL","SIZE_DEFAULT","create","ensureElementList","loadStyles","get","selector","size","arguments","undefined","useJQuery","nodeList","wrapper","spinner","jQuery","start","forEach","el","stop","STYLES","document","loadingMsg","innerHTML","classList","add","appendChild","querySelectorAll","NodeList","from","list","Element","push","toArray","spinners","parentNode","STYLE_ID","getElementById","textContent","replace","head","Components","window","llms","components"],"sourceRoot":""}
\ No newline at end of file
diff --git a/assets/js/llms-form-checkout.min.js b/assets/js/llms-form-checkout.min.js
new file mode 100644
index 0000000000..34e5bcedd3
--- /dev/null
+++ b/assets/js/llms-form-checkout.min.js
@@ -0,0 +1,2 @@
+!function(r){window.llms=window.llms||{},window.llms.checkout=new function(){var m=[],o=[];return this.$checkout_form=r("#llms-product-purchase-form"),this.$confirm_form=r("#llms-product-purchase-confirm-form"),this.$form_sections=!1,this.form_action=!1,this.init=function(){var e=this;r(".llms-checkout-wrapper").length&&this.bind_login(),this.$checkout_form.length?(this.form_action="checkout",this.$form_sections=this.$checkout_form.find(".llms-checkout-section"),this.$checkout_form.on("submit",this,this.submit),document.querySelector("html").style.scrollBehavior="auto",r(".llms-password-strength-meter").length&&this.add_before_submit_event({data:LLMS.PasswordStrength,handler:LLMS.PasswordStrength.checkout}),this.bind_coupon(),this.bind_gateways(),r(document).trigger("llms-checkout-refreshed")):this.$confirm_form.length&&(this.form_action="confirm",this.$form_sections=this.$confirm_form.find(".llms-checkout-section"),this.$confirm_form.on("submit",function(){e.processing("start")}))},this.add_before_submit_event=function(e){e.handler&&"function"==typeof e.handler&&(e.data||(e.data=null),m.push(e))},this.add_error=function(e,t){var o="llms-checkout-errors";($err=r("#"+o)).length||($err=r(''),r(".llms-checkout-wrapper").prepend($err)),$err.append(""+e+" "),t&&console.error(t)},this.add_gateway=function(e){o.push(e)},this.bind_coupon=function(){var t=this;r('a[href="#llms-coupon-toggle"]').on("click",function(e){e.preventDefault(),r(".llms-coupon-entry").slideToggle(400)}),r("#llms-apply-coupon").on("click",function(e){e.preventDefault(),t.coupon_apply(r(this))}),r("#llms-remove-coupon").on("click",function(e){e.preventDefault(),t.coupon_remove(r(this))})},this.bind_gateways=function(){this.load_gateways(),r('input[name="llms_payment_gateway"]').length||r("#llms_create_pending_order").removeAttr("disabled"),r('input[name="llms_payment_gateway"]').on("change",function(){r('input[name="llms_payment_gateway"]').each(function(){var e=r(this),t=e.closest(".llms-payment-gateway"),o=t.find(".llms-gateway-fields").find("input, textarea, select"),s=e.is(":checked");t[s?"addClass":"removeClass"]("is-selected"),s?(o.removeAttr("disabled"),r(".llms-payment-gateways").trigger("llms-gateway-selected",{id:e.val(),$selector:t})):o.attr("disabled","disabled")})}),r(".llms-payment-gateways").on("llms-gateway-selected",function(e,t){var o=r("#llms_create_pending_order");t.$selector&&t.$selector.find(".llms-gateway-fields .invalid").length?o.attr("disabled","disabled"):o.removeAttr("disabled")})},this.bind_login=function(){r('a[href="#llms-show-login"]').on("click",function(e){e.preventDefault(),r(this).closest(".llms-info,.llms-notice").slideUp(400),r("form.llms-login").slideDown(400)})},this.clear_errors=function(){r("#llms-checkout-errors").remove()},this.coupon_apply=function(e){var o=this,t=r("#llms_coupon_code").val(),s=r(".llms-coupon-messages"),n=s.find(".llms-error"),l=r("form.llms-checkout");LLMS.Spinner.start(l),window.LLMS.Ajax.call({data:{action:"validate_coupon_code",code:t,plan_id:r("#llms-plan-id").val()},beforeSend:function(){n.hide()},success:function(e){var t;LLMS.Spinner.stop(l),"error"===e.code?(t=r(""+e.message+" "),n.length?n.empty():(n=r(''),s.append(n)),t.appendTo(n),n.show()):e.success&&(r(".llms-coupon-wrapper").replaceWith(e.data.coupon_html),o.bind_coupon(),r(".llms-payment-gateways").replaceWith(e.data.gateways_html),o.bind_gateways(),r(".llms-order-summary").replaceWith(e.data.summary_html),r(document).trigger("llms-checkout-refreshed"))}})},this.coupon_remove=function(e){var t=this,o=r("form.llms-checkout");LLMS.Spinner.start(o),window.LLMS.Ajax.call({data:{action:"remove_coupon_code",plan_id:r("#llms-plan-id").val()},success:function(e){LLMS.Spinner.stop(o),e.success&&(r(".llms-coupon-wrapper").replaceWith(e.data.coupon_html),t.bind_coupon(),r(".llms-order-summary").replaceWith(e.data.summary_html),r(".llms-payment-gateways").replaceWith(e.data.gateways_html),t.bind_gateways(),r(document).trigger("llms-checkout-refreshed"))}})},this.focus_errors=function(){r("html, body").animate({scrollTop:r("#llms-checkout-errors").offset().top-50},200)},this.load_gateways=function(){for(var e=0;e<=o.length;e++){var t=o[e];"object"==typeof t&&null!==t&&void 0!==t.bind&&"function"==typeof t.bind&&t.bind()}},this.processing=function(e){var t,o="stop"===e?"removeClass":"addClass";"checkout"===this.form_action?t=this.$checkout_form:"confirm"===this.form_action&&(t=this.$confirm_form),t[o]("llms-is-processing"),LLMS.Spinner[e](this.$form_sections)},this.submit=function(e){var s,n=e.data,l=m.length,r=0,i=[],a=0,c=0;e.preventDefault(),n.processing("start"),n.clear_errors();for(var t=0;t\n\t\t\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t \n\t\n);\n\nexport default lifterlms;\n","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"primitives\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import * as icons from '../../packages/icons/src';\n\n/**\n * Expose @lifterlms/icons via the global `window.llms` object.\n *\n * @since 6.0.0\n */\nwindow.llms = window.llms || {};\nwindow.llms.icons = icons;\n"],"names":["Icon","default","lifterlms","SVG","G","Path","createElement","xmlns","viewBox","style","fillRule","clipRule","strokeLinejoin","strokeMiterlimit","id","d","icons","window","llms"],"sourceRoot":""}
\ No newline at end of file
diff --git a/assets/js/llms-launch-course-button.min.js b/assets/js/llms-launch-course-button.min.js
new file mode 100644
index 0000000000..a29ebf84ba
--- /dev/null
+++ b/assets/js/llms-launch-course-button.min.js
@@ -0,0 +1,2 @@
+!function(e){var t=e(".page-title-action");t.length&&e(''+LLMS.l10n.translate("Launch Course Builder")+" ").insertAfter(t)}(jQuery);
+//# sourceMappingURL=../maps/js/llms-launch-course-button.min.js.map
diff --git a/assets/js/llms-metabox-product.min.js b/assets/js/llms-metabox-product.min.js
new file mode 100644
index 0000000000..aa77a01563
--- /dev/null
+++ b/assets/js/llms-metabox-product.min.js
@@ -0,0 +1,2 @@
+!function(c){window.llms=window.llms||{},window.llms.metabox_product=function(){this.$plans=null,this.$save=null,this.temp_id=Math.floor(7777*Math.random()+777),this.validation_class="llms-invalid",this.init=function(e){var t,a,l=this,s=(l.$plans=c("#llms-access-plans"),l.$save=c("#llms-save-access-plans"),l.bind_visibility(),c("#lifterlms-product #llms-product-options-access-plans"));s.length&&(l.requiresAttention(),e?l.bind():(LLMS.Spinner.start(s),t=0,a=setInterval(function(){if(300<=t)s.html(LLMS.l10n.translate("There was an error loading the necessary resources. Please try again."));else{if("undefined"==typeof tinyMCE)return void t++;l.bind()}clearInterval(a),LLMS.Spinner.stop(s)},100)))},this.bind=function(){var l=this;setTimeout(function(){l.has_plan_limit_been_reached()&&l.toggle_create_button("disable")},500),0===l.get_current_plan_count()&&l.toggle_save_button("disable"),l.$save.on("click",function(e){e.preventDefault(),l.save_plans()}),l.$plans.on("change","[data-controller-id]",function(){l.controller_change(c(this))}),l.$plans.on("change",'select[name$="[availability]"]',function(){var e=c(this).closest(".llms-access-plan"),t=e.find('input[name$="[checkout_redirect_forced]"]'),a=e.find(".llms-checkout-redirect-settings");"members"===c(this).val()?(t.prop("checked")?a.show():a.hide(),t.on("change",function(){a.toggle()})):(t.off("change"),a.show())}),c("#llms-access-plans .llms-access-plan-datepicker").datepicker({dateFormat:"mm/dd/yy"}),c("#llms-access-plans [data-controller-id]").trigger("change"),c("#llms-new-access-plan").on("click",function(){l.init_plan(),l.toggle_create_button("disable"),l.toggle_save_button("enable"),setTimeout(function(){l.has_plan_limit_been_reached()||l.toggle_create_button("enable")},500)}),l.$plans.sortable({handle:".llms-drag-handle",items:".llms-access-plan",start:function(e,t){l.$plans.addClass("dragging")},stop:function(e,t){l.$plans.removeClass("dragging"),l.update_plan_orders()}}),l.$plans.on("keyup","input.llms-plan-title",function(){var e=c(this),t=e.closest(".llms-access-plan").find("span.llms-plan-title"),e=e.val(),e=e||t.attr("data-default");t.text(e)}),l.$plans.on("focusin","input",function(e,t){c(this).addClass("llms-has-been-focused")}),l.$plans.on("keyup focusout llms-validate-plan-field","input",function(e,t){var a=c(this);a[0].checkValidity()?a.removeClass(l.validation_class):(a.addClass(l.validation_class),"keyup"===e.type&&a[0].reportValidity()),t&&!t.cascade||a.closest(".llms-access-plan").trigger("llms-validate-plan",{original_event:e.type})}),l.$plans.on("llms-validate-plan",".llms-access-plan",function(e,t){t=t||{};var a=c(this),t=t.original_event?"input.llms-has-been-focused":"input";a.find(t).each(function(){c(this).trigger("llms-validate-plan-field",{cascade:!1})}),a.find("."+l.validation_class).length?a.addClass(l.validation_class):a.removeClass(l.validation_class)}),l.$plans.on("llms-collapsible-toggled",".llms-access-plan",function(){var e=c(this);e.hasClass("opened")&&setTimeout(function(){e.find("input.llms-invalid").each(function(){c(this)[0].reportValidity()})},500)}),l.$plans.on("click",".llms-plan-delete",function(e){e.stopPropagation(),l.delete_plan(c(this))}),window.llms.metaboxes.post_select(c("#llms-access-plans .llms-availability-restrictions")),window.llms.metaboxes.post_select(c("#llms-access-plans .llms-checkout-redirect-page")),c("#_llms_plans_content_llms-new-access-plan-model").attr("disabled","disabled"),tinyMCE.EditorManager.execCommand("mceRemoveEditor",!0,"_llms_plans_content_llms-new-access-plan-model")},this.bind_visibility=function(){var t=c("#llms-catalog-visibility-select"),a=c("a.llms-edit-catalog-visibility"),e=c("a.llms-save-catalog-visibility"),l=c("a.llms-cancel-catalog-visibility");a.on("click",function(e){e.preventDefault(),t.slideDown("fast"),a.hide()}),e.on("click",function(e){e.preventDefault(),t.slideUp("fast"),a.show(),c("#llms-catalog-visibility-display").text(c('input[name="_llms_visibility"]:checked').attr("data-label"))}),l.on("click",function(e){e.preventDefault(),t.slideUp("fast"),a.show()})},this.requiresAttention=function(){this.$plans.find(".llms-access-plan").each(function(){c(this).toggleClass("llms-needs-attention",0=e},this.init_plan=function(){var e;this.has_plan_limit_been_reached()||(e=c("#llms-new-access-plan-model").clone(),$existing_plans=c("#llms-access-plans .llms-access-plan"),$editor=e.find("#_llms_plans_content_llms-new-access-plan-model"),e.removeAttr("id"),$editor.removeAttr("id").attr("id","_llms_plans_content_"+this.temp_id),this.temp_id++,e.find("select, input, textarea").each(function(){c(this).removeAttr("disabled")}),e.appendTo("#llms-access-plans"),this.update_plan_orders(),e.find(".llms-access-plan-datepicker").datepicker({dateFormat:"mm/dd/yy"}),e.find(".llms-collapsible-header").trigger("click"),this.has_plan_limit_been_reached()&&this.toggle_create_button("disable"),window.llms.metaboxes.post_select(e.find(".llms-availability-restrictions")),window.llms.metaboxes.post_select(e.find(".llms-checkout-redirect-page")),e.find("[data-controller-id]").trigger("change"),c(document).trigger("llms-plan-init",e))},this.save_plans=function(){var t=this;t.$plans.find(".llms-access-plan").not("#llms-new-access-plan-model").each(function(){c(this).trigger("llms-validate-plan")}),t.$plans.find("."+t.validation_class).length?(t.$plans.find(".llms-access-plan."+t.validation_class).not(".opened").first().find(".llms-collapsible-header").trigger("click"),c(document).trigger("llms-access-plan-validation-errors")):(LLMS.Spinner.start(t.$plans),t.$save.attr("disabled","disabled"),window.LLMS.Ajax.call({data:{action:"llms_update_access_plans",plans:t.get_plans_array()},complete:function(){LLMS.Spinner.stop(t.$plans),t.$save.removeAttr("disabled")},error:function(e,t,a){console.error("llms access plan save error encounterd:",e),alert(LLMS.l10n.translate("An error was encountered during the save attempt. Please try again.")+" ["+t+": "+a+"]")},success:function(e){!e.success&&e.code&&"error"===e.code?alert(e.message):e.data&&e.data.html&&(c("#llms-product-options-access-plans").replaceWith(e.data.html),t.init(!0),window.llms.metaboxes.init(),t.update_plan_orders(),t.trigger_update_hook())}}))},this.toggle_button=function(e,t){"disable"===t?e.attr("disabled","disabled"):e.removeAttr("disabled")},this.toggle_create_button=function(e){this.toggle_button(c("#llms-new-access-plan"),e)},this.toggle_save_button=function(e){this.toggle_button(this.$save,e)},this.remove_plan_el=function(e){var t=this;e.fadeOut(400),setTimeout(function(){e.remove(),t.has_plan_limit_been_reached()||t.toggle_create_button("enable"),0===t.get_current_plan_count()&&t.toggle_save_button("disable")},450)},this.trigger_update_hook=function(){c(document).trigger("llms-access-plans-updated")},this.update_plan_orders=function(){c("#llms-access-plans .llms-access-plan").each(function(){var e=c(this),t=e.find(".plan-order"),a=e.find('textarea[id^="_llms_plans_content_"]').attr("id"),l=+t.val(),s=e.index(),n=tinyMCE.EditorManager.get(a),n=(n||tinyMCE.EditorManager).settings;n.selector="#"+a,tinyMCE.EditorManager.execCommand("mceRemoveEditor",!0,a),e.find("label, select, input, textarea").each(function(){var e=c(this).attr("for"),e=(e&&c(this).attr("for",e.replace(l,s)),c(this).attr("id")),e=(e&&c(this).attr("id",e.replace(l,s)),c(this).attr("name"));e&&c(this).attr("name",e.replace(l,s))}),tinyMCE.EditorManager.init(n),t.val(s)})},this.init()};new window.llms.metabox_product}(jQuery);
+//# sourceMappingURL=../maps/js/llms-metabox-product.min.js.map
diff --git a/assets/js/llms-metaboxes.js b/assets/js/llms-metaboxes.js
new file mode 100644
index 0000000000..41ec59a89e
--- /dev/null
+++ b/assets/js/llms-metaboxes.js
@@ -0,0 +1,1522 @@
+/****************************************************************
+ *
+ * Contributor's Notice
+ *
+ * This is a compiled file and should not be edited directly!
+ * The uncompiled script is located in the "assets/private" directory
+ *
+ ****************************************************************/
+
+/**
+ * LifterLMS Admin Panel Metabox Functions
+ *
+ * @since 3.0.0
+ * @version 7.1.1
+ */
+ ( function( $ ) {
+
+ $( document ).ready( function() {
+ // Avoid confusion by hiding the visibility option for coupons and vouchers if currently set to public.
+ if ( $( 'input[name="visibility"]:checked' ).val() === 'public' ) {
+ $( 'body.post-type-llms_coupon #visibility, body.post-type-llms_voucher #visibility' ).hide();
+ }
+ } );
+
+ /**
+ * jQuery plugin to allow "collapsible" sections
+ *
+ * @return jQuery object
+ * @since 3.0.0
+ * @version 3.29.0
+ */
+ $.fn.llmsCollapsible = function() {
+
+ var $group = this;
+
+ this.on( 'click', '.llms-collapsible-header', function() {
+
+ var $parent = $( this ).closest( '.llms-collapsible' ),
+ $siblings = $parent.siblings( '.llms-collapsible' );
+
+ $parent.toggleClass( 'opened' ).trigger( 'llms-collapsible-toggled' );
+
+ $parent.find( '.llms-collapsible-body' ).slideToggle( 400 );
+
+ $siblings.each( function() {
+ $( this ).removeClass( 'opened' );
+ $( this ).find( '.llms-collapsible-body' ).slideUp( 400 );
+ } );
+
+ } );
+
+ return this;
+
+ };
+
+ window.llms = window.llms || {};
+
+ var Metaboxes = function() {
+
+ /**
+ * load all partials
+ */
+ /**
+ * LifterLMS Admin Metabox Repeater Field
+ *
+ * @package LifterLMS/Scripts/Partials
+ *
+ * @since 3.11.0
+ * @version 5.3.2
+ */
+
+ this.repeaters = {
+
+ /**
+ * Reference to the parent metabox class
+ *
+ * @type {Object}
+ */
+ metaboxes: this,
+
+ /**
+ * A jQuery selector for all repeater elements on the current screen
+ *
+ * @type {Object}
+ */
+ $repeaters: null,
+
+ /**
+ * Init
+ *
+ * @since 3.11.0
+ * @since 3.23.0 Unknown.
+ *
+ * @return {void}
+ */
+ init: function() {
+
+ var self = this;
+
+ self.$repeaters = $( '.llms-mb-list.repeater' );
+
+ if ( self.$repeaters.length ) {
+
+ // Wait for tinyMCE just in case their editors in the repeaters.
+ LLMS.wait_for(
+ function() {
+ return ( 'undefined' !== typeof tinyMCE );
+ },
+ function() {
+ self.load();
+ self.bind();
+ }
+ );
+
+ /**
+ * On click of any post submit buttons add some data to the submit button
+ * so we can see which button to trigger after repeaters are finished.
+ */
+ $( '#post input[type="submit"], #post-preview' ).on( 'click', function() {
+ $( this ).attr( 'data-llms-clicked', 'yes' );
+ } );
+
+ // Handle post submission.
+ $( '#post' ).on( 'submit', self.handle_submit );
+
+ }
+
+ },
+
+ /**
+ * Bind DOM Events
+ *
+ * @since 3.11.0
+ * @since 3.13.0 Unknown.
+ * @since 5.3.2 Don't remove the model's mceEditor instance (it's removed before cloning a row now).
+ *
+ * @return {void}
+ */
+ bind: function() {
+
+ var self = this;
+
+ self.$repeaters.each( function() {
+
+ var $repeater = $( this ),
+ $rows = $repeater.find( '.llms-repeater-rows' );
+
+ // For the repeater + button.
+ $repeater.find( '.llms-repeater-new-btn' ).on( 'click', function() {
+ self.add_row( $repeater, null, true );
+ } );
+
+ // Make repeater rows sortable.
+ $rows.sortable( {
+ handle: '.llms-drag-handle',
+ items: '.llms-repeater-row',
+ start: function( event, ui ) {
+ $rows.addClass( 'dragging' );
+ },
+ stop: function( event, ui ) {
+ $rows.removeClass( 'dragging' );
+
+ var $eds = ui.item.find( 'textarea.wp-editor-area' );
+ $eds.each( function() {
+ var ed_id = $( this ).attr( 'id' );
+ tinyMCE.EditorManager.execCommand( 'mceRemoveEditor', true, ed_id );
+ tinyMCE.EditorManager.execCommand( 'mceAddEditor', true, ed_id );
+ } );
+
+ self.save( $repeater );
+ },
+ } );
+
+ $repeater.on( 'click', '.llms-repeater-remove', function( e ) {
+ e.stopPropagation();
+ var $row = $( this ).closest( '.llms-repeater-row' );
+ if ( window.confirm( LLMS.l10n.translate( 'Are you sure you want to delete this row? This cannot be undone.' ) ) ) {
+ $row.remove();
+ setTimeout( function() {
+ self.save( $repeater );
+ }, 1 );
+ }
+ } );
+
+ } );
+
+ },
+
+ /**
+ * Add a new row to a repeater rows group
+ *
+ * @since 3.11.0
+ * @since 5.3.2 Use `self.clone_row()` to retrieve the model's base HTML for the row to be added.
+ *
+ * @param {Object} $repeater A jQuery selector for the repeater to add a row to.
+ * @param {Object} data Optional object of data to fill fields in the row with.
+ * @param {Boolean} expand If true, will automatically open the row after adding it to the dom.
+ * @return {void}
+ */
+ add_row: function( $repeater, data, expand ) {
+
+ var self = this,
+ $rows = $repeater.find( '.llms-repeater-rows' ),
+ $model = $repeater.find( '.llms-repeater-model' ),
+ $row = self.clone_row( $model.find( '.llms-repeater-row' ) ),
+ new_index = $repeater.find( '.llms-repeater-row' ).length,
+ editor = self.reindex( $row, new_index );
+
+ if ( data ) {
+ $.each( data, function( key, val ) {
+
+ var $field = $row.find( '[name^="' + key + '"]' );
+
+ if ( $field.hasClass( 'llms-select2-student' ) ) {
+ $.each( val, function( i, data ) {
+ $field.append( '' + data.title + ' ' )
+ } );
+ $field.trigger( 'change' );
+ } else {
+ $field.val( val );
+ }
+
+ } );
+ }
+
+ setTimeout( function() {
+ self.bind_row( $row );
+ }, 1 );
+
+ $rows.append( $row );
+ if ( expand ) {
+ $row.find( '.llms-collapsible-header' ).trigger( 'click' );
+ }
+ tinyMCE.EditorManager.execCommand( 'mceAddEditor', true, editor );
+
+ $repeater.trigger( 'llms-new-repeater-row', {
+ $row: $row,
+ data: data,
+ } );
+
+ },
+
+ /**
+ * Bind DOM events for a single repeater row
+ *
+ * @since 3.11.0
+ * @since 3.13.0 Unknown.
+ *
+ * @param {Object} $row A jQuery selector for the row.
+ * @return {void}
+ */
+ bind_row: function( $row ) {
+
+ this.bind_row_header( $row );
+
+ $row.find( '.llms-select2' ).llmsSelect2( {
+ width: '100%',
+ } );
+
+ $row.find( '.llms-select2-student' ).llmsStudentsSelect2();
+
+ this.metaboxes.bind_datepickers( $row.find( '.llms-datepicker' ) );
+ this.metaboxes.bind_controllers( $row.find( '[data-is-controller]' ) );
+ // This.metaboxes.bind_merge_code_buttons( $row.find( '.llms-merge-code-wrapper' ) );.
+ },
+
+ /**
+ * Bind row header events
+ *
+ * @since 3.11.0
+ *
+ * @param {Object} $row jQuery selector for the row.
+ * @return {void}
+ */
+ bind_row_header: function( $row ) {
+
+ // Handle the title field binding.
+ var $title = $row.find( '.llms-repeater-title' ),
+ $field = $row.find( '.llms-collapsible-header-title-field' );
+
+ $title.attr( 'data-default', $title.text() );
+
+ $field.on( 'keyup focusout blur', function() {
+ var val = $( this ).val();
+ if ( ! val ) {
+ val = $title.attr( 'data-default' );
+ }
+ $title.text( val );
+ } ).trigger( 'keyup' );
+
+ },
+
+ /**
+ * Create a copy of the model's row after removing any tinyMCE editor instances present in the model.
+ *
+ * @since 5.3.2
+ *
+ * @param {Object} $row A jQuery object of the row to be cloned.
+ * @return {Object} A clone of the jQuery object.
+ */
+ clone_row: function( $row ) {
+
+ $ed = $row.find( '.editor textarea' );
+ if ( $ed.length ) {
+ tinyMCE.EditorManager.execCommand( 'mceRemoveEditor', true, $ed.attr( 'id' ) );
+ }
+
+ return $row.clone()
+
+ },
+
+ /**
+ * Handle WP Post form submission to ensure repeaters are saved before submitting the form to save/publish the post
+ *
+ * @since 3.11.0
+ * @since 3.23.0 Unknown.
+ *
+ * @param {Object} e An event object.
+ * @return {void}
+ */
+ handle_submit: function( e ) {
+
+ // Get the button used to submit the form.
+ var $btn = $( '#post [data-llms-clicked="yes"]' ),
+ $spinner = $btn.parent().find( '.spinner' );
+
+ if ( $btn.is( '#post-preview' ) ) {
+ $btn.removeAttr( 'data-llms-clicked' );
+ return;
+ }
+
+ e.preventDefault();
+
+ // Core UX to prevent multi-click/or the appearance of a delay.
+ $( '#post input[type="submit"]' ).addClass( 'disabled' ).attr( 'disabled', 'disabled' );
+ $spinner.addClass( 'is-active' );
+
+ var self = window.llms.metaboxes.repeaters,
+ i = 0,
+ wait;
+
+ self.$repeaters.each( function() {
+ self.save( $( this ) );
+ } );
+
+ wait = setInterval( function() {
+
+ if ( i >= 59 || ! $( '.llms-mb-list.repeater.processing' ).length ) {
+
+ clearInterval( wait );
+ $( '#post' ).off( 'submit', this.handle_submit );
+ $spinner.removeClass( 'is-active' );
+ $btn.removeClass( 'disabled' ).removeAttr( 'disabled' ).trigger( 'click' );
+
+ } else {
+
+ i++;
+
+ }
+
+ }, 1000 );
+
+ },
+
+ /**
+ * Load repeater data from the server and create rows in the DOM
+ *
+ * @since 3.11.0
+ * @since 3.12.1 Unknown.
+ *
+ * @return {void}
+ */
+ load: function() {
+
+ var self = this;
+
+ self.$repeaters.each( function() {
+
+ var $repeater = $( this );
+
+ // Ensure the repeater is only loaded once to prevent duplicates resulting from duplicating binding.
+ // On certain sites which I cannot quite explain...
+ if ( $repeater.hasClass( 'is-loaded' ) || $repeater.hasClass( 'processing' ) ) {
+ return;
+ }
+
+ self.store( $repeater, 'load', function( data ) {
+
+ $repeater.addClass( 'is-loaded' );
+
+ $.each( data.data, function( i, obj ) {
+ self.add_row( $repeater, obj, false );
+ } );
+
+ // For each row within the repeater.
+ $repeater.find( '.llms-repeater-rows .llms-repeater-row' ).each( function() {
+ self.bind_row( $( this ) );
+ } );
+
+ } );
+
+ } );
+
+ },
+
+ /**
+ * Reindex a row
+ *
+ * Renames ids, attrs, and etc...
+ *
+ * Used when cloning the model for new rows.
+ *
+ * @since 3.11.0
+ *
+ * @param {Object} $row jQuery selector for the row.
+ * @param {string} index The index (or id) to use when renaming.
+ * @return {string}
+ */
+ reindex: function( $row, index ) {
+
+ var old_index = $row.attr( 'data-row-order' ),
+ $ed = $row.find( '.llms-mb-list.editor textarea' );
+
+ tinyMCE.EditorManager.execCommand( 'mceRemoveEditor', true, $ed.attr( 'id' ) );
+
+ function replace_attr( $el, attr ) {
+ $el.each( function() {
+ var str = $( this ).attr( attr );
+ $( this ).attr( attr, str.replace( old_index, index ) );
+ } );
+ };
+
+ $row.attr( 'data-row-order', index );
+
+ replace_attr( $row, 'data-row-order' );
+
+ replace_attr( $row.find( 'button.insert-media' ), 'data-editor' );
+
+ replace_attr( $row.find( 'input[name^="_llms"], textarea[name^="_llms"], select[name^="_llms"]' ), 'id' );
+ replace_attr( $row.find( 'input[name^="_llms"], textarea[name^="_llms"], select[name^="_llms"]' ), 'name' );
+ replace_attr( $row.find( '[data-controller]' ), 'data-controller' );
+ replace_attr( $row.find( '[data-controller]' ), 'data-controller' );
+ replace_attr( $row.find( 'button.wp-switch-editor' ), 'data-wp-editor-id' );
+ replace_attr( $row.find( 'button.wp-switch-editor' ), 'id' );
+ replace_attr( $row.find( '.wp-editor-tools' ), 'id' );
+ replace_attr( $row.find( '.wp-editor-container' ), 'id' );
+
+ return $ed.attr( 'id' );
+
+ },
+
+ /**
+ * Save a single repeaters data to the server
+ *
+ * @since 3.11.0
+ * @since 3.13.0 Unknown.
+ *
+ * @param {Object} $repeater jQuery selector for a repeater element.
+ * @return {void}
+ */
+ save: function( $repeater ) {
+ $repeater.trigger( 'llms-repeater-before-save', { $el: $repeater } );
+ this.store( $repeater, 'save' );
+ },
+
+ /**
+ * Convert a repeater element into an array of objects that can be saved to the database
+ *
+ * @since 3.11.0
+ *
+ * @param {Object} $repeater A jQuery selector for a repeater element.
+ * @return {void}
+ */
+ serialize: function( $repeater ) {
+
+ var rows = [];
+
+ $repeater.find( '.llms-repeater-rows .llms-repeater-row' ).each( function() {
+
+ var obj = {};
+
+ // Easy...
+ $( this ).find( 'input[name^="_llms"], select[name^="_llms"]' ).each( function() {
+ obj[ $( this ).attr( 'name' ) ] = $( this ).val();
+ } );
+
+ // Check if the textarea is a tinyMCE instance.
+ $( this ).find( 'textarea[name^="_llms"]' ).each( function() {
+
+ var name = $( this ).attr( 'name' );
+
+ // If it is an editor.
+ if ( tinyMCE.editors[ name ] ) {
+ obj[ name ] = tinyMCE.editors[ name ].getContent();
+ // Grab the val of the textarea.
+ } else {
+ obj[ name ] = $( this ).val();
+ }
+
+ } );
+
+ rows.push( obj );
+
+ } );
+
+ return rows;
+
+ },
+
+ /**
+ * AJAX method for interacting with the repeater's handler on the server
+ *
+ * @since 3.11.0
+ *
+ * @param {Object} $repeater jQuery selector for the repeater element.
+ * @param {string} action Action to call [save|load].
+ * @param {Function} cb Callback function.
+ * @return {void}
+ */
+ store: function( $repeater, action, cb ) {
+
+ cb = cb || function(){};
+ var self = this,
+ data = {
+ action: $repeater.find( '.llms-repeater-field-handler' ).val(),
+ store_action: action,
+ };
+
+ if ( 'save' === action ) {
+ data.rows = self.serialize( $repeater );
+ }
+
+ LLMS.Ajax.call( {
+ data: data,
+ beforeSend: function() {
+
+ $repeater.addClass( 'processing' );
+ LLMS.Spinner.start( $repeater );
+
+ },
+ success: function( r ) {
+
+ cb( r );
+ LLMS.Spinner.stop( $repeater );
+ $repeater.removeClass( 'processing' );
+
+ }
+
+ } );
+
+ }
+
+ };
+ this.repeaters.init();
+
+
+ /**
+ * Initialize
+ *
+ * @since 3.0.0
+ * @since 3.13.0 Unknown.
+ * @since 4.19.0 Add `this.bind_mce_fixes()`.
+ * @since 5.3.0 Bind editables when editable buttons are present in addition to anchors.
+ *
+ * @return void
+ */
+ this.init = function() {
+
+ var self = this;
+
+ $( '.llms-select2-post' ).each( function() {
+ self.post_select( $( this ) );
+ } );
+
+ $( '.llms-collapsible-group' ).llmsCollapsible();
+
+ this.bind_tabs();
+
+ this.bind_mce_fixes();
+
+ // bind everything better and less repetitively...
+ var bindings = [
+ {
+ selector: $( '.llms-datepicker' ),
+ func: 'bind_datepickers',
+ },
+ {
+ selector: $( '.llms-select2' ),
+ func: function( $selector ) {
+ $selector.llmsSelect2( {
+ width: '100%',
+ } );
+ },
+ },
+ {
+ selector: $( '.llms-select2-student' ),
+ func: function( $selector ) {
+ $selector.llmsStudentsSelect2();
+ }
+ },
+ {
+ selector: $( 'input[type="checkbox"][data-controls]' ),
+ func: 'bind_cb_controllers',
+ },
+ {
+ selector: $( '[data-is-controller]' ),
+ func: 'bind_controllers',
+ },
+ {
+ selector: $( '.llms-table' ),
+ func: 'bind_tables',
+ },
+ {
+ selector: $( '.llms-merge-code-wrapper' ),
+ func: 'bind_merge_code_buttons',
+ },
+ {
+ selector: $( 'a.llms-editable, button.llms-editable' ),
+ func: 'bind_editables',
+ },
+ ];
+
+ // bind all the bindables but don't bind things in repeaters
+ $.each( bindings, function( index, obj ) {
+
+ if ( obj.selector.length ) {
+
+ // reduce the selector to exclude items in a repeater
+ var reduced = obj.selector.filter( function() {
+ return ( 0 === $( this ).closest( '.llms-repeater-model' ).length );
+ } );
+
+ // bind by string
+ if ( 'string' === typeof obj.func ) {
+ self[ obj.func ]( reduced );
+ }
+ // bind by an anonymous function
+ else if ( 'function' === typeof obj.func ) {
+ obj.func( reduced );
+ }
+
+ }
+
+ } );
+
+ // if a post type is set & a bind exists for it, bind it
+ if ( window.llms.post.post_type ) {
+
+ var func = 'bind_' + window.llms.post.post_type;
+
+ if ( 'function' === typeof this[func] ) {
+
+ this[func]();
+
+ }
+
+ }
+
+ };
+
+ /**
+ * Bind checkboxes that control the display of other elements
+ *
+ * @param obj $controllers jQuery selector for checkboxes to be bound as checkbox controllers
+ * @return void
+ * @since 3.0.0
+ * @version 3.11.0
+ */
+ this.bind_cb_controllers = function( $controllers ) {
+
+ $controllers = $controllers || $( 'input[type="checkbox"][data-controls]' );
+
+ $controllers.each( function() {
+
+ var $cb = $( this ),
+ $controlled = $( $cb.attr( 'data-controls' ) ).closest( '.llms-mb-list' );
+
+ $cb.on( 'change', function() {
+
+ if ( $( this ).is( ':checked' ) ) {
+
+ $controlled.slideDown( 200 );
+
+ } else {
+
+ $controlled.slideUp( 200 );
+
+ }
+
+ } );
+
+ $cb.trigger( 'change' );
+
+ } );
+
+ };
+
+ /**
+ * Bind elements that control the display of other elements
+ *
+ * @param obj $controllers jQuery selector for elements to be bound as checkbox controllers
+ * @return void
+ * @since 3.0.0
+ * @version 3.11.0
+ */
+ this.bind_controllers = function( $controllers ) {
+
+ $controllers = $controllers || $( '[data-is-controller]' );
+
+ $controllers.each( function() {
+
+ var $el = $( this ),
+ $controlled = $( '[data-controller="#' + $el.attr( 'id' ) + '"]' ),
+ val;
+
+ $el.on( 'change', function() {
+
+ if ( 'checkbox' === $el.attr( 'type' ) ) {
+
+ val = $el.is( ':checked' ) ? $el.val() : 'false';
+
+ } else {
+
+ val = $el.val();
+
+ }
+
+ $controlled.each( function() {
+
+ var possible = $( this ).attr( 'data-controller-value' ),
+ vals = [];
+
+ if ( -1 !== possible.indexOf( ',' ) ) {
+
+ vals = possible.split( ',' );
+
+ } else {
+
+ vals.push( possible );
+
+ }
+
+ if ( -1 !== vals.indexOf( val ) ) {
+
+ $( this ).slideDown( 200 );
+
+ } else {
+
+ $( this ).slideUp( 200 );
+
+ }
+
+ } );
+
+ } );
+
+ $el.trigger( 'change' );
+
+ } );
+
+ };
+
+ /**
+ * Bind a single datepicker element
+ *
+ * @param obj $el jQuery selector for the input to bind the datepicker to
+ * @return void
+ * @since 3.0.0
+ * @version 3.10.0
+ */
+ this.bind_datepicker = function( $el ) {
+ var format = $el.attr( 'data-format' ) || 'mm/dd/yy',
+ maxDate = $el.attr( 'data-max-date' ) || null,
+ minDate = $el.attr( 'data-min-date' ) || null;
+ $el.datepicker( {
+ dateFormat: format,
+ maxDate: maxDate,
+ minDate: minDate,
+ } );
+ }
+
+ /**
+ * Bind all LifterLMS datepickers
+ *
+ * @param obj $datepickers jQuery selector for the elements to bind
+ * @return void
+ * @since 3.0.0
+ * @version 3.11.0
+ */
+ this.bind_datepickers = function( $datepickers ) {
+
+ var self = this;
+
+ $datepickers = $datepickers || $( '.llms-datepicker' );
+
+ $datepickers.each( function() {
+ self.bind_datepicker( $( this ) );
+ } );
+
+ };
+
+ /**
+ * Bind llms-editable metabox fields and related dom interactions
+ *
+ * @since 3.10.0
+ * @since 3.28.0 Unknown.
+ * @since 5.3.0 Bind editables when editable buttons are present in addition to anchors.
+ *
+ * @return void
+ */
+ this.bind_editables = function() {
+
+ var self = this;
+
+ function make_editable( $field ) {
+
+ var $label = $field.find( 'label' ).clone(),
+ name = $field.attr( 'data-llms-editable' ),
+ type = $field.attr( 'data-llms-editable-type' ),
+ required = $field.attr( 'data-llms-editable-required' ) || 'no',
+ val = $field.attr( 'data-llms-editable-value' ),
+ $input;
+
+ required = ( 'yes' === required ) ? ' required="required"' : '';
+
+ if ( 'select' === type ) {
+
+ var options = JSON.parse( $field.attr( 'data-llms-editable-options' ) ),
+ selected;
+
+ $input = $( ' ' );
+ for ( var key in options ) {
+ selected = val === key ? ' selected="selected"' : '';
+ $input.append( '' + options[ key ] + ' ' );
+ }
+
+ } else if ( 'datetime' === type ) {
+
+ $input = $( '
' );
+
+ val = JSON.parse( val );
+ var format = $field.attr( 'data-llms-editable-date-format' ) || '',
+ min_date = $field.attr( 'data-llms-editable-date-min' ) || '',
+ max_date = $field.attr( 'data-llms-editable-date-max' ) || '';
+
+ $picker = $( ' ' );
+ self.bind_datepicker( $picker );
+ $input.append( $picker );
+ $input.append( '@ ' );
+
+ $input.append( ' ' );
+ $input.append( ': ' );
+ $input.append( ' ' );
+
+ } else {
+
+ $input = $( ' ' );
+ }
+
+ $field.empty().append( $label ).append( $input );
+ if ( 'select' === type ) {
+ setTimeout( function() {
+ $input.trigger( 'change' );
+ }, 100 );
+ }
+
+ };
+
+ $( 'a.llms-editable, button.llms-editable' ).on( 'click', function( e ) {
+
+ e.preventDefault();
+
+ var $btn = $( this ),
+ $fields;
+
+ if ( $btn.attr( 'data-fields' ) ) {
+ $fields = $( $btn.attr( 'data-fields' ) );
+ } else {
+ $fields = $btn.closest( '.llms-metabox-section' ).find( '[data-llms-editable]' );
+ }
+
+ $btn.remove();
+
+ $fields.each( function() {
+ make_editable( $( this ) );
+ } );
+
+ } );
+
+ };
+
+ /**
+ * Bind Engagement post type JS
+ *
+ * @return void
+ * @since 3.1.0
+ * @version 3.1.0
+ */
+ this.bind_llms_engagement = function() {
+
+ var self = this;
+
+ // when the engagement type changes we need to do some things to the UI
+ $( '#_llms_engagement_type' ).on( 'change', function() {
+
+ $( '#_llms_engagement' ).trigger( 'llms-engagement-type-change', $( this ).val() );
+
+ } );
+
+ // custom trigger when called when the engagement type changes
+ $( '#_llms_engagement' ).on( 'llms-engagement-type-change', function( e, engagement_type ) {
+
+ var $select = $( this );
+
+ switch ( engagement_type ) {
+
+ /**
+ * core engagements related to a CPT
+ */
+ case 'achievement':
+ case 'certificate':
+ case 'email':
+
+ var cpt = 'llms_' + engagement_type;
+
+ $select.val( null ).attr( 'data-post-type', cpt ).trigger( 'change' );
+ self.post_select( $select );
+
+ break;
+
+ /**
+ * Allow other plugins and developers to hook into the engagement type change action
+ */
+ default:
+
+ $select.trigger( 'llms-engagement-type-change-external', engagement_type );
+
+ }
+
+ } );
+
+ };
+
+ /**
+ * Actions for memberships
+ *
+ * @since 3.0.0
+ * @since 3.30.0 Made autoenroll table sortable, added AJAX save for adding new courses.
+ * @version 3.30.0
+ *
+ * @return void
+ */
+ this.bind_llms_membership = function() {
+
+ var $table = $( '.llms-mb-list._llms_content_table' );
+
+ /**
+ * Hide/Show empty message header row depending on the number of rows in the tbody
+ *
+ * @since 3.30.0
+ * @version 3.30.0
+ *
+ * @return void
+ */
+ function toggle_header_row() {
+
+ var $rows = $table.find( 'tbody tr' );
+ if ( 1 === $rows.length ) {
+ $rows.first().show();
+ } else {
+ $rows.first().hide();
+ }
+ }
+
+ /**
+ * Retrieve an array of course IDs in the table.
+ *
+ * @since 3.30.0
+ * @version 3.30.0
+ *
+ * @return array
+ */
+ function get_course_ids() {
+
+ var courses = [];
+ $table.find( 'tbody tr a[href="#llms-course-remove"]' ).each( function() {
+ courses.push( $( this ).attr( 'data-id' ) );
+ } );
+ return courses;
+
+ }
+
+ // On init, toggle the header row visibility.
+ toggle_header_row();
+
+ // remove auto-enroll course
+ $table.on( 'click', 'a[href="#llms-course-remove"]', function( e ) {
+
+ e.preventDefault();
+
+ var $el = $( this ),
+ $row = $el.closest( 'tr' ),
+ $container = $el.closest( '.llms-mb-list' );
+
+ LLMS.Spinner.start( $container );
+
+ window.LLMS.Ajax.call( {
+ data: {
+ action: 'membership_remove_auto_enroll_course',
+ course_id: $el.attr( 'data-id' ),
+ },
+ beforeSend: function() {
+
+ $container.find( 'p.error' ).remove();
+
+ },
+ success: function( r ) {
+
+ if ( r.success ) {
+
+ $row.fadeOut( 200 );
+ setTimeout( function() {
+ $row.remove();
+ toggle_header_row();
+ }, 400 );
+
+ } else {
+
+ $container.prepend( '' + r.message + '
' );
+
+ }
+
+ LLMS.Spinner.stop( $container );
+ },
+ } );
+
+ } );
+
+ // bulk enroll all members into a course
+ $table.on( 'click', 'a[href="#llms-course-bulk-enroll"]', function( e ) {
+
+ e.preventDefault();
+
+ var $el = $( this ),
+ $row = $el.closest( 'tr' ),
+ $container = $el.closest( '.llms-mb-list' );
+
+ if ( ! window.confirm( LLMS.l10n.translate( 'Click okay to enroll all active members into the selected course. Enrollment will take place in the background and you may leave your site after confirmation. This action cannot be undone!' ) ) ) {
+ return;
+ }
+
+ LLMS.Spinner.start( $container );
+
+ window.LLMS.Ajax.call( {
+ data: {
+ action: 'bulk_enroll_membership_into_course',
+ course_id: $el.attr( 'data-id' ),
+ },
+ beforeSend: function() {
+ $container.find( 'p.error' ).remove();
+ },
+ success: function( r ) {
+
+ if ( r.success ) {
+
+ $el.replaceWith( '' + r.data.message + ' ' );
+
+ } else {
+
+ $container.prepend( '' + r.message + '
' );
+
+ }
+
+ LLMS.Spinner.stop( $container );
+ },
+ } );
+
+ } );
+
+ // Add an item to the autoenroll table on select.
+ $( '#_llms_auto_enroll' ).on( 'change', function() {
+
+ var id = $( this ).val(),
+ title = $( this ).find( 'option[value="' + $( this ).val() + '"]' ).text();
+
+ // If there's no ID
+ if ( ! id ) {
+ return;
+ // Prevent Dupes.
+ } else if ( -1 !== get_course_ids().indexOf( id ) ) {
+
+ alert( LLMS.l10n.replace( '"%s" is already in the course list.', { '%s': title } ) )
+
+ // reset the select field.
+ $( this ).val( '' ).trigger( 'change' );
+
+ return;
+
+ }
+
+ var $table = $( '.llms-mb-list._llms_content_table' );
+ $tr = $( ' ' );
+
+ $tr.append( ' ' );
+ $tr.append( '' + title + ' ' );
+ $tr.append( '' + LLMS.l10n.translate( 'Remove course' ) + ' ' + LLMS.l10n.translate( 'Enroll All Members' ) + ' ' );
+
+ // append the element to the table.
+ $table.find( 'table tbody' ).append( $tr );
+
+ // reset the select field.
+ $( this ).val( '' ).trigger( 'change' );
+
+ // Show the header row.
+ toggle_header_row();
+
+ // trigger a save event.
+ $table.trigger( 'llms-save-autoenroll-courses' );
+
+ } );
+
+ // Make autoenrollment table sortable.
+ $table.find( 'table tbody' ).sortable( {
+ handle: '.llms-drag-handle',
+ // Save order on stop.
+ stop: function( event, ui ) {
+ ui.item.closest( '.llms-mb-list' ).trigger( 'llms-save-autoenroll-courses' );
+ },
+ } );
+
+ // Save courses & course order.
+ $table.on( 'llms-save-autoenroll-courses', function() {
+
+ var $container = $( this );
+
+ LLMS.Spinner.start( $container );
+
+ window.LLMS.Ajax.call( {
+ data: {
+ action: 'llms_save_membership_autoenroll_courses',
+ courses: get_course_ids(),
+ },
+ error: function( jqxhr, code, error_msg ) {
+ alert( error_msg );
+ },
+ complete: function() {
+ LLMS.Spinner.stop( $container );
+ },
+ } );
+
+ } );
+
+ };
+
+ /**
+ * Actions for ORDERS
+ *
+ * @return void
+ * @since 3.0.0
+ * @version 3.28.0
+ */
+ this.bind_llms_order = function() {
+
+ $( 'button[name="llms-refund-toggle"]' ).on( 'click', function() {
+
+ var $btn = $( this ),
+ $row = $btn.closest( 'tr' ),
+ txn_id = $row.attr( 'data-transaction-id' ),
+ refundable_amount = $btn.attr( 'data-refundable' ),
+ gateway_supports = ( '1' === $btn.attr( 'data-gateway-supports' ) ) ? true : false,
+ gateway_title = $btn.attr( 'data-gateway' ),
+ $new_row = $( '#llms-txn-refund-model .llms-txn-refund-form' ).clone(),
+ $gateway_btn = $new_row.find( '.gateway-btn' );
+
+ // configure and add the form
+ if ( 'remove' !== $btn.attr( 'data-action' ) ) {
+
+ $btn.text( LLMS.l10n.translate( 'Cancel' ) );
+ $btn.attr( 'data-action', 'remove' );
+ $new_row.find( 'input' ).removeAttr( 'disabled' );
+ $new_row.find( 'input[name="llms_refund_amount"]' ).attr( 'max', refundable_amount );
+ $new_row.find( 'input[name="llms_refund_txn_id"]' ).val( txn_id );
+
+ if ( gateway_supports ) {
+ $gateway_btn.find( '.llms-gateway-title' ).text( gateway_title );
+ $gateway_btn.show();
+ }
+
+ $row.after( $new_row );
+
+ } else {
+
+ $btn.text( LLMS.l10n.translate( 'Refund' ) );
+ $btn.attr( 'data-action', '' );
+ $row.next( 'tr' ).remove();
+
+ }
+
+ } );
+
+ $( 'button[name="llms-manual-txn-toggle"]' ).on( 'click', function() {
+
+ var $btn = $( this ),
+ $row = $btn.closest( 'tr' ),
+ $new_row = $( '#llms-manual-txn-model .llms-manual-txn-form' ).clone();
+
+ // configure and add the form
+ if ( 'remove' !== $btn.attr( 'data-action' ) ) {
+
+ $btn.text( LLMS.l10n.translate( 'Cancel' ) );
+ $btn.attr( 'data-action', 'remove' );
+ $new_row.find( 'input' ).removeAttr( 'disabled' );
+
+ $row.after( $new_row );
+
+ } else {
+
+ $btn.text( LLMS.l10n.translate( 'Record a Manual Payment' ) );
+ $btn.attr( 'data-action', '' );
+ $row.next( 'tr' ).remove();
+
+ }
+
+ } );
+
+ // cache the original value when focusing on a payment gateway select
+ // used below so the original field related data can be restored when switching back to the originally selected gateway
+ $( '.llms-metabox' ).one( 'focus', '.llms-metabox-field[data-llms-editable="payment_gateway"] select', function() {
+
+ if ( ! $( this ).attr( 'data-original-value' ) ) {
+ $( this ).attr( 'data-original-value', $( this ).val() );
+ }
+
+ } );
+
+ // when selecting a new payment gateway get field data and update the dom to only display the fields
+ // supported/needed by the newly selected gateway
+ $( '.llms-metabox' ).on( 'change', '.llms-metabox-field[data-llms-editable="payment_gateway"] select', function() {
+
+ var $select = $( this ),
+ gateway = $select.val(),
+ data = JSON.parse( $select.closest( '.llms-metabox-field' ).attr( 'data-gateway-fields' ) ),
+ gateway_data = data[ gateway ];
+
+ for ( var field in gateway_data ) {
+
+ var $field = $( 'input[name="' + gateway_data[ field ].name + '"]' ),
+ $wrap = $field.closest( '.llms-metabox-field' );
+
+ // if the field is enabled show it the field and, if we're switching back to the originally selected
+ // gateway, reload the value from the dom
+ if ( gateway_data[ field ].enabled ) {
+
+ $wrap.show();
+ $field.attr( 'required', 'required' );
+ $field.removeAttr( 'disabled' );
+
+ if ( gateway === $select.attr( 'data-original-value' ) ) {
+ $field.val( $wrap.attr( 'data-llms-editable-value' ) );
+ }
+
+ // otherwise hide the field
+ // this will ensure it gets updated in the database
+ } else {
+
+ // always clear the value when switching
+ // ensures that outdated data is removed from the DB
+ $field.attr( 'value', '' );
+
+ $field.removeAttr( 'required' );
+ // $field.attr( 'disabled', 'disabled' );
+ $wrap.hide();
+
+ }
+
+ }
+
+ } );
+
+ };
+
+ /**
+ * Re-initializes TinyMCE Editors found within metaboxes
+ *
+ * @since 4.19.0
+ * @since 4.21.2 Improve early return dependency check.
+ * @since 7.0.1 Add `undefined` condition on early return check.
+ *
+ * @link https://github.com/gocodebox/lifterlms/issues/1553
+ * @link https://github.com/gocodebox/lifterlms/pull/1618
+ * @link https://github.com/gocodebox/lifterlms/issues/2298
+ *
+ * @return {void}
+ */
+ this.bind_mce_fixes = function() {
+
+ // We need `wp.data` to proceed.
+ if ( undefined === wp.data || [ null, undefined ].includes( wp.data.select( 'core/edit-post' ) ) ) {
+ return;
+ }
+
+ LLMS.wait_for(
+ function() {
+ return undefined !== wp.data.select( 'core/edit-post' ).getMetaBoxesPerLocation( 'normal' );
+ },
+ function() {
+
+ var shouldRun = false;
+ find = [ 'lifterlms-product', 'lifterlms-membership', 'lifterlms-course-options' ];
+ metaboxes = wp.data.select( 'core/edit-post' ).getMetaBoxesPerLocation( 'normal' );
+
+ // Determine if we should run the fixer.
+ for ( var key in metaboxes ) {
+ if ( -1 !== find.indexOf( metaboxes[ key ].id ) ) {
+ shouldRun = true;
+ break;
+ }
+ }
+
+ if ( ! shouldRun ) {
+ return;
+ }
+
+ // Fix them.
+ var toFix = {};
+
+ /**
+ * Determines if the TinyMCE instance should be fixed.
+ *
+ * @since 4.19.0
+ *
+ * @param {string} key Editor Key. This is the HTML id attribute of the textarea powering the editor instance.
+ * @return {Boolean} Returns `true` if the editor should be fixed.
+ */
+ function llmsShouldFixTinyMCEEditor( key ) {
+ return ( 'excerpt' === key || -1 !== key.indexOf( 'llms' ) || -1 !== key.indexOf( 'lifterlms' ) )
+ };
+
+ // Loop through all the loaded editors.
+ for ( var key in tinyMCE.EditorManager.editors ) {
+
+ // Mark LifterLMS editors to be fixed & de-init the editor.
+ if ( llmsShouldFixTinyMCEEditor( key ) ) {
+
+ toFix[ key ] = tinyMCE.EditorManager.get( key );
+ tinyMCE.EditorManager.execCommand( 'mceRemoveEditor', true, key );
+
+ }
+
+ }
+
+ // If we remove and re-init immediately it doesn't work, so we'll wait a bit and then re-init them all.
+ setTimeout( function() {
+ for ( var key in toFix ) {
+ tinyMCE.EditorManager.init( toFix[ key ].settings || tinyMCE.EditorManager.settings );
+ }
+ }, 500 );
+
+ }
+ );
+
+ };
+
+ /**
+ * Binds custom llms merge code buttons
+ *
+ * @return void
+ * @since 3.1.0
+ * @version 3.9.2
+ */
+ this.bind_merge_code_buttons = function( $wrappers ) {
+
+ $wrappers = $wrappers || $( '.llms-merge-code-wrapper' );
+
+ $wrappers.find( '.llms-merge-code-button' ).on( 'click', function() {
+
+ $( this ).next( '.llms-merge-codes' ).toggleClass( 'active' );
+
+ } );
+
+ $wrappers.find( '.llms-merge-codes li' ).on( 'click', function() {
+
+ var $el = $( this ),
+ $parent = $el.closest( '.llms-merge-codes' ),
+ target = $parent.attr( 'data-target' ),
+ code = $el.attr( 'data-code' );
+
+ // dealing with a tinymce instance
+ if ( -1 === target.indexOf( '#' ) ) {
+
+ var editor = window.tinymce.editors[ target ];
+ if ( editor ) {
+ editor.insertContent( code );
+ } // fallback in case we can't access the editor directly
+ else {
+ alert( LLMS.l10n.translate( 'Copy this code and paste it into the desired area' ) + ': ' + code );
+ }
+
+ }
+ // dealing with a DOM id
+ else {
+
+ $( target ).val( $( target ).val() + code );
+
+ }
+
+ $parent.removeClass( 'active' );
+
+ } );
+
+ };
+
+ /**
+ * Bind metabox tabs
+ *
+ * @return void
+ * @since 3.0.0
+ * @version 3.0.0
+ */
+ this.bind_tabs = function() {
+ $( '.llms-nav-tab-wrapper .tabs li' ).on( 'click', function() {
+
+ var $btn = $( this ),
+ $metabox = $btn.closest( '.llms-mb-container' ),
+ tab_id = $btn.attr( 'data-tab' );
+
+ $btn.siblings().removeClass( 'llms-active' );
+
+ $metabox.find( '.tab-content' ).removeClass( 'llms-active' );
+
+ $btn.addClass( 'llms-active' );
+ $( '#' + tab_id ).addClass( 'llms-active' );
+
+ } );
+ };
+
+ /**
+ * Enable WP Post Table searches for applicable select2 boxes
+ *
+ * @since 3.0.0
+ * @since 3.21.0 Unknown.
+ * @since 6.0.0 Show element at 100% width if not displaying a view button.
+ * @since 7.1.1 Fixed `home_url` for view button.
+ *
+ * @return void
+ */
+ this.post_select = function( $el ) {
+
+ var multi = 'multiple' === $el.attr( 'multiple' ),
+ noViewBtn = $el.attr( 'data-no-view-button' );
+
+ $el.llmsPostsSelect2( {
+ width: multi || noViewBtn ? '100%' : '65%',
+ } );
+
+ if ( multi || noViewBtn ) {
+ return;
+ }
+
+ // add a "View" button to see what the selected page looks like
+ var msg = LLMS.l10n.translate( 'View' ),
+ $btn = $( '' + msg + ' ' );
+ $el.next( '.select2' ).after( $btn );
+
+ $el.on( 'change', function() {
+ var id = $( this ).val();
+ if ( id ) {
+ $btn.attr( 'href', window.llms.home_url + '/?p=' + id ).show();
+ } else {
+ $btn.hide();
+ }
+ } ).trigger( 'change' );
+
+ };
+
+ /**
+ * Bind dom events for .llms-tables
+ *
+ * @return void
+ * @since 3.0.0
+ * @version 3.0.0
+ */
+ this.bind_tables = function() {
+
+ $( '.llms-table button[name="llms-expand-table"]' ).on( 'click', function() {
+
+ var $btn = $( this ),
+ $table = $btn.closest( '.llms-table' )
+
+ // switch the text on the button if alt text is found
+ if ( $btn.attr( 'data-text' ) ) {
+ var text = $btn.text();
+ $btn.text( $btn.attr( 'data-text' ) );
+ $btn.attr( 'data-text', text );
+ }
+
+ // switch classes on all expandable elements
+ $table.find( '.expandable' ).each( function() {
+
+ if ( $( this ).hasClass( 'closed' ) ) {
+ $( this ).addClass( 'opened' ).removeClass( 'closed' );
+ } else {
+ $( this ).addClass( 'closed' ).removeClass( 'opened' );
+ }
+
+ } );
+
+ } );
+
+ };
+
+ // go
+ this.init();
+
+ };
+
+ // initialize the object
+ window.llms.metaboxes = new Metaboxes();
+
+} )( jQuery );
+
+//# sourceMappingURL=../maps/js/llms-metaboxes.js.map
diff --git a/assets/js/llms-metaboxes.min.js b/assets/js/llms-metaboxes.min.js
new file mode 100644
index 0000000000..8baa72114e
--- /dev/null
+++ b/assets/js/llms-metaboxes.min.js
@@ -0,0 +1,2 @@
+!function(f){f(document).ready(function(){"public"===f('input[name="visibility"]:checked').val()&&f("body.post-type-llms_coupon #visibility, body.post-type-llms_voucher #visibility").hide()}),f.fn.llmsCollapsible=function(){return this.on("click",".llms-collapsible-header",function(){var e=f(this).closest(".llms-collapsible"),t=e.siblings(".llms-collapsible");e.toggleClass("opened").trigger("llms-collapsible-toggled"),e.find(".llms-collapsible-body").slideToggle(400),t.each(function(){f(this).removeClass("opened"),f(this).find(".llms-collapsible-body").slideUp(400)})}),this},window.llms=window.llms||{};window.llms.metaboxes=new function(){this.repeaters={metaboxes:this,$repeaters:null,init:function(){var e=this;e.$repeaters=f(".llms-mb-list.repeater"),e.$repeaters.length&&(LLMS.wait_for(function(){return"undefined"!=typeof tinyMCE},function(){e.load(),e.bind()}),f('#post input[type="submit"], #post-preview').on("click",function(){f(this).attr("data-llms-clicked","yes")}),f("#post").on("submit",e.handle_submit))},bind:function(){var n=this;n.$repeaters.each(function(){var a=f(this),l=a.find(".llms-repeater-rows");a.find(".llms-repeater-new-btn").on("click",function(){n.add_row(a,null,!0)}),l.sortable({handle:".llms-drag-handle",items:".llms-repeater-row",start:function(e,t){l.addClass("dragging")},stop:function(e,t){l.removeClass("dragging"),t.item.find("textarea.wp-editor-area").each(function(){var e=f(this).attr("id");tinyMCE.EditorManager.execCommand("mceRemoveEditor",!0,e),tinyMCE.EditorManager.execCommand("mceAddEditor",!0,e)}),n.save(a)}}),a.on("click",".llms-repeater-remove",function(e){e.stopPropagation();e=f(this).closest(".llms-repeater-row");window.confirm(LLMS.l10n.translate("Are you sure you want to delete this row? This cannot be undone."))&&(e.remove(),setTimeout(function(){n.save(a)},1))})})},add_row:function(e,t,a){var l=this,n=e.find(".llms-repeater-rows"),i=e.find(".llms-repeater-model"),s=l.clone_row(i.find(".llms-repeater-row")),i=e.find(".llms-repeater-row").length,i=l.reindex(s,i);t&&f.each(t,function(e,t){var a=s.find('[name^="'+e+'"]');a.hasClass("llms-select2-student")?(f.each(t,function(e,t){a.append(''+t.title+" ")}),a.trigger("change")):a.val(t)}),setTimeout(function(){l.bind_row(s)},1),n.append(s),a&&s.find(".llms-collapsible-header").trigger("click"),tinyMCE.EditorManager.execCommand("mceAddEditor",!0,i),e.trigger("llms-new-repeater-row",{$row:s,data:t})},bind_row:function(e){this.bind_row_header(e),e.find(".llms-select2").llmsSelect2({width:"100%"}),e.find(".llms-select2-student").llmsStudentsSelect2(),this.metaboxes.bind_datepickers(e.find(".llms-datepicker")),this.metaboxes.bind_controllers(e.find("[data-is-controller]"))},bind_row_header:function(e){var t=e.find(".llms-repeater-title"),e=e.find(".llms-collapsible-header-title-field");t.attr("data-default",t.text()),e.on("keyup focusout blur",function(){var e=(e=f(this).val())||t.attr("data-default");t.text(e)}).trigger("keyup")},clone_row:function(e){return($ed=e.find(".editor textarea")).length&&tinyMCE.EditorManager.execCommand("mceRemoveEditor",!0,$ed.attr("id")),e.clone()},handle_submit:function(e){var t,a,l,n=f('#post [data-llms-clicked="yes"]'),i=n.parent().find(".spinner");n.is("#post-preview")?n.removeAttr("data-llms-clicked"):(e.preventDefault(),f('#post input[type="submit"]').addClass("disabled").attr("disabled","disabled"),i.addClass("is-active"),t=window.llms.metaboxes.repeaters,a=0,t.$repeaters.each(function(){t.save(f(this))}),l=setInterval(function(){59<=a||!f(".llms-mb-list.repeater.processing").length?(clearInterval(l),f("#post").off("submit",this.handle_submit),i.removeClass("is-active"),n.removeClass("disabled").removeAttr("disabled").trigger("click")):a++},1e3))},load:function(){var l=this;l.$repeaters.each(function(){var a=f(this);a.hasClass("is-loaded")||a.hasClass("processing")||l.store(a,"load",function(e){a.addClass("is-loaded"),f.each(e.data,function(e,t){l.add_row(a,t,!1)}),a.find(".llms-repeater-rows .llms-repeater-row").each(function(){l.bind_row(f(this))})})})},reindex:function(e,a){var l=e.attr("data-row-order"),t=e.find(".llms-mb-list.editor textarea");function n(e,t){e.each(function(){var e=f(this).attr(t);f(this).attr(t,e.replace(l,a))})}return tinyMCE.EditorManager.execCommand("mceRemoveEditor",!0,t.attr("id")),e.attr("data-row-order",a),n(e,"data-row-order"),n(e.find("button.insert-media"),"data-editor"),n(e.find('input[name^="_llms"], textarea[name^="_llms"], select[name^="_llms"]'),"id"),n(e.find('input[name^="_llms"], textarea[name^="_llms"], select[name^="_llms"]'),"name"),n(e.find("[data-controller]"),"data-controller"),n(e.find("[data-controller]"),"data-controller"),n(e.find("button.wp-switch-editor"),"data-wp-editor-id"),n(e.find("button.wp-switch-editor"),"id"),n(e.find(".wp-editor-tools"),"id"),n(e.find(".wp-editor-container"),"id"),t.attr("id")},save:function(e){e.trigger("llms-repeater-before-save",{$el:e}),this.store(e,"save")},serialize:function(e){var a=[];return e.find(".llms-repeater-rows .llms-repeater-row").each(function(){var t={};f(this).find('input[name^="_llms"], select[name^="_llms"]').each(function(){t[f(this).attr("name")]=f(this).val()}),f(this).find('textarea[name^="_llms"]').each(function(){var e=f(this).attr("name");tinyMCE.editors[e]?t[e]=tinyMCE.editors[e].getContent():t[e]=f(this).val()}),a.push(t)}),a},store:function(t,e,a){a=a||function(){};var l={action:t.find(".llms-repeater-field-handler").val(),store_action:e};"save"===e&&(l.rows=this.serialize(t)),LLMS.Ajax.call({data:l,beforeSend:function(){t.addClass("processing"),LLMS.Spinner.start(t)},success:function(e){a(e),LLMS.Spinner.stop(t),t.removeClass("processing")}})}},this.repeaters.init(),this.init=function(){var l=this,e=(f(".llms-select2-post").each(function(){l.post_select(f(this))}),f(".llms-collapsible-group").llmsCollapsible(),this.bind_tabs(),this.bind_mce_fixes(),[{selector:f(".llms-datepicker"),func:"bind_datepickers"},{selector:f(".llms-select2"),func:function(e){e.llmsSelect2({width:"100%"})}},{selector:f(".llms-select2-student"),func:function(e){e.llmsStudentsSelect2()}},{selector:f('input[type="checkbox"][data-controls]'),func:"bind_cb_controllers"},{selector:f("[data-is-controller]"),func:"bind_controllers"},{selector:f(".llms-table"),func:"bind_tables"},{selector:f(".llms-merge-code-wrapper"),func:"bind_merge_code_buttons"},{selector:f("a.llms-editable, button.llms-editable"),func:"bind_editables"}]);f.each(e,function(e,t){var a;t.selector.length&&(a=t.selector.filter(function(){return 0===f(this).closest(".llms-repeater-model").length}),"string"==typeof t.func?l[t.func](a):"function"==typeof t.func&&t.func(a))}),window.llms.post.post_type&&"function"==typeof this[e="bind_"+window.llms.post.post_type]&&this[e]()},this.bind_cb_controllers=function(e){(e=e||f('input[type="checkbox"][data-controls]')).each(function(){var e=f(this),t=f(e.attr("data-controls")).closest(".llms-mb-list");e.on("change",function(){f(this).is(":checked")?t.slideDown(200):t.slideUp(200)}),e.trigger("change")})},this.bind_controllers=function(e){(e=e||f("[data-is-controller]")).each(function(){var a,e=f(this),t=f('[data-controller="#'+e.attr("id")+'"]');e.on("change",function(){a="checkbox"!==e.attr("type")||e.is(":checked")?e.val():"false",t.each(function(){var e=f(this).attr("data-controller-value"),t=[];-1!==e.indexOf(",")?t=e.split(","):t.push(e),-1!==t.indexOf(a)?f(this).slideDown(200):f(this).slideUp(200)})}),e.trigger("change")})},this.bind_datepicker=function(e){var t=e.attr("data-format")||"mm/dd/yy",a=e.attr("data-max-date")||null,l=e.attr("data-min-date")||null;e.datepicker({dateFormat:t,maxDate:a,minDate:l})},this.bind_datepickers=function(e){var t=this;(e=e||f(".llms-datepicker")).each(function(){t.bind_datepicker(f(this))})},this.bind_editables=function(){var u=this;f("a.llms-editable, button.llms-editable").on("click",function(e){e.preventDefault();var e=f(this),t=e.attr("data-fields")?f(e.attr("data-fields")):e.closest(".llms-metabox-section").find("[data-llms-editable]");e.remove(),t.each(function(){var e,t,a,l=f(this),n=l.find("label").clone(),i=l.attr("data-llms-editable"),s=l.attr("data-llms-editable-type"),r=l.attr("data-llms-editable-required")||"no",o=l.attr("data-llms-editable-value"),r="yes"===r?' required="required"':"";if("select"===s){var d,c=JSON.parse(l.attr("data-llms-editable-options")),m=f(' ");for(d in c)m.append('"+c[d]+" ")}else"datetime"===s?(m=f('
'),o=JSON.parse(o),e=l.attr("data-llms-editable-date-format")||"",t=l.attr("data-llms-editable-date-min")||"",a=l.attr("data-llms-editable-date-max")||"",$picker=f(' '),u.bind_datepicker($picker),m.append($picker),m.append("@ "),m.append(' '),m.append(": "),m.append(' ')):m=f(' ");l.empty().append(n).append(m),"select"===s&&setTimeout(function(){m.trigger("change")},100)})})},this.bind_llms_engagement=function(){var n=this;f("#_llms_engagement_type").on("change",function(){f("#_llms_engagement").trigger("llms-engagement-type-change",f(this).val())}),f("#_llms_engagement").on("llms-engagement-type-change",function(e,t){var a=f(this);switch(t){case"achievement":case"certificate":case"email":var l="llms_"+t;a.val(null).attr("data-post-type",l).trigger("change"),n.post_select(a);break;default:a.trigger("llms-engagement-type-change-external",t)}})},this.bind_llms_membership=function(){var t=f(".llms-mb-list._llms_content_table");function l(){var e=t.find("tbody tr");1===e.length?e.first().show():e.first().hide()}function n(){var e=[];return t.find('tbody tr a[href="#llms-course-remove"]').each(function(){e.push(f(this).attr("data-id"))}),e}l(),t.on("click",'a[href="#llms-course-remove"]',function(e){e.preventDefault();var e=f(this),t=e.closest("tr"),a=e.closest(".llms-mb-list");LLMS.Spinner.start(a),window.LLMS.Ajax.call({data:{action:"membership_remove_auto_enroll_course",course_id:e.attr("data-id")},beforeSend:function(){a.find("p.error").remove()},success:function(e){e.success?(t.fadeOut(200),setTimeout(function(){t.remove(),l()},400)):a.prepend(''+e.message+"
"),LLMS.Spinner.stop(a)}})}),t.on("click",'a[href="#llms-course-bulk-enroll"]',function(e){e.preventDefault();var t=f(this),a=(t.closest("tr"),t.closest(".llms-mb-list"));window.confirm(LLMS.l10n.translate("Click okay to enroll all active members into the selected course. Enrollment will take place in the background and you may leave your site after confirmation. This action cannot be undone!"))&&(LLMS.Spinner.start(a),window.LLMS.Ajax.call({data:{action:"bulk_enroll_membership_into_course",course_id:t.attr("data-id")},beforeSend:function(){a.find("p.error").remove()},success:function(e){e.success?t.replaceWith(''+e.data.message+" "):a.prepend(''+e.message+"
"),LLMS.Spinner.stop(a)}}))}),f("#_llms_auto_enroll").on("change",function(){var e,t=f(this).val(),a=f(this).find('option[value="'+f(this).val()+'"]').text();t&&(-1!==n().indexOf(t)?(alert(LLMS.l10n.replace('"%s" is already in the course list.',{"%s":a})),f(this).val("").trigger("change")):(e=f(".llms-mb-list._llms_content_table"),($tr=f(" ")).append(' '),$tr.append(''+a+" "),$tr.append(''+LLMS.l10n.translate("Remove course")+' '+LLMS.l10n.translate("Enroll All Members")+" "),e.find("table tbody").append($tr),f(this).val("").trigger("change"),l(),e.trigger("llms-save-autoenroll-courses")))}),t.find("table tbody").sortable({handle:".llms-drag-handle",stop:function(e,t){t.item.closest(".llms-mb-list").trigger("llms-save-autoenroll-courses")}}),t.on("llms-save-autoenroll-courses",function(){var e=f(this);LLMS.Spinner.start(e),window.LLMS.Ajax.call({data:{action:"llms_save_membership_autoenroll_courses",courses:n()},error:function(e,t,a){alert(a)},complete:function(){LLMS.Spinner.stop(e)}})})},this.bind_llms_order=function(){f('button[name="llms-refund-toggle"]').on("click",function(){var e=f(this),t=e.closest("tr"),a=t.attr("data-transaction-id"),l=e.attr("data-refundable"),n="1"===e.attr("data-gateway-supports"),i=e.attr("data-gateway"),s=f("#llms-txn-refund-model .llms-txn-refund-form").clone(),r=s.find(".gateway-btn");"remove"!==e.attr("data-action")?(e.text(LLMS.l10n.translate("Cancel")),e.attr("data-action","remove"),s.find("input").removeAttr("disabled"),s.find('input[name="llms_refund_amount"]').attr("max",l),s.find('input[name="llms_refund_txn_id"]').val(a),n&&(r.find(".llms-gateway-title").text(i),r.show()),t.after(s)):(e.text(LLMS.l10n.translate("Refund")),e.attr("data-action",""),t.next("tr").remove())}),f('button[name="llms-manual-txn-toggle"]').on("click",function(){var e=f(this),t=e.closest("tr"),a=f("#llms-manual-txn-model .llms-manual-txn-form").clone();"remove"!==e.attr("data-action")?(e.text(LLMS.l10n.translate("Cancel")),e.attr("data-action","remove"),a.find("input").removeAttr("disabled"),t.after(a)):(e.text(LLMS.l10n.translate("Record a Manual Payment")),e.attr("data-action",""),t.next("tr").remove())}),f(".llms-metabox").one("focus",'.llms-metabox-field[data-llms-editable="payment_gateway"] select',function(){f(this).attr("data-original-value")||f(this).attr("data-original-value",f(this).val())}),f(".llms-metabox").on("change",'.llms-metabox-field[data-llms-editable="payment_gateway"] select',function(){var e,t=f(this),a=t.val(),l=JSON.parse(t.closest(".llms-metabox-field").attr("data-gateway-fields"))[a];for(e in l){var n=f('input[name="'+l[e].name+'"]'),i=n.closest(".llms-metabox-field");l[e].enabled?(i.show(),n.attr("required","required"),n.removeAttr("disabled"),a===t.attr("data-original-value")&&n.val(i.attr("data-llms-editable-value"))):(n.attr("value",""),n.removeAttr("required"),i.hide())}})},this.bind_mce_fixes=function(){void 0===wp.data||[null,void 0].includes(wp.data.select("core/edit-post"))||LLMS.wait_for(function(){return void 0!==wp.data.select("core/edit-post").getMetaBoxesPerLocation("normal")},function(){var e=!1;for(t in find=["lifterlms-product","lifterlms-membership","lifterlms-course-options"],metaboxes=wp.data.select("core/edit-post").getMetaBoxesPerLocation("normal"))if(-1!==find.indexOf(metaboxes[t].id)){e=!0;break}if(e){var t,a,l={};for(t in tinyMCE.EditorManager.editors)"excerpt"!==(a=t)&&-1===a.indexOf("llms")&&-1===a.indexOf("lifterlms")||(l[t]=tinyMCE.EditorManager.get(t),tinyMCE.EditorManager.execCommand("mceRemoveEditor",!0,t));setTimeout(function(){for(var e in l)tinyMCE.EditorManager.init(l[e].settings||tinyMCE.EditorManager.settings)},500)}})},this.bind_merge_code_buttons=function(e){(e=e||f(".llms-merge-code-wrapper")).find(".llms-merge-code-button").on("click",function(){f(this).next(".llms-merge-codes").toggleClass("active")}),e.find(".llms-merge-codes li").on("click",function(){var e,t=f(this),a=t.closest(".llms-merge-codes"),l=a.attr("data-target"),t=t.attr("data-code");-1===l.indexOf("#")?(e=window.tinymce.editors[l])?e.insertContent(t):alert(LLMS.l10n.translate("Copy this code and paste it into the desired area")+": "+t):f(l).val(f(l).val()+t),a.removeClass("active")})},this.bind_tabs=function(){f(".llms-nav-tab-wrapper .tabs li").on("click",function(){var e=f(this),t=e.closest(".llms-mb-container"),a=e.attr("data-tab");e.siblings().removeClass("llms-active"),t.find(".tab-content").removeClass("llms-active"),e.addClass("llms-active"),f("#"+a).addClass("llms-active")})},this.post_select=function(e){var t,a="multiple"===e.attr("multiple"),l=e.attr("data-no-view-button");e.llmsPostsSelect2({width:a||l?"100%":"65%"}),a||l||(a=LLMS.l10n.translate("View"),t=f(''+a+' '),e.next(".select2").after(t),e.on("change",function(){var e=f(this).val();e?t.attr("href",window.llms.home_url+"/?p="+e).show():t.hide()}).trigger("change"))},this.bind_tables=function(){f('.llms-table button[name="llms-expand-table"]').on("click",function(){var e,t=f(this),a=t.closest(".llms-table");t.attr("data-text")&&(e=t.text(),t.text(t.attr("data-text")),t.attr("data-text",e)),a.find(".expandable").each(function(){f(this).hasClass("closed")?f(this).addClass("opened").removeClass("closed"):f(this).addClass("closed").removeClass("opened")})})},this.init()}}(jQuery);
+//# sourceMappingURL=../maps/js/llms-metaboxes.min.js.map
diff --git a/assets/js/llms-quill-wordcount.js.map b/assets/js/llms-quill-wordcount.js.map
new file mode 100644
index 0000000000..fdf91537c0
--- /dev/null
+++ b/assets/js/llms-quill-wordcount.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"js/llms-quill-wordcount.js","mappings":"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","sources":["webpack://lifterlms/./packages/quill-wordcount-module/src/create-container.js","webpack://lifterlms/./packages/quill-wordcount-module/src/format-number.js","webpack://lifterlms/./packages/quill-wordcount-module/src/get-counter-text-color.js","webpack://lifterlms/./packages/quill-wordcount-module/src/index.js","webpack://lifterlms/./packages/quill-wordcount-module/src/module.js","webpack://lifterlms/./node_modules/words-count/dist/index.js","webpack://lifterlms/webpack/bootstrap","webpack://lifterlms/webpack/runtime/compat get default export","webpack://lifterlms/webpack/runtime/define property getters","webpack://lifterlms/webpack/runtime/hasOwnProperty shorthand","webpack://lifterlms/webpack/runtime/make namespace object","webpack://lifterlms/./src/js/quill-wordcount.js"],"sourcesContent":["import formatNumber from './format-number';\n\n/**\n * Creates a new DOM node for the min or max count display.\n *\n * @since 2.0.0\n *\n * @param {string} classNameSuffix Suffix to add to the element's classname.\n * @param {string} text Text to display.\n * @param {number} limit Word count limit.\n * @return {Element} A DOM node element.\n */\nfunction createCounterNode( classNameSuffix, text, limit ) {\n\tconst node = document.createElement( 'i' );\n\n\tnode.className = `ql-wordcount-${ classNameSuffix }`;\n\n\tnode.style.opacity = '0.5';\n\tnode.style.marginRight = '10px';\n\n\tnode.innerHTML = `${ text }: ${ formatNumber( limit ) }`;\n\n\treturn node;\n}\n\n/**\n * Creates a container element to house the wordcount module UI.\n *\n * @since 2.0.0\n *\n * @param {Object} options A `WordCountModuleOptions` options object.\n * @return {Element} The container DOM node element.\n */\nexport default function( options ) {\n\tconst { l10n, min, max } = options,\n\t\tcontainer = document.createElement( 'div' );\n\n\tcontainer.className = 'ql-wordcount ql-toolbar ql-snow';\n\tcontainer.style.marginTop = '-1px';\n\tcontainer.style.fontSize = '85%';\n\n\tif ( min ) {\n\t\tcontainer.appendChild( createCounterNode( 'min', l10n.min, min ) );\n\t}\n\n\tif ( max ) {\n\t\tcontainer.appendChild( createCounterNode( 'max', l10n.max, max ) );\n\t}\n\n\treturn container;\n}\n","/**\n * Formats a number using the builtin {@see Intl.NumberFormat}.\n *\n * @since 2.0.0\n *\n * @param {number} number An integer, float, or numerical string.\n * @return {string} The formatted number string.\n */\nexport default function( number ) {\n\treturn new Intl.NumberFormat().format( number );\n}\n","/**\n * Retrieves the text-color to use to denote word count errors or warnings.\n *\n * @since 2.0.0\n *\n * @param {number} wordCount The current word count in the Quill editor instance.\n * @param {Object} options A `WordCountModuleOptions` options object.\n * @return {string} The CSS color code to use.\n */\nexport default function( wordCount, options ) {\n\tconst { min, max, colorWarning, colorError } = options;\n\n\tlet color = 'initial';\n\n\tif ( ( min && wordCount < min ) || ( max && wordCount > max ) ) {\n\t\tcolor = colorError;\n\t} else if ( max && wordCount >= max * 0.9 ) {\n\t\tcolor = colorWarning;\n\t}\n\n\treturn color;\n}\n","import wordCountModule from './module';\n\n/**\n * Registers the Word Count module with Quill.\n *\n * @since 2.0.0\n *\n * @return {boolean} Returns `true` when registered and `false` if Quill is not available.\n */\nexport default function() {\n\tconst { Quill } = window;\n\tif ( undefined === Quill ) {\n\t\treturn false;\n\t}\n\n\tQuill.register( 'modules/wordcount', wordCountModule );\n\treturn true;\n}\n","import wordsCount from 'words-count';\n\nimport createContainer from './create-container';\nimport getCounterTextColor from './get-counter-text-color';\nimport formatNumber from './format-number';\n\n/**\n * The modules options object.\n *\n * @typedef {Object} WordCountModuleOptions\n *\n * @property {?number} min The minimum required words. If `null` no minimum will be enforced.\n * @property {?number} max The maximum required words. If `null` no maximum will be enforced.\n * @property {string} colorWarning A CSS color code used when approaching the maximum word count.\n * @property {string} colorError A CSS color code used when below the minimum or above the maximum word count.\n * @property {Function} onChange Callback function invoked when the quill text changes. This function is passed\n * 3 parameters: the `quill` object, the module options object, and the current number of words.\n * @property {Object} l10n An object of language strings used in the module's UI.\n * @property {string} l10n.singular The singular unit, default \"word\".\n * @property {string} l10n.plural The plurarl unit, default \"words\".\n * @property {string} l10n.min Text to display for minimum count, default \"Minimum\".\n * @property {string} l10n.max Text to display for maximum count, default \"Maximum\".\n */\n\n/**\n * Merges default options into the supplied options ensuring all necessary options in exist in the resulting object.\n *\n * @since 2.0.0\n *\n * @param {WordCountModuleOptions} options A full or partial options object.\n * @return {WordCountModuleOptions} A full options object.\n */\nexport function setOptions( options = {} ) {\n\toptions = {\n\t\t...{\n\t\t\tmin: null,\n\t\t\tmax: null,\n\t\t\tcolorWarning: '#ff922b', // Orange.\n\t\t\tcolorError: '#e5554e', // Red.\n\t\t\tonChange: () => {},\n\t\t\tl10n: {},\n\t\t},\n\t\t...options,\n\t};\n\n\toptions.l10n = {\n\t\t...{\n\t\t\tsingular: 'word',\n\t\t\tplural: 'words',\n\t\t\tmin: 'Minimum',\n\t\t\tmax: 'Maximum',\n\t\t},\n\t\t...options.l10n,\n\t};\n\n\treturn options;\n}\n\n/**\n * The Quill Word Count Module.\n *\n * @since 2.0.0\n *\n * @param {Object} quill A `Quill` editor instance.\n * @param {WordCountModuleOptions} options A full or partial options object.\n * @return {void}\n */\nexport default function( quill, options = {} ) {\n\toptions = setOptions( options );\n\n\tconst container = createContainer( options ),\n\t\tcounter = document.createElement( 'span' );\n\n\tcounter.className = 'ql-wordcount-counter';\n\tcounter.style.float = 'right';\n\n\tcontainer.appendChild( counter );\n\n\tconst updateCounter = () => {\n\t\tconst wordCount = wordsCount( quill.getText() );\n\n\t\tcounter.style.color = getCounterTextColor( wordCount, options );\n\n\t\tconst unit = 1 === wordCount ? options.l10n.singular : options.l10n.plural;\n\t\tcounter.innerHTML = formatNumber( wordCount ) + ' ' + unit;\n\n\t\toptions.onChange( quill, options, wordCount );\n\t};\n\n\tupdateCounter();\n\n\tquill.container.parentNode.insertBefore( container, quill.container.nextSibling );\n\n\tquill.on( 'text-change', updateCounter );\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"words-count\",[],t):\"object\"==typeof exports?exports[\"words-count\"]=t():e[\"words-count\"]=t()}(this,(function(){return(()=>{\"use strict\";var e={314:(e,t,r)=>{r.r(t),r.d(t,{default:()=>a,wordsCount:()=>c,wordsSplit:()=>i,wordsDetect:()=>u});var o=[\",\",\",\",\".\",\"。\",\":\",\":\",\";\",\";\",\"[\",\"]\",\"【\",\"]\",\"】\",\"{\",\"{\",\"}\",\"}\",\"(\",\"(\",\")\",\")\",\"<\",\"《\",\">\",\"》\",\"$\",\"¥\",\"!\",\"!\",\"?\",\"?\",\"~\",\"~\",\"'\",\"’\",'\"',\"“\",\"”\",\"*\",\"/\",\"\\\\\",\"&\",\"%\",\"@\",\"#\",\"^\",\"、\",\"、\",\"、\",\"、\"],n={words:[],count:0},u=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return n;var r=String(e);if(\"\"===r.trim())return n;var u=t.punctuationAsBreaker?\" \":\"\",c=t.disableDefaultPunctuation?[]:o,i=t.punctuation||[],a=c.concat(i);a.forEach((function(e){var t=new RegExp(\"\\\\\"+e,\"g\");r=r.replace(t,u)})),r=(r=(r=(r=r.replace(/[\\uFF00-\\uFFEF\\u2000-\\u206F]/g,\"\")).replace(/\\s+/,\" \")).split(\" \")).filter((function(e){return e.trim()}));var d=\"(\\\\d+)|[a-zA-ZÀ-ÿĀ-ſƀ-ɏɐ-ʯḀ-ỿЀ-ӿԀ-ԯഀ-ൿ]+|\",f=\"⺀-⼀- -〿㇀-㈀-㋿㌀-㏿㐀-㿿䀀-䶿一-俿倀-忿怀-濿瀀-翿耀-迿退-鿿豈-\",p=\"-ゟ゠-ヿㇰ-ㇿ㆐-㆟\",s=\"ᄀ-ᇿ-ꥠ-가-꿿뀀-뿿쀀-쿿퀀-ힰ-\",l=new RegExp(d+\"[\"+f+p+s+\"]\",\"g\"),v=[];return r.forEach((function(e){var t,r=[];do{(t=l.exec(e))&&r.push(t[0])}while(t);0===r.length?v.push(e):v=v.concat(r)})),{words:v,count:v.length}},c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u(e,t),o=r.count;return o},i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=u(e,t),o=r.words;return o};const a=c}},t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return e[o](n,n.exports,r),n.exports}return r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r(314)})()}));","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import quillWordcountModule from '../../packages/quill-wordcount-module/src';\n\n/**\n * Registers the wordcount module with Quill.\n *\n * @since 6.10.0\n */\n( function() {\n\tquillWordcountModule();\n}() );\n"],"names":["formatNumber","createCounterNode","classNameSuffix","text","limit","node","document","createElement","className","style","opacity","marginRight","innerHTML","options","l10n","min","max","container","marginTop","fontSize","appendChild","number","Intl","NumberFormat","format","wordCount","colorWarning","colorError","color","wordCountModule","Quill","window","undefined","register","wordsCount","createContainer","getCounterTextColor","setOptions","arguments","length","onChange","singular","plural","quill","counter","float","updateCounter","getText","unit","parentNode","insertBefore","nextSibling","on","quillWordcountModule"],"sourceRoot":""}
\ No newline at end of file
diff --git a/assets/js/llms-quiz.min.js b/assets/js/llms-quiz.min.js
new file mode 100644
index 0000000000..bff4e66419
--- /dev/null
+++ b/assets/js/llms-quiz.min.js
@@ -0,0 +1,2 @@
+!function(r){var t={$buttons:null,$container:null,$ui:null,attempt_key:null,current_question:0,total_questions:0,questions:{},validators:{},status:null,resumable:null,exiting_quiz:!1,bind:function(){var e=this;r("#llms_start_quiz").on("click",function(t){t.preventDefault(),e.start_quiz()}),r("#llms_resume_quiz").on("click",function(t){t.preventDefault(),e.resume_quiz()}),r(".llms-donut").each(function(){LLMS.Donut(r(this))}),r("#llms-quiz-attempt-select").on("change",function(){var t=r(this).val();t&&(window.location.href=t)}),r(window).on("beforeunload",function(){if(e.status&&!e.exiting_quiz)return LLMS.l10n.translate("Are you sure you wish to quit this quiz attempt?")}),r(window).on("unload",function(){e.status&&!e.resumable&&e.complete_quiz()}),r(document).on("llms-post-append-question",e.post_append_question),this.register_validator("content",this.validate),this.register_validator("choice",this.validate_choice),this.register_validator("picture_choice",this.validate_choice),this.register_validator("true_false",this.validate_choice)},add_error:function(t){this.$container.find(".llms-error").remove();var e=r(''+t+'
');e.on("click","a",function(t){t.preventDefault(),e.fadeOut("200"),setTimeout(function(){e.remove()},210)}),this.$container.append(e)},save_question:function(e){var t=this.$container.find(".llms-question-wrapper"),i=t.attr("data-type");this.validators[i]?(t={action:"quiz_answer_question",answer:this.validators[i](t).answer,attempt_key:this.attempt_key,question_id:t.attr("data-id"),question_type:t.attr("data-type")},e&&e.exit_quiz&&(t.via_exit_quiz=!0),e&&e.previous_question&&(t.via_previous_question=!0),LLMS.Ajax.call({data:t,success:function(t){e&&"function"==typeof e.callback&&e.callback()}})):console.log("No validator registered for question type "+i)},answer_question:function(e){var t,s=this,i=this.$container.find(".llms-question-wrapper"),n=i.attr("data-type");if(this.validators[n]){if(!(t=this.validators[n](i))||!0!==t.valid||!t.answer)return s.add_error(t.valid);LLMS.Ajax.call({data:{action:"quiz_answer_question",answer:t.answer,attempt_key:s.attempt_key,question_id:i.attr("data-id"),question_type:i.attr("data-type")},beforeSend:function(){var t=e.hasClass("llms-button-quiz-complete")?LLMS.l10n.translate("Grading Quiz..."):LLMS.l10n.translate("Loading Question...");s.toggle_loader("show",t),s.update_progress_bar("increment")},success:function(t){s.toggle_loader("hide"),t.data&&t.data.html?t.data.question_id&&s.questions["q-"+t.data.question_id]?s.load_question(s.questions["q-"+t.data.question_id]):s.load_question(t.data.html):t.data&&t.data.redirect?s.redirect(t.data.redirect):t.message?s.$container.append(""+t.message+"
"):(t=LLMS.l10n.translate("An unknown error occurred. Please try again."),s.$container.append(""+t+"
"))},error:function(t,e,i){s.reload_question(),s.add_error(LLMS.l10n.translate("An unknown error occurred. Please try again.")),console.log(i)}})}else console.log("No validator registered for question type "+n)},complete_quiz:function(){var e=this;LLMS.Ajax.call({data:{action:"quiz_end",attempt_key:e.attempt_key},beforeSend:function(){e.toggle_loader("show","Grading Quiz...")},success:function(t){e.toggle_loader("hide"),t.data&&t.data.redirect?e.redirect(t.data.redirect):t.message?e.$container.append(""+t.message+"
"):(t=LLMS.l10n.translate("An unknown error occurred. Please try again."),e.$container.append(""+t+"
"))}})},get_question_index:function(t){return Object.keys(this.questions).indexOf("q-"+t)},redirect:function(t){this.toggle_loader("show","Grading Quiz..."),this.status=null,window.location.href=t},reload_question:function(){var t=this;t.toggle_loader("show",LLMS.l10n.translate("Loading Question...")),t.update_progress_bar("reload"),setTimeout(function(){t.toggle_loader("hide"),t.load_question(t.questions["q-"+t.current_question])},100)},previous_question:function(){var s=this;this.save_question({previous_question:!0,callback:function(){s.toggle_loader("show",LLMS.l10n.translate("Loading Question...")),s.update_progress_bar("decrement");var t=Object.keys(s.questions),e=t.indexOf("q-"+s.current_question),i=t[0];1<=e&&(i=t[e-1]),s.questions[i]?setTimeout(function(){s.toggle_loader("hide"),s.load_question(s.questions[i])},100):LLMS.Ajax.call({data:{action:"quiz_get_question",attempt_key:s.attempt_key,question_id:i.substring(2)},success:function(t){s.toggle_loader("hide"),t.data&&t.data.html?s.load_question(t.data.html):t.data&&t.data.redirect?s.redirect(t.data.redirect):t.message?s.$container.append(""+t.message+"
"):(t=LLMS.l10n.translate("An unknown error occurred. Please try again."),s.$container.append(""+t+"
"))}})}})},register_validator:function(t,e){this.validators[t]=e},start_quiz:function(){this.init_quiz("quiz_start")},resume_quiz:function(){this.init_quiz("quiz_resume")},init_quiz:function(e){var i=this;"quiz_resume"===e&&r("#llms_resume_quiz").attr("disabled","disabled"),this.load_ui_elements(),this.$ui=r("#llms-quiz-ui"),this.$buttons=r("#llms-quiz-nav button"),this.$container=r("#llms-quiz-question-wrapper"),r("#llms-next-question, #llms-complete-quiz").on("click",function(t){t.preventDefault(),i.answer_question(r(this))}),r("#llms-prev-question").on("click",function(t){t.preventDefault(),i.previous_question()}),r("#llms-quiz-nav").on("click","#llms-exit-quiz",function(t){t.preventDefault(),i.save_question({exit_quiz:!0,callback:function(){i.exiting_quiz=!0,window.location.reload()}})}),data="quiz_resume"===e?{action:"quiz_resume",attempt_key:r("#llms-attempt-key").val()}:{action:"quiz_start",attempt_key:r("#llms-attempt-key").val(),lesson_id:r("#llms-lesson-id").val(),quiz_id:r("#llms-quiz-id").val()},LLMS.Ajax.call({data:data,beforeSend:function(){i.status=!0,r("#llms-quiz-wrapper, #quiz-start-button, #quiz-resume-button").remove(),r("html, body").stop().animate({scrollTop:0},500),i.toggle_loader("show",LLMS.l10n.translate("Loading Quiz..."))},error:function(t,e,i){console.log(t,e,i)},success:function(t){i.toggle_loader("hide"),t.data&&t.data.html?(i.attempt_key=t.data.attempt_key,i.total_questions=t.data.total,i.resumable=t.data.can_be_resumed,"quiz_resume"===e?t.data.question_ids.forEach(t=>i.questions["q-"+t]=""):t.data.time_limit&&i.start_quiz_timer(t.data.time_limit),i.resumable&&r("#llms-quiz-nav").append(''+LLMS.l10n.translate("Exit Quiz")+" "),i.load_question(t.data.html),"quiz_resume"===e&&i.update_progress_bar("reload")):t.message?i.$container.append(""+t.message+"
"):(t=LLMS.l10n.translate("An unknown error occurred. Please try again."),i.$container.append(""+t+"
"))}}),LLMS.is_touch_device()||(this.$ui.on("mouseenter","li.llms-choice label",function(){r(this).addClass("hovered")}),this.$ui.on("mouseleave","li.llms-choice label",function(){r(this).removeClass("hovered")}))},start_quiz_timer:function(t){var e=r('
'),i=LLMS.l10n.translate("Time Remaining"),s=(e.append(''+i+" "),e.append('
'),r("#llms-quiz-header").append(e),this),n=(new Date).getTime()+60*t*1e3,a=60*t*1e3,o=document.getElementById("llms-tiles");setTimeout(function(){s.complete_quiz()},1e3+a),this.getCountdown(t,n,a,void 0,void 0,void 0,void 0,o),setInterval(function(){s.getCountdown(t,n,a,void 0,void 0,void 0,void 0,o)},1e3)},trigger:function(t){"answer_question"===t&&(this.get_question_index(this.current_question)===this.total_questions?r("#llms-complete-quiz"):r("#llms-next-question")).trigger("click")},load_question:function(t){var t=r(t),e=t.attr("data-id");this.questions["q-"+e]||(this.questions["q-"+e]=t),this.update_progress(e),this.current_question=e,r(document).trigger("llms-pre-append-question",t),this.$container.append(t),r(document).trigger("llms-post-append-question",t)},load_ui_elements:function(){0 '),e=r('');($footer=r('')).append(''+LLMS.l10n.translate("Next Question")+" "),$footer.append(''+LLMS.l10n.translate("Complete Quiz")+" "),$footer.append(''+LLMS.l10n.translate("Previous Question")+" "),e.append(''),$footer.append('/
'),t.append(e).append('
').append($footer),r("#llms-quiz-wrapper").after(t)},post_append_question:function(t,e){r(e).find("audio").length&&wp.mediaelement.initialize()},toggle_loader:function(t,e){"show"===t?(e=e||LLMS.l10n.translate("Loading..."),this.$buttons.attr("disabled","disabled"),this.$container.empty(),LLMS.Spinner.start(this.$container),this.$container.append(''+LLMS.l10n.translate(e)+"
")):(LLMS.Spinner.stop(this.$container),this.$buttons.removeAttr("disabled"),this.$container.find(".llms-quiz-loading").remove())},update_progress:function(t){t=this.get_question_index(t);-1!==t&&(t++,r("#llms-quiz-counter .llms-current").text(t),0'+n+':'+a+' :'+o+" ")},pad:function(t){return(t<10?"0":"")+t},validate:function(t){return{answer:[],valid:!0}},validate_choice:function(t){var e=window.llms.quizzes.validate(t),t=t.find("input:checked");return t.length?t.each(function(){e.answer.push(r(this).val())}):e.valid=LLMS.l10n.translate("You must select an answer to continue."),e}};t.bind(),window.llms=window.llms||{},window.llms.quizzes=t}(jQuery);
+//# sourceMappingURL=../maps/js/llms-quiz.min.js.map
diff --git a/assets/js/llms-spinner.js.map b/assets/js/llms-spinner.js.map
new file mode 100644
index 0000000000..123a10a296
--- /dev/null
+++ b/assets/js/llms-spinner.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"js/llms-spinner.js","mappings":"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","sources":["webpack://lifterlms/./packages/components/src/spinner/constants.js","webpack://lifterlms/./packages/components/src/spinner/index.js","webpack://lifterlms/./packages/components/src/spinner/styles.js","webpack://lifterlms/./packages/components/src/spinner/utils.js","webpack://lifterlms/external window [\"wp\",\"i18n\"]","webpack://lifterlms/webpack/bootstrap","webpack://lifterlms/webpack/runtime/compat get default export","webpack://lifterlms/webpack/runtime/define property getters","webpack://lifterlms/webpack/runtime/hasOwnProperty shorthand","webpack://lifterlms/webpack/runtime/make namespace object","webpack://lifterlms/./src/js/spinner.js"],"sourcesContent":["/**\n * Spinner wrapper element class name.\n *\n * @type {string}\n */\nexport const WRAPPER_CLASSNAME = 'llms-spinning';\n\n/**\n * Spinner element class name.\n *\n * @type {string}\n */\nexport const CLASSNAME = 'llms-spinner';\n\n/**\n * Small-sized spinner identifier / class name.\n *\n * @type {string}\n */\nexport const SIZE_SMALL = 'small';\n\n/**\n * Default-sized spinner identifier / class name.\n *\n * @type {string}\n */\nexport const SIZE_DEFAULT = 'default';\n","/* eslint-env jquery */\n\n// Internal deps.\nimport { SIZE_DEFAULT } from './constants';\nimport { create, ensureElementList, find, loadStyles } from './utils';\n\n/**\n * This module was originally included in the LifterLMS Core Javascript in the `LLMS` global object as `LLMS.Spinner`.\n *\n * It has since been relocated here as a module in the `@lifterlms/components` package. During the move it was upgraded\n * to enable usage without the requirement of passing in jQuery selectors.\n *\n * In the future, passing native jQuery selectors into any of these modules will be deprecated in favor of native/vanilla Javascript\n * Elements or selector strings that can be passed into `document.querySelector()` or `document.querySelectorAll()`.\n */\n\n/**\n * Retrieves spinner(s) inside a given element.\n *\n * If the spinner element doesn't already exist it will be created.\n *\n * @since 1.1.0\n *\n * @param {jQuery|Element|string} selector A selector to be parsed by `jQuery()`, an existing `jQuery()` selection, a DOM Element. The first spinner\n * found within the element will be returned. If none found it will be created, appended to the element, and\n * then returned.\n * @param {string} size Size or the spinner element. Accepts \"default\" (40px) or \"small\" (20px).\n * @param {boolean} useJQuery If `true`, the return value will be a jQuery selection as opposed to an Element. This is the default behavior\n * for backwards compatibility but will be removed in a future version.\n * @return {null|Element|jQuery} Returns `null` when the selector cannot be located, otherwise returns an `Element` or `jQuery` selection based on the value\n * of `useJQuery`.\n */\nexport function get( selector, size = SIZE_DEFAULT, useJQuery = true ) {\n\tloadStyles();\n\n\tconst nodeList = ensureElementList( selector );\n\tif ( ! nodeList.length ) {\n\t\treturn null;\n\t}\n\n\tconst wrapper = nodeList[ 0 ],\n\t\t// Find an existing spinner and create it if one doesn't exist.\n\t\tspinner = find( wrapper ) || create( wrapper, size );\n\n\t// Return it.\n\treturn useJQuery && typeof jQuery !== 'undefined'\n\t\t? jQuery( spinner )\n\t\t: spinner;\n}\n\n/**\n * Starts spinner(s) inside a given element or element list.\n *\n * If the spinner element doesn't already exist it will be created.\n *\n * @since 1.1.0\n *\n * @param {jQuery|Element|NodeList|string} selector A selector to be parsed by `jQuery()`, an existing `jQuery()` selection, a DOM Element, or an\n * array of DOM Elements. Each element in the list will have it's spinner started. If a spinner doesn't\n * exist within the element, it will be appended and then started.\n * @param {string} size Size or the spinner element. Accepts \"default\" (40px) or \"small\" (20px).\n * @return {void}\n */\nexport function start( selector, size = SIZE_DEFAULT ) {\n\tensureElementList( selector ).forEach( ( el ) => {\n\t\tconst spinner = get( el, size, false );\n\t\tif ( spinner ) {\n\t\t\tspinner.style.display = 'block';\n\t\t}\n\t} );\n}\n\n/**\n * Stops spinner(s) inside a given element or element list.\n *\n * @since 1.1.0\n *\n * @param {jQuery|Element|NodeList|string} selector A selector to be parsed by `jQuery()`, an existing `jQuery()` selection, a DOM Element, or an\n * array of DOM Elements. Each element in the list will have it's spinner stopped.\n * @return {void}\n */\nexport function stop( selector ) {\n\tensureElementList( selector ).forEach( ( el ) => {\n\t\tconst spinner = get( el, SIZE_DEFAULT, false );\n\t\tif ( spinner ) {\n\t\t\tspinner.style.display = 'none';\n\t\t}\n\t} );\n}\n","import { WRAPPER_CLASSNAME, CLASSNAME, SIZE_SMALL } from './constants';\n\n/**\n * CSS Styles for the components.\n *\n * @type {string}\n */\nexport const STYLES = `\n\t.${ WRAPPER_CLASSNAME } {\n\t\tbackground: rgba( 250, 250, 250, 0.7 );\n\t\tbottom: 0;\n\t\tdisplay: none;\n\t\tleft: 0;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\t\tz-index: 2;\n\t}\n\n\t.${ CLASSNAME } {\n\t\tanimation: llms-spinning 1.5s linear infinite;\n\t\tbox-sizing: border-box;\n\t\tborder: 4px solid #313131;\n\t\tborder-radius: 50%;\n\t\theight: 40px;\n\t\tleft: 50%;\n\t\tmargin-left: -20px;\n\t\tmargin-top: -20px;\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\twidth: 40px;\n\n\t}\n\n\t.${ CLASSNAME }.${ SIZE_SMALL } {\n\t\tborder-width: 2px;\n\t\theight: 20px;\n\t\tmargin-left: -10px;\n\t\tmargin-top: -10px;\n\t\twidth: 20px;\n\t}\n\n\t@keyframes llms-spinning {\n\t\t0% {\n\t\t\ttransform: rotate( 0deg )\n\t\t}\n\t\t50% {\n\t\t\tborder-radius: 5%;\n\t\t}\n\t\t100% {\n\t\t\ttransform: rotate( 220deg) \n\t\t}\n\t}\n`;\n","// WP deps.\nimport { __ } from '@wordpress/i18n';\n\n// Internal deps.\nimport { WRAPPER_CLASSNAME, CLASSNAME, SIZE_DEFAULT } from './constants';\nimport { STYLES } from './styles';\n\n/**\n * Creates a spinner element inside the specified wrapper Element.\n *\n * @since 1.1.0\n *\n * @param {Element} wrapper DOM node to append the created spinner element to.\n * @param {string} size Spinner element size.\n * @return {Element} Returns the created spinner node.\n */\nexport function create( wrapper, size = SIZE_DEFAULT ) {\n\tconst spinner = document.createElement( 'div' ),\n\t\tloadingMsg = __( 'Loading…', 'lifterlms' );\n\n\tspinner.innerHTML = `${ loadingMsg } `;\n\tspinner.classList.add( WRAPPER_CLASSNAME );\n\n\twrapper.appendChild( spinner );\n\n\treturn spinner;\n}\n\n/**\n * Normalizes accepted selector inputs and returns a `NodeList`.\n *\n * When jQuery selection is detected, adds a console deprecation warning as well.\n *\n * @since 1.1.0\n *\n * @param {NodeList|Element|string|jQuery} selector The input selector.\n * @return {Element[]} An array of `Element` objects derived from the selector input.\n */\nexport function ensureElementList( selector ) {\n\tselector =\n\t\ttypeof selector === 'string'\n\t\t\t? document.querySelectorAll( selector )\n\t\t\t: selector;\n\n\t// Already a NodeList.\n\tif ( selector instanceof NodeList ) {\n\t\treturn Array.from( selector );\n\t}\n\n\tconst list = [];\n\tif ( selector instanceof Element ) {\n\t\tlist.push( selector );\n\t} else if ( typeof jQuery !== 'undefined' && selector instanceof jQuery ) {\n\t\tselector.toArray().forEach( ( el ) => list.push( el ) );\n\t}\n\n\treturn list;\n}\n\n/**\n * Locates an existing spinner element which is a direct child of the specified wrapper element.\n *\n * @since 1.1.0\n *\n * @param {Element} wrapper Node element for the wrapper.\n * @return {null|undefined|Element} Returns `null` if no spinners exist within the wrapper, undefined if no spinners are\n * direct descendants of the wrapper, otherwise returns the spinner element.\n */\nexport function find( wrapper ) {\n\tconst spinners = wrapper.querySelectorAll( `.${ WRAPPER_CLASSNAME }` );\n\tif ( ! spinners.length ) {\n\t\treturn null;\n\t}\n\n\treturn Array.from( spinners ).find( ( el ) => wrapper === el.parentNode );\n}\n\n/**\n * Loads CSS styles and appends them to the document's .\n *\n * Attaching CSS directly to the `get()` method means that we don't have to worry about loading CSS files (or relying on CSS) included\n * by the LifterLMS core plugin in order to use this styled component.\n *\n * @since 1.1.0\n *\n * @return {void}\n */\nexport function loadStyles() {\n\tconst STYLE_ID = 'llms-spinner-styles';\n\n\tif ( ! document.getElementById( STYLE_ID ) ) {\n\t\tconst style = document.createElement( 'style' );\n\t\tstyle.textContent = STYLES.replace( /\\n/g, '' )\n\t\t\t.replace( /\\t/g, ' ' )\n\t\t\t.replace( /\\s\\s+/g, ' ' );\n\t\tstyle.id = STYLE_ID;\n\t\tdocument.head.appendChild( style );\n\t}\n}\n","module.exports = window[\"wp\"][\"i18n\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Loading the Spinner component file(s) directly so that we don't load other unneeded dependencies (like WPElement/React).\nimport * as Spinner from '../../packages/components/src/spinner/';\n\n/**\n * Expose the components Spinner module via the global `window.LLMS.Spinner` object for backwards compatibility.\n *\n * This is automatically included in the `llms.js` script file so you likely do not need to include this script directly.\n *\n * @since 7.0.0\n */\nwindow.LLMS = window.LLMS || {};\nwindow.LLMS.Spinner = Spinner;\n"],"names":["WRAPPER_CLASSNAME","CLASSNAME","SIZE_SMALL","SIZE_DEFAULT","create","ensureElementList","find","loadStyles","get","selector","size","arguments","length","undefined","useJQuery","nodeList","wrapper","spinner","jQuery","start","forEach","el","style","display","stop","STYLES","__","document","createElement","loadingMsg","innerHTML","classList","add","appendChild","querySelectorAll","NodeList","Array","from","list","Element","push","toArray","spinners","parentNode","STYLE_ID","getElementById","textContent","replace","id","head","Spinner","window","LLMS"],"sourceRoot":""}
\ No newline at end of file
diff --git a/assets/js/llms-utils.js.map b/assets/js/llms-utils.js.map
new file mode 100644
index 0000000000..560e1f5c4b
--- /dev/null
+++ b/assets/js/llms-utils.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"js/llms-utils.js","mappings":";;;;;;;;;;;;;;;;;AAAsD;;;;;;;;;;;;;;;;ACAI;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,eAAeA,CAAEE,GAAG,EAAG;EACtC,OAAQ,GAAGD,uEAAiB,CAAEC,GAAI,CAAG,GAAE;AACxC;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASD,iBAAiBA,CAAEC,GAAG,EAAG;EACxC,OAAOA,GAAG,CAACC,QAAQ,CAAE,GAAI,CAAC,GAAGD,GAAG,CAACE,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,GAAGF,GAAG;AACtD;;;;;;;;;;;;;;;;;;ACV6B;;;;;;;;;;;;;;;;ACAqB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,WAAWA,CAAA,EAAG;EAC7B,MAAM;IAAEC,SAAS,EAAEC,GAAG,GAAG;EAAY,CAAC,GAAGC,MAAM,CAACC,IAAI,IAAI,CAAC,CAAC;EAC1D,OAAOR,8DAAiB,CAAEM,GAAI,CAAC;AAChC;;;;;;;;;;;;;;;;;;;;;UEhBA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;ACNkD;;AAElD;AACA;AACA;AACA;AACA;AACAC,MAAM,CAACC,IAAI,GAAGD,MAAM,CAACC,IAAI,IAAI,CAAC,CAAC;AAC/BD,MAAM,CAACC,IAAI,CAACC,KAAK,GAAGA,gDAAK,C","sources":["webpack://lifterlms/./packages/utils/src/formatting/index.js","webpack://lifterlms/./packages/utils/src/formatting/trailing-slash-it.js","webpack://lifterlms/./packages/utils/src/formatting/untrailing-slash-it.js","webpack://lifterlms/./packages/utils/src/index.js","webpack://lifterlms/./packages/utils/src/url/get-admin-url.js","webpack://lifterlms/./packages/utils/src/url/index.js","webpack://lifterlms/webpack/bootstrap","webpack://lifterlms/webpack/runtime/define property getters","webpack://lifterlms/webpack/runtime/hasOwnProperty shorthand","webpack://lifterlms/webpack/runtime/make namespace object","webpack://lifterlms/./src/js/utils.js"],"sourcesContent":["export { trailingSlashIt } from './trailing-slash-it';\nexport { untrailingSlashIt } from './untrailing-slash-it';\n","import { untrailingSlashIt } from './untrailing-slash-it';\n\n/**\n * Adds a trailing forward slash to a given string.\n *\n * @since 1.0.0\n *\n * @param {string} str A string with or without a trailing forward slash.\n * @return {string} The original string with a trailing forward slash added.\n */\nexport function trailingSlashIt( str ) {\n\treturn `${ untrailingSlashIt( str ) }/`;\n}\n","/**\n * Remove trailing forward slash from a given string.\n *\n * @since 1.0.0\n *\n * @param {string} str A string with or without a trailing forward slash.\n * @return {string} The original string with the trailing forward slash removed.\n */\nexport function untrailingSlashIt( str ) {\n\treturn str.endsWith( '/' ) ? str.slice( 0, -1 ) : str;\n}\n","export * from './formatting';\nexport * from './url';\n","import { untrailingSlashIt } from '../formatting';\n\n/**\n * Retrieves the WordPress admin URL.\n *\n * This function relies on the presence of localized data from the LifterLMS plugin which is only\n * present on the WordPress admin panel. If used out of context a default partial path url, `/wp-admin`\n * will be returned.\n *\n * @since 1.0.0\n *\n * @return {string} The WP Admin URL.\n */\nexport function getAdminUrl() {\n\tconst { admin_url: url = '/wp-admin' } = window.llms || {};\n\treturn untrailingSlashIt( url );\n}\n","export { getAdminUrl } from './get-admin-url';\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import * as utils from '../../packages/utils/src';\n\n/**\n * Expose @lifterlms/utils via the global `window.llms` object.\n *\n * @since 6.0.0\n */\nwindow.llms = window.llms || {};\nwindow.llms.utils = utils;\n"],"names":["trailingSlashIt","untrailingSlashIt","str","endsWith","slice","getAdminUrl","admin_url","url","window","llms","utils"],"sourceRoot":""}
\ No newline at end of file
diff --git a/assets/maps/css/admin-importer.css.map b/assets/maps/css/admin-importer.css.map
new file mode 100644
index 0000000000..b4a9d4af37
--- /dev/null
+++ b/assets/maps/css/admin-importer.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["admin-importer.scss","admin-importer.css"],"names":[],"mappings":"AAGA;EACI,mBAAA;EACA,yBAAA;EACA,aAAA;EACA,iBAAA;EACA,2BAAA;EAAA,2BAAA;EAAA,oBAAA;EACA,yBAAA;MAAA,sBAAA;UAAA,8BAAA;EACA,yBAAA;MAAA,sBAAA;UAAA,mBAAA;ACFJ;;ADKA;EACC,cAAA;EACA,mBAAA;EACA,qBAAA;ACFD;;ADOC;EACC,oBAAA;EAAA,oBAAA;EAAA,aAAA;EACA,4BAAA;EAAA,6BAAA;MAAA,0BAAA;UAAA,sBAAA;EACA,mBAAA;MAAA,eAAA;EACA,SAAA;ACJF;ADME;EAND;IAOE,8BAAA;IAAA,6BAAA;QAAA,uBAAA;YAAA,mBAAA;ECHD;AACF;ADKE;EACC,sBAAA;EACA,yBAAA;EACA,mBAAA;EACA,yFAAA;UAAA,iFAAA;EACA,gBAAA;EACA,cAAA;EACA,gBAAA;ACHH;ADKG;EATD;IAUE,mBAAA;IACA,oBAAA;QAAA,YAAA;IACA,oBAAA;QAAA,cAAA;IACA,4BAAA;QAAA,eAAA;ECFF;AACF;ADIG;EACC,cAAA;EACA,eAAA;ACFJ;ADKG;EACC,cAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;ACHJ;ADMG;EACC,eAAA;EACA,gBAAA;EACA,mBAAA;ACJJ;ADOG;EACC,oBAAA;EACA,kBAAA;ACLJ;ADMI;EACC,YAAA;EACA,WAAA;EACA,kBAAA;ACJL;ADYC;EACC;IACC,oBAAA;IAAA,oBAAA;IAAA,aAAA;IACA,mBAAA;QAAA,eAAA;ECVD;AACF;ADaC;EAEE;IACC,mBAAA;QAAA,8BAAA;YAAA,0BAAA;IACA,2BAAA;ECZF;AACF;ADgBC;EAEE;IACC,mBAAA;QAAA,8BAAA;YAAA,0BAAA;IACA,2BAAA;ECfF;AACF","file":"../../css/admin-importer.css","sourcesContent":["@import \"_includes/vars\";\n@import \"_includes/mixins\";\n\n.llms-import-file-wrap {\n background: #fafafa;\n border: 1px solid #ccd0d4;\n padding: 10px;\n margin: 20px auto;\n display: inline-flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.llms-cloud-import-help.button-link {\n\tcolor: inherit;\n\tvertical-align: top;\n\ttext-decoration: none;\n}\n\n.wrap.llms-import-export {\n\n\tul.llms-importable-courses {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tflex-wrap: wrap;\n\t\tgap: 20px;\n\n\t\t@media only screen and ( min-width: 680px ) {\n\t\t\tflex-direction: row;\n\t\t}\n\n\t\t.llms-importable-course {\n\t\t\tbackground-color: #FFF;\n\t\t\tborder: 1px solid #dedede;\n\t\t\tborder-radius: 12px;\n\t\t\tbox-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);\n\t\t\tlist-style: none;\n\t\t\tmargin: 20px 0;\n\t\t\toverflow: hidden;\n\n\t\t\t@media only screen and ( min-width: 680px ) {\n\t\t\t\t-webkit-box-flex: 0;\n\t\t\t\tflex-grow: 0;\n\t\t\t\tflex-shrink: 1;\n\t\t\t\tflex-basis: calc(31%);\n\t\t\t}\n\n\t\t\timg {\n\t\t\t\tdisplay: block;\n\t\t\t\tmax-width: 100%;\n\t\t\t}\n\n\t\t\th3 {\n\t\t\t\tcolor: #1d2327;\n\t\t\t\tfont-size: 20px;\n\t\t\t\tline-height: 1.5;\n\t\t\t\tmargin: 30px 20px 15px;\n\t\t\t}\n\n\t\t\tp {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tline-height: 1.5;\n\t\t\t\tmargin: 0 20px 15px;\n\t\t\t}\n\n\t\t\t&.has-action-button {\n\t\t\t\tpadding-bottom: 10px;\n\t\t\t\tposition: relative;\n\t\t\t\t.button {\n\t\t\t\t\tbottom: 20px;\n\t\t\t\t\tright: 20px;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t@media only screen and (min-width: 600px) {\n\t\tul.llms-importable-courses {\n\t\t\tdisplay: flex;\n\t\t\tflex-wrap: wrap;\n\t\t}\n\t}\n\n\t@media only screen and (min-width: 600px) and (max-width: 767px) {\n\t\tul.llms-importable-courses {\n\t\t\tli.llms-importable-course {\n\t\t\t\tflex: 1 0 calc( 50% - 20px );\n\t\t\t\tmax-width: calc( 50% - 20px );\n\t\t\t}\n\t\t}\n\t}\n\n\t@media only screen and (min-width: 768px) {\n\t\tul.llms-importable-courses {\n\t\t\tli.llms-importable-course {\n\t\t\t\tflex: 1 0 calc( 33% - 20px );\n\t\t\t\tmax-width: calc( 33% - 20px );\n\t\t\t}\n\t\t}\n\t}\n\n}\n",".llms-import-file-wrap {\n background: #fafafa;\n border: 1px solid #ccd0d4;\n padding: 10px;\n margin: 20px auto;\n display: inline-flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.llms-cloud-import-help.button-link {\n color: inherit;\n vertical-align: top;\n text-decoration: none;\n}\n\n.wrap.llms-import-export ul.llms-importable-courses {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n gap: 20px;\n}\n@media only screen and (min-width: 680px) {\n .wrap.llms-import-export ul.llms-importable-courses {\n flex-direction: row;\n }\n}\n.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course {\n background-color: #FFF;\n border: 1px solid #dedede;\n border-radius: 12px;\n box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);\n list-style: none;\n margin: 20px 0;\n overflow: hidden;\n}\n@media only screen and (min-width: 680px) {\n .wrap.llms-import-export ul.llms-importable-courses .llms-importable-course {\n -webkit-box-flex: 0;\n flex-grow: 0;\n flex-shrink: 1;\n flex-basis: 31%;\n }\n}\n.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course img {\n display: block;\n max-width: 100%;\n}\n.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course h3 {\n color: #1d2327;\n font-size: 20px;\n line-height: 1.5;\n margin: 30px 20px 15px;\n}\n.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course p {\n font-size: 15px;\n line-height: 1.5;\n margin: 0 20px 15px;\n}\n.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course.has-action-button {\n padding-bottom: 10px;\n position: relative;\n}\n.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course.has-action-button .button {\n bottom: 20px;\n right: 20px;\n position: absolute;\n}\n@media only screen and (min-width: 600px) {\n .wrap.llms-import-export ul.llms-importable-courses {\n display: flex;\n flex-wrap: wrap;\n }\n}\n@media only screen and (min-width: 600px) and (max-width: 767px) {\n .wrap.llms-import-export ul.llms-importable-courses li.llms-importable-course {\n flex: 1 0 calc(50% - 20px);\n max-width: calc(50% - 20px);\n }\n}\n@media only screen and (min-width: 768px) {\n .wrap.llms-import-export ul.llms-importable-courses li.llms-importable-course {\n flex: 1 0 calc(33% - 20px);\n max-width: calc(33% - 20px);\n }\n}"],"sourceRoot":"../../scss"}
\ No newline at end of file
diff --git a/assets/maps/css/admin-importer.min.css.map b/assets/maps/css/admin-importer.min.css.map
new file mode 100644
index 0000000000..6967fcf737
--- /dev/null
+++ b/assets/maps/css/admin-importer.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["admin-importer.css"],"names":[],"mappings":"AAAA,uBACE,kBAAA,CACA,wBAAA,CACA,YAAA,CACA,gBAAA,CACA,0BAAA,CACA,0BAAA,CACA,mBAAA,CACA,wBAAA,CACI,qBAAA,CACI,6BAAA,CACR,wBAAA,CACI,qBAAA,CACI,kBAAA,CAGV,oCACE,aAAA,CACA,kBAAA,CACA,oBAAA,CAGF,oDACE,mBAAA,CACA,mBAAA,CACA,YAAA,CACA,2BAAA,CACA,4BAAA,CACI,yBAAA,CACI,qBAAA,CACR,kBAAA,CACI,cAAA,CACJ,QAAA,CAEF,0CACE,oDACE,6BAAA,CACA,4BAAA,CACI,sBAAA,CACI,kBAAA,CAAA,CAGZ,4EACE,qBAAA,CACA,wBAAA,CACA,kBAAA,CACA,+EAAA,CACQ,uEAAA,CACR,eAAA,CACA,aAAA,CACA,eAAA,CAEF,0CACE,4EACE,kBAAA,CACA,mBAAA,CACI,WAAA,CACJ,mBAAA,CACI,aAAA,CACJ,2BAAA,CACI,cAAA,CAAA,CAGR,gFACE,aAAA,CACA,cAAA,CAEF,+EACE,aAAA,CACA,cAAA,CACA,eAAA,CACA,qBAAA,CAEF,8EACE,cAAA,CACA,eAAA,CACA,kBAAA,CAEF,8FACE,mBAAA,CACA,iBAAA,CAEF,sGACE,WAAA,CACA,UAAA,CACA,iBAAA,CAEF,0CACE,oDACE,mBAAA,CACA,mBAAA,CACA,YAAA,CACA,kBAAA,CACI,cAAA,CAAA,CAGR,gEACE,8EACE,kBAAA,CACI,6BAAA,CACI,yBAAA,CACR,0BAAA,CAAA,CAGJ,0CACE,8EACE,kBAAA,CACI,6BAAA,CACI,yBAAA,CACR,0BAAA,CAAA","file":"../../css/admin-importer.min.css","sourcesContent":[".llms-import-file-wrap {\n background: #fafafa;\n border: 1px solid #ccd0d4;\n padding: 10px;\n margin: 20px auto;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.llms-cloud-import-help.button-link {\n color: inherit;\n vertical-align: top;\n text-decoration: none;\n}\n\n.wrap.llms-import-export ul.llms-importable-courses {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n gap: 20px;\n}\n@media only screen and (min-width: 680px) {\n .wrap.llms-import-export ul.llms-importable-courses {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n }\n}\n.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course {\n background-color: #FFF;\n border: 1px solid #dedede;\n border-radius: 12px;\n -webkit-box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);\n box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);\n list-style: none;\n margin: 20px 0;\n overflow: hidden;\n}\n@media only screen and (min-width: 680px) {\n .wrap.llms-import-export ul.llms-importable-courses .llms-importable-course {\n -webkit-box-flex: 0;\n -ms-flex-positive: 0;\n flex-grow: 0;\n -ms-flex-negative: 1;\n flex-shrink: 1;\n -ms-flex-preferred-size: 31%;\n flex-basis: 31%;\n }\n}\n.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course img {\n display: block;\n max-width: 100%;\n}\n.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course h3 {\n color: #1d2327;\n font-size: 20px;\n line-height: 1.5;\n margin: 30px 20px 15px;\n}\n.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course p {\n font-size: 15px;\n line-height: 1.5;\n margin: 0 20px 15px;\n}\n.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course.has-action-button {\n padding-bottom: 10px;\n position: relative;\n}\n.wrap.llms-import-export ul.llms-importable-courses .llms-importable-course.has-action-button .button {\n bottom: 20px;\n right: 20px;\n position: absolute;\n}\n@media only screen and (min-width: 600px) {\n .wrap.llms-import-export ul.llms-importable-courses {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n }\n}\n@media only screen and (min-width: 600px) and (max-width: 767px) {\n .wrap.llms-import-export ul.llms-importable-courses li.llms-importable-course {\n -webkit-box-flex: 1;\n -ms-flex: 1 0 calc(50% - 20px);\n flex: 1 0 calc(50% - 20px);\n max-width: calc(50% - 20px);\n }\n}\n@media only screen and (min-width: 768px) {\n .wrap.llms-import-export ul.llms-importable-courses li.llms-importable-course {\n -webkit-box-flex: 1;\n -ms-flex: 1 0 calc(33% - 20px);\n flex: 1 0 calc(33% - 20px);\n max-width: calc(33% - 20px);\n }\n}\n/*# sourceMappingURL=../maps/css/admin-importer.css.map */\n"],"sourceRoot":"../../css"}
\ No newline at end of file
diff --git a/assets/maps/css/admin-wizard.css.map b/assets/maps/css/admin-wizard.css.map
new file mode 100644
index 0000000000..b23f13a386
--- /dev/null
+++ b/assets/maps/css/admin-wizard.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["admin-wizard.scss","admin-wizard.css","_includes/_vars.scss"],"names":[],"mappings":"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","file":"../../css/admin-wizard.css","sourcesContent":["@import \"_includes/vars\";\n\n$input_padding: 0.3em 0.6em;\n\n#wpadminbar, #adminmenumain, #wpfooter {\n\tdisplay: none;\n}\n\n#llms-setup-wizard {\n\n\tbackground-color: #F0F0F1;\n\theight: 100%;\n\tleft: 0;\n\toverflow: scroll;\n\tposition: fixed;\n\ttop: 0;\n\twidth: 100%;\n\n}\n\n.llms-setup-wrapper {\n\tmargin: 30px auto;\n\tmax-width: 640px;\n}\n\n#llms-logo {\n\ttext-align: center;\n\n\ta {\n\t\tdisplay: inline-block;\n\t}\n\n\timg {\n\t\tmax-width: 200px;\n\t}\n\n}\n\n.llms-setup-content {\n\tbackground-color: #FFF;\n\tbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n\tpadding: 30px;\n\n\th1, h2, h3, h4, h5, h6 {\n\t\tcolor: #3C434A;\n\t}\n\n\ta:not( .llms-button-primary ):not( .llms-button-secondary ) {\n\t\tcolor: $color-brand-blue;\n\t}\n\n\tp, li {\n\t\tcolor: #3C434A;\n\t\tfont-size: 16px;\n\t}\n\n\tp.error {\n\t\tcolor: $color-red;\n\t\tbackground: rgba($color-red,0.1);\n\t\tborder: 1px solid currentColor;\n\t\tpadding: 1em;\n\t\tborder-radius: 4px;\n\t\tmargin: 1.5em 0 0;\n\t\tfont-size: 15px;\n\t\ttext-align: left;\n\t}\n\n\tlabel {\n\t\tfont-weight: 500;\n\t}\n\n\ttable {\n\t\tborder-bottom: 1px solid #f1f1f1;\n\t\tborder-collapse: collapse;\n\t\twidth: 100%;\n\t}\n\n\ttd {\n\t\tborder-top: 1px solid #f1f1f1;\n\n\t\t&:first-child {\n\t\t\tpadding-right: 10px;\n\t\t\twidth: 33%;\n\n\t\t\ta {\n\t\t\t\tfont-size: 16px;\n\t\t\t\tfont-weight: 500;\n\t\t\t}\n\n\t\t\ti {\n\t\t\t\tdisplay: block;\n\t\t\t\tfont-size: 13px;\n\t\t\t\tmargin-top: 10px;\n\n\t\t\t\ta {\n\t\t\t\t\tfont-size: 13px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tsmall {\n\t\tfont-size: small;\n\t}\n\n\t.has-checkbox-field {\n\t\tdisplay: flex;\n\t\tflex-direction: row-reverse;\n\t\tjustify-content: flex-end;\n\t\talign-items: center;\n\t\talign-content: center;\n\t\tgap: 0.5em;\n\t\tfont-weight: normal;\n\t\tfont-size: 16px;\n\n\t\tinput {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n\n\tlabel {\n\t\tfont-size: 16px;\n\t\tdisplay: block;\n\t\tmargin-bottom: 0.5em;\n\t}\n\n\tsmall + label {\n\t\tmargin-top: 1em;\n\t}\n\n\t[type=text] {\n\t\twidth: 100%;\n\t\tclear: both;\n\t\tmargin: 0;\n\t\tpadding: $input_padding;\n\t}\n\n\t.has-date-field {\n\t\tfont-size: 16px;\n\t\tdisplay: flex;\n\t\tmargin-bottom: 0.5em;\n\t\tflex-wrap: wrap;\n\t\tflex-direction: column;\n\t\tgap: 0.5em;\n\t}\n\n\t[type=date] {\n\t\tpadding: $input_padding;\n\t}\n\n\t.is-hidden {\n\t\tdisplay: none;\n\t}\n}\n\n.llms-setup-date-fields {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tgap: 1em;\n\tpadding-top: 2em;\n}\n\n.llms-setup-date-field {\n\tflex: 1;\n}\n\n.llms-setup-actions {\n\tmargin-top: 2em;\n\ttext-align: right;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tgap: 1em;\n\n\t.llms-button-primary {\n\t\tdisplay: inline-block;\n\n\t\t&:after {\n\t\t\tcontent: \"\\f054\";\n\t\t\tfont-family: 'FontAwesome';\n\t\t\tfont-weight: 900;\n\t\t\tpadding-left: 10px;\n\t\t}\n\n\t}\n}\n\n.llms-exit-setup {\n\tcolor: inherit !important;\n\tmargin-right: 10px;\n\n\t+ .llms-button-primary,\n\t+ .llms-button-secondary {\n\t\tmargin-left: auto;\n\t}\n}\n\n.llms-importing-msgs {\n\ta {\n\t\tcolor: $color-brand-blue;\n\t}\n\n\t.llms-importing-msg {\n\t\tdisplay: none;\n\t\tfont-size: 14px;\n\t\tfont-style: italic;\n\t\ttext-align: right;\n\t}\n}\n\nul.llms-importable-courses {\n\tborder-bottom: 1px solid #f1f1f1;\n\tdisplay: block;\n\n\tli.llms-importable-course {\n\t\tborder-top: 1px solid #f1f1f1;\n\t\tdisplay: block;\n\t\tmargin: 0;\n\t\tmax-width: 100%;\n\t\tpadding: 20px 0;\n\n\t\th3 {\n\t\t\tgrid-area: title;\n\t\t\tline-height: 1.5;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\tp {\n\t\t\tgrid-area: description;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\tlabel {\n\t\t\tcolumn-gap: 20px;\n\t\t\tdisplay: grid;\n\t\t\tfont-weight: 400;\n\t\t\tgrid-template-areas:\n\t\t\t\t\"image title switch\"\n\t\t\t\t\"image description switch\";\n\t\t\t;\n\t\t\tgrid-template-columns: 1fr 3fr auto;\n\t\t\trow-gap: 5px;\n\t\t}\n\n\t\timg {\n\t\t\tgrid-area: image;\n\t\t\tmax-width: 160px;\n\t\t}\n\n\t\t.llms-switch {\n\t\t\tgrid-area: switch;\n\n\t\t\tinput.llms-toggle-round:checked + label {\n\t\t\t\tborder-color: $color-brand-blue;\n\t\t\t\tbackground-color: $color-brand-blue;\n\t\t\t}\n\n\t\t}\n\n\t}\n}\n\n.llms-setup-progress {\n\tdisplay: flex;\n\tmargin: 20px 0;\n\n\tli {\n\t\tborder-bottom: 4px solid $color-brand-blue;\n\t\tdisplay: inline-block;\n\t\tfont-size: 14px;\n\t\tpadding-bottom: 10px;\n\t\tposition: relative;\n\t\ttext-align: center;\n\t\tflex: 1;\n\n\t\ta {\n\t\t\tcolor: $color-brand-blue;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t\t&:after {\n\t\t\tbackground: $color-brand-blue;\n\t\t\tbottom: 0;\n\t\t\tcontent: '';\n\t\t\tborder: 4px solid $color-brand-blue;\n\t\t\tborder-radius: 100%;\n\t\t\theight: 4px;\n\t\t\tposition: absolute;\n\t\t\tleft: 50%;\n\t\t\tmargin-left: -6px;\n\t\t\tmargin-bottom: -8px;\n\t\t\twidth: 4px;\n\t\t}\n\n\t\t&.current {\n\t\t\tfont-weight: 700;\n\n\t\t\t&:after {\n\t\t\t\tbackground: #fff;\n\t\t\t}\n\t\t}\n\n\t\t&.current ~ li {\n\t\t\tborder-bottom-color: #ccc;\n\n\t\t\t&:after {\n\t\t\t\tbackground: #ccc;\n\t\t\t\tborder-color: #ccc;\n\t\t\t}\n\n\t\t\ta {\n\t\t\t\tcolor: #bbb;\n\t\t\t}\n\t\t}\n\n\t}\n}\n\n.llms-setup-wrapper {\n\n\t// Calendar icon for custom date fields.\n\t[type=\"text\"].llms-datepicker {\n\t\tbackground-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512' fill='%23ccc'%3E%3Cpath d='M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H64C28.7 64 0 92.7 0 128v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64h-40V24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H152V24zM48 192h352v256c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z'/%3E%3C/svg%3E\");\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: right 8px center;\n\t\tbackground-size: 16px 16px;\n\t\tpadding-right: 40px;\n\t}\n}\n\n@media only screen and ( max-width: 782px ) {\n\tul.llms-importable-courses {\n\t\tli.llms-importable-course {\n\t\t\tlabel {\n\t\t\t\tgrid-template-areas:\n\t\t\t\t\t\"image switch\"\n\t\t\t\t\t\"title title\"\n\t\t\t\t\t\"description description\";\n\t\t\t\tgrid-template-columns: 3fr auto;\n\t\t\t}\n\t\t}\n\t}\n}\n","#wpadminbar, #adminmenumain, #wpfooter {\n display: none;\n}\n\n#llms-setup-wizard {\n background-color: #F0F0F1;\n height: 100%;\n left: 0;\n overflow: scroll;\n position: fixed;\n top: 0;\n width: 100%;\n}\n\n.llms-setup-wrapper {\n margin: 30px auto;\n max-width: 640px;\n}\n\n#llms-logo {\n text-align: center;\n}\n#llms-logo a {\n display: inline-block;\n}\n#llms-logo img {\n max-width: 200px;\n}\n\n.llms-setup-content {\n background-color: #FFF;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n padding: 30px;\n}\n.llms-setup-content h1, .llms-setup-content h2, .llms-setup-content h3, .llms-setup-content h4, .llms-setup-content h5, .llms-setup-content h6 {\n color: #3C434A;\n}\n.llms-setup-content a:not(.llms-button-primary):not(.llms-button-secondary) {\n color: #466dd8;\n}\n.llms-setup-content p, .llms-setup-content li {\n color: #3C434A;\n font-size: 16px;\n}\n.llms-setup-content p.error {\n color: #bb231c;\n background: rgba(187, 35, 28, 0.1);\n border: 1px solid currentColor;\n padding: 1em;\n border-radius: 4px;\n margin: 1.5em 0 0;\n font-size: 15px;\n text-align: left;\n}\n.llms-setup-content label {\n font-weight: 500;\n}\n.llms-setup-content table {\n border-bottom: 1px solid #f1f1f1;\n border-collapse: collapse;\n width: 100%;\n}\n.llms-setup-content td {\n border-top: 1px solid #f1f1f1;\n}\n.llms-setup-content td:first-child {\n padding-right: 10px;\n width: 33%;\n}\n.llms-setup-content td:first-child a {\n font-size: 16px;\n font-weight: 500;\n}\n.llms-setup-content td:first-child i {\n display: block;\n font-size: 13px;\n margin-top: 10px;\n}\n.llms-setup-content td:first-child i a {\n font-size: 13px;\n}\n.llms-setup-content small {\n font-size: small;\n}\n.llms-setup-content .has-checkbox-field {\n display: flex;\n flex-direction: row-reverse;\n justify-content: flex-end;\n align-items: center;\n align-content: center;\n gap: 0.5em;\n font-weight: normal;\n font-size: 16px;\n}\n.llms-setup-content .has-checkbox-field input {\n margin: 0;\n}\n.llms-setup-content label {\n font-size: 16px;\n display: block;\n margin-bottom: 0.5em;\n}\n.llms-setup-content small + label {\n margin-top: 1em;\n}\n.llms-setup-content [type=text] {\n width: 100%;\n clear: both;\n margin: 0;\n padding: 0.3em 0.6em;\n}\n.llms-setup-content .has-date-field {\n font-size: 16px;\n display: flex;\n margin-bottom: 0.5em;\n flex-wrap: wrap;\n flex-direction: column;\n gap: 0.5em;\n}\n.llms-setup-content [type=date] {\n padding: 0.3em 0.6em;\n}\n.llms-setup-content .is-hidden {\n display: none;\n}\n\n.llms-setup-date-fields {\n display: flex;\n justify-content: space-between;\n gap: 1em;\n padding-top: 2em;\n}\n\n.llms-setup-date-field {\n flex: 1;\n}\n\n.llms-setup-actions {\n margin-top: 2em;\n text-align: right;\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 1em;\n}\n.llms-setup-actions .llms-button-primary {\n display: inline-block;\n}\n.llms-setup-actions .llms-button-primary:after {\n content: \"\\f054\";\n font-family: \"FontAwesome\";\n font-weight: 900;\n padding-left: 10px;\n}\n\n.llms-exit-setup {\n color: inherit !important;\n margin-right: 10px;\n}\n.llms-exit-setup + .llms-button-primary,\n.llms-exit-setup + .llms-button-secondary {\n margin-left: auto;\n}\n\n.llms-importing-msgs a {\n color: #466dd8;\n}\n.llms-importing-msgs .llms-importing-msg {\n display: none;\n font-size: 14px;\n font-style: italic;\n text-align: right;\n}\n\nul.llms-importable-courses {\n border-bottom: 1px solid #f1f1f1;\n display: block;\n}\nul.llms-importable-courses li.llms-importable-course {\n border-top: 1px solid #f1f1f1;\n display: block;\n margin: 0;\n max-width: 100%;\n padding: 20px 0;\n}\nul.llms-importable-courses li.llms-importable-course h3 {\n grid-area: title;\n line-height: 1.5;\n margin: 0;\n}\nul.llms-importable-courses li.llms-importable-course p {\n grid-area: description;\n margin: 0;\n}\nul.llms-importable-courses li.llms-importable-course label {\n column-gap: 20px;\n display: grid;\n font-weight: 400;\n grid-template-areas: \"image title switch\" \"image description switch\";\n grid-template-columns: 1fr 3fr auto;\n row-gap: 5px;\n}\nul.llms-importable-courses li.llms-importable-course img {\n grid-area: image;\n max-width: 160px;\n}\nul.llms-importable-courses li.llms-importable-course .llms-switch {\n grid-area: switch;\n}\nul.llms-importable-courses li.llms-importable-course .llms-switch input.llms-toggle-round:checked + label {\n border-color: #466dd8;\n background-color: #466dd8;\n}\n\n.llms-setup-progress {\n display: flex;\n margin: 20px 0;\n}\n.llms-setup-progress li {\n border-bottom: 4px solid #466dd8;\n display: inline-block;\n font-size: 14px;\n padding-bottom: 10px;\n position: relative;\n text-align: center;\n flex: 1;\n}\n.llms-setup-progress li a {\n color: #466dd8;\n text-decoration: none;\n}\n.llms-setup-progress li:after {\n background: #466dd8;\n bottom: 0;\n content: \"\";\n border: 4px solid #466dd8;\n border-radius: 100%;\n height: 4px;\n position: absolute;\n left: 50%;\n margin-left: -6px;\n margin-bottom: -8px;\n width: 4px;\n}\n.llms-setup-progress li.current {\n font-weight: 700;\n}\n.llms-setup-progress li.current:after {\n background: #fff;\n}\n.llms-setup-progress li.current ~ li {\n border-bottom-color: #ccc;\n}\n.llms-setup-progress li.current ~ li:after {\n background: #ccc;\n border-color: #ccc;\n}\n.llms-setup-progress li.current ~ li a {\n color: #bbb;\n}\n\n.llms-setup-wrapper [type=text].llms-datepicker {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512' fill='%23ccc'%3E%3Cpath d='M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H64C28.7 64 0 92.7 0 128v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64h-40V24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H152V24zM48 192h352v256c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n background-size: 16px 16px;\n padding-right: 40px;\n}\n\n@media only screen and (max-width: 782px) {\n ul.llms-importable-courses li.llms-importable-course label {\n grid-template-areas: \"image switch\" \"title title\" \"description description\";\n grid-template-columns: 3fr auto;\n }\n}","// ----- LifterLMS Brand Colors ----- \\\\\n$color-brand-dark-blue: #243c56;\n\n$color-brand-blue: #466dd8;\n$color-brand-blue-dark: darken( $color-brand-blue, 12 ); // #0077e4\n$color-brand-blue-light: lighten( $color-brand-blue, 8 );\n\n$color-brand-orange: #f8954f;\n$color-brand-orange-dark: #f67d28;\n$color-brand-orange-light: lighten( $color-brand-orange, 8 );\n\n$color-brand-aqua: #17bebb;\n\n$color-brand-pink: #ef476f;\n\n\n\n// ----- name our versions of common colors ----- \\\\\n$color-black: #010101;\n$color-green: #4d8d3c;\n$color-blue: $color-brand-blue;\n$color-red: #bb231c;\n$color-white: #fefefe;\n$color-aqua: #35bbaa;\n$color-purple: #845ef7;\n$color-orange: #c05621;\n\n$color-red-hover: darken($color-red,5);\n\n\n// ----- state / action names ----- \\\\\n$color-success: $color-green;\n$color-danger: $color-red;\n\n\n\n\n\n\n\n\n$color-lightgrey:\t\t#ccc;\n$color-grey: \t\t\t#999;\n$color-darkgrey:\t\t#666;\n$color-cinder:\t\t\t#444;\n$color-lightblue:\t\t#33b1cb;\n$color-darkblue:\t\t#0185a3;\n\n\n\n\n\n\n\n\n\n\n\n\n$color-border: #dedede;\n\n$el-box-shadow: 0 1px 2px 0 rgba($color-black,0.4);\n$el-background: #f1f1f1;\n$el-background-hover: #eaeaea;\n\n$break-xsmall: 320px;\n$break-small: 641px;\n$break-medium: 768px;\n$break-large: 1024px;\n\n$radius-small: 6px;\n$radius-medium: 12px;\n"],"sourceRoot":"../../scss"}
\ No newline at end of file
diff --git a/assets/maps/css/admin-wizard.min.css.map b/assets/maps/css/admin-wizard.min.css.map
new file mode 100644
index 0000000000..3f1e3ce36f
--- /dev/null
+++ b/assets/maps/css/admin-wizard.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["admin-wizard.css"],"names":[],"mappings":"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","file":"../../css/admin-wizard.min.css","sourcesContent":["#wpadminbar, #adminmenumain, #wpfooter {\n display: none;\n}\n\n#llms-setup-wizard {\n background-color: #F0F0F1;\n height: 100%;\n left: 0;\n overflow: scroll;\n position: fixed;\n top: 0;\n width: 100%;\n}\n\n.llms-setup-wrapper {\n margin: 30px auto;\n max-width: 640px;\n}\n\n#llms-logo {\n text-align: center;\n}\n#llms-logo a {\n display: inline-block;\n}\n#llms-logo img {\n max-width: 200px;\n}\n\n.llms-setup-content {\n background-color: #FFF;\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n padding: 30px;\n}\n.llms-setup-content h1, .llms-setup-content h2, .llms-setup-content h3, .llms-setup-content h4, .llms-setup-content h5, .llms-setup-content h6 {\n color: #3C434A;\n}\n.llms-setup-content a:not(.llms-button-primary):not(.llms-button-secondary) {\n color: #466dd8;\n}\n.llms-setup-content p, .llms-setup-content li {\n color: #3C434A;\n font-size: 16px;\n}\n.llms-setup-content p.error {\n color: #bb231c;\n background: rgba(187, 35, 28, 0.1);\n border: 1px solid currentColor;\n padding: 1em;\n border-radius: 4px;\n margin: 1.5em 0 0;\n font-size: 15px;\n text-align: left;\n}\n.llms-setup-content label {\n font-weight: 500;\n}\n.llms-setup-content table {\n border-bottom: 1px solid #f1f1f1;\n border-collapse: collapse;\n width: 100%;\n}\n.llms-setup-content td {\n border-top: 1px solid #f1f1f1;\n}\n.llms-setup-content td:first-child {\n padding-right: 10px;\n width: 33%;\n}\n.llms-setup-content td:first-child a {\n font-size: 16px;\n font-weight: 500;\n}\n.llms-setup-content td:first-child i {\n display: block;\n font-size: 13px;\n margin-top: 10px;\n}\n.llms-setup-content td:first-child i a {\n font-size: 13px;\n}\n.llms-setup-content small {\n font-size: small;\n}\n.llms-setup-content .has-checkbox-field {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: reverse;\n -ms-flex-direction: row-reverse;\n flex-direction: row-reverse;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-line-pack: center;\n align-content: center;\n gap: 0.5em;\n font-weight: normal;\n font-size: 16px;\n}\n.llms-setup-content .has-checkbox-field input {\n margin: 0;\n}\n.llms-setup-content label {\n font-size: 16px;\n display: block;\n margin-bottom: 0.5em;\n}\n.llms-setup-content small + label {\n margin-top: 1em;\n}\n.llms-setup-content [type=text] {\n width: 100%;\n clear: both;\n margin: 0;\n padding: 0.3em 0.6em;\n}\n.llms-setup-content .has-date-field {\n font-size: 16px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n margin-bottom: 0.5em;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n gap: 0.5em;\n}\n.llms-setup-content [type=date] {\n padding: 0.3em 0.6em;\n}\n.llms-setup-content .is-hidden {\n display: none;\n}\n\n.llms-setup-date-fields {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n gap: 1em;\n padding-top: 2em;\n}\n\n.llms-setup-date-field {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n\n.llms-setup-actions {\n margin-top: 2em;\n text-align: right;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n gap: 1em;\n}\n.llms-setup-actions .llms-button-primary {\n display: inline-block;\n}\n.llms-setup-actions .llms-button-primary:after {\n content: \"\\f054\";\n font-family: \"FontAwesome\";\n font-weight: 900;\n padding-left: 10px;\n}\n\n.llms-exit-setup {\n color: inherit !important;\n margin-right: 10px;\n}\n.llms-exit-setup + .llms-button-primary,\n.llms-exit-setup + .llms-button-secondary {\n margin-left: auto;\n}\n\n.llms-importing-msgs a {\n color: #466dd8;\n}\n.llms-importing-msgs .llms-importing-msg {\n display: none;\n font-size: 14px;\n font-style: italic;\n text-align: right;\n}\n\nul.llms-importable-courses {\n border-bottom: 1px solid #f1f1f1;\n display: block;\n}\nul.llms-importable-courses li.llms-importable-course {\n border-top: 1px solid #f1f1f1;\n display: block;\n margin: 0;\n max-width: 100%;\n padding: 20px 0;\n}\nul.llms-importable-courses li.llms-importable-course h3 {\n grid-area: title;\n line-height: 1.5;\n margin: 0;\n}\nul.llms-importable-courses li.llms-importable-course p {\n grid-area: description;\n margin: 0;\n}\nul.llms-importable-courses li.llms-importable-course label {\n -webkit-column-gap: 20px;\n -moz-column-gap: 20px;\n column-gap: 20px;\n display: grid;\n font-weight: 400;\n grid-template-areas: \"image title switch\" \"image description switch\";\n grid-template-columns: 1fr 3fr auto;\n row-gap: 5px;\n}\nul.llms-importable-courses li.llms-importable-course img {\n grid-area: image;\n max-width: 160px;\n}\nul.llms-importable-courses li.llms-importable-course .llms-switch {\n grid-area: switch;\n}\nul.llms-importable-courses li.llms-importable-course .llms-switch input.llms-toggle-round:checked + label {\n border-color: #466dd8;\n background-color: #466dd8;\n}\n\n.llms-setup-progress {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n margin: 20px 0;\n}\n.llms-setup-progress li {\n border-bottom: 4px solid #466dd8;\n display: inline-block;\n font-size: 14px;\n padding-bottom: 10px;\n position: relative;\n text-align: center;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n.llms-setup-progress li a {\n color: #466dd8;\n text-decoration: none;\n}\n.llms-setup-progress li:after {\n background: #466dd8;\n bottom: 0;\n content: \"\";\n border: 4px solid #466dd8;\n border-radius: 100%;\n height: 4px;\n position: absolute;\n left: 50%;\n margin-left: -6px;\n margin-bottom: -8px;\n width: 4px;\n}\n.llms-setup-progress li.current {\n font-weight: 700;\n}\n.llms-setup-progress li.current:after {\n background: #fff;\n}\n.llms-setup-progress li.current ~ li {\n border-bottom-color: #ccc;\n}\n.llms-setup-progress li.current ~ li:after {\n background: #ccc;\n border-color: #ccc;\n}\n.llms-setup-progress li.current ~ li a {\n color: #bbb;\n}\n\n.llms-setup-wrapper [type=text].llms-datepicker {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512' fill='%23ccc'%3E%3Cpath d='M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H64C28.7 64 0 92.7 0 128v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64h-40V24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H152V24zM48 192h352v256c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n background-size: 16px 16px;\n padding-right: 40px;\n}\n\n@media only screen and (max-width: 782px) {\n ul.llms-importable-courses li.llms-importable-course label {\n grid-template-areas: \"image switch\" \"title title\" \"description description\";\n grid-template-columns: 3fr auto;\n }\n}\n/*# sourceMappingURL=../maps/css/admin-wizard.css.map */\n"],"sourceRoot":"../../css"}
\ No newline at end of file
diff --git a/assets/maps/css/admin.css.map b/assets/maps/css/admin.css.map
new file mode 100644
index 0000000000..dc7da65332
--- /dev/null
+++ b/assets/maps/css/admin.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["admin.css","_includes/_extends.scss","_includes/_buttons.scss","_includes/_vars.scss","_includes/_vars-brand-colors.scss","_includes/_tooltip.scss","admin/_wp-menu.scss","admin/partials/_grid.scss","admin/modules/_forms.scss","admin/modules/_voucher.scss","admin/modules/_widgets.scss","_includes/_mixins.scss","admin/modules/_icons.scss","admin/modules/_mb-tabs.scss","admin/modules/_top-modal.scss","admin/modules/_merge-codes.scss","admin/breakpoints/_base.scss","admin.scss","admin/breakpoints/_481up.scss","admin/breakpoints/_768up.scss","admin/breakpoints/_1030up.scss","admin/breakpoints/_1240up.scss","admin/_main.scss","admin/_llms-table.scss","admin/modules/_llms-order-note.scss","admin/metaboxes/_llms-metabox.scss","admin/metaboxes/_metabox-instructors.scss","admin/metaboxes/_metabox-orders.scss","admin/metaboxes/_metabox-engagements-type.scss","admin/metaboxes/_metabox-product.scss","admin/metaboxes/_metabox-students.scss","admin/metaboxes/_metabox-field-repeater.scss","admin/metaboxes/_builder-launcher.scss","admin/post-tables/_llms_orders.scss","admin/post-tables/_post-tables.scss","admin/_tabs.scss","admin/_fonts.scss","admin/_reporting.scss","_includes/_quiz-result-question-list.scss","admin/_settings.scss","admin/_dashboard.scss","admin/_dashboard-widget.scss","admin/_resources.scss","admin/_quiz-attempt-review.scss","_includes/_llms-form-field.scss","_includes/vendor/_font-awesome.scss"],"names":[],"mappings":"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;EACE,gBAAA;A7Co8IF;;A6Cl8IA;;EAEE,gBAAA;A7Cq8IF;;A6Cn8IA;EACE,gBAAA;A7Cs8IF;;A6Cp8IA;EACE,gBAAA;A7Cu8IF;;A6Cr8IA;EACE,gBAAA;A7Cw8IF;;A6Ct8IA;EACE,gBAAA;A7Cy8IF;;A6Cv8IA;EACE,gBAAA;A7C08IF;;A6Cx8IA;EACE,gBAAA;A7C28IF;;A6Cz8IA;EACE,gBAAA;A7C48IF;;A6C18IA;EACE,gBAAA;A7C68IF;;A6C38IA;EACE,gBAAA;A7C88IF;;A6C58IA;EACE,gBAAA;A7C+8IF;;A6C78IA;;EAEE,gBAAA;A7Cg9IF;;A6C98IA;EACE,gBAAA;A7Ci9IF;;A6C/8IA;EACE,gBAAA;A7Ck9IF;;A6Ch9IA;EACE,gBAAA;A7Cm9IF;;A6Cj9IA;EACE,gBAAA;A7Co9IF;;A6Cl9IA;EACE,gBAAA;A7Cq9IF;;A6Cn9IA;EACE,gBAAA;A7Cs9IF;;A6Cp9IA;EACE,gBAAA;A7Cu9IF;;A6Cr9IA;EACE,gBAAA;A7Cw9IF;;A6Ct9IA;EACE,gBAAA;A7Cy9IF;;A6Cv9IA;EACE,gBAAA;A7C09IF;;A6Cx9IA;EACE,gBAAA;A7C29IF;;A6Cz9IA;EACE,gBAAA;A7C49IF;;A6C19IA;EACE,gBAAA;A7C69IF;;A6C39IA;EACE,gBAAA;A7C89IF;;A6C59IA;EACE,gBAAA;A7C+9IF;;A6C79IA;EACE,gBAAA;A7Cg+IF;;A6C99IA;EACE,gBAAA;A7Ci+IF;;A6C/9IA;EACE,gBAAA;A7Ck+IF;;A6Ch+IA;EACE,gBAAA;A7Cm+IF;;A6Cj+IA;EACE,gBAAA;A7Co+IF;;A6Cl+IA;EACE,gBAAA;A7Cq+IF;;A6Cn+IA;EACE,gBAAA;A7Cs+IF;;A6Cp+IA;EACE,gBAAA;A7Cu+IF;;A6Cr+IA;EACE,gBAAA;A7Cw+IF;;A6Ct+IA;EACE,gBAAA;A7Cy+IF;;A6Cv+IA;EACE,gBAAA;A7C0+IF;;A6Cx+IA;;EAEE,gBAAA;A7C2+IF;;A6Cz+IA;EACE,gBAAA;A7C4+IF;;A6C1+IA;EACE,gBAAA;A7C6+IF;;A6C3+IA;;;EAGE,gBAAA;A7C8+IF;;A6C5+IA;EACE,gBAAA;A7C++IF;;A6C7+IA;EACE,gBAAA;A7Cg/IF;;A6C9+IA;EACE,gBAAA;A7Ci/IF;;A6C/+IA;EACE,gBAAA;A7Ck/IF;;A6Ch/IA;;EAEE,gBAAA;A7Cm/IF;;A6Cj/IA;EACE,gBAAA;A7Co/IF;;A6Cl/IA;EACE,gBAAA;A7Cq/IF;;A6Cn/IA;EACE,gBAAA;A7Cs/IF;;A6Cp/IA;EACE,gBAAA;A7Cu/IF;;A6Cr/IA;EACE,gBAAA;A7Cw/IF;;A6Ct/IA;EACE,gBAAA;A7Cy/IF;;A6Cv/IA;EACE,gBAAA;A7C0/IF;;A6Cx/IA;EACE,gBAAA;A7C2/IF;;A6Cz/IA;EACE,gBAAA;A7C4/IF;;A6C1/IA;EACE,gBAAA;A7C6/IF;;A6C3/IA;EACE,gBAAA;A7C8/IF;;A6C5/IA;EACE,gBAAA;A7C+/IF;;A6C7/IA;EACE,gBAAA;A7CggJF;;A6C9/IA;EACE,gBAAA;A7CigJF;;A6C//IA;EACE,gBAAA;A7CkgJF;;A6ChgJA;EACE,gBAAA;A7CmgJF;;A6CjgJA;EACE,gBAAA;A7CogJF;;A6ClgJA;EACE,gBAAA;A7CqgJF;;A6CngJA;EACE,gBAAA;A7CsgJF;;A6CpgJA;EACE,gBAAA;A7CugJF;;A6CrgJA;EACE,gBAAA;A7CwgJF;;A6CtgJA;EACE,gBAAA;A7CygJF;;A6CvgJA;EACE,gBAAA;A7C0gJF;;A6CxgJA;EACE,gBAAA;A7C2gJF;;A6CzgJA;EACE,gBAAA;A7C4gJF;;A6C1gJA;EACE,gBAAA;A7C6gJF;;A6C3gJA;EACE,gBAAA;A7C8gJF;;A6C5gJA;EACE,gBAAA;A7C+gJF;;A6C7gJA;EACE,gBAAA;A7CghJF;;A6C9gJA;;EAEE,gBAAA;A7CihJF;;A6C/gJA;EACE,gBAAA;A7CkhJF;;A6ChhJA;EACE,gBAAA;A7CmhJF;;A6CjhJA;EACE,gBAAA;A7CohJF;;A6ClhJA;EACE,gBAAA;A7CqhJF;;A6CnhJA;EACE,gBAAA;A7CshJF;;A6CphJA;EACE,gBAAA;A7CuhJF;;A6CrhJA;EACE,gBAAA;A7CwhJF;;A6CthJA;EACE,gBAAA;A7CyhJF;;A6CvhJA;EACE,gBAAA;A7C0hJF;;A6CxhJA;EACE,gBAAA;A7C2hJF;;A6CzhJA;EACE,gBAAA;A7C4hJF;;A6C1hJA;;EAEE,gBAAA;A7C6hJF;;A6C3hJA;EACE,gBAAA;A7C8hJF;;A6C5hJA;EACE,gBAAA;A7C+hJF;;A6C7hJA;EACE,gBAAA;A7CgiJF;;A6C9hJA;EACE,gBAAA;A7CiiJF;;A6C/hJA;EACE,gBAAA;A7CkiJF;;A6ChiJA;EACE,gBAAA;A7CmiJF;;A6CjiJA;EACE,gBAAA;A7CoiJF;;A6CliJA;EACE,gBAAA;A7CqiJF;;A6CniJA;EACE,gBAAA;A7CsiJF;;A6CpiJA;EACE,gBAAA;A7CuiJF;;A6CriJA;EACE,gBAAA;A7CwiJF;;A6CtiJA;EACE,gBAAA;A7CyiJF;;A6CviJA;EACE,gBAAA;A7C0iJF;;A6CxiJA;;EAEE,gBAAA;A7C2iJF;;A6CziJA;EACE,gBAAA;A7C4iJF;;A6C1iJA;EACE,gBAAA;A7C6iJF;;A6C3iJA;EACE,gBAAA;A7C8iJF;;A6C5iJA;EACE,gBAAA;A7C+iJF;;A6C7iJA;;EAEE,gBAAA;A7CgjJF;;A6C9iJA;EACE,gBAAA;A7CijJF;;A6C/iJA;EACE,gBAAA;A7CkjJF;;A6ChjJA;EACE,gBAAA;A7CmjJF;;A6CjjJA;EACE,gBAAA;A7CojJF;;A6CljJA;EACE,gBAAA;A7CqjJF;;A6CnjJA;EACE,gBAAA;A7CsjJF;;A6CpjJA;EACE,gBAAA;A7CujJF;;A6CrjJA;EACE,gBAAA;A7CwjJF;;A6CtjJA;EACE,gBAAA;A7CyjJF;;A6CvjJA;EACE,gBAAA;A7C0jJF;;A6CxjJA;EACE,gBAAA;A7C2jJF;;A6CzjJA;EACE,gBAAA;A7C4jJF;;A6C1jJA;EACE,gBAAA;A7C6jJF;;A6C3jJA;EACE,gBAAA;A7C8jJF;;A6C5jJA;EACE,gBAAA;A7C+jJF;;A6C7jJA;EACE,gBAAA;A7CgkJF;;A6C9jJA;EACE,gBAAA;A7CikJF;;A6C/jJA;EACE,gBAAA;A7CkkJF;;A6ChkJA;EACE,gBAAA;A7CmkJF;;A6CjkJA;;EAEE,gBAAA;A7CokJF;;A6ClkJA;EACE,gBAAA;A7CqkJF;;A6CnkJA;EACE,gBAAA;A7CskJF;;A6CpkJA;EACE,gBAAA;A7CukJF;;A6CrkJA;;EAEE,gBAAA;A7CwkJF;;A6CtkJA;EACE,gBAAA;A7CykJF;;A6CvkJA;EACE,gBAAA;A7C0kJF;;A6CxkJA;EACE,gBAAA;A7C2kJF;;A6CzkJA;EACE,gBAAA;A7C4kJF;;A6C1kJA;EACE,gBAAA;A7C6kJF;;A6C3kJA;EACE,gBAAA;A7C8kJF;;A6C5kJA;EACE,gBAAA;A7C+kJF;;A6C7kJA;EACE,gBAAA;A7CglJF;;A6C9kJA;EACE,gBAAA;A7CilJF;;A6C/kJA;EACE,gBAAA;A7CklJF;;A6ChlJA;EACE,gBAAA;A7CmlJF;;A6CjlJA;EACE,gBAAA;A7ColJF;;A6CllJA;EACE,gBAAA;A7CqlJF;;A6CnlJA;EACE,gBAAA;A7CslJF;;A6CplJA;EACE,gBAAA;A7CulJF;;A6CrlJA;EACE,gBAAA;A7CwlJF;;A6CtlJA;EACE,gBAAA;A7CylJF;;A6CvlJA;EACE,gBAAA;A7C0lJF;;A6CxlJA;;EAEE,gBAAA;A7C2lJF;;A6CzlJA;;EAEE,gBAAA;A7C4lJF;;A6C1lJA;EACE,gBAAA;A7C6lJF;;A6C3lJA;EACE,gBAAA;A7C8lJF;;A6C5lJA;;EAEE,gBAAA;A7C+lJF;;A6C7lJA;;EAEE,gBAAA;A7CgmJF;;A6C9lJA;EACE,gBAAA;A7CimJF;;A6C/lJA;;EAEE,gBAAA;A7CkmJF;;A6ChmJA;EACE,gBAAA;A7CmmJF;;A6CjmJA;;;EAGE,gBAAA;A7ComJF;;A6ClmJA;EACE,gBAAA;A7CqmJF;;A6CnmJA;EACE,gBAAA;A7CsmJF;;A6CpmJA;EACE,gBAAA;A7CumJF;;A6CrmJA;EACE,gBAAA;A7CwmJF;;A6CtmJA;EACE,gBAAA;A7CymJF;;A6CvmJA;EACE,gBAAA;A7C0mJF;;A6CxmJA;EACE,gBAAA;A7C2mJF;;A6CzmJA;EACE,gBAAA;A7C4mJF;;A6C1mJA;EACE,gBAAA;A7C6mJF;;A6C3mJA;EACE,gBAAA;A7C8mJF;;A6C5mJA;EACE,gBAAA;A7C+mJF;;A6C7mJA;EACE,gBAAA;A7CgnJF;;A6C9mJA;EACE,gBAAA;A7CinJF;;A6C/mJA;EACE,gBAAA;A7CknJF;;A6ChnJA;EACE,gBAAA;A7CmnJF;;A6CjnJA;EACE,gBAAA;A7ConJF;;A6ClnJA;EACE,gBAAA;A7CqnJF;;A6CnnJA;;EAEE,gBAAA;A7CsnJF;;A6CpnJA;;EAEE,gBAAA;A7CunJF;;A6CrnJA;;EAEE,gBAAA;A7CwnJF;;A6CtnJA;EACE,gBAAA;A7CynJF;;A6CvnJA;EACE,gBAAA;A7C0nJF;;A6CxnJA;;EAEE,gBAAA;A7C2nJF;;A6CznJA;;EAEE,gBAAA;A7C4nJF;;A6C1nJA;;EAEE,gBAAA;A7C6nJF;;A6C3nJA;EACE,gBAAA;A7C8nJF;;A6C5nJA;EACE,gBAAA;A7C+nJF;;A6C7nJA;;EAEE,gBAAA;A7CgoJF;;A6C9nJA;EACE,gBAAA;A7CioJF;;A6C/nJA;EACE,gBAAA;A7CkoJF;;A6ChoJA;;EAEE,gBAAA;A7CmoJF;;A6CjoJA;EACE,gBAAA;A7CooJF;;A6CloJA;EACE,gBAAA;A7CqoJF;;A6CnoJA;EACE,gBAAA;A7CsoJF;;A6CpoJA;EACE,gBAAA;A7CuoJF;;A6CroJA;EACE,gBAAA;A7CwoJF;;A6CtoJA;EACE,gBAAA;A7CyoJF;;A6CvoJA;EACE,gBAAA;A7C0oJF;;A6CxoJA;EACE,gBAAA;A7C2oJF;;A6CzoJA;EACE,gBAAA;A7C4oJF;;A6C1oJA;EACE,gBAAA;A7C6oJF;;A6C3oJA;EACE,gBAAA;A7C8oJF;;A6C5oJA;EACE,gBAAA;A7C+oJF;;A6C7oJA;EACE,gBAAA;A7CgpJF;;A6C9oJA;EACE,gBAAA;A7CipJF;;A6C/oJA;EACE,gBAAA;A7CkpJF;;A6ChpJA;EACE,gBAAA;A7CmpJF;;A6CjpJA;EACE,gBAAA;A7CopJF;;A6ClpJA;EACE,gBAAA;A7CqpJF;;A6CnpJA;EACE,gBAAA;A7CspJF;;A6CppJA;EACE,gBAAA;A7CupJF;;A6CrpJA;EACE,gBAAA;A7CwpJF;;A6CtpJA;EACE,gBAAA;A7CypJF;;A6CvpJA;EACE,gBAAA;A7C0pJF;;A6CxpJA;EACE,gBAAA;A7C2pJF;;A6CzpJA;EACE,gBAAA;A7C4pJF;;A6C1pJA;EACE,gBAAA;A7C6pJF;;A6C3pJA;EACE,gBAAA;A7C8pJF;;A6C5pJA;EACE,gBAAA;A7C+pJF;;A6C7pJA;EACE,gBAAA;A7CgqJF;;A6C9pJA;EACE,gBAAA;A7CiqJF;;A6C/pJA;;EAEE,gBAAA;A7CkqJF;;A6ChqJA;EACE,gBAAA;A7CmqJF;;A6CjqJA;EACE,gBAAA;A7CoqJF;;A6ClqJA;EACE,gBAAA;A7CqqJF;;A6CnqJA;EACE,gBAAA;A7CsqJF;;A6CpqJA;EACE,gBAAA;A7CuqJF;;A6CrqJA;;EAEE,gBAAA;A7CwqJF;;A6CtqJA;EACE,gBAAA;A7CyqJF;;A6CvqJA;EACE,gBAAA;A7C0qJF;;A6CxqJA;EACE,gBAAA;A7C2qJF;;A6CzqJA;EACE,gBAAA;A7C4qJF;;A6C1qJA;EACE,gBAAA;A7C6qJF;;A6C3qJA;EACE,gBAAA;A7C8qJF;;A6C5qJA;EACE,gBAAA;A7C+qJF;;A6C7qJA;EACE,gBAAA;A7CgrJF;;A6C9qJA;EACE,gBAAA;A7CirJF;;A6C/qJA;EACE,gBAAA;A7CkrJF;;A6ChrJA;EACE,gBAAA;A7CmrJF;;A6CjrJA;EACE,gBAAA;A7CorJF;;A6ClrJA;;EAEE,gBAAA;A7CqrJF;;A6CnrJA;;;EAGE,gBAAA;A7CsrJF;;A6CprJA;EACE,gBAAA;A7CurJF;;A6CrrJA;EACE,gBAAA;A7CwrJF;;A6CtrJA;EACE,gBAAA;A7CyrJF;;A6CvrJA;;EAEE,gBAAA;A7C0rJF;;A6CxrJA;EACE,gBAAA;A7C2rJF;;A6CzrJA;EACE,gBAAA;A7C4rJF;;A6C1rJA;EACE,gBAAA;A7C6rJF;;A6C3rJA;EACE,gBAAA;A7C8rJF;;A6C5rJA;EACE,gBAAA;A7C+rJF;;A6C7rJA;EACE,gBAAA;A7CgsJF;;A6C9rJA;EACE,gBAAA;A7CisJF;;A6C/rJA;EACE,gBAAA;A7CksJF;;A6ChsJA;EACE,gBAAA;A7CmsJF;;A6CjsJA;EACE,gBAAA;A7CosJF;;A6ClsJA;EACE,gBAAA;A7CqsJF;;A6CnsJA;EACE,gBAAA;A7CssJF;;A6CpsJA;EACE,gBAAA;A7CusJF;;A6CrsJA;EACE,gBAAA;A7CwsJF;;A6CtsJA;EACE,gBAAA;A7CysJF;;A6CvsJA;EACE,gBAAA;A7C0sJF;;A6CxsJA;EACE,gBAAA;A7C2sJF;;A6CzsJA;EACE,gBAAA;A7C4sJF;;A6C1sJA;EACE,gBAAA;A7C6sJF;;A6C3sJA;EACE,gBAAA;A7C8sJF;;A6C5sJA;EACE,gBAAA;A7C+sJF;;A6C7sJA;EACE,gBAAA;A7CgtJF;;A6C9sJA;EACE,gBAAA;A7CitJF;;A6C/sJA;EACE,gBAAA;A7CktJF;;A6ChtJA;EACE,gBAAA;A7CmtJF;;A6CjtJA;EACE,gBAAA;A7CotJF;;A6CltJA;EACE,gBAAA;A7CqtJF;;A6CntJA;EACE,gBAAA;A7CstJF;;A6CptJA;EACE,gBAAA;A7CutJF;;A6CrtJA;EACE,gBAAA;A7CwtJF;;A6CttJA;EACE,gBAAA;A7CytJF;;A6CvtJA;EACE,gBAAA;A7C0tJF;;A6CxtJA;EACE,gBAAA;A7C2tJF;;A6CztJA;EACE,gBAAA;A7C4tJF;;A6C1tJA;EACE,gBAAA;A7C6tJF;;A6C3tJA;EACE,gBAAA;A7C8tJF;;A6C5tJA;EACE,gBAAA;A7C+tJF;;A6C7tJA;;EAEE,gBAAA;A7CguJF;;A6C9tJA;;EAEE,gBAAA;A7CiuJF;;A6C/tJA;;EAEE,gBAAA;A7CkuJF;;A6ChuJA;;EAEE,gBAAA;A7CmuJF;;A6CjuJA;EACE,gBAAA;A7CouJF;;A6CluJA;;EAEE,gBAAA;A7CquJF;;A6CnuJA;;EAEE,gBAAA;A7CsuJF;;A6CpuJA;;;;EAIE,gBAAA;A7CuuJF;;A6CruJA;;;EAGE,gBAAA;A7CwuJF;;A6CtuJA;;EAEE,gBAAA;A7CyuJF;;A6CvuJA;;EAEE,gBAAA;A7C0uJF;;A6CxuJA;EACE,gBAAA;A7C2uJF;;A6CzuJA;EACE,gBAAA;A7C4uJF;;A6C1uJA;EACE,gBAAA;A7C6uJF;;A6C3uJA;EACE,gBAAA;A7C8uJF;;A6C5uJA;EACE,gBAAA;A7C+uJF;;A6C7uJA;EACE,gBAAA;A7CgvJF;;A6C9uJA;EACE,gBAAA;A7CivJF;;A6C/uJA;EACE,gBAAA;A7CkvJF;;A6ChvJA;EACE,gBAAA;A7CmvJF;;A6CjvJA;EACE,gBAAA;A7CovJF;;A6ClvJA;EACE,gBAAA;A7CqvJF;;A6CnvJA;EACE,gBAAA;A7CsvJF;;A6CpvJA;EACE,gBAAA;A7CuvJF;;A6CrvJA;EACE,gBAAA;A7CwvJF;;A6CtvJA;EACE,gBAAA;A7CyvJF;;A6CvvJA;EACE,gBAAA;A7C0vJF;;A6CxvJA;EACE,gBAAA;A7C2vJF;;A6CzvJA;EACE,gBAAA;A7C4vJF;;A6C1vJA;EACE,gBAAA;A7C6vJF;;A6C3vJA;EACE,gBAAA;A7C8vJF;;A6C5vJA;EACE,gBAAA;A7C+vJF;;A6C7vJA;EACE,gBAAA;A7CgwJF;;A6C9vJA;EACE,gBAAA;A7CiwJF;;A6C/vJA;EACE,gBAAA;A7CkwJF;;A6ChwJA;EACE,gBAAA;A7CmwJF;;A6CjwJA;EACE,gBAAA;A7CowJF;;A6ClwJA;EACE,gBAAA;A7CqwJF;;A6CnwJA;EACE,gBAAA;A7CswJF;;A6CpwJA;EACE,gBAAA;A7CuwJF;;A6CrwJA;EACE,gBAAA;A7CwwJF;;A6CtwJA;EACE,gBAAA;A7CywJF;;A6CvwJA;EACE,gBAAA;A7C0wJF;;A6CxwJA;EACE,gBAAA;A7C2wJF;;A6CzwJA;EACE,gBAAA;A7C4wJF;;A6C1wJA;EACE,gBAAA;A7C6wJF;;A6C3wJA;EACE,gBAAA;A7C8wJF;;A6C5wJA;EACE,gBAAA;A7C+wJF;;A6C7wJA;EACE,gBAAA;A7CgxJF;;A6C9wJA;;EAEE,gBAAA;A7CixJF;;A6C/wJA;EACE,gBAAA;A7CkxJF;;A6ChxJA;EACE,gBAAA;A7CmxJF;;A6CjxJA;EACE,gBAAA;A7CoxJF;;A6ClxJA;EACE,gBAAA;A7CqxJF;;A6CnxJA;EACE,gBAAA;A7CsxJF;;A6CpxJA;EACE,gBAAA;A7CuxJF;;A6CrxJA;EACE,gBAAA;A7CwxJF;;A6CtxJA;EACE,gBAAA;A7CyxJF;;A6CvxJA;EACE,gBAAA;A7C0xJF;;A6CxxJA;EACE,gBAAA;A7C2xJF;;A6CzxJA;EACE,gBAAA;A7C4xJF;;A6C1xJA;;EAEE,gBAAA;A7C6xJF;;A6C3xJA;EACE,gBAAA;A7C8xJF;;A6C5xJA;EACE,gBAAA;A7C+xJF;;A6C7xJA;EACE,gBAAA;A7CgyJF;;A6C9xJA;;EAEE,gBAAA;A7CiyJF;;A6C/xJA;EACE,gBAAA;A7CkyJF;;A6ChyJA;EACE,gBAAA;A7CmyJF;;A6CjyJA;EACE,gBAAA;A7CoyJF;;A6ClyJA;EACE,gBAAA;A7CqyJF;;A6CnyJA;EACE,gBAAA;A7CsyJF;;A6CpyJA;EACE,gBAAA;A7CuyJF;;A6CryJA;;;EAGE,gBAAA;A7CwyJF;;A6CtyJA;;EAEE,gBAAA;A7CyyJF;;A6CvyJA;EACE,gBAAA;A7C0yJF;;A6CxyJA;EACE,gBAAA;A7C2yJF;;A6CzyJA;EACE,gBAAA;A7C4yJF;;A6C1yJA;EACE,gBAAA;A7C6yJF;;A6C3yJA;EACE,gBAAA;A7C8yJF;;A6C5yJA;EACE,gBAAA;A7C+yJF;;A6C7yJA;EACE,gBAAA;A7CgzJF;;A6C9yJA;EACE,gBAAA;A7CizJF;;A6C/yJA;EACE,gBAAA;A7CkzJF;;A6ChzJA;EACE,gBAAA;A7CmzJF;;A6CjzJA;EACE,gBAAA;A7CozJF;;A6ClzJA;EACE,gBAAA;A7CqzJF;;A6CnzJA;EACE,gBAAA;A7CszJF;;A6CpzJA;EACE,gBAAA;A7CuzJF;;A6CrzJA;EACE,gBAAA;A7CwzJF;;A6CtzJA;EACE,gBAAA;A7CyzJF;;A6CvzJA;EACE,gBAAA;A7C0zJF;;A6CxzJA;EACE,gBAAA;A7C2zJF;;A6CzzJA;EACE,gBAAA;A7C4zJF;;A6C1zJA;EACE,gBAAA;A7C6zJF;;A6C3zJA;EACE,gBAAA;A7C8zJF;;A6C5zJA;EACE,gBAAA;A7C+zJF;;A6C7zJA;EACE,gBAAA;A7Cg0JF;;A6C9zJA;EACE,gBAAA;A7Ci0JF;;A6C/zJA;EACE,gBAAA;A7Ck0JF;;A6Ch0JA;;EAEE,gBAAA;A7Cm0JF;;A6Cj0JA;;EAEE,gBAAA;A7Co0JF;;A6Cl0JA;EACE,gBAAA;A7Cq0JF;;A6Cn0JA;EACE,gBAAA;A7Cs0JF;;A6Cp0JA;EACE,gBAAA;A7Cu0JF;;A6Cr0JA;EACE,gBAAA;A7Cw0JF;;A6Ct0JA;EACE,gBAAA;A7Cy0JF;;A6Cv0JA;EACE,gBAAA;A7C00JF;;A6Cx0JA;EACE,gBAAA;A7C20JF;;A6Cz0JA;EACE,gBAAA;A7C40JF;;A6C10JA;EACE,gBAAA;A7C60JF;;A6C30JA;;;EAGE,gBAAA;A7C80JF;;A6C50JA;;EAEE,gBAAA;A7C+0JF;;A6C70JA;;EAEE,gBAAA;A7Cg1JF;;A6C90JA;;EAEE,gBAAA;A7Ci1JF;;A6C/0JA;EACE,gBAAA;A7Ck1JF;;A6Ch1JA;EACE,gBAAA;A7Cm1JF;;A6Cj1JA;EACE,gBAAA;A7Co1JF;;A6Cl1JA;EACE,gBAAA;A7Cq1JF;;A6Cn1JA;;;;;EAKE,gBAAA;A7Cs1JF;;A6Cp1JA;EACE,gBAAA;A7Cu1JF;;A6Cr1JA;;;EAGE,gBAAA;A7Cw1JF;;A6Ct1JA;;EAEE,gBAAA;A7Cy1JF;;A6Cv1JA;EACE,gBAAA;A7C01JF;;A6Cx1JA;EACE,gBAAA;A7C21JF;;A6Cz1JA;;;EAGE,gBAAA;A7C41JF;;A6C11JA;EACE,gBAAA;A7C61JF;;A6C31JA;EACE,gBAAA;A7C81JF;;A6C51JA;;EAEE,gBAAA;A7C+1JF;;A6C71JA;;EAEE,gBAAA;A7Cg2JF;;A6C91JA;;EAEE,gBAAA;A7Ci2JF;;A6C/1JA;EACE,gBAAA;A7Ck2JF;;A6Ch2JA;EACE,gBAAA;A7Cm2JF;;A6Cj2JA;EACE,gBAAA;A7Co2JF;;A6Cl2JA;EACE,gBAAA;A7Cq2JF;;A6Cn2JA;EACE,gBAAA;A7Cs2JF;;A6Cp2JA;EACE,gBAAA;A7Cu2JF;;A6Cr2JA;EACE,gBAAA;A7Cw2JF;;A6Ct2JA;EACE,gBAAA;A7Cy2JF;;A6Cv2JA;;EAEE,gBAAA;A7C02JF;;A6Cx2JA;EACE,gBAAA;A7C22JF;;A6Cz2JA;EACE,gBAAA;A7C42JF;;A6C12JA;EACE,gBAAA;A7C62JF;;A6C32JA;EACE,gBAAA;A7C82JF;;A6C52JA;EACE,gBAAA;A7C+2JF;;A6C72JA;EACE,gBAAA;A7Cg3JF;;A6C92JA;EACE,gBAAA;A7Ci3JF;;A6C/2JA;EACE,gBAAA;A7Ck3JF;;A6Ch3JA;EACE,gBAAA;A7Cm3JF;;A6Cj3JA;EACE,gBAAA;A7Co3JF;;A6Cl3JA;EACE,gBAAA;A7Cq3JF;;A6Cn3JA;EACE,gBAAA;A7Cs3JF;;A6Cp3JA;EACE,gBAAA;A7Cu3JF;;A6Cr3JA;EACE,gBAAA;A7Cw3JF;;A6Ct3JA;EACE,gBAAA;A7Cy3JF;;A6Cv3JA;EACE,gBAAA;A7C03JF;;A6Cx3JA;EACE,gBAAA;A7C23JF;;A6Cz3JA;EACE,gBAAA;A7C43JF;;A6C13JA;EACE,gBAAA;A7C63JF;;A6C33JA;EACE,gBAAA;A7C83JF;;A6C53JA;EACE,gBAAA;A7C+3JF;;A6C73JA;EACE,gBAAA;A7Cg4JF;;A6C93JA;EACE,gBAAA;A7Ci4JF;;A6C/3JA;EACE,gBAAA;A7Ck4JF;;A6Ch4JA;EACE,gBAAA;A7Cm4JF;;A6Cj4JA;EACE,gBAAA;A7Co4JF;;A6Cl4JA;EACE,gBAAA;A7Cq4JF;;A6Cn4JA;EACE,gBAAA;A7Cs4JF;;A6Cp4JA;EACE,gBAAA;A7Cu4JF;;A6Cr4JA;EACE,gBAAA;A7Cw4JF;;A6Ct4JA;EACE,gBAAA;A7Cy4JF;;A6Cv4JA;EACE,gBAAA;A7C04JF;;A6Cx4JA;EACE,gBAAA;A7C24JF;;A6Cz4JA;EACE,gBAAA;A7C44JF;;A6C14JA;EACE,gBAAA;A7C64JF;;A6C34JA;EACE,gBAAA;A7C84JF;;A6C54JA;EACE,gBAAA;A7C+4JF;;A6C74JA;;;EAGE,gBAAA;A7Cg5JF;;A6C94JA;EACE,gBAAA;A7Ci5JF;;A6C/4JA;EACE,gBAAA;A7Ck5JF;;A6Ch5JA;EACE,gBAAA;A7Cm5JF;;A6Cj5JA;EACE,gBAAA;A7Co5JF;;A6Cl5JA;EACE,gBAAA;A7Cq5JF;;A6Cn5JA;EACE,gBAAA;A7Cs5JF;;A6Cp5JA;EACE,gBAAA;A7Cu5JF;;A6Cr5JA;EACE,gBAAA;A7Cw5JF;;A6Ct5JA;EACE,gBAAA;A7Cy5JF;;A6Cv5JA;EACE,gBAAA;A7C05JF;;A6Cx5JA;EACE,gBAAA;A7C25JF;;A6Cz5JA;EACE,gBAAA;A7C45JF;;A6C15JA;EACE,gBAAA;A7C65JF;;A6C35JA;EACE,gBAAA;A7C85JF;;A6C55JA;EACE,gBAAA;A7C+5JF;;A6C75JA;EACE,gBAAA;A7Cg6JF;;A6C95JA;EACE,gBAAA;A7Ci6JF;;A6C/5JA;EACE,gBAAA;A7Ck6JF;;A6Ch6JA;EACE,gBAAA;A7Cm6JF;;A6Cj6JA;EACE,gBAAA;A7Co6JF;;A6Cl6JA;EACE,gBAAA;A7Cq6JF;;A6Cn6JA;;EAEE,gBAAA;A7Cs6JF;;A6Cp6JA;EACE,gBAAA;A7Cu6JF;;A6Cr6JA;EACE,gBAAA;A7Cw6JF;;A6Ct6JA;EACE,gBAAA;A7Cy6JF;;A6Cv6JA;EACE,gBAAA;A7C06JF;;A6Cx6JA;EACE,gBAAA;A7C26JF;;A6Cz6JA;EACE,gBAAA;A7C46JF;;A6C16JA;EACE,gBAAA;A7C66JF;;A6C36JA;EACE,gBAAA;A7C86JF;;A6C56JA;EACE,gBAAA;A7C+6JF;;A6C76JA;EACE,gBAAA;A7Cg7JF;;A6C96JA;EACE,gBAAA;A7Ci7JF;;A6C/6JA;EACE,gBAAA;A7Ck7JF;;A6Ch7JA;EACE,gBAAA;A7Cm7JF;;A6Cj7JA;EACE,gBAAA;A7Co7JF;;A6Cl7JA;EACE,gBAAA;A7Cq7JF;;A6Cn7JA;;EAEE,gBAAA;A7Cs7JF;;A6Cp7JA;EACE,gBAAA;A7Cu7JF;;A6Cr7JA;EACE,gBAAA;A7Cw7JF;;A6Ct7JA;EACE,gBAAA;A7Cy7JF;;A6Cv7JA;EACE,gBAAA;A7C07JF;;A6Cx7JA;;EAEE,gBAAA;A7C27JF;;A6Cz7JA;EACE,gBAAA;A7C47JF;;A6C17JA;EACE,gBAAA;A7C67JF;;A6C37JA;EACE,gBAAA;A7C87JF;;A6C57JA;;;EAGE,gBAAA;A7C+7JF;;A6C77JA;;EAEE,gBAAA;A7Cg8JF;;A6C97JA;;EAEE,gBAAA;A7Ci8JF;;A6C/7JA;;EAEE,gBAAA;A7Ck8JF;;A6Ch8JA;;EAEE,gBAAA;A7Cm8JF;;A6Cj8JA;EACE,gBAAA;A7Co8JF;;A6Cl8JA;EACE,gBAAA;A7Cq8JF;;A6Cn8JA;EACE,gBAAA;A7Cs8JF;;A6Cp8JA;EACE,gBAAA;A7Cu8JF;;A6Cr8JA;EACE,gBAAA;A7Cw8JF;;A6Ct8JA;EACE,gBAAA;A7Cy8JF;;A6Cv8JA;EACE,gBAAA;A7C08JF;;A6Cx8JA;EACE,gBAAA;A7C28JF;;A6Cz8JA;EACE,gBAAA;A7C48JF;;A6C18JA;EACE,gBAAA;A7C68JF;;A6C38JA;EACE,gBAAA;A7C88JF;;A6C58JA;;EAEE,gBAAA;A7C+8JF;;A6C78JA;;EAEE,gBAAA;A7Cg9JF;;A6C98JA;;EAEE,gBAAA;A7Ci9JF;;A6C/8JA;EACE,gBAAA;A7Ck9JF;;A6Ch9JA;;EAEE,gBAAA;A7Cm9JF;;A6Cj9JA;;EAEE,gBAAA;A7Co9JF;;A6Cl9JA;EACE,gBAAA;A7Cq9JF;;A6Cn9JA;EACE,gBAAA;A7Cs9JF;;A6Cp9JA;EACE,gBAAA;A7Cu9JF;;A6Cr9JA;EACE,gBAAA;A7Cw9JF;;A6Ct9JA;EACE,gBAAA;A7Cy9JF;;A6Cv9JA;EACE,gBAAA;A7C09JF;;A6Cx9JA;EACE,gBAAA;A7C29JF;;A6Cz9JA;EACE,gBAAA;A7C49JF;;A6C19JA;EACE,gBAAA;A7C69JF;;A6C39JA;EACE,gBAAA;A7C89JF;;A6C59JA;EACE,gBAAA;A7C+9JF;;A6C79JA;EACE,gBAAA;A7Cg+JF;;A6C99JA;EACE,gBAAA;A7Ci+JF;;A6C/9JA;EACE,gBAAA;A7Ck+JF;;A6Ch+JA;EACE,gBAAA;A7Cm+JF;;A6Cj+JA;EACE,gBAAA;A7Co+JF;;A6Cl+JA;EACE,gBAAA;A7Cq+JF;;A6Cn+JA;EACE,gBAAA;A7Cs+JF;;A6Cp+JA;EACE,gBAAA;A7Cu+JF;;A6Cr+JA;EACE,gBAAA;A7Cw+JF;;A6Ct+JA;;EAEE,gBAAA;A7Cy+JF;;A6Cv+JA;EACE,gBAAA;A7C0+JF;;A6Cx+JA;EACE,gBAAA;A7C2+JF;;A6Cz+JA;EACE,gBAAA;A7C4+JF;;A6C1+JA;EACE,gBAAA;A7C6+JF;;A6C3+JA;EACE,gBAAA;A7C8+JF;;A6C5+JA;EACE,gBAAA;A7C++JF;;A6C7+JA;EACE,gBAAA;A7Cg/JF;;A6C9+JA;EACE,gBAAA;A7Ci/JF;;A6C/+JA;EACE,gBAAA;A7Ck/JF;;A6Ch/JA;EACE,gBAAA;A7Cm/JF;;A6Cj/JA;EACE,gBAAA;A7Co/JF;;A6Cl/JA;EACE,gBAAA;A7Cq/JF;;A6Cn/JA;EACE,gBAAA;A7Cs/JF;;A6Cp/JA;EACE,gBAAA;A7Cu/JF;;A6Cr/JA;EACE,gBAAA;A7Cw/JF;;A6Ct/JA;EACE,gBAAA;A7Cy/JF;;A6Cv/JA;EACE,gBAAA;A7C0/JF;;A6Cx/JA;EACE,gBAAA;A7C2/JF;;A6Cz/JA;EACE,gBAAA;A7C4/JF;;A6C1/JA;EACE,gBAAA;A7C6/JF;;A6C3/JA;EACE,gBAAA;A7C8/JF;;A6C5/JA;EACE,gBAAA;A7C+/JF;;A6C7/JA;EACE,gBAAA;A7CggKF;;A6C9/JA;EACE,gBAAA;A7CigKF;;A6C//JA;EACE,gBAAA;A7CkgKF;;A6ChgKA;EACE,gBAAA;A7CmgKF;;A6CjgKA;EACE,gBAAA;A7CogKF;;A6ClgKA;EACE,gBAAA;A7CqgKF;;A6CngKA;EACE,gBAAA;A7CsgKF;;A6CpgKA;EACE,gBAAA;A7CugKF;;A6CrgKA;EACE,gBAAA;A7CwgKF;;A6CtgKA;EACE,gBAAA;A7CygKF;;A6CvgKA;EACE,gBAAA;A7C0gKF;;A6CxgKA;EACE,gBAAA;A7C2gKF;;A6CzgKA;EACE,gBAAA;A7C4gKF;;A6C1gKA;EACE,gBAAA;A7C6gKF;;A6C3gKA;EACE,gBAAA;A7C8gKF;;A6C5gKA;EACE,gBAAA;A7C+gKF;;A6C7gKA;EACE,gBAAA;A7CghKF;;A6C9gKA;EACE,gBAAA;A7CihKF;;A6C/gKA;EACE,gBAAA;A7CkhKF;;A6ChhKA;EACE,gBAAA;A7CmhKF;;A6CjhKA;EACE,gBAAA;A7CohKF;;A6ClhKA;EACE,gBAAA;A7CqhKF;;A6CnhKA;EACE,gBAAA;A7CshKF;;A6CphKA;EACE,gBAAA;A7CuhKF;;A6CrhKA;EACE,gBAAA;A7CwhKF;;A6CthKA;EACE,gBAAA;A7CyhKF;;A6CvhKA;EACE,gBAAA;A7C0hKF;;A6CxhKA;EACE,gBAAA;A7C2hKF;;A6CzhKA;;EAEE,gBAAA;A7C4hKF;;A6C1hKA;;;EAGE,gBAAA;A7C6hKF;;A6C3hKA;EACE,gBAAA;A7C8hKF;;A6C5hKA;EACE,gBAAA;A7C+hKF;;A6C7hKA;;EAEE,gBAAA;A7CgiKF;;A6C9hKA;EACE,gBAAA;A7CiiKF;;A6C/hKA;EACE,gBAAA;A7CkiKF;;A6ChiKA;EACE,gBAAA;A7CmiKF;;A6CjiKA;EACE,gBAAA;A7CoiKF;;A6CliKA;EACE,gBAAA;A7CqiKF;;A6CniKA;EACE,gBAAA;A7CsiKF;;A6CpiKA;EACE,gBAAA;A7CuiKF;;A6CriKA;EACE,gBAAA;A7CwiKF;;A6CtiKA;EACE,gBAAA;A7CyiKF;;A6CviKA;EACE,gBAAA;A7C0iKF;;A6CxiKA;;EAEE,gBAAA;A7C2iKF;;A6CziKA;;EAEE,gBAAA;A7C4iKF;;A6C1iKA;EACE,gBAAA;A7C6iKF;;A6C3iKA;EACE,gBAAA;A7C8iKF;;A6C5iKA;EACE,gBAAA;A7C+iKF;;A6C7iKA;EACE,gBAAA;A7CgjKF;;A6C9iKA;EACE,gBAAA;A7CijKF;;A6C/iKA;EACE,gBAAA;A7CkjKF;;A6ChjKA;;EAEE,gBAAA;A7CmjKF;;A6CjjKA;;EAEE,gBAAA;A7CojKF;;A6CljKA;EACE,gBAAA;A7CqjKF;;A6CnjKA;EACE,gBAAA;A7CsjKF;;A6CpjKA;EACE,gBAAA;A7CujKF;;A6CrjKA;EACE,gBAAA;A7CwjKF;;A6CtjKA;;EAEE,gBAAA;A7CyjKF;;A6CvjKA;;EAEE,gBAAA;A7C0jKF;;A6CxjKA;EACE,gBAAA;A7C2jKF;;A6CzjKA;EACE,gBAAA;A7C4jKF;;A6C1jKA;EACE,gBAAA;A7C6jKF;;A6C3jKA;;;EAGE,gBAAA;A7C8jKF;;A6C5jKA;;EAEE,gBAAA;A7C+jKF;;A6C7jKA;;EAEE,gBAAA;A7CgkKF;;A6C9jKA;;EAEE,gBAAA;A7CikKF;;A6C/jKA;;EAEE,gBAAA;A7CkkKF;;A6ChkKA;EACE,gBAAA;A7CmkKF;;A6CjkKA;;;EAGE,gBAAA;A7CokKF;;A6ClkKA;EACE,gBAAA;A7CqkKF;;A6CnkKA;EACE,gBAAA;A7CskKF;;A6CpkKA;EACE,gBAAA;A7CukKF;;A6CrkKA;EACE,gBAAA;A7CwkKF;;A6CtkKA;;EAEE,gBAAA;A7CykKF;;A6CvkKA;;EAEE,gBAAA;A7C0kKF;;A6CxkKA;EACE,gBAAA;A7C2kKF;;A6CzkKA;EACE,gBAAA;A7C4kKF;;A6C1kKA;EACE,gBAAA;A7C6kKF;;A6C3kKA;EACE,gBAAA;A7C8kKF;;A6C5kKA;EACE,gBAAA;A7C+kKF;;A6C7kKA;EACE,gBAAA;A7CglKF;;A6C9kKA;EACE,gBAAA;A7CilKF;;A6C/kKA;EACE,gBAAA;A7CklKF;;A6ChlKA;EACE,gBAAA;A7CmlKF;;A6CjlKA;EACE,gBAAA;A7ColKF;;A6CllKA;EACE,gBAAA;A7CqlKF;;A6CnlKA;EACE,kBAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;EACA,YAAA;EACA,gBAAA;EACA,sBAAA;EACA,SAAA;A7CslKF;;A6CplKA;;EAEE,gBAAA;EACA,WAAA;EACA,YAAA;EACA,SAAA;EACA,iBAAA;EACA,UAAA;A7CulKF","file":"../../css/admin.css","sourcesContent":["@charset \"UTF-8\";\n#poststuff .llms-metabox:before, #poststuff .llms-metabox:after,\n.llms-form-fields:before,\n.llms-metabox .llms-access-plans:before,\n.llms-collapsible .llms-collapsible-body:before,\n.llms-collapsible .llms-collapsible-header:before,\n.llms-collapsible:before,\n.llms-form-fields:after,\n.llms-metabox .llms-access-plans:after,\n.llms-collapsible .llms-collapsible-body:after,\n.llms-collapsible .llms-collapsible-header:after,\n.llms-collapsible:after {\n content: \" \";\n display: table;\n}\n#poststuff .llms-metabox:after,\n.llms-form-fields:after,\n.llms-metabox .llms-access-plans:after,\n.llms-collapsible .llms-collapsible-body:after,\n.llms-collapsible .llms-collapsible-header:after,\n.llms-collapsible:after {\n clear: both;\n}\n\n.llms-button-action,\n.llms-button-danger,\n.llms-button-primary,\n.llms-button-secondary {\n border: none;\n border-radius: 8px;\n color: #fefefe;\n cursor: pointer;\n display: inline-block;\n font-size: 18px;\n font-weight: 700;\n text-decoration: none;\n text-shadow: none;\n line-height: 1;\n margin: 0;\n max-width: 100%;\n padding: 12px 24px;\n position: relative;\n transition: all 0.5s ease;\n}\n.llms-button-action:disabled,\n.llms-button-danger:disabled,\n.llms-button-primary:disabled,\n.llms-button-secondary:disabled {\n opacity: 0.5;\n}\n.llms-button-action:hover, .llms-button-action:active,\n.llms-button-danger:hover,\n.llms-button-danger:active,\n.llms-button-primary:hover,\n.llms-button-primary:active,\n.llms-button-secondary:hover,\n.llms-button-secondary:active {\n color: #fefefe;\n}\n.llms-button-action:focus,\n.llms-button-danger:focus,\n.llms-button-primary:focus,\n.llms-button-secondary:focus {\n color: #fefefe;\n}\n.llms-button-action.auto,\n.llms-button-danger.auto,\n.llms-button-primary.auto,\n.llms-button-secondary.auto {\n width: auto;\n}\n.llms-button-action.full,\n.llms-button-danger.full,\n.llms-button-primary.full,\n.llms-button-secondary.full {\n display: block;\n text-align: center;\n width: 100%;\n}\n.llms-button-action.square,\n.llms-button-danger.square,\n.llms-button-primary.square,\n.llms-button-secondary.square {\n padding: 12px;\n}\n.llms-button-action.small,\n.llms-button-danger.small,\n.llms-button-primary.small,\n.llms-button-secondary.small {\n font-size: 13px;\n padding: 8px 14px;\n}\n.llms-button-action.small.square,\n.llms-button-danger.small.square,\n.llms-button-primary.small.square,\n.llms-button-secondary.small.square {\n padding: 8px;\n}\n.llms-button-action.large,\n.llms-button-danger.large,\n.llms-button-primary.large,\n.llms-button-secondary.large {\n font-size: 18px;\n line-height: 1.2;\n padding: 16px 32px;\n}\n.llms-button-action.large.square,\n.llms-button-danger.large.square,\n.llms-button-primary.large.square,\n.llms-button-secondary.large.square {\n padding: 16px;\n}\n.llms-button-action.large .fa,\n.llms-button-danger.large .fa,\n.llms-button-primary.large .fa,\n.llms-button-secondary.large .fa {\n left: -7px;\n position: relative;\n}\n\n/* Fix for cases where link color overrides the button color */\na.llms-button-action,\na.llms-button-danger,\na.llms-button-primary {\n color: #fefefe;\n}\n\n.llms-button-primary {\n background: #466dd8;\n}\n.llms-button-primary:hover, .llms-button-primary.clicked {\n background: #2b55cb;\n}\n.llms-button-primary:focus, .llms-button-primary:active {\n background: #6888df;\n}\n\n.llms-button-secondary {\n background: #e1e1e1;\n color: #444;\n}\n.llms-button-secondary:hover {\n color: #414141;\n background: #cdcdcd;\n}\n.llms-button-secondary:focus, .llms-button-secondary:active {\n color: #414141;\n background: #ebebeb;\n}\n\n/* Fix for cases where link color overrides the button color */\na.llms-button-secondary {\n color: #444;\n}\n\n.llms-button-action {\n background: #c05621;\n}\n.llms-button-action:hover, .llms-button-action.clicked {\n background: #f67d28;\n}\n.llms-button-action:focus, .llms-button-action:active {\n background: #faad76;\n}\n\n.llms-button-danger {\n background: #bb231c;\n}\n.llms-button-danger:hover {\n background: #981c17;\n}\n.llms-button-danger:focus, .llms-button-danger:active {\n background: #cd261f;\n}\n\n.llms-button-outline {\n background: transparent;\n border: 3px solid #1D2327;\n border-radius: 8px;\n color: #1D2327;\n cursor: pointer;\n font-size: 16px;\n font-weight: 700;\n text-decoration: none;\n text-shadow: none;\n line-height: 1;\n margin: 0;\n max-width: 100%;\n padding: 12px 24px;\n position: relative;\n transition: all 0.5s ease;\n}\n.llms-button-outline:disabled {\n opacity: 0.5;\n}\n.llms-button-outline:hover, .llms-button-outline:active {\n color: #1D2327;\n}\n.llms-button-outline:focus {\n color: #1D2327;\n}\n.llms-button-outline.auto {\n width: auto;\n}\n.llms-button-outline.full {\n display: block;\n text-align: center;\n width: 100%;\n}\n.llms-button-outline.square {\n padding: 12px;\n}\n\n.llms-course-continue-button {\n display: inline-block;\n}\n\n.lifterlms [data-tip],\n.lifterlms [data-title-default],\n.lifterlms [data-title-active],\n.llms-metabox [data-tip],\n.llms-metabox [data-title-default],\n.llms-metabox [data-title-active],\n.llms-mb-container [data-tip],\n.llms-mb-container [data-title-default],\n.llms-mb-container [data-title-active],\n.llms-quiz-wrapper [data-tip],\n.llms-quiz-wrapper [data-title-default],\n.llms-quiz-wrapper [data-title-active] {\n position: relative;\n}\n.lifterlms [data-tip].tip--top-right:before,\n.lifterlms [data-title-default].tip--top-right:before,\n.lifterlms [data-title-active].tip--top-right:before,\n.llms-metabox [data-tip].tip--top-right:before,\n.llms-metabox [data-title-default].tip--top-right:before,\n.llms-metabox [data-title-active].tip--top-right:before,\n.llms-mb-container [data-tip].tip--top-right:before,\n.llms-mb-container [data-title-default].tip--top-right:before,\n.llms-mb-container [data-title-active].tip--top-right:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:before {\n bottom: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--top-right:hover:before,\n.lifterlms [data-title-default].tip--top-right:hover:before,\n.lifterlms [data-title-active].tip--top-right:hover:before,\n.llms-metabox [data-tip].tip--top-right:hover:before,\n.llms-metabox [data-title-default].tip--top-right:hover:before,\n.llms-metabox [data-title-active].tip--top-right:hover:before,\n.llms-mb-container [data-tip].tip--top-right:hover:before,\n.llms-mb-container [data-title-default].tip--top-right:hover:before,\n.llms-mb-container [data-title-active].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-right:after,\n.lifterlms [data-title-default].tip--top-right:after,\n.lifterlms [data-title-active].tip--top-right:after,\n.llms-metabox [data-tip].tip--top-right:after,\n.llms-metabox [data-title-default].tip--top-right:after,\n.llms-metabox [data-title-active].tip--top-right:after,\n.llms-mb-container [data-tip].tip--top-right:after,\n.llms-mb-container [data-title-default].tip--top-right:after,\n.llms-mb-container [data-title-active].tip--top-right:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:after {\n border-top-color: #444;\n left: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-right:hover:after,\n.lifterlms [data-title-default].tip--top-right:hover:after,\n.lifterlms [data-title-active].tip--top-right:hover:after,\n.llms-metabox [data-tip].tip--top-right:hover:after,\n.llms-metabox [data-title-default].tip--top-right:hover:after,\n.llms-metabox [data-title-active].tip--top-right:hover:after,\n.llms-mb-container [data-tip].tip--top-right:hover:after,\n.llms-mb-container [data-title-default].tip--top-right:hover:after,\n.llms-mb-container [data-title-active].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--top-left:before,\n.lifterlms [data-title-default].tip--top-left:before,\n.lifterlms [data-title-active].tip--top-left:before,\n.llms-metabox [data-tip].tip--top-left:before,\n.llms-metabox [data-title-default].tip--top-left:before,\n.llms-metabox [data-title-active].tip--top-left:before,\n.llms-mb-container [data-tip].tip--top-left:before,\n.llms-mb-container [data-title-default].tip--top-left:before,\n.llms-mb-container [data-title-active].tip--top-left:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:before {\n bottom: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--top-left:hover:before,\n.lifterlms [data-title-default].tip--top-left:hover:before,\n.lifterlms [data-title-active].tip--top-left:hover:before,\n.llms-metabox [data-tip].tip--top-left:hover:before,\n.llms-metabox [data-title-default].tip--top-left:hover:before,\n.llms-metabox [data-title-active].tip--top-left:hover:before,\n.llms-mb-container [data-tip].tip--top-left:hover:before,\n.llms-mb-container [data-title-default].tip--top-left:hover:before,\n.llms-mb-container [data-title-active].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-left:after,\n.lifterlms [data-title-default].tip--top-left:after,\n.lifterlms [data-title-active].tip--top-left:after,\n.llms-metabox [data-tip].tip--top-left:after,\n.llms-metabox [data-title-default].tip--top-left:after,\n.llms-metabox [data-title-active].tip--top-left:after,\n.llms-mb-container [data-tip].tip--top-left:after,\n.llms-mb-container [data-title-default].tip--top-left:after,\n.llms-mb-container [data-title-active].tip--top-left:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:after {\n border-top-color: #444;\n right: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-left:hover:after,\n.lifterlms [data-title-default].tip--top-left:hover:after,\n.lifterlms [data-title-active].tip--top-left:hover:after,\n.llms-metabox [data-tip].tip--top-left:hover:after,\n.llms-metabox [data-title-default].tip--top-left:hover:after,\n.llms-metabox [data-title-active].tip--top-left:hover:after,\n.llms-mb-container [data-tip].tip--top-left:hover:after,\n.llms-mb-container [data-title-default].tip--top-left:hover:after,\n.llms-mb-container [data-title-active].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--bottom-left:before,\n.lifterlms [data-title-default].tip--bottom-left:before,\n.lifterlms [data-title-active].tip--bottom-left:before,\n.llms-metabox [data-tip].tip--bottom-left:before,\n.llms-metabox [data-title-default].tip--bottom-left:before,\n.llms-metabox [data-title-active].tip--bottom-left:before,\n.llms-mb-container [data-tip].tip--bottom-left:before,\n.llms-mb-container [data-title-default].tip--bottom-left:before,\n.llms-mb-container [data-title-active].tip--bottom-left:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:before {\n top: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:before,\n.lifterlms [data-title-default].tip--bottom-left:hover:before,\n.lifterlms [data-title-active].tip--bottom-left:hover:before,\n.llms-metabox [data-tip].tip--bottom-left:hover:before,\n.llms-metabox [data-title-default].tip--bottom-left:hover:before,\n.llms-metabox [data-title-active].tip--bottom-left:hover:before,\n.llms-mb-container [data-tip].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-left:after,\n.lifterlms [data-title-default].tip--bottom-left:after,\n.lifterlms [data-title-active].tip--bottom-left:after,\n.llms-metabox [data-tip].tip--bottom-left:after,\n.llms-metabox [data-title-default].tip--bottom-left:after,\n.llms-metabox [data-title-active].tip--bottom-left:after,\n.llms-mb-container [data-tip].tip--bottom-left:after,\n.llms-mb-container [data-title-default].tip--bottom-left:after,\n.llms-mb-container [data-title-active].tip--bottom-left:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:after {\n border-bottom-color: #444;\n right: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:after,\n.lifterlms [data-title-default].tip--bottom-left:hover:after,\n.lifterlms [data-title-active].tip--bottom-left:hover:after,\n.llms-metabox [data-tip].tip--bottom-left:hover:after,\n.llms-metabox [data-title-default].tip--bottom-left:hover:after,\n.llms-metabox [data-title-active].tip--bottom-left:hover:after,\n.llms-mb-container [data-tip].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip].tip--bottom-right:before,\n.lifterlms [data-title-default].tip--bottom-right:before,\n.lifterlms [data-title-active].tip--bottom-right:before,\n.llms-metabox [data-tip].tip--bottom-right:before,\n.llms-metabox [data-title-default].tip--bottom-right:before,\n.llms-metabox [data-title-active].tip--bottom-right:before,\n.llms-mb-container [data-tip].tip--bottom-right:before,\n.llms-mb-container [data-title-default].tip--bottom-right:before,\n.llms-mb-container [data-title-active].tip--bottom-right:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:before {\n top: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:before,\n.lifterlms [data-title-default].tip--bottom-right:hover:before,\n.lifterlms [data-title-active].tip--bottom-right:hover:before,\n.llms-metabox [data-tip].tip--bottom-right:hover:before,\n.llms-metabox [data-title-default].tip--bottom-right:hover:before,\n.llms-metabox [data-title-active].tip--bottom-right:hover:before,\n.llms-mb-container [data-tip].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-right:after,\n.lifterlms [data-title-default].tip--bottom-right:after,\n.lifterlms [data-title-active].tip--bottom-right:after,\n.llms-metabox [data-tip].tip--bottom-right:after,\n.llms-metabox [data-title-default].tip--bottom-right:after,\n.llms-metabox [data-title-active].tip--bottom-right:after,\n.llms-mb-container [data-tip].tip--bottom-right:after,\n.llms-mb-container [data-title-default].tip--bottom-right:after,\n.llms-mb-container [data-title-active].tip--bottom-right:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:after {\n border-bottom-color: #444;\n left: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:after,\n.lifterlms [data-title-default].tip--bottom-right:hover:after,\n.lifterlms [data-title-active].tip--bottom-right:hover:after,\n.llms-metabox [data-tip].tip--bottom-right:hover:after,\n.llms-metabox [data-title-default].tip--bottom-right:hover:after,\n.llms-metabox [data-title-active].tip--bottom-right:hover:after,\n.llms-mb-container [data-tip].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip]:before,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-active]:before,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-active]:before,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-active]:before,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-active]:before {\n background: #444;\n border-radius: 4px;\n color: #fff;\n font-size: 13px;\n line-height: 1.2;\n padding: 8px;\n max-width: 300px;\n width: max-content;\n}\n.lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:after {\n content: \"\";\n border: 6px solid transparent;\n height: 0;\n width: 0;\n}\n.lifterlms [data-tip]:before, .lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:before,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:before,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:before,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:before,\n.llms-quiz-wrapper [data-title-active]:after {\n opacity: 0;\n transition: all 0.2s 0.1s ease;\n position: absolute;\n pointer-events: none;\n visibility: hidden;\n}\n.lifterlms [data-tip]:hover:before, .lifterlms [data-tip]:hover:after,\n.lifterlms [data-title-default]:hover:before,\n.lifterlms [data-title-default]:hover:after,\n.lifterlms [data-title-active]:hover:before,\n.lifterlms [data-title-active]:hover:after,\n.llms-metabox [data-tip]:hover:before,\n.llms-metabox [data-tip]:hover:after,\n.llms-metabox [data-title-default]:hover:before,\n.llms-metabox [data-title-default]:hover:after,\n.llms-metabox [data-title-active]:hover:before,\n.llms-metabox [data-title-active]:hover:after,\n.llms-mb-container [data-tip]:hover:before,\n.llms-mb-container [data-tip]:hover:after,\n.llms-mb-container [data-title-default]:hover:before,\n.llms-mb-container [data-title-default]:hover:after,\n.llms-mb-container [data-title-active]:hover:before,\n.llms-mb-container [data-title-active]:hover:after,\n.llms-quiz-wrapper [data-tip]:hover:before,\n.llms-quiz-wrapper [data-tip]:hover:after,\n.llms-quiz-wrapper [data-title-default]:hover:before,\n.llms-quiz-wrapper [data-title-default]:hover:after,\n.llms-quiz-wrapper [data-title-active]:hover:before,\n.llms-quiz-wrapper [data-title-active]:hover:after {\n opacity: 1;\n transition: all 0 0.1s ease;\n visibility: visible;\n z-index: 99999999;\n}\n.lifterlms [data-tip]:before,\n.llms-metabox [data-tip]:before,\n.llms-mb-container [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:before {\n content: attr(data-tip);\n}\n.lifterlms [data-tip].active:before,\n.llms-metabox [data-tip].active:before,\n.llms-mb-container [data-tip].active:before,\n.llms-quiz-wrapper [data-tip].active:before {\n content: attr(data-tip-active);\n}\n\n#adminmenu .toplevel_page_lifterlms .wp-menu-image img {\n padding-top: 6px;\n width: 20px;\n}\n#adminmenu .toplevel_page_lifterlms a[href*=\"page=llms-add-ons\"],\n#adminmenu .opensub .wp-submenu li.current a[href*=\"page=llms-add-ons\"],\n#adminmenu .wp-submenu li.current a[href*=\"page=llms-add-ons\"],\n#adminmenu .wp-submenu li.current a[href*=\"page=llms-add-ons\"],\n#adminmenu .wp-submenu li.current a[href*=\"page=llms-add-ons\"],\n#adminmenu a.wp-has-current-submenu:focus + .wp-submenu li.current a[href*=\"page=llms-add-ons\"] {\n color: #f8954f;\n}\n\n/******************************************************************\n\nGrids for Breakpoints\n\n******************************************************************/\n.last-col {\n float: right;\n padding-right: 0 !important;\n}\n\n.last-col:after {\n clear: both;\n}\n\n/*\nMobile Grid Styles\nThese are the widths for the mobile grid.\nThere are four types, but you can add or customize\nthem however you see fit.\n*/\n@media (max-width: 767px) {\n .m-all {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 100%;\n padding-right: 0;\n }\n .m-1of2 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 50%;\n }\n .m-1of3 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 33.33%;\n }\n .m-2of3 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 66.66%;\n }\n .m-1of4 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 25%;\n }\n .m-3of4 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 75%;\n }\n .m-right {\n text-align: center;\n }\n .m-center {\n text-align: center;\n }\n .m-left {\n text-align: center;\n }\n .d-right {\n text-align: right;\n }\n .d-center {\n text-align: center;\n }\n .d-left {\n text-align: left;\n }\n}\n/* Portrait tablet to landscape */\n@media (min-width: 768px) and (max-width: 1029px) {\n .t-all {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 100%;\n padding-right: 0;\n }\n .t-1of2 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 50%;\n }\n .t-1of3 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 33.33%;\n }\n .t-2of3 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 66.66%;\n }\n .t-1of4 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 25%;\n }\n .t-3of4 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 75%;\n }\n .t-1of5 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 20%;\n }\n .t-2of5 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 40%;\n }\n .t-3of5 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 60%;\n }\n .t-4of5 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 80%;\n }\n .d-right {\n text-align: right;\n }\n .d-center {\n text-align: center;\n }\n .d-left {\n text-align: left;\n }\n}\n/* Landscape to small desktop */\n@media (min-width: 1030px) {\n .d-all {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 100%;\n padding-right: 0;\n }\n .d-1of2 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 50%;\n }\n .d-1of3 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 33.33%;\n }\n .d-2of3 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 66.66%;\n }\n .d-1of4 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 25%;\n }\n .d-3of4 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 75%;\n }\n .d-1of5 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 20%;\n }\n .d-2of5 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 40%;\n }\n .d-3of5 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 60%;\n }\n .d-4of5 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 80%;\n }\n .d-1of6 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 16.6666666667%;\n }\n .d-1of7 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 14.2857142857%;\n }\n .d-2of7 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 28.5714286%;\n }\n .d-3of7 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 42.8571429%;\n }\n .d-4of7 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 57.1428572%;\n }\n .d-5of7 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 71.4285715%;\n }\n .d-6of7 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 85.7142857%;\n }\n .d-1of8 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 12.5%;\n }\n .d-1of9 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 11.1111111111%;\n }\n .d-1of10 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 10%;\n }\n .d-1of11 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 9.0909090909%;\n }\n .d-1of12 {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n width: 8.33%;\n }\n .d-right {\n text-align: right;\n }\n .d-center {\n text-align: center;\n }\n .d-left {\n text-align: left;\n }\n}\n/******************************************************************\n\nForm Styles\n\n******************************************************************/\n#llms-form-wrapper .llms-search-form-wrapper {\n border-bottom: 1px solid #999;\n margin: 20px 0;\n}\n#llms-form-wrapper #llms_analytics_search {\n border: none !important;\n text-shadow: none !important;\n border: none !important;\n outline: none !important;\n box-shadow: none !important;\n margin: 0 !important;\n color: #fefefe !important;\n background: #466dd8 !important;\n border-radius: 0;\n transition: 0.5s;\n}\n#llms-form-wrapper #llms_analytics_search:hover {\n background: #0185a3 !important;\n}\n#llms-form-wrapper #llms_analytics_search:active {\n background: #33b1cb !important;\n}\n\n#llms-skip-setup-form .llms-admin-link {\n background: none !important;\n border: none;\n padding: 0 !important;\n color: #0074a2;\n cursor: pointer;\n}\n#llms-skip-setup-form .llms-admin-link:hover {\n color: #2ea2cc;\n}\n#llms-skip-setup-form .llms-admin-link:focus {\n color: #124964;\n}\n\n/**\n * Toggle Switch ( replaces checkbox on admin panels )\n */\n.llms-switch {\n position: relative;\n}\n.llms-switch .llms-toggle {\n position: absolute;\n margin-left: -9999px;\n visibility: hidden;\n}\n.llms-switch .llms-toggle + label {\n box-sizing: border-box;\n display: block;\n position: relative;\n cursor: pointer;\n outline: none;\n user-select: none;\n}\n.llms-switch input.llms-toggle-round + label {\n border: 2px solid #6c7781;\n border-radius: 10px;\n height: 20px;\n width: 36px;\n}\n.llms-switch input.llms-toggle-round + label:before,\n.llms-switch input.llms-toggle-round + label:after {\n box-sizing: border-box;\n content: \"\";\n display: block;\n position: absolute;\n transition: background 0.4s;\n}\n.llms-switch input.llms-toggle-round:checked + label {\n border-color: #11a0d2;\n background-color: #11a0d2;\n}\n.llms-switch input.llms-toggle-round + label:after {\n height: 12px;\n left: 2px;\n top: 2px;\n background-color: #6c7781;\n border-radius: 50%;\n transition: margin 0.4s;\n width: 12px;\n z-index: 3;\n}\n.llms-switch input.llms-toggle-round:checked + label:after {\n background-color: #fefefe;\n margin-left: 16px;\n}\n.llms-switch input.llms-toggle-round + label:before {\n height: 8px;\n top: 4px;\n border: 1px solid #6c7781;\n border-radius: 50%;\n right: 4px;\n width: 8px;\n z-index: 2;\n}\n.llms-switch input.llms-toggle-round:checked + label:before {\n border-color: #fefefe;\n border-radius: 0;\n left: 6px;\n right: auto;\n width: 2px;\n}\n\n#llms-profile-fields {\n margin: 50px 0;\n}\n#llms-profile-fields .llms-form-field {\n padding-left: 0;\n}\n#llms-profile-fields label {\n display: block;\n font-weight: bold;\n padding: 8px 0 2px;\n}\n#llms-profile-fields .type-checkbox .type-checkbox label {\n display: initial;\n font-weight: initial;\n padding: 0;\n}\n#llms-profile-fields .type-checkbox .type-checkbox input {\n display: inline-block;\n margin-bottom: 0;\n width: 1rem;\n}\n#llms-profile-fields select {\n max-width: 100%;\n}\n\na.llms-voucher-delete {\n background: #bb231c;\n color: #fefefe;\n display: block;\n padding: 4px 2px;\n text-decoration: none;\n transition: ease 0.3s all;\n}\na.llms-voucher-delete:hover {\n background: #af3a26;\n}\n\n.llms-voucher-codes-wrapper table,\n.llms-voucher-redemption-wrapper table {\n width: 100%;\n border-collapse: collapse;\n}\n.llms-voucher-codes-wrapper table th, .llms-voucher-codes-wrapper table td,\n.llms-voucher-redemption-wrapper table th,\n.llms-voucher-redemption-wrapper table td {\n border: none;\n}\n.llms-voucher-codes-wrapper table thead,\n.llms-voucher-redemption-wrapper table thead {\n background-color: #466dd8;\n color: #fff;\n}\n.llms-voucher-codes-wrapper table thead th,\n.llms-voucher-redemption-wrapper table thead th {\n padding: 10px 10px;\n}\n.llms-voucher-codes-wrapper table tr,\n.llms-voucher-redemption-wrapper table tr {\n counter-increment: row-counter;\n}\n.llms-voucher-codes-wrapper table tr:nth-child(even),\n.llms-voucher-redemption-wrapper table tr:nth-child(even) {\n background-color: #F1F1F1;\n}\n.llms-voucher-codes-wrapper table tr td,\n.llms-voucher-redemption-wrapper table tr td {\n padding: 5px;\n}\n.llms-voucher-codes-wrapper table tr td:first-child:before,\n.llms-voucher-redemption-wrapper table tr td:first-child:before {\n content: counter(row-counter);\n}\n\n.llms-voucher-codes-wrapper table {\n width: 100%;\n border-collapse: collapse;\n}\n.llms-voucher-codes-wrapper table th, .llms-voucher-codes-wrapper table td {\n border: none;\n}\n.llms-voucher-codes-wrapper table thead {\n background-color: #466dd8;\n color: #fff;\n}\n.llms-voucher-codes-wrapper table tr:nth-child(even) {\n background-color: #F1F1F1;\n}\n.llms-voucher-codes-wrapper table tr td span {\n display: inline-block;\n min-width: 30px;\n}\n.llms-voucher-codes-wrapper button {\n cursor: pointer;\n}\n.llms-voucher-codes-wrapper .llms-voucher-delete {\n float: right;\n margin-right: 15px;\n}\n.llms-voucher-codes-wrapper .llms-voucher-uses {\n width: 50px;\n}\n.llms-voucher-codes-wrapper .llms-voucher-add-codes {\n float: right;\n}\n.llms-voucher-codes-wrapper .llms-voucher-add-codes input[type=text] {\n width: 30px;\n}\n\n.llms-voucher-export-wrapper .llms-voucher-export-type {\n width: 100%;\n}\n.llms-voucher-export-wrapper .llms-voucher-export-type p {\n margin: 0 0 0 15px;\n}\n.llms-voucher-export-wrapper .llms-voucher-email-wrapper {\n width: 100%;\n margin: 25px 0;\n}\n.llms-voucher-export-wrapper .llms-voucher-email-wrapper input[type=text] {\n width: 100%;\n}\n.llms-voucher-export-wrapper .llms-voucher-email-wrapper p {\n margin: 0;\n}\n.llms-voucher-export-wrapper > button {\n float: right;\n}\n\n.postbox .inside {\n overflow: auto;\n}\n\n.llms-widget {\n background-color: #FFF;\n border: 1px solid #dedede;\n border-radius: 12px;\n box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);\n box-sizing: border-box;\n margin-bottom: 20px;\n padding: 20px;\n position: relative;\n width: 100%;\n}\n.llms-widget.alt {\n border: 1px solid #ccc;\n background-color: #efefef;\n margin-bottom: 10px;\n}\n.llms-widget.alt .llms-label {\n color: #777;\n font-size: 14px;\n margin-bottom: 10px;\n padding-bottom: 5px;\n}\n.llms-widget.alt h2 {\n color: #444;\n font-weight: 300;\n}\n.llms-widget a {\n border-bottom: 1px dotted #466dd8;\n display: inline-block;\n text-decoration: none;\n}\n.llms-widget a:hover {\n border-bottom: 1px dotted #2b55cb;\n}\n.llms-widget .llms-widget-content {\n margin: 0.67em 0;\n color: #466dd8;\n font-size: 2.4em;\n font-weight: 700;\n line-height: 1;\n word-break: break-all;\n}\n.llms-widget h2 {\n font-size: 1.8em;\n}\n.llms-widget .llms-label {\n box-sizing: border-box;\n font-size: 18px;\n font-weight: 400;\n margin: 0 0 10px 0;\n text-align: center;\n}\n.llms-widget .llms-chart {\n width: 100%;\n padding: 10px;\n box-sizing: border-box;\n}\n.llms-widget mark.yes {\n background-color: #7ad03a;\n}\n.llms-widget .llms-subtitle {\n margin-bottom: 0;\n}\n.llms-widget .spinner {\n float: none;\n left: 50%;\n margin: -10px 0 0 -10px;\n position: absolute;\n top: 50%;\n z-index: 2;\n}\n.llms-widget.is-loading:before {\n background: #fefefe;\n bottom: 0;\n content: \"\";\n left: 0;\n opacity: 0.9;\n position: absolute;\n right: 0;\n top: 0;\n z-index: 1;\n}\n.llms-widget.is-loading .spinner {\n visibility: visible;\n}\n.llms-widget td[colspan=\"2\"] {\n padding-left: 0;\n}\n.llms-widget tr.llms-disabled-field {\n opacity: 0.5;\n pointer-events: none;\n}\n\n.llms-widget-1-3,\n.llms-widget-1-4,\n.llms-widget-1-5 {\n text-align: center;\n}\n\n.llms-widget .llms-widget-info-toggle {\n color: #AAA;\n cursor: pointer;\n font-size: 16px;\n position: absolute;\n right: 20px;\n top: 20px;\n}\n.llms-widget.info-showing .llms-widget-info {\n display: block;\n}\n\n.llms-widget-info {\n background: #444;\n color: #fefefe;\n bottom: -50px;\n display: none;\n padding: 15px;\n position: absolute;\n text-align: center;\n left: 10px;\n right: 15px;\n z-index: 3;\n}\n.llms-widget-info:before {\n content: \"\";\n border: 12px solid transparent;\n border-bottom-color: #444;\n left: 50%;\n margin-left: -12px;\n position: absolute;\n top: -24px;\n}\n.llms-widget-info p {\n margin: 0;\n}\n\n.llms-widget-row:before, .llms-widget-row:after {\n content: \" \";\n display: table;\n}\n.llms-widget-row:after {\n clear: both;\n}\n\n.llms-widget-row .no-padding {\n padding: 0 !important;\n}\n\n/******************************************************************\n\nSVG Styles\n\n******************************************************************/\nsvg.icon {\n height: 24px;\n width: 24px;\n display: inline-block;\n fill: currentColor;\n vertical-align: baseline;\n}\nbutton svg.icon {\n height: 18px;\n width: 18px;\n margin: 4px -4px 0 4px;\n filter: drop-shadow(0 1px #eee);\n float: right;\n}\nsvg.icon.menu-icon {\n height: 20px;\n width: 20px;\n display: inline-block;\n fill: currentColor;\n vertical-align: text-bottom;\n margin-right: 10px;\n}\nsvg.icon.tree-icon {\n height: 13px;\n width: 13px;\n vertical-align: middle;\n}\nsvg.icon.section-icon {\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n}\nsvg.icon.button-icon {\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n}\nsvg.icon.button-icon-attr {\n height: 10px;\n width: 10px;\n vertical-align: middle;\n}\nsvg.icon.list-icon {\n height: 12px;\n width: 12px;\n vertical-align: middle;\n}\nsvg.icon.list-icon.on {\n color: #466dd8;\n}\nsvg.icon.list-icon.off {\n color: #444;\n}\nsvg.icon.detail-icon {\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n cursor: default;\n}\nsvg.icon.detail-icon.on {\n color: #466dd8;\n}\nsvg.icon.detail-icon.off {\n color: #ccc;\n}\nsvg.icon-ion-arrow-up {\n transform: rotate(90deg);\n}\nsvg use {\n pointer-events: none;\n}\n\n/******************************************************************\n\nMetabox Tabs\n\n******************************************************************/\n#side-sortables .tab-content {\n padding: 0;\n}\n\n.llms-mb-container .tab-content {\n display: none;\n background-color: #FFF;\n padding: 0 20px;\n}\n.llms-mb-container .tab-content ul:not(.select2-selection__rendered) {\n margin: 0 0 15px 0;\n}\n.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li {\n padding: 20px 0;\n margin: 0;\n}\n.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li.select:not([class*=d-]) {\n width: 100%;\n}\n.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li:last-child {\n border: 0;\n padding-bottom: 0;\n}\n.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li.top {\n border-bottom: 0;\n padding-bottom: 0;\n}\n.llms-mb-container .tab-content .full-width {\n width: 100%;\n}\n.llms-mb-container .tab-content #wp-content-editor-tools {\n background: none;\n}\n\n.llms-mb-container .tab-content.llms-active {\n display: inherit;\n}\n\n.llms-mb-container .tab-content .no-border {\n border-bottom: 0px;\n}\n\n/******************************************************************\n\nStyles for topModal modal\n\n******************************************************************/\n/**\n * Base modal styles\n */\n.topModal {\n display: none;\n position: relative;\n border: 4px solid #808080;\n background: #fff;\n z-index: 1000001;\n padding: 2px;\n max-width: 500px;\n margin: 34px auto 0;\n box-sizing: border-box;\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-color: #ffffff;\n border-radius: 2px;\n border: 1px solid #dddddd;\n}\n\n.topModalClose {\n float: right;\n cursor: pointer;\n margin-right: 10px;\n margin-top: 10px;\n}\n\n.topModalContainer {\n display: none;\n overflow: auto;\n overflow-y: hidden;\n position: fixed;\n top: 0 !important;\n right: 0;\n bottom: 0;\n left: 0;\n -webkit-overflow-scrolling: touch;\n width: auto !important;\n margin-left: 0 !important;\n background-color: transparent !important;\n z-index: 100002 !important;\n}\n\n.topModalBackground {\n display: none;\n background: #000;\n position: fixed;\n height: 100%;\n width: 100%;\n top: 0 !important;\n left: 0;\n margin-left: 0 !important;\n z-index: 100002 !important;\n box-sizing: border-box;\n overflow: auto;\n overflow-y: hidden;\n}\n\nbody.modal-open {\n overflow: hidden;\n}\n\n.llms-modal-header {\n border-top-right-radius: 1px;\n border-top-left-radius: 1px;\n background: #466dd8;\n color: #eeeeee;\n padding: 10px 15px;\n font-size: 18px;\n}\n\n#llms-icon-modal-close {\n width: 16px;\n height: 16px;\n fill: #fefefe;\n}\n\n.llms-modal-content {\n padding: 20px;\n}\n.llms-modal-content h3 {\n margin-top: 0;\n}\n\n/**\n * Custom Modal Styles for LifterLMS\n */\n.llms-modal-form h1 {\n margin-top: 0;\n}\n.llms-modal-form input[type=text] {\n width: 100%;\n}\n.llms-modal-form textarea,\n.llms-modal-form input[type=text],\n.llms-modal-form input[type=password],\n.llms-modal-form input[type=file],\n.llms-modal-form input[type=datetime],\n.llms-modal-form input[type=datetime-local],\n.llms-modal-form input[type=date],\n.llms-modal-form input[type=month],\n.llms-modal-form input[type=time],\n.llms-modal-form input[type=week],\n.llms-modal-form input[type=number],\n.llms-modal-form input[type=email],\n.llms-modal-form input[type=url],\n.llms-modal-form input[type=search],\n.llms-modal-form input[type=tel],\n.llms-modal-form input[type=color] {\n padding: 0 0.4em 0 0.4em;\n margin-bottom: 2em;\n vertical-align: middle;\n border-radius: 3px;\n min-width: 50px;\n max-width: 635px;\n width: 100%;\n min-height: 32px;\n background-color: #fff;\n border: 1px solid #ccc;\n margin: 0 0 24px 0;\n outline: none;\n transition: border 0.3s ease-in-out 0s;\n}\n.llms-modal-form textarea:focus,\n.llms-modal-form input[type=text]:focus,\n.llms-modal-form input[type=password]:focus,\n.llms-modal-form input[type=file]:focus,\n.llms-modal-form input[type=datetime]:focus,\n.llms-modal-form input[type=datetime-local]:focus,\n.llms-modal-form input[type=date]:focus,\n.llms-modal-form input[type=month]:focus,\n.llms-modal-form input[type=time]:focus,\n.llms-modal-form input[type=week]:focus,\n.llms-modal-form input[type=number]:focus,\n.llms-modal-form input[type=email]:focus,\n.llms-modal-form input[type=url]:focus,\n.llms-modal-form input[type=search]:focus,\n.llms-modal-form input[type=tel]:focus,\n.llms-modal-form input[type=color]:focus {\n background: #fefefe;\n border: 1px solid #466dd8;\n}\n.llms-modal-form textarea {\n padding: 0.4em !important;\n height: 100px !important;\n border-radius: 3px;\n vertical-align: middle;\n min-height: 32px;\n outline: none;\n box-sizing: border-box;\n}\n.llms-modal-form textarea:focus {\n background: #fefefe;\n border: 1px solid #466dd8;\n}\n.llms-modal-form .chosen-container-single .chosen-single {\n border-radius: 3px;\n vertical-align: middle;\n min-height: 32px;\n border: 1px solid #ccc;\n width: 100%;\n background: #fefefe !important;\n outline: none;\n box-sizing: border-box;\n box-shadow: 0 0 0 #fff;\n line-height: 32px;\n margin: 0 0 24px 0;\n}\n.llms-modal-form .chosen-container-single .chosen-single:focus {\n background: #fefefe;\n border: 1px solid #466dd8;\n}\n.llms-modal-form .chosen-container-single .chosen-single div b {\n margin-top: 4px;\n}\n.llms-modal-form .chosen-search input[type=text] {\n border: 1px solid #ccc;\n}\n.llms-modal-form .chosen-search input[type=text]:focus {\n background-color: #fefefe;\n border: 1px solid #466dd8;\n}\n.llms-modal-form .chosen-container-single .chosen-drop {\n margin-top: -28px;\n}\n.llms-modal-form .llms-button-primary, .llms-modal-form .llms-button-secondary {\n padding: 10px 10px;\n border-radius: 0;\n transition: 0.5s;\n box-shadow: 0 1px 1px #ccc;\n}\n.llms-modal-form .llms-button-primary.full, .llms-modal-form .llms-button-secondary.full {\n width: 100%;\n}\n\n.modal-open .select2-dropdown {\n z-index: 1000005;\n}\n\n.button.llms-merge-code-button {\n vertical-align: middle;\n}\n.button.llms-merge-code-button svg {\n margin-right: 2px;\n position: relative;\n top: 4px;\n width: 16px;\n}\n.button.llms-merge-code-button svg g {\n fill: currentColor;\n}\n\n.llms-mb-container .llms-merge-code-wrapper {\n float: right;\n top: -5px;\n}\n\n.llms-merge-code-wrapper {\n display: inline;\n position: relative;\n}\n\n.llms-merge-codes {\n background: #f7f7f7;\n border: 1px solid #ccc;\n border-radius: 3px;\n box-shadow: 0 1px 0 #ccc;\n color: #555;\n display: none;\n left: 1px;\n overflow: hidden;\n position: absolute;\n top: 30px;\n width: 200px;\n}\n.llms-merge-codes ul {\n margin: 0;\n padding: 0;\n}\n.llms-merge-codes li {\n cursor: pointer;\n margin: 0;\n padding: 4px 8px !important;\n border-bottom: 1px solid #ccc;\n}\n.llms-merge-codes li:hover {\n color: #23282d;\n background: #fefefe;\n}\n.llms-merge-codes.active {\n display: block;\n z-index: 777;\n}\n\n/******************************************************************\n\nBase Mobile\n\n******************************************************************/\n.llms-nav-tab,\n.llms-nav-tab-filters {\n display: block;\n width: 100%;\n}\n\nform.llms-nav-tab-filters.full-width {\n width: 100%;\n}\nform.llms-nav-tab-filters.full-width label {\n display: inline-block;\n width: 10%;\n text-align: left;\n}\nform.llms-nav-tab-filters.full-width .select2-container {\n width: 85% !important;\n}\n\n.llms-nav-tab-settings {\n display: block;\n width: 100%;\n}\n\n#llms-form-wrapper .llms-select {\n width: 100%;\n margin-bottom: 20px;\n}\n#llms-form-wrapper .llms-checkbox {\n display: inline-block;\n width: 100%;\n text-align: left;\n}\n#llms-form-wrapper .llms-filter-options {\n width: 100%;\n}\n#llms-form-wrapper .llms-date-select {\n width: 100%;\n display: inline-block;\n margin-bottom: 20px;\n}\n#llms-form-wrapper .llms-date-select input[type=text] {\n width: 100%;\n}\nul.tabs li {\n display: block;\n}\n\n@media only screen and (min-width: 481px) {\n /******************************************************************\n\n Larger Phones\n\n ******************************************************************/\n #llms-form-wrapper .llms-checkbox {\n width: 33%;\n }\n}\n@media only screen and (min-width: 768px) {\n /******************************************************************\n\n Tablets and small computers\n\n ******************************************************************/\n ul.tabs li {\n display: inline-block;\n }\n .llms-nav-tab {\n display: inline-block;\n width: 33%;\n }\n .llms-nav-tab-settings {\n display: inline-block;\n width: 25%;\n }\n #llms-form-wrapper .llms-select {\n width: 50%;\n max-width: 500px;\n }\n #llms-form-wrapper .llms-filter-options {\n width: 50%;\n max-width: 500px;\n }\n #llms-form-wrapper .llms-date-select {\n width: 47.5%;\n }\n #llms-form-wrapper .llms-date-select:first-child {\n margin-right: 5%;\n }\n .llms-widget input[type=text],\n.llms-widget input[type=password],\n.llms-widget input[type=datetime],\n.llms-widget input[type=datetime-local],\n.llms-widget input[type=date],\n.llms-widget input[type=month],\n.llms-widget input[type=time],\n.llms-widget input[type=week],\n.llms-widget input[type=number],\n.llms-widget input[type=email],\n.llms-widget input[type=url],\n.llms-widget input[type=search],\n.llms-widget input[type=tel],\n.llms-widget input[type=color],\n.llms-widget select,\n.llms-widget textarea {\n width: 50%;\n }\n .llms-widget input[type=text].medium,\n.llms-widget input[type=password].medium,\n.llms-widget input[type=datetime].medium,\n.llms-widget input[type=datetime-local].medium,\n.llms-widget input[type=date].medium,\n.llms-widget input[type=month].medium,\n.llms-widget input[type=time].medium,\n.llms-widget input[type=week].medium,\n.llms-widget input[type=number].medium,\n.llms-widget input[type=email].medium,\n.llms-widget input[type=url].medium,\n.llms-widget input[type=search].medium,\n.llms-widget input[type=tel].medium,\n.llms-widget input[type=color].medium,\n.llms-widget select.medium,\n.llms-widget textarea.medium {\n width: 30%;\n }\n .llms-widget input[type=text].small,\n.llms-widget input[type=password].small,\n.llms-widget input[type=datetime].small,\n.llms-widget input[type=datetime-local].small,\n.llms-widget input[type=date].small,\n.llms-widget input[type=month].small,\n.llms-widget input[type=time].small,\n.llms-widget input[type=week].small,\n.llms-widget input[type=number].small,\n.llms-widget input[type=email].small,\n.llms-widget input[type=url].small,\n.llms-widget input[type=search].small,\n.llms-widget input[type=tel].small,\n.llms-widget input[type=color].small,\n.llms-widget select.small,\n.llms-widget textarea.small {\n width: 20%;\n }\n .llms-widget input[type=text].tiny,\n.llms-widget input[type=password].tiny,\n.llms-widget input[type=datetime].tiny,\n.llms-widget input[type=datetime-local].tiny,\n.llms-widget input[type=date].tiny,\n.llms-widget input[type=month].tiny,\n.llms-widget input[type=time].tiny,\n.llms-widget input[type=week].tiny,\n.llms-widget input[type=number].tiny,\n.llms-widget input[type=email].tiny,\n.llms-widget input[type=url].tiny,\n.llms-widget input[type=search].tiny,\n.llms-widget input[type=tel].tiny,\n.llms-widget input[type=color].tiny,\n.llms-widget select.tiny,\n.llms-widget textarea.tiny {\n width: 10%;\n }\n}\n@media only screen and (min-width: 1030px) {\n /******************************************************************\n\n Desktop Stylesheet\n\n ******************************************************************/\n .llms-nav-tab {\n display: inline-block;\n width: 33.333%;\n }\n .llms-nav-tab-settings {\n display: inline-block;\n width: 25%;\n }\n #llms-form-wrapper .llms-select {\n display: inline-block;\n width: 47.5%;\n }\n #llms-form-wrapper .llms-select:first-child {\n margin-right: 5%;\n }\n #llms-form-wrapper .llms-filter-options {\n display: inline-block;\n width: 47.5%;\n }\n #llms-form-wrapper .llms-filter-options.date-filter {\n margin-right: 5%;\n }\n #llms-form-wrapper .llms-filter-options .llms-date-select {\n margin-bottom: 0;\n }\n #llms-form-wrapper .llms-date-select {\n width: 47.5%;\n }\n #llms-form-wrapper .llms-date-select:first-child {\n margin-right: 5%;\n }\n .llms-widget-row:before, .llms-widget-row:after {\n content: \" \";\n display: table;\n }\n .llms-widget-row:after {\n clear: both;\n }\n .llms-widget-row .llms-widget-1-5 {\n vertical-align: top;\n width: 20%;\n float: left;\n box-sizing: border-box;\n padding: 0 5px;\n }\n .llms-widget-row .llms-widget-1-4 {\n vertical-align: top;\n width: 25%;\n float: left;\n box-sizing: border-box;\n padding: 0 5px;\n }\n .llms-widget-row .llms-widget-1-3 {\n width: 33.3%;\n float: left;\n box-sizing: border-box;\n padding: 0 5px;\n }\n .llms-widget-row .llms-widget-1-2 {\n width: 50%;\n float: left;\n box-sizing: border-box;\n padding: 0 5px;\n vertical-align: top;\n }\n}\n@media only screen and (min-width: 1240px) {\n /******************************************************************\n\n large Monitor Stylesheet\n\n ******************************************************************/\n .llms-nav-tab-filters,\n.llms-nav-tab-settings {\n float: left;\n width: 12.5%;\n }\n}\n.wrap.lifterlms {\n margin-top: 0;\n}\n\n.llms-header {\n background-color: #FFF;\n margin: 0 0 0 -20px;\n padding: 20px 10px;\n position: relative;\n z-index: 1;\n}\n.llms-header .llms-inside-wrap {\n display: flex;\n padding: 0 10px;\n}\n.llms-header .lifterlms-logo {\n flex: 0 0 190px;\n max-height: 52px;\n margin-right: 10px;\n}\n.llms-header .llms-meta {\n align-self: center;\n display: flex;\n flex: 1;\n font-size: 16px;\n justify-content: space-between;\n line-height: 1.5;\n}\n.llms-header .llms-meta .llms-version {\n background-color: #1d2327;\n color: #FFF;\n border-radius: 999px;\n font-size: 13px;\n font-weight: 700;\n padding: 6px 12px;\n}\n.llms-header .llms-meta a {\n display: inline-block;\n}\n.llms-header .llms-meta .llms-license {\n border-right: 1px solid #CCC;\n font-weight: 700;\n margin-right: 12px;\n padding-right: 12px;\n}\n.llms-header .llms-meta .llms-license a {\n text-decoration: none;\n}\n.llms-header .llms-meta .llms-license a:before {\n content: \"\\f534\";\n display: inline-block;\n font: 400 16px/1 dashicons;\n left: 0;\n padding-right: 3px;\n position: relative;\n text-decoration: none;\n vertical-align: text-bottom;\n}\n.llms-header .llms-meta .llms-license a.llms-license-none {\n color: #888;\n}\n.llms-header .llms-meta .llms-license a.llms-license-none:before {\n content: \"\\f335\";\n}\n.llms-header .llms-meta .llms-license a.llms-license-active {\n color: #008a20;\n}\n.llms-header .llms-meta .llms-license a.llms-license-active:before {\n content: \"\\f112\";\n}\n.llms-header .llms-meta .llms-support {\n font-weight: 700;\n}\n.llms-header .llms-meta .llms-support a {\n color: #1d2327;\n text-decoration: none;\n}\n\n.llms-subheader {\n align-items: center;\n background-color: #FFF;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n display: flex;\n flex-direction: row;\n margin-left: -20px;\n padding: 10px 20px;\n width: 100%;\n z-index: 1;\n}\n.llms-subheader h1 {\n font-weight: 700;\n padding: 0;\n}\n.llms-subheader h1 a {\n color: inherit;\n text-decoration: none;\n}\n\n#post_course_difficulty {\n min-width: 200px;\n}\n\n#_video-embed, #_audio-embed {\n width: 100%;\n}\n\nhr {\n background-color: #CCC;\n border: none;\n height: 1px;\n margin: 30px 0;\n padding: 0;\n}\n\n.llms_certificate_default_image, .llms_certificate_image {\n width: 300px;\n}\n\n.llms_achievement_default_image, .llms_achievement_image {\n width: 120px;\n}\n\ndiv[id^=lifterlms-] .inside {\n overflow: visible;\n}\n\n.notice.llms-admin-notice {\n background-color: #FFF;\n border: 1px solid #ccd0d4;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n display: flex;\n padding: 0 !important;\n position: relative;\n}\n.notice.llms-admin-notice .notice-dismiss {\n text-decoration: none;\n}\n.notice.llms-admin-notice.notice-warning {\n border-left: 4px solid #F8954F;\n}\n.notice.llms-admin-notice.notice-warning .llms-admin-notice-icon {\n background-color: #FEF4ED;\n}\n.notice.llms-admin-notice.notice-info {\n border-left: 4px solid #466DD8;\n}\n.notice.llms-admin-notice.notice-info h3 {\n color: #466DD8;\n}\n.notice.llms-admin-notice.notice-info .llms-admin-notice-icon {\n background-color: #EDF0FB;\n}\n.notice.llms-admin-notice.notice-success {\n border-left: 4px solid #18A957;\n}\n.notice.llms-admin-notice.notice-success h3 {\n color: #18A957;\n}\n.notice.llms-admin-notice.notice-success .llms-admin-notice-icon {\n background-color: #E8F6EE;\n}\n.notice.llms-admin-notice.notice-error {\n border-left: 4px solid #DF1642;\n}\n.notice.llms-admin-notice.notice-error h3 {\n color: #9C0F2E;\n}\n.notice.llms-admin-notice.notice-error .llms-admin-notice-icon {\n background-color: #FCE8EC;\n}\n.notice.llms-admin-notice .llms-admin-notice-icon {\n background-image: url(../../assets/images/lifterlms-icon-color.png);\n background-position: center center;\n background-repeat: no-repeat;\n background-size: 30px;\n min-width: 70px;\n}\n.notice.llms-admin-notice .llms-admin-notice-content {\n color: #111;\n padding: 20px;\n}\n.notice.llms-admin-notice h3 {\n font-size: 18px;\n font-weight: 700;\n line-height: 25px;\n margin: 0 0 15px 0;\n}\n.notice.llms-admin-notice button,\n.notice.llms-admin-notice .llms-button-primary {\n display: inline-block;\n}\n.notice.llms-admin-notice p {\n font-size: 14px;\n line-height: 22px;\n margin: 0 0 15px 0;\n max-width: 65em;\n padding: 0;\n}\n.notice.llms-admin-notice p:last-of-type {\n margin-bottom: 0;\n}\n\n.llms-button-action.small .dashicons,\n.llms-button-danger.small .dashicons,\n.llms-button-primary.small .dashicons,\n.llms-button-secondary.small .dashicons {\n font-size: 13px;\n height: 13px;\n width: 13px;\n}\n.llms-button-action:hover,\n.llms-button-danger:hover,\n.llms-button-primary:hover,\n.llms-button-secondary:hover {\n box-shadow: none;\n}\n\na.llms-view-as {\n line-height: 2;\n margin-right: 8px;\n}\n\n.llms-image-field-preview {\n max-height: 80px;\n vertical-align: middle;\n width: auto;\n}\n\n.llms-image-field-remove.hidden {\n display: none;\n}\n\n.llms-log-viewer {\n background: #fff;\n border: 1px solid #e5e5e5;\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);\n margin: 20px 0;\n padding: 25px;\n}\n.llms-log-viewer pre {\n font-family: monospace;\n margin: 0;\n padding: 0;\n white-space: pre-wrap;\n}\n\n.llms-status--tools .llms-table {\n background: #fff;\n border: 1px solid #e5e5e5;\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);\n}\n.llms-status--tools .llms-table td, .llms-status--tools .llms-table th {\n padding: 10px;\n vertical-align: top;\n}\n.llms-status--tools .llms-table th {\n width: 28%;\n}\n.llms-status--tools .llms-table p {\n margin: 0 0 10px;\n}\n\n.llms-error {\n color: #bb231c;\n font-style: italic;\n}\n\n.llms-rating-stars {\n color: #ffb900;\n text-decoration: none;\n}\n\n@media screen and (max-width: 782px) {\n .llms-header {\n top: 46px;\n }\n .llms-header .llms-inside-wrap {\n flex-direction: column;\n gap: 20px;\n }\n .llms-header .llms-inside-wrap .lifterlms-logo {\n align-self: center;\n flex: inherit;\n max-height: initial;\n max-width: 200px;\n }\n .llms-header .llms-inside-wrap .llms-meta {\n column-gap: 10px;\n }\n}\n.llms-table-wrap {\n position: relative;\n}\n\n.llms-table-header {\n padding: 0;\n}\n.llms-table-header:before, .llms-table-header:after {\n content: \" \";\n display: table;\n}\n.llms-table-header:after {\n clear: both;\n}\n.llms-table-header h2 {\n font-size: 20px;\n padding: 0;\n display: inline-block;\n line-height: 1.5;\n margin: 0 0 20px 0;\n vertical-align: middle;\n}\n.llms-table-header .llms-table-search,\n.llms-table-header .llms-table-filters {\n float: right;\n padding-left: 10px;\n}\n.llms-table-header .llms-table-search input {\n margin: 0;\n padding: 0 8px;\n}\n\n.llms-table {\n border: 1px solid #c3c4c7;\n border-collapse: collapse;\n width: 100%;\n}\n.llms-table a:not(.small) {\n color: #466dd8;\n}\n.llms-table a:not(.small):hover {\n color: #2b55cb;\n}\n.llms-table td, .llms-table th {\n border-bottom: 1px solid #c3c4c7;\n padding: 10px 12px;\n text-align: center;\n}\n.llms-table td.expandable.closed, .llms-table th.expandable.closed {\n display: none;\n}\n.llms-table td .llms-button-primary,\n.llms-table td .llms-button-secondary,\n.llms-table td .llms-button-action,\n.llms-table td .llms-button-danger, .llms-table th .llms-button-primary,\n.llms-table th .llms-button-secondary,\n.llms-table th .llms-button-action,\n.llms-table th .llms-button-danger {\n display: inline-block;\n}\n.llms-table tr.llms-quiz-pending td {\n font-weight: 700;\n}\n.llms-table thead th,\n.llms-table tfoot th {\n background-color: #FFF;\n font-weight: 700;\n}\n.llms-table thead th a.llms-sortable,\n.llms-table tfoot th a.llms-sortable {\n padding-right: 16px;\n position: relative;\n text-decoration: none;\n width: 100%;\n}\n.llms-table thead th a.llms-sortable.active[data-order=DESC] .asc,\n.llms-table tfoot th a.llms-sortable.active[data-order=DESC] .asc {\n opacity: 1;\n}\n.llms-table thead th a.llms-sortable.active[data-order=ASC] .desc,\n.llms-table tfoot th a.llms-sortable.active[data-order=ASC] .desc {\n opacity: 1;\n}\n.llms-table thead th a.llms-sortable:hover[data-order=DESC] .asc,\n.llms-table tfoot th a.llms-sortable:hover[data-order=DESC] .asc {\n opacity: 0;\n}\n.llms-table thead th a.llms-sortable:hover[data-order=DESC] .desc,\n.llms-table tfoot th a.llms-sortable:hover[data-order=DESC] .desc {\n opacity: 1;\n}\n.llms-table thead th a.llms-sortable:hover[data-order=ASC] .asc,\n.llms-table tfoot th a.llms-sortable:hover[data-order=ASC] .asc {\n opacity: 1;\n}\n.llms-table thead th a.llms-sortable:hover[data-order=ASC] .desc,\n.llms-table tfoot th a.llms-sortable:hover[data-order=ASC] .desc {\n opacity: 0;\n}\n.llms-table thead th a.llms-sortable .dashicons,\n.llms-table tfoot th a.llms-sortable .dashicons {\n color: #444;\n font-size: 16px;\n height: 16px;\n opacity: 0;\n position: absolute;\n width: 16px;\n}\n.llms-table tfoot th {\n border-bottom: none;\n}\n.llms-table tfoot th .llms-table-export {\n float: left;\n}\n.llms-table tfoot th .llms-table-export .llms-table-progress {\n background: #efefef;\n display: none;\n margin-left: 8px;\n vertical-align: middle;\n width: 100px;\n}\n.llms-table tfoot th .llms-clear-resumable-attempts {\n float: left;\n}\n.llms-table tfoot th .llms-table-pagination {\n float: right;\n}\n.llms-table.zebra tbody tr:nth-child(even) th, .llms-table.zebra tbody tr:nth-child(even) td {\n background-color: #fff;\n}\n.llms-table.zebra tbody tr:nth-child(odd) th, .llms-table.zebra tbody tr:nth-child(odd) td {\n background-color: #f6f7f7;\n}\n.llms-table.text-left td, .llms-table.text-left th {\n text-align: left;\n}\n.llms-table.size-large td, .llms-table.size-large th {\n font-size: 14px;\n padding: 10px 12px;\n}\n.llms-table .llms-drag-handle {\n color: #777;\n cursor: pointer;\n -webkit-transition: color 0.4s ease;\n transition: color 0.4s ease;\n}\n.llms-table .llms-action-icon {\n color: #777;\n text-decoration: none;\n}\n.llms-table .llms-action-icon .tooltip {\n cursor: pointer;\n}\n.llms-table .llms-action-icon:hover {\n color: #466dd8;\n}\n.llms-table .llms-action-icon.danger:hover {\n color: #bb231c;\n}\n.llms-table .llms-table-page-count {\n font-size: 12px;\n padding: 0 5px;\n}\n\n.llms-table-progress {\n text-align: center;\n}\n.llms-table-progress .llms-table-progress-bar {\n background: #eee;\n border-radius: 10px;\n height: 16px;\n overflow: hidden;\n position: relative;\n}\n.llms-table-progress .llms-table-progress-bar .llms-table-progress-inner {\n background: #466dd8;\n height: 100%;\n transition: width 0.2s ease;\n}\n.llms-table-progress .llms-table-progress-text {\n color: #466dd8;\n font-size: 12px;\n font-weight: 700;\n line-height: 16px;\n}\n\n.llms-table.llms-gateway-table .status .fa,\n.llms-table.llms-integrations-table .status .fa {\n color: #466dd8;\n font-size: 22px;\n}\n.llms-table.llms-gateway-table .sort,\n.llms-table.llms-integrations-table .sort {\n cursor: move;\n text-align: center;\n width: 10px;\n}\n\n.llms-gb-table-notifications th, .llms-gb-table-notifications td {\n text-align: left;\n}\n\n.llms-order-note .llms-order-note-content {\n background: #efefef;\n margin-bottom: 10px;\n padding: 10px;\n position: relative;\n}\n.llms-order-note .llms-order-note-content:after {\n border-style: solid;\n border-color: #efefef transparent;\n border-width: 10px 10px 0 0;\n bottom: -10px;\n content: \"\";\n display: block;\n height: 0;\n left: 20px;\n position: absolute;\n width: 0;\n}\n.llms-order-note .llms-order-note-content p {\n font-size: 13px;\n margin: 0;\n line-height: 1.5;\n}\n.llms-order-note .llms-order-note-meta {\n color: #999;\n font-size: 11px;\n margin-left: 10px;\n}\n\n.llms-mb-list label {\n font-size: 15px;\n font-weight: 700;\n line-height: 1.5;\n display: block;\n width: 100%;\n}\n.llms-mb-list .description {\n margin-bottom: 8px;\n}\n.llms-mb-list .input-full {\n width: 100%;\n}\n\n#poststuff .llms-metabox h2, #poststuff .llms-metabox h3, #poststuff .llms-metabox h4, #poststuff .llms-metabox h6 {\n margin: 0;\n padding: 0;\n}\n#poststuff .llms-metabox h2 {\n font-size: 18px;\n font-weight: 700;\n}\n#poststuff .llms-metabox h3 {\n color: #1e1e1e;\n font-size: 16px;\n}\n#poststuff .llms-metabox h4 {\n color: #1e1e1e;\n font-size: 16px;\n line-height: 1.5;\n padding: 0;\n margin: 0;\n}\n#poststuff .llms-metabox h4:not(.llms-collapsible-body h4:first-of-type) {\n margin-top: 20px;\n}\n#poststuff .llms-metabox .llms-transaction-test-mode {\n background: #ffffd7;\n font-style: italic;\n left: 0;\n padding: 2px;\n position: absolute;\n right: 0;\n top: 0;\n text-align: center;\n}\n#poststuff .llms-metabox a.llms-editable,\n#poststuff .llms-metabox .llms-metabox-icon,\n#poststuff .llms-metabox button.llms-editable {\n color: #999;\n text-decoration: none;\n}\n#poststuff .llms-metabox a.llms-editable:hover,\n#poststuff .llms-metabox .llms-metabox-icon:hover,\n#poststuff .llms-metabox button.llms-editable:hover {\n color: #466dd8;\n}\n#poststuff .llms-metabox button.llms-editable {\n border: none;\n background: none;\n cursor: pointer;\n padding: 0;\n vertical-align: top;\n}\n#poststuff .llms-metabox h4 button.llms-editable {\n float: right;\n}\n#poststuff .llms-metabox .llms-table {\n margin-top: 10px;\n}\n#poststuff .llms-metabox button.llms-button-primary {\n border-radius: 8px;\n font-size: 16px;\n font-weight: 700;\n height: auto;\n}\n\n.llms-metabox-section {\n background: #fff;\n margin-top: 25px;\n position: relative;\n /* Fixes to tighten the space between tinymce editor and label */\n}\n.llms-metabox-section.no-top-margin {\n margin-top: 0;\n}\n.llms-metabox-section .llms-metabox-field {\n margin: 5px 0;\n position: relative;\n}\n.llms-metabox-section .llms-metabox-field label {\n color: #1e1e1e;\n display: block;\n margin-bottom: 5px;\n font-size: 14px;\n font-weight: 400;\n}\n.llms-metabox-section .llms-metabox-field select,\n.llms-metabox-section .llms-metabox-field textarea,\n.llms-metabox-section .llms-metabox-field input[type=text],\n.llms-metabox-section .llms-metabox-field input[type=number] {\n width: 100%;\n}\n.llms-metabox-section .llms-metabox-field input.md-text {\n width: 105px;\n}\n.llms-metabox-section .llms-metabox-field input.sm-text {\n width: 45px;\n}\n.llms-metabox-section .llms-metabox-field .llms-datetime-field .llms-date-input {\n width: 95px;\n}\n.llms-metabox-section .llms-metabox-field .llms-datetime-field .llms-time-input {\n width: 45px;\n}\n.llms-metabox-section .llms-metabox-field .llms-datetime-field em {\n font-style: normal;\n padding: 0 3px;\n}\n.llms-metabox-section .llms-metabox-field .select2-container--default .select2-search--inline .select2-search__field {\n min-height: auto;\n}\n.llms-metabox-section .llms-metabox-field .select2-container--default .select2-selection--multiple .select2-selection__rendered li {\n margin-bottom: 0;\n}\n.llms-metabox-section .llms-metabox-field:has(.wp-editor-wrap) label {\n position: relative;\n z-index: 5;\n}\n.llms-metabox-section .llms-metabox-field .wp-editor-wrap {\n margin-top: -30px;\n}\n\n.llms-collapsible {\n background: #fff;\n border: 1px solid #efefef;\n border-radius: 6px;\n box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.08);\n display: block;\n margin: 0;\n padding: 0;\n position: relative;\n text-align: center;\n margin-top: 0;\n}\n.llms-collapsible:last-child {\n margin-bottom: 0;\n}\n.llms-collapsible.opened .llms-collapsible-header .dashicons-arrow-down {\n display: none;\n}\n.llms-collapsible.opened .llms-collapsible-header .dashicons-arrow-up {\n display: inline;\n}\n.llms-collapsible .llms-collapsible-header {\n padding: 15px;\n}\n.llms-collapsible .llms-collapsible-header [class^=d-] {\n align-items: center;\n display: flex;\n gap: 5px;\n}\n.llms-collapsible .llms-collapsible-header .d-right {\n justify-content: flex-end;\n padding-right: 0;\n}\n.llms-collapsible .llms-collapsible-header h3 {\n color: #1e1e1e;\n display: inline;\n margin: 0;\n font-size: 16px;\n font-weight: 700;\n}\n.llms-collapsible .llms-collapsible-header h3 small {\n font-weight: 400;\n}\n.llms-collapsible .llms-collapsible-header .dashicons-arrow-up {\n display: inline;\n}\n.llms-collapsible .llms-collapsible-header .dashicons-arrow-up {\n display: none;\n}\n.llms-collapsible .llms-collapsible-header a {\n text-decoration: none;\n}\n.llms-collapsible .llms-collapsible-header .dashicons {\n color: #1e1e1e;\n cursor: pointer;\n transition: color 0.4s ease;\n}\n.llms-collapsible .llms-collapsible-header .dashicons:hover {\n color: #466dd8;\n}\n.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning:hover, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-trash:hover, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-no:hover {\n color: #bb231c;\n}\n.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning.medium-danger, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning.medium-danger:hover {\n color: #c05621;\n}\n.llms-collapsible .llms-collapsible-body {\n display: none;\n padding: 15px;\n}\n\n._llms_instructors_data.repeater .llms-repeater-rows .llms-repeater-row:first-child .llms-repeater-remove {\n display: none;\n}\n._llms_instructors_data.repeater .llms-mb-list {\n padding: 0 5px !important;\n}\n\n.post-type-llms_order #post-body-content {\n display: none;\n}\n\n#lifterlms-order-details .handlediv,\n#lifterlms-order-details .handlediv.button-link,\n#lifterlms-order-details .postbox-header {\n display: none;\n}\n#lifterlms-order-details .inside {\n padding: 20px;\n margin-top: 0;\n}\n\n.llms-table tbody tr.llms-txn-failed td {\n background-color: rgba(187, 35, 28, 0.5);\n border-bottom-color: rgba(187, 35, 28, 0.5);\n}\n\n.llms-table tbody tr.llms-txn-refunded td {\n background-color: rgba(255, 165, 0, 0.5);\n border-bottom-color: rgba(255, 165, 0, 0.5);\n}\n\n.llms-txn-refund-form .llms-metabox-section,\n.llms-manual-txn-form .llms-metabox-section {\n margin-top: 0;\n}\n.llms-txn-refund-form .llms-metabox-field,\n.llms-manual-txn-form .llms-metabox-field {\n text-align: right;\n}\n.llms-txn-refund-form .llms-metabox-field input[type=number],\n.llms-manual-txn-form .llms-metabox-field input[type=number] {\n max-width: 100px;\n}\n.llms-txn-refund-form .llms-metabox-field input[type=text],\n.llms-manual-txn-form .llms-metabox-field input[type=text] {\n max-width: 340px;\n}\n\n.llms-manual-txn-form {\n background-color: #eaeaea;\n}\n.llms-manual-txn-form .llms-metabox-section {\n background-color: #eaeaea;\n}\n\n#llms-remaining-edit {\n display: none;\n}\n\n.llms-remaining-edit--content label, .llms-remaining-edit--content span, .llms-remaining-edit--content textarea {\n display: block;\n}\n.llms-remaining-edit--content label {\n margin-bottom: 20px;\n}\n.llms-remaining-edit--content textarea, .llms-remaining-edit--content input {\n width: 100%;\n}\n\n.submitbox .llms-mb-section,\n.llms-award-engagement-submitbox .llms-mb-list {\n margin-bottom: 12px;\n}\n.submitbox .llms-mb-section:last-of-type,\n.llms-award-engagement-submitbox .llms-mb-list:last-of-type {\n margin-bottom: 0;\n}\n.sync-action:before, .submitbox .llms-mb-section.student-info:before, .submitbox .llms-mb-section.post_author_override label:before,\n.llms-award-engagement-submitbox .llms-mb-list.student-info:before,\n.llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before {\n font: normal 20px/1 dashicons;\n speak: never;\n display: inline-block;\n margin-left: -1px;\n padding-right: 3px;\n vertical-align: top;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n position: relative;\n top: -1px;\n color: #8c8f94;\n}\nbody:not(.admin-color-fresh) .sync-action:before, body:not(.admin-color-fresh) .submitbox .llms-mb-section.student-info:before, body:not(.admin-color-fresh) .submitbox .llms-mb-section.post_author_override label:before,\nbody:not(.admin-color-fresh) .llms-award-engagement-submitbox .llms-mb-list.student-info:before,\nbody:not(.admin-color-fresh) .llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before {\n color: currentColor;\n}\n\n.submitbox .llms-mb-section.student-info:before, .submitbox .llms-mb-section.post_author_override label:before,\n.llms-award-engagement-submitbox .llms-mb-list.student-info:before,\n.llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before {\n content: \"\\f110\";\n}\n.sync-action:before {\n content: \"\\f113\";\n color: white;\n}\n\n.submitbox .llms-mb-section.post_author_override label,\n.llms-award-engagement-submitbox .llms-mb-list.post_author_override label {\n display: inline-block;\n width: auto;\n}\n\n.llms-metabox > p:first-child {\n margin-top: 0;\n}\n.llms-metabox #llms-new-access-plan-model {\n display: none;\n}\n.llms-metabox .llms-access-plans {\n color: #1e1e1e;\n}\n.llms-metabox .llms-access-plans > .llms-no-plans-msg {\n display: none;\n}\n.llms-metabox .llms-access-plans > .llms-no-plans-msg .notice {\n margin-right: 0;\n margin-left: 0;\n}\n.llms-metabox .llms-access-plans > .llms-no-plans-msg:last-child {\n display: block;\n}\n.llms-metabox .llms-access-plans.dragging {\n background: #efefef;\n box-shadow: inset 0 0 0 1px #e5e5e5;\n}\n.llms-metabox .llms-access-plans .llms-spinning {\n z-index: 1;\n}\n.llms-metabox .llms-access-plans .llms-invalid {\n border-color: #bb231c;\n}\n.llms-metabox .llms-access-plans .llms-invalid .dashicons-warning {\n display: inline;\n}\n.llms-metabox .llms-access-plans .llms-needs-attention .dashicons-warning.medium-danger {\n display: inline;\n}\n.llms-metabox .llms-access-plans .dashicons-warning {\n display: none;\n}\n.llms-metabox .llms-access-plan {\n margin-bottom: 20px;\n text-align: left;\n}\n.llms-metabox .llms-access-plan [data-tip]:before {\n text-align: center;\n}\n.llms-metabox .llms-access-plan .llms-plan-link,\n.llms-metabox .llms-access-plan [data-controller] {\n display: none;\n}\n.llms-metabox .llms-access-plan:hover .llms-plan-link, .llms-metabox .llms-access-plan.opened .llms-plan-link {\n display: inline-block;\n}\n.llms-metabox .llms-access-plan .llms-metabox-field {\n margin: 15px 0;\n}\n.llms-metabox .llms-access-plan .llms-required {\n color: #bb231c;\n margin-left: 3px;\n}\n.llms-metabox .llms-access-plan .notice {\n margin-left: 0;\n}\n\n.llms-metabox-students .llms-table tr .name {\n text-align: left;\n}\n.llms-metabox-students .llms-add-student:hover {\n color: #4d8d3c;\n}\n.llms-metabox-students .llms-remove-student:hover {\n color: #bb231c;\n}\n\n.llms-mb-container .tab-content ul:not(.select2-selection__rendered).llms-mb-repeater-fields > li.llms-mb-list {\n border-bottom: none;\n padding: 0 0 10px;\n}\n\n.llms-mb-list.repeater .llms-repeater-rows {\n position: relative;\n margin-top: 10px;\n min-height: 10px;\n}\n.llms-mb-list.repeater .llms-repeater-rows.dragging {\n background: #efefef;\n box-shadow: inset 0 0 0 1px #e5e5e5;\n}\n.llms-mb-list.repeater .llms-repeater-row {\n background: #fff;\n}\n.llms-mb-list.repeater .llms-mb-repeater-footer {\n text-align: right;\n margin-top: 20px;\n}\n.llms-mb-list.repeater .tmce-active .wp-editor-area {\n color: #32373c;\n}\n\n.llms-builder-launcher p {\n margin-top: 0;\n}\n.llms-builder-launcher ol {\n margin-top: -6px;\n}\n.llms-builder-launcher .llms-button-primary {\n box-sizing: border-box;\n}\n\n.wp-list-table .llms-status {\n border-radius: 6px;\n display: inline-block;\n font-size: 13px;\n font-weight: 700;\n line-height: 1.4;\n padding: 2px 6px;\n vertical-align: middle;\n}\n.wp-list-table .llms-status.llms-size--large {\n font-size: 105%;\n padding: 6px 12px;\n}\n.wp-list-table .llms-status.llms-active, .wp-list-table .llms-status.llms-completed, .wp-list-table .llms-status.llms-pass, .wp-list-table .llms-status.llms-txn-succeeded {\n color: #4d8d3c;\n background-color: rgba(77, 141, 60, 0.15);\n}\n.wp-list-table .llms-status.llms-fail, .wp-list-table .llms-status.llms-failed, .wp-list-table .llms-status.llms-expired, .wp-list-table .llms-status.llms-cancelled, .wp-list-table .llms-status.llms-txn-failed {\n color: #bb231c;\n background-color: rgba(187, 35, 28, 0.15);\n}\n.wp-list-table .llms-status.llms-incomplete, .wp-list-table .llms-status.llms-on-hold, .wp-list-table .llms-status.llms-pending, .wp-list-table .llms-status.llms-pending-cancel, .wp-list-table .llms-status.llms-refunded, .wp-list-table .llms-status.llms-txn-pending, .wp-list-table .llms-status.llms-txn-refunded {\n color: #c05621;\n background-color: rgba(192, 86, 33, 0.15);\n}\n\n#lifterlms-order-transactions .llms-table tfoot th {\n text-align: right;\n}\n\n.llms-post-table-post-filter {\n display: inline-block;\n margin-right: 6px;\n max-width: 100%;\n width: 220px;\n}\n\n.llms-nav-tab-wrapper {\n background: #466dd8;\n margin: 20px 0;\n}\n.llms-nav-tab-wrapper.llms-nav-secondary {\n background: #e1e1e1;\n}\n.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item {\n margin: 0;\n}\n.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover, .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {\n background: #cdcdcd;\n}\n.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link {\n color: #414141;\n font-size: 15px;\n padding: 8px 14px;\n}\n.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link .dashicons {\n font-size: 15px;\n height: 15px;\n width: 15px;\n}\n.llms-nav-tab-wrapper.llms-nav-text {\n background: inherit;\n}\n.llms-nav-tab-wrapper.llms-nav-text .llms-nav-items {\n padding-left: 0;\n}\n.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item {\n background: inherit;\n color: #646970;\n}\n.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item:last-child:after {\n display: none;\n}\n.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item:after {\n content: \"|\";\n display: inline-block;\n margin: 0 8px 0 6px;\n}\n.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item .llms-nav-link:hover {\n background: inherit;\n color: #466dd8;\n}\n.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item.llms-active .llms-nav-link {\n background: inherit;\n color: #000;\n font-weight: 600;\n text-decoration: none;\n}\n.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item .llms-nav-link {\n color: #466dd8;\n display: inline-block;\n letter-spacing: 0;\n margin: 0;\n padding: 0;\n text-decoration: underline;\n text-transform: none;\n}\n.llms-nav-tab-wrapper.llms-nav-style-tabs {\n background-color: #1c3987;\n margin: 0;\n padding-top: 8px;\n}\n.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item {\n margin: 0 3px;\n}\n.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item .llms-nav-link {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item.llms-active .llms-nav-link {\n background-color: #FFF;\n color: #466dd8;\n font-weight: 700;\n}\n.llms-nav-tab-wrapper.llms-nav-style-filters {\n background-color: #466dd8;\n border-radius: 12px;\n margin: 20px 0;\n overflow: hidden;\n padding: 0;\n}\n.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding-left: 0;\n}\n@media only screen and (min-width: 782px) {\n .llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items {\n flex-direction: row;\n }\n}\n.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items .llms-nav-item {\n float: none;\n}\n.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items .llms-nav-item .llms-nav-link {\n padding: 14px;\n}\n.llms-nav-tab-wrapper .llms-nav-items {\n margin: 0;\n padding-left: 10px;\n}\n.llms-nav-tab-wrapper .llms-nav-items:before, .llms-nav-tab-wrapper .llms-nav-items:after {\n content: \" \";\n display: table;\n}\n.llms-nav-tab-wrapper .llms-nav-items:after {\n clear: both;\n}\n.llms-nav-tab-wrapper .llms-nav-item {\n margin: 0;\n}\n.llms-nav-tab-wrapper .llms-nav-item .llms-nav-link:hover {\n background: #466dd8;\n}\n.llms-nav-tab-wrapper .llms-nav-item.llms-active .llms-nav-link {\n background: #1c3987;\n}\n.llms-nav-tab-wrapper .llms-nav-item.llms-active .llms-nav-link {\n font-weight: 400;\n}\n@media only screen and (min-width: 768px) {\n .llms-nav-tab-wrapper .llms-nav-item {\n float: left;\n }\n .llms-nav-tab-wrapper .llms-nav-item.llms-nav-item-right {\n float: right;\n }\n}\n.llms-nav-tab-wrapper .llms-nav-link {\n color: #fff;\n cursor: pointer;\n display: block;\n font-weight: 400;\n font-size: 15px;\n padding: 9px 18px;\n text-align: center;\n text-decoration: none;\n transition: all 0.3s ease;\n}\n\n#llms-options-page-contents h2 {\n color: #999;\n font-weight: 500;\n letter-spacing: 2px;\n border-bottom: 1px solid #999;\n}\n\n.llms-reporting.wrap .llms-options-page-contents .llms-nav-tab-wrapper.llms-nav-secondary {\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n margin: 0;\n padding: 0;\n}\n.llms-reporting.wrap .llms-stab-title {\n color: #1c3987;\n font-size: 36px;\n font-weight: 300;\n margin-bottom: 20px;\n}\n.llms-reporting.wrap td.id a {\n text-decoration: none;\n}\n.llms-reporting.wrap th.id, .llms-reporting.wrap td.id,\n.llms-reporting.wrap th.name, .llms-reporting.wrap td.name,\n.llms-reporting.wrap th.registered, .llms-reporting.wrap td.registered,\n.llms-reporting.wrap th.last_seen, .llms-reporting.wrap td.last_seen,\n.llms-reporting.wrap th.overall_progress, .llms-reporting.wrap td.overall_progress,\n.llms-reporting.wrap th.title, .llms-reporting.wrap td.title,\n.llms-reporting.wrap th.course, .llms-reporting.wrap td.course,\n.llms-reporting.wrap th.lesson, .llms-reporting.wrap td.lesson {\n text-align: left;\n}\n.llms-reporting.wrap td.section-title {\n background: #eaeaea;\n text-align: left;\n font-weight: 700;\n padding: 16px 4px;\n}\n.llms-reporting.wrap td.questions-table {\n text-align: left;\n}\n.llms-reporting.wrap td.questions-table .correct,\n.llms-reporting.wrap td.questions-table .question,\n.llms-reporting.wrap td.questions-table .selected {\n text-align: left;\n max-width: 300px;\n}\n.llms-reporting.wrap td.questions-table .correct img,\n.llms-reporting.wrap td.questions-table .question img,\n.llms-reporting.wrap td.questions-table .selected img {\n height: auto;\n max-width: 64px;\n}\n.llms-reporting.wrap table.quiz-attempts {\n margin-bottom: 40px;\n}\n.llms-reporting.wrap.tab--students .llms-options-page-contents #llms-award-certificate-wrapper .components-button.is-secondary {\n background: #e1e1e1;\n border-radius: 8px;\n box-shadow: none;\n color: #414141;\n font-size: 13px;\n font-weight: 700;\n height: auto;\n padding: 8px 14px;\n}\n.llms-reporting.wrap.tab--enrollments .llms-nav-tab-wrapper.llms-nav-secondary, .llms-reporting.wrap.tab--sales .llms-nav-tab-wrapper.llms-nav-secondary {\n margin-bottom: 0;\n}\n.llms-reporting.wrap.tab--enrollments .llms-options-page-contents, .llms-reporting.wrap.tab--sales .llms-options-page-contents {\n box-shadow: none;\n background: none;\n margin-top: 20px;\n padding: 0;\n}\n.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form {\n align-items: center;\n align-self: center;\n color: #FFF;\n display: flex;\n font-size: 13px;\n gap: 5px;\n}\n.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form label, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form label {\n font-weight: 700;\n}\n.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form input, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form input {\n border: 0;\n font-size: 13px;\n margin: 0;\n padding: 0 4px;\n vertical-align: middle;\n width: 110px;\n}\n.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form .select2-container input, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form .select2-container input {\n width: 100% !important;\n}\n.llms-reporting.wrap.tab--enrollments .button.small, .llms-reporting.wrap.tab--sales .button.small {\n height: 23px;\n line-height: 23px;\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters, .llms-reporting.wrap.tab--sales .llms-analytics-filters {\n display: none;\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-inside-wrap, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-inside-wrap {\n background-color: #FFF;\n background-color: #FFF;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n margin: -20px 10px 20px 10px;\n padding: 20px;\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-items, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-items {\n display: flex;\n flex-direction: column;\n gap: 20px;\n justify-content: space-between;\n margin: 0;\n}\n@media only screen and (min-width: 782px) {\n .llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-items, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-items {\n flex-direction: row;\n }\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item {\n box-sizing: border-box;\n width: 100%;\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item label, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item label {\n display: block;\n font-weight: 700;\n margin: 0 0 5px 0;\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item .select2-selection__rendered, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item .select2-selection__rendered {\n word-wrap: break-word;\n text-overflow: inherit;\n white-space: normal;\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters p, .llms-reporting.wrap.tab--sales .llms-analytics-filters p {\n margin: 0;\n text-align: right;\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters p .llms-button-primary, .llms-reporting.wrap.tab--sales .llms-analytics-filters p .llms-button-primary {\n display: inline-block;\n}\n.llms-reporting.wrap .llms-reporting-tab.llms-reporting-quiz .llms-table-filter-wrap {\n width: 160px;\n}\n.llms-reporting.wrap .llms-table-header form {\n display: inline;\n}\n.llms-reporting.wrap .llms-table-header .button {\n margin-left: 5px;\n}\n\n.llms-charts-wrapper {\n background-color: #FFF;\n border: 1px solid #dedede;\n border-radius: 12px;\n box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);\n padding: 20px;\n}\n\n.llms-reporting-tab h1, .llms-reporting-tab h2, .llms-reporting-tab h3, .llms-reporting-tab h4, .llms-reporting-tab h5, .llms-reporting-tab h6 {\n margin: 0;\n}\n.llms-reporting-tab h1 a, .llms-reporting-tab h2 a, .llms-reporting-tab h3 a, .llms-reporting-tab h4 a, .llms-reporting-tab h5 a, .llms-reporting-tab h6 a {\n color: #466dd8;\n text-decoration: none;\n}\n.llms-reporting-tab h1 a:hover, .llms-reporting-tab h2 a:hover, .llms-reporting-tab h3 a:hover, .llms-reporting-tab h4 a:hover, .llms-reporting-tab h5 a:hover, .llms-reporting-tab h6 a:hover {\n color: #466dd8;\n}\n.llms-reporting-tab h2 {\n font-size: 22px;\n line-height: 1.5;\n}\n.llms-reporting-tab h2.llms-table-title {\n margin-bottom: 20px;\n}\n.llms-reporting-tab h5 {\n font-size: 15px;\n line-height: 1.5;\n}\n.llms-reporting-tab .llms-reporting-body {\n background-color: #FFF;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n margin: 20px auto;\n padding: 0;\n}\n.llms-reporting-tab .llms-reporting-body .llms-reporting-stab {\n padding: 30px;\n}\n.llms-reporting-tab .llms-reporting-body .llms-reporting-stab .llms-table-header {\n margin: 0;\n}\n.llms-reporting-tab .llms-reporting-body .llms-gb-tab {\n padding: 30px;\n}\n.llms-reporting-tab .llms-reporting-body .llms-reporting-header {\n padding: 30px;\n margin: 0;\n}\n.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-img {\n border-radius: 50%;\n display: inline-block;\n margin-right: 10px;\n overflow: hidden;\n vertical-align: middle;\n}\n.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-img img {\n display: block;\n max-height: 64px;\n width: auto;\n}\n.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-info {\n display: inline-block;\n vertical-align: middle;\n}\n\n.llms-reporting-breadcrumbs {\n margin: 0;\n padding: 0;\n}\n.llms-reporting-breadcrumbs a {\n color: #466dd8;\n font-size: 15px;\n text-decoration: none;\n}\n.llms-reporting-breadcrumbs a:hover {\n color: #2b55cb;\n}\n.llms-reporting-breadcrumbs a:after {\n content: \" > \";\n color: #646970;\n}\n.llms-reporting-breadcrumbs a:last-child {\n color: #000;\n font-weight: 700;\n}\n.llms-reporting-breadcrumbs a:last-child:after {\n display: none;\n}\n\n#llms-students-table .name {\n text-align: left;\n}\n\n.llms-reporting-tab-content {\n display: flex;\n}\n.llms-reporting-tab-content > header:before, .llms-reporting-tab-content > header:after {\n content: \" \";\n display: table;\n}\n.llms-reporting-tab-content > header:after {\n clear: both;\n}\n.llms-reporting-tab-content h3 {\n margin-bottom: 20px;\n}\n.llms-reporting-tab-content .llms-reporting-tab-filter {\n float: right;\n position: relative;\n margin-right: 0.75em;\n width: 180px;\n top: -3px;\n}\n.llms-reporting-tab-content .llms-reporting-tab-main {\n flex: 3;\n max-width: 75%;\n}\n.llms-reporting-tab-content .llms-reporting-tab-side {\n flex: 1;\n margin-left: 20px;\n}\n.llms-reporting-tab-content > .llms-table-wrap {\n flex: 1;\n}\n\n.llms-reporting-widgets:before, .llms-reporting-widgets:after {\n content: \" \";\n display: table;\n}\n.llms-reporting-widgets:after {\n clear: both;\n}\n\n.llms-reporting-widget {\n border-top: 4px solid #466dd8;\n background: #fafafa;\n margin-bottom: 10px;\n padding: 30px;\n}\n.llms-reporting-widget:before, .llms-reporting-widget:after {\n content: \" \";\n display: table;\n}\n.llms-reporting-widget:after {\n clear: both;\n}\n.llms-reporting-widget .fa {\n color: #999;\n float: left;\n font-size: 32px;\n margin-right: 10px;\n}\n.llms-reporting-widget strong {\n color: #333;\n font-size: 20px;\n line-height: 1.2;\n}\n.llms-reporting-widget.llms-reporting-student-address strong {\n line-height: 1.1;\n}\n.llms-reporting-widget sup,\n.llms-reporting-widget .llms-price-currency-symbol {\n font-size: 75%;\n position: relative;\n top: -4px;\n vertical-align: baseline;\n}\n.llms-reporting-widget small {\n font-size: 13px;\n}\n.llms-reporting-widget small.compare {\n margin-left: 5px;\n}\n.llms-reporting-widget small.compare.positive {\n color: #4d8d3c;\n}\n.llms-reporting-widget small.compare.negative {\n color: #bb231c;\n}\n\n.llms-reporting-event {\n border-left: 4px solid #555;\n background: #fafafa;\n font-size: 11px;\n line-height: 1.2;\n margin-bottom: 0.75em;\n padding: 10px;\n}\n.llms-reporting-event:before, .llms-reporting-event:after {\n content: \" \";\n display: table;\n}\n.llms-reporting-event:after {\n clear: both;\n}\n.llms-reporting-event.color--blue {\n border-left-color: #466dd8;\n}\n.llms-reporting-event.color--green, .llms-reporting-event._enrollment_trigger, .llms-reporting-event._is_complete.yes {\n border-left-color: #4d8d3c;\n}\n.llms-reporting-event.color--purple, .llms-reporting-event._status.enrolled {\n border-left-color: #845ef7;\n}\n.llms-reporting-event.color--red, .llms-reporting-event._status.expired, .llms-reporting-event._status.cancelled {\n border-left-color: #bb231c;\n}\n.llms-reporting-event.color--orange, .llms-reporting-event._achievement_earned, .llms-reporting-event._certificate_earned, .llms-reporting-event._email_sent {\n border-left-color: #c05621;\n}\n.llms-reporting-event time {\n color: #888;\n}\n.llms-reporting-event .llms-student-avatar {\n margin-left: 10px;\n float: right;\n}\n.llms-reporting-event a {\n text-decoration: none;\n color: inherit;\n}\n\n@media only screen and (min-width: 782px) {\n .llms-reporting.wrap .llms-options-page-contents .llms-nav-tab-wrapper.llms-nav-secondary {\n margin-left: 0;\n margin-right: 0;\n }\n}\n.llms-quiz-attempt-results {\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question {\n background: #efefef;\n border-radius: 6px;\n margin: 0 0 15px;\n position: relative;\n list-style-type: none;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer {\n color: inherit;\n display: flex;\n gap: 10px;\n justify-content: space-between;\n padding: 15px 35px 15px 15px;\n text-decoration: none;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct, .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect {\n background: rgba(192, 86, 33, 0.2);\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon, .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon {\n background-color: #c05621;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct {\n background: rgba(77, 141, 60, 0.15);\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon {\n background-color: #4d8d3c;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect {\n background: rgba(187, 35, 28, 0.15);\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon {\n background-color: #bb231c;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question pre {\n overflow: auto;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title {\n font-size: 22px;\n margin: 0;\n line-height: 1.4;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points {\n line-height: 1.4;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip {\n position: absolute;\n right: -12px;\n top: -2px;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon {\n color: rgba(255, 255, 255, 0.65);\n border-radius: 50%;\n font-size: 30px;\n height: 40px;\n line-height: 40px;\n text-align: center;\n width: 40px;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main {\n display: none;\n padding: 0 15px 15px;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label {\n font-weight: 700;\n margin: 0 0 10px;\n padding: 0;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers {\n margin: 0;\n padding: 0;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n padding: 0;\n margin: 0 0 0 30px;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child {\n list-style-type: none;\n margin-left: 0;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img {\n height: auto;\n max-width: 200px;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section {\n border-top: 2px solid rgba(255, 255, 255, 0.5);\n margin-top: 20px;\n padding-top: 20px;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child {\n border-top: none;\n margin-top: 0;\n padding-top: 0;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers, .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer, .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n display: inline-block;\n list-style-type: none;\n margin: 0;\n padding: 5px;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed {\n opacity: 0.5;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title {\n font-style: italic;\n font-weight: normal;\n}\n\n.wrap.llms-reporting .llms-inside-wrap,\n.wrap.lifterlms-settings .llms-inside-wrap,\n.wrap.llms-status .llms-inside-wrap {\n box-sizing: border-box;\n margin: 0 auto;\n}\n.wrap.llms-reporting .llms-inside-wrap .llms-nav-text,\n.wrap.lifterlms-settings .llms-inside-wrap .llms-nav-text,\n.wrap.llms-status .llms-inside-wrap .llms-nav-text {\n margin: 0 auto;\n}\n.wrap.llms-reporting .llms-subheader .llms-save,\n.wrap.lifterlms-settings .llms-subheader .llms-save,\n.wrap.llms-status .llms-subheader .llms-save {\n flex: auto;\n text-align: right;\n}\n.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary,\n.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary,\n.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary {\n background-color: #FFF;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n margin: 0 -20px 20px -10px;\n}\n.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items,\n.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items,\n.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {\n padding-left: 0;\n}\n.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover,\n.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover,\n.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover {\n background: #f0f0f1;\n color: #222222;\n}\n.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,\n.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,\n.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {\n background: #fafafa;\n color: #466dd8;\n border-top-color: #466dd8;\n}\n.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,\n.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,\n.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {\n font-weight: 700;\n}\n.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link,\n.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link,\n.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link {\n border-top: 2px solid transparent;\n padding: 14px;\n}\n.wrap.llms-reporting .llms-setting-group,\n.wrap.lifterlms-settings .llms-setting-group,\n.wrap.llms-status .llms-setting-group {\n background-color: #FFF;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n margin: 20px auto;\n padding: 20px;\n}\n.wrap.llms-reporting .llms-setting-group .llms-label,\n.wrap.lifterlms-settings .llms-setting-group .llms-label,\n.wrap.llms-status .llms-setting-group .llms-label {\n border-bottom: 1px solid #efefef;\n font-weight: 700;\n font-size: 20px;\n padding: 20px;\n margin: -20px -20px 20px;\n}\n.wrap.llms-reporting .llms-setting-group .llms-label .llms-button-primary,\n.wrap.lifterlms-settings .llms-setting-group .llms-label .llms-button-primary,\n.wrap.llms-status .llms-setting-group .llms-label .llms-button-primary {\n margin-left: 10px;\n}\n.wrap.llms-reporting .llms-setting-group .llms-help-tooltip .dashicons,\n.wrap.lifterlms-settings .llms-setting-group .llms-help-tooltip .dashicons,\n.wrap.llms-status .llms-setting-group .llms-help-tooltip .dashicons {\n color: #444;\n cursor: help;\n}\n.wrap.llms-reporting .llms-setting-group .form-table,\n.wrap.lifterlms-settings .llms-setting-group .form-table,\n.wrap.llms-status .llms-setting-group .form-table {\n margin: 0;\n}\n.wrap.llms-reporting .llms-setting-group .form-table tr:first-child .llms-subtitle,\n.wrap.lifterlms-settings .llms-setting-group .form-table tr:first-child .llms-subtitle,\n.wrap.llms-status .llms-setting-group .form-table tr:first-child .llms-subtitle {\n margin-top: 0;\n}\n.wrap.llms-reporting .llms-setting-group td[colspan=\"2\"],\n.wrap.lifterlms-settings .llms-setting-group td[colspan=\"2\"],\n.wrap.llms-status .llms-setting-group td[colspan=\"2\"] {\n padding-top: 0;\n padding-left: 0;\n}\n.wrap.llms-reporting .llms-setting-group tr.llms-disabled-field,\n.wrap.lifterlms-settings .llms-setting-group tr.llms-disabled-field,\n.wrap.llms-status .llms-setting-group tr.llms-disabled-field {\n opacity: 0.5;\n pointer-events: none;\n}\n.wrap.llms-reporting .llms-setting-group p,\n.wrap.lifterlms-settings .llms-setting-group p,\n.wrap.llms-status .llms-setting-group p {\n font-size: 14px;\n}\n.wrap.llms-reporting .llms-setting-group input[type=text],\n.wrap.llms-reporting .llms-setting-group input[type=password],\n.wrap.llms-reporting .llms-setting-group input[type=datetime],\n.wrap.llms-reporting .llms-setting-group input[type=datetime-local],\n.wrap.llms-reporting .llms-setting-group input[type=date],\n.wrap.llms-reporting .llms-setting-group input[type=month],\n.wrap.llms-reporting .llms-setting-group input[type=time],\n.wrap.llms-reporting .llms-setting-group input[type=week],\n.wrap.llms-reporting .llms-setting-group input[type=number],\n.wrap.llms-reporting .llms-setting-group input[type=email],\n.wrap.llms-reporting .llms-setting-group input[type=url],\n.wrap.llms-reporting .llms-setting-group input[type=search],\n.wrap.llms-reporting .llms-setting-group input[type=tel],\n.wrap.llms-reporting .llms-setting-group input[type=color],\n.wrap.llms-reporting .llms-setting-group select,\n.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area),\n.wrap.lifterlms-settings .llms-setting-group input[type=text],\n.wrap.lifterlms-settings .llms-setting-group input[type=password],\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime],\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local],\n.wrap.lifterlms-settings .llms-setting-group input[type=date],\n.wrap.lifterlms-settings .llms-setting-group input[type=month],\n.wrap.lifterlms-settings .llms-setting-group input[type=time],\n.wrap.lifterlms-settings .llms-setting-group input[type=week],\n.wrap.lifterlms-settings .llms-setting-group input[type=number],\n.wrap.lifterlms-settings .llms-setting-group input[type=email],\n.wrap.lifterlms-settings .llms-setting-group input[type=url],\n.wrap.lifterlms-settings .llms-setting-group input[type=search],\n.wrap.lifterlms-settings .llms-setting-group input[type=tel],\n.wrap.lifterlms-settings .llms-setting-group input[type=color],\n.wrap.lifterlms-settings .llms-setting-group select,\n.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area),\n.wrap.llms-status .llms-setting-group input[type=text],\n.wrap.llms-status .llms-setting-group input[type=password],\n.wrap.llms-status .llms-setting-group input[type=datetime],\n.wrap.llms-status .llms-setting-group input[type=datetime-local],\n.wrap.llms-status .llms-setting-group input[type=date],\n.wrap.llms-status .llms-setting-group input[type=month],\n.wrap.llms-status .llms-setting-group input[type=time],\n.wrap.llms-status .llms-setting-group input[type=week],\n.wrap.llms-status .llms-setting-group input[type=number],\n.wrap.llms-status .llms-setting-group input[type=email],\n.wrap.llms-status .llms-setting-group input[type=url],\n.wrap.llms-status .llms-setting-group input[type=search],\n.wrap.llms-status .llms-setting-group input[type=tel],\n.wrap.llms-status .llms-setting-group input[type=color],\n.wrap.llms-status .llms-setting-group select,\n.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area) {\n width: 50%;\n}\n.wrap.llms-reporting .llms-setting-group input[type=text].medium,\n.wrap.llms-reporting .llms-setting-group input[type=password].medium,\n.wrap.llms-reporting .llms-setting-group input[type=datetime].medium,\n.wrap.llms-reporting .llms-setting-group input[type=datetime-local].medium,\n.wrap.llms-reporting .llms-setting-group input[type=date].medium,\n.wrap.llms-reporting .llms-setting-group input[type=month].medium,\n.wrap.llms-reporting .llms-setting-group input[type=time].medium,\n.wrap.llms-reporting .llms-setting-group input[type=week].medium,\n.wrap.llms-reporting .llms-setting-group input[type=number].medium,\n.wrap.llms-reporting .llms-setting-group input[type=email].medium,\n.wrap.llms-reporting .llms-setting-group input[type=url].medium,\n.wrap.llms-reporting .llms-setting-group input[type=search].medium,\n.wrap.llms-reporting .llms-setting-group input[type=tel].medium,\n.wrap.llms-reporting .llms-setting-group input[type=color].medium,\n.wrap.llms-reporting .llms-setting-group select.medium,\n.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=text].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=password].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=date].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=month].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=time].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=week].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=number].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=email].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=url].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=search].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=tel].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=color].medium,\n.wrap.lifterlms-settings .llms-setting-group select.medium,\n.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).medium,\n.wrap.llms-status .llms-setting-group input[type=text].medium,\n.wrap.llms-status .llms-setting-group input[type=password].medium,\n.wrap.llms-status .llms-setting-group input[type=datetime].medium,\n.wrap.llms-status .llms-setting-group input[type=datetime-local].medium,\n.wrap.llms-status .llms-setting-group input[type=date].medium,\n.wrap.llms-status .llms-setting-group input[type=month].medium,\n.wrap.llms-status .llms-setting-group input[type=time].medium,\n.wrap.llms-status .llms-setting-group input[type=week].medium,\n.wrap.llms-status .llms-setting-group input[type=number].medium,\n.wrap.llms-status .llms-setting-group input[type=email].medium,\n.wrap.llms-status .llms-setting-group input[type=url].medium,\n.wrap.llms-status .llms-setting-group input[type=search].medium,\n.wrap.llms-status .llms-setting-group input[type=tel].medium,\n.wrap.llms-status .llms-setting-group input[type=color].medium,\n.wrap.llms-status .llms-setting-group select.medium,\n.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).medium {\n width: 30%;\n}\n.wrap.llms-reporting .llms-setting-group input[type=text].small,\n.wrap.llms-reporting .llms-setting-group input[type=password].small,\n.wrap.llms-reporting .llms-setting-group input[type=datetime].small,\n.wrap.llms-reporting .llms-setting-group input[type=datetime-local].small,\n.wrap.llms-reporting .llms-setting-group input[type=date].small,\n.wrap.llms-reporting .llms-setting-group input[type=month].small,\n.wrap.llms-reporting .llms-setting-group input[type=time].small,\n.wrap.llms-reporting .llms-setting-group input[type=week].small,\n.wrap.llms-reporting .llms-setting-group input[type=number].small,\n.wrap.llms-reporting .llms-setting-group input[type=email].small,\n.wrap.llms-reporting .llms-setting-group input[type=url].small,\n.wrap.llms-reporting .llms-setting-group input[type=search].small,\n.wrap.llms-reporting .llms-setting-group input[type=tel].small,\n.wrap.llms-reporting .llms-setting-group input[type=color].small,\n.wrap.llms-reporting .llms-setting-group select.small,\n.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).small,\n.wrap.lifterlms-settings .llms-setting-group input[type=text].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=password].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=date].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=month].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=time].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=week].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=number].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=email].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=url].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=search].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=tel].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=color].small,\n.wrap.lifterlms-settings .llms-setting-group select.small,\n.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).small,\n.wrap.llms-status .llms-setting-group input[type=text].small,\n.wrap.llms-status .llms-setting-group input[type=password].small,\n.wrap.llms-status .llms-setting-group input[type=datetime].small,\n.wrap.llms-status .llms-setting-group input[type=datetime-local].small,\n.wrap.llms-status .llms-setting-group input[type=date].small,\n.wrap.llms-status .llms-setting-group input[type=month].small,\n.wrap.llms-status .llms-setting-group input[type=time].small,\n.wrap.llms-status .llms-setting-group input[type=week].small,\n.wrap.llms-status .llms-setting-group input[type=number].small,\n.wrap.llms-status .llms-setting-group input[type=email].small,\n.wrap.llms-status .llms-setting-group input[type=url].small,\n.wrap.llms-status .llms-setting-group input[type=search].small,\n.wrap.llms-status .llms-setting-group input[type=tel].small,\n.wrap.llms-status .llms-setting-group input[type=color].small,\n.wrap.llms-status .llms-setting-group select.small,\n.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).small {\n width: 20%;\n}\n.wrap.llms-reporting .llms-setting-group input[type=text].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=password].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=datetime].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=datetime-local].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=date].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=month].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=time].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=week].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=number].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=email].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=url].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=search].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=tel].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=color].tiny,\n.wrap.llms-reporting .llms-setting-group select.tiny,\n.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=text].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=password].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=date].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=month].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=time].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=week].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=number].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=email].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=url].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=search].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=tel].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=color].tiny,\n.wrap.lifterlms-settings .llms-setting-group select.tiny,\n.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).tiny,\n.wrap.llms-status .llms-setting-group input[type=text].tiny,\n.wrap.llms-status .llms-setting-group input[type=password].tiny,\n.wrap.llms-status .llms-setting-group input[type=datetime].tiny,\n.wrap.llms-status .llms-setting-group input[type=datetime-local].tiny,\n.wrap.llms-status .llms-setting-group input[type=date].tiny,\n.wrap.llms-status .llms-setting-group input[type=month].tiny,\n.wrap.llms-status .llms-setting-group input[type=time].tiny,\n.wrap.llms-status .llms-setting-group input[type=week].tiny,\n.wrap.llms-status .llms-setting-group input[type=number].tiny,\n.wrap.llms-status .llms-setting-group input[type=email].tiny,\n.wrap.llms-status .llms-setting-group input[type=url].tiny,\n.wrap.llms-status .llms-setting-group input[type=search].tiny,\n.wrap.llms-status .llms-setting-group input[type=tel].tiny,\n.wrap.llms-status .llms-setting-group input[type=color].tiny,\n.wrap.llms-status .llms-setting-group select.tiny,\n.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).tiny {\n width: 10%;\n}\n@media only screen and (min-width: 782px) {\n .wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,\n.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,\n.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {\n background: #fff;\n }\n}\n.wrap.llms-reporting #llms-mailhawk-connect,\n.wrap.lifterlms-settings #llms-mailhawk-connect,\n.wrap.llms-status #llms-mailhawk-connect {\n height: auto;\n margin: 0 0 6px;\n position: relative;\n}\n.wrap.llms-reporting #llms-mailhawk-connect .dashicons,\n.wrap.lifterlms-settings #llms-mailhawk-connect .dashicons,\n.wrap.llms-status #llms-mailhawk-connect .dashicons {\n margin: -4px 4px 0 0;\n vertical-align: middle;\n}\n.wrap.llms-reporting #llms-sendwp-connect,\n.wrap.lifterlms-settings #llms-sendwp-connect,\n.wrap.llms-status #llms-sendwp-connect {\n height: auto;\n margin: 0 0 6px;\n position: relative;\n}\n.wrap.llms-reporting #llms-sendwp-connect .fa,\n.wrap.lifterlms-settings #llms-sendwp-connect .fa,\n.wrap.llms-status #llms-sendwp-connect .fa {\n margin-right: 4px;\n}\n\n@media only screen and (min-width: 782px) {\n .wrap.lifterlms-settings .llms-subheader {\n height: 40px;\n position: sticky;\n top: 32px;\n }\n .wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary {\n margin: 0 -20px 20px -22px;\n }\n .wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {\n padding-left: 10px;\n }\n .wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary {\n margin: 0 -20px 20px -22px;\n }\n .wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {\n padding-left: 10px;\n }\n .wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary {\n margin: 0 -20px 20px -22px;\n }\n .wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {\n padding-left: 10px;\n }\n}\n.wrap.llms-dashboard .llms-inside-wrap {\n padding-top: 30px;\n}\n.wrap.llms-dashboard #poststuff h2 {\n padding: 12px 20px;\n}\n.wrap.llms-dashboard .llms-dashboard-activity h2 {\n font-size: 20px;\n font-weight: 700;\n line-height: 1.5;\n margin-top: 0;\n text-align: center;\n}\n.wrap.llms-dashboard .postbox {\n background-color: #FFF;\n border: none;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n}\n.wrap.llms-dashboard .postbox .postbox-header {\n border-bottom-color: #efefef;\n}\n.wrap.llms-dashboard .postbox .inside {\n padding: 20px;\n}\n.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap {\n margin-top: 0;\n}\n.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item {\n margin-top: 0;\n}\n.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item p {\n text-align: left;\n}\n.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item footer.llms-actions {\n padding-top: 0;\n}\n.wrap.llms-dashboard #llms_dashboard_addons p {\n text-align: center;\n}\n.wrap.llms-dashboard #llms_dashboard_addons p .llms-button-primary {\n display: inline-block;\n margin-top: 15px;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links ul {\n list-style: disc;\n margin: 5px 0 0 20px;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links ul li {\n font-size: 15px;\n line-height: 1.5;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links {\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: 30px;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links a {\n display: inline-block;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list h3 {\n margin: 0 0 10px 0;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list ul {\n margin-bottom: 20px;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list ul.llms-checklist {\n list-style: none;\n margin-left: 0;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa {\n text-align: center;\n width: 16px;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa-check {\n color: #008a20;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa-times {\n color: #d63638;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-primary,\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-secondary,\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-action {\n display: block;\n text-align: center;\n}\n@media only screen and (min-width: 782px) {\n .wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links {\n grid-template-columns: 1fr 1fr 1fr;\n }\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: 20px;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links .llms-list h3 {\n margin: 0;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links .llms-list h3 .dashicons {\n color: #AAA;\n}\n@media only screen and (min-width: 782px) {\n .wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links {\n grid-template-columns: 1fr 1fr 1fr 1fr;\n }\n}\n.wrap.llms-dashboard #llms_dashboard_blog ul,\n.wrap.llms-dashboard #llms_dashboard_podcast ul {\n margin: 0;\n}\n.wrap.llms-dashboard #llms_dashboard_blog ul li,\n.wrap.llms-dashboard #llms_dashboard_podcast ul li {\n margin: 0 0 15px 0;\n}\n.wrap.llms-dashboard #llms_dashboard_blog ul li a,\n.wrap.llms-dashboard #llms_dashboard_podcast ul li a {\n display: block;\n}\n.wrap.llms-dashboard #llms_dashboard_blog p,\n.wrap.llms-dashboard #llms_dashboard_podcast p {\n margin: 15px 0;\n text-align: center;\n}\n.wrap.llms-dashboard #llms_dashboard_blog p a,\n.wrap.llms-dashboard #llms_dashboard_podcast p a {\n display: inline-block;\n}\n\n#llms_dashboard_widget .inside {\n margin: 0;\n padding-bottom: 8px;\n}\n#llms_dashboard_widget .llms-dashboard-widget-wrap {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-top: 12px;\n}\n#llms_dashboard_widget .activity-block {\n padding-bottom: 8px;\n border-color: #e8e8e8;\n}\n#llms_dashboard_widget h3 {\n margin-bottom: 0;\n}\n#llms_dashboard_widget .llms-charts-wrapper {\n display: none;\n}\n#llms_dashboard_widget .llms-widget-row {\n display: flex;\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n align-items: stretch;\n padding: 4px 0;\n}\n#llms_dashboard_widget .llms-widget-row:before, #llms_dashboard_widget .llms-widget-row:after {\n display: none;\n}\n#llms_dashboard_widget .llms-widget-1-4 {\n padding: 0;\n flex: 1;\n}\n#llms_dashboard_widget .llms-widget {\n padding: 8px 8px 12px;\n margin: 0;\n border-radius: 6px;\n border: 1px solid #e8e8e8;\n box-shadow: 0px 2px 4px rgb(246, 247, 247);\n height: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: flex-end;\n}\n#llms_dashboard_widget .llms-label {\n font-size: 14px;\n width: 100%;\n align-self: flex-start;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n#llms_dashboard_widget .llms-widget-content {\n font-size: 20px;\n margin: 0;\n}\n#llms_dashboard_widget .llms-widget-info-toggle {\n display: none;\n}\n#llms_dashboard_widget a {\n border: 0;\n}\n#llms_dashboard_widget .subsubsub {\n color: #dcdcde;\n}\n\n.llms-dashboard-widget-feed {\n margin: 0 -12px;\n padding: 0;\n background-color: #f6f7f7;\n}\n.llms-dashboard-widget-feed li {\n margin: 0;\n padding: 8px 12px;\n border-bottom: 1px solid #e8e8e8;\n}\n.llms-dashboard-widget-feed span {\n display: block;\n}\n\n.wrap.llms-resources .llms-inside-wrap {\n padding-top: 30px;\n}\n.wrap.llms-resources #poststuff #post-body.columns-2 {\n margin-right: 350px;\n}\n.wrap.llms-resources #poststuff #post-body.columns-2 #side-sortables {\n width: 330px;\n}\n@media only screen and (max-width: 850px) {\n .wrap.llms-resources #poststuff #post-body.columns-2 #side-sortables {\n width: auto;\n }\n}\n.wrap.llms-resources #poststuff #postbox-container-1 {\n float: right;\n margin-right: -350px;\n width: 330px;\n}\n.wrap.llms-resources #poststuff h2 {\n padding: 12px 20px;\n}\n.wrap.llms-resources #poststuff .postbox {\n background-color: #FFF;\n border: none;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n}\n.wrap.llms-resources #poststuff .postbox .postbox-header {\n border-bottom-color: #efefef;\n}\n.wrap.llms-resources #poststuff .postbox .inside {\n margin: 0;\n padding: 20px;\n}\n.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video p {\n font-size: 15px;\n line-height: 1.5;\n margin: 0 0 40px 0;\n}\n.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container {\n height: 0;\n overflow: hidden;\n padding-top: 30px;\n padding-bottom: 56.25%;\n position: relative;\n}\n.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container iframe,\n.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container object,\n.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container embed {\n left: 0;\n height: 100%;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.wrap.llms-resources #llms_dashboard_getting_started ul {\n margin: 0 0 20px 0;\n}\n.wrap.llms-resources #llms_dashboard_getting_started ul li {\n font-size: 15px;\n line-height: 1.5;\n margin-bottom: 15px;\n}\n.wrap.llms-resources #llms_dashboard_getting_started .llms-button-primary {\n display: block;\n margin-top: auto;\n max-width: 300px;\n text-align: center;\n}\n.wrap.llms-resources #llms_dashboard_resource_links ul {\n list-style: disc;\n margin: 5px 0 0 20px;\n}\n.wrap.llms-resources #llms_dashboard_resource_links ul li {\n font-size: 15px;\n line-height: 1.5;\n}\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links {\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: 60px;\n}\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links a {\n display: inline-block;\n}\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list {\n display: flex;\n flex-direction: column;\n}\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list h3 {\n margin: 0 0 10px 0;\n}\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list h3 .dashicons {\n color: #AAA;\n}\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list ul {\n margin-bottom: 20px;\n}\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-primary,\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-secondary,\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-action {\n display: block;\n margin-top: auto;\n max-width: 300px;\n text-align: center;\n}\n@media only screen and (min-width: 782px) {\n .wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links {\n grid-template-columns: 1fr 1fr 1fr;\n }\n}\n\n.llms-remarks .llms-remarks-field {\n height: 120px;\n width: 100%;\n}\n.llms-remarks input[type=number] {\n width: 60px;\n}\n\nbutton[name=llms_quiz_attempt_action] .save {\n display: none;\n}\nbutton[name=llms_quiz_attempt_action].grading .default {\n display: none;\n}\nbutton[name=llms_quiz_attempt_action].grading .save {\n display: inline;\n}\n\n.llms-form-fields {\n box-sizing: border-box;\n}\n.llms-form-fields * {\n box-sizing: border-box;\n}\n.llms-form-fields.flush .llms-form-field {\n padding: 0 0 20px;\n}\n.llms-form-fields label:not(.llms-field-html label) {\n font-weight: 700;\n}\n.llms-form-fields .wp-block-columns, .llms-form-fields .wp-block-column {\n margin-bottom: 0;\n}\n\n.llms-form-heading {\n padding: 0 10px 10px;\n}\n\n.llms-form-field {\n float: left;\n padding: 0 10px 20px;\n position: relative;\n width: 100%;\n}\n.llms-form-field label:empty:after {\n content: \" \";\n}\n.llms-form-field [type=text],\n.llms-form-field [type=password],\n.llms-form-field [type=email],\n.llms-form-field [type=url],\n.llms-form-field [type=tel],\n.llms-form-field [type=number] {\n background-color: #fefefe;\n background-clip: padding-box;\n border: 1px solid #999;\n border-radius: 6px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1;\n padding: 8px 12px;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n width: 100%;\n}\n.llms-form-field input:focus,\n.llms-form-field input:focus-visible {\n border-color: #6888df;\n outline: thin solid;\n}\n.llms-form-field select {\n -webkit-appearance: none;\n -moz-appearance: none;\n -ms-appearance: none;\n appearance: none;\n background-color: #fefefe;\n border: 1px solid #999;\n border-radius: 6px;\n box-sizing: border-box;\n color: #010101;\n padding: 8px 12px;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 16px;\n cursor: inherit;\n line-height: 1.6;\n z-index: 1;\n outline: none;\n background-repeat: no-repeat;\n background-image: linear-gradient(45deg, transparent 50%, currentcolor 50%), linear-gradient(135deg, currentcolor 50%, transparent 50%);\n background-position: right 15px top 1.3rem, right 10px top 1.3rem;\n background-size: 5px 5px, 5px 5px;\n}\n.llms-form-field select::-ms-expand {\n display: none;\n}\n.llms-form-field select:focus {\n border: 1px solid #6888df;\n outline: thin solid;\n}\n.llms-form-field.valid input[type=date], .llms-form-field.valid input[type=time], .llms-form-field.valid input[type=datetime-local], .llms-form-field.valid input[type=week], .llms-form-field.valid input[type=month], .llms-form-field.valid input[type=text], .llms-form-field.valid input[type=email], .llms-form-field.valid input[type=url], .llms-form-field.valid input[type=password], .llms-form-field.valid input[type=search], .llms-form-field.valid input[type=tel], .llms-form-field.valid input[type=number], .llms-form-field.valid textarea, .llms-form-field.valid select {\n background: rgba(131, 195, 115, 0.3);\n border-color: #83c373;\n}\n.llms-form-field.error input[type=date], .llms-form-field.error input[type=time], .llms-form-field.error input[type=datetime-local], .llms-form-field.error input[type=week], .llms-form-field.error input[type=month], .llms-form-field.error input[type=text], .llms-form-field.error input[type=email], .llms-form-field.error input[type=url], .llms-form-field.error input[type=password], .llms-form-field.error input[type=search], .llms-form-field.error input[type=tel], .llms-form-field.error input[type=number], .llms-form-field.error textarea, .llms-form-field.error select, .llms-form-field.invalid input[type=date], .llms-form-field.invalid input[type=time], .llms-form-field.invalid input[type=datetime-local], .llms-form-field.invalid input[type=week], .llms-form-field.invalid input[type=month], .llms-form-field.invalid input[type=text], .llms-form-field.invalid input[type=email], .llms-form-field.invalid input[type=url], .llms-form-field.invalid input[type=password], .llms-form-field.invalid input[type=search], .llms-form-field.invalid input[type=tel], .llms-form-field.invalid input[type=number], .llms-form-field.invalid textarea, .llms-form-field.invalid select {\n background: rgba(187, 35, 28, 0.3);\n border-color: #bb231c;\n}\n.llms-form-field.llms-visually-hidden-field {\n display: none;\n}\n.llms-form-field.align-right {\n text-align: right;\n}\n@media screen and (min-width: 600px) {\n .llms-form-field.llms-cols-1 {\n width: 8.3333333333%;\n }\n .llms-form-field.llms-cols-2 {\n width: 16.6666666667%;\n }\n .llms-form-field.llms-cols-3 {\n width: 25%;\n }\n .llms-form-field.llms-cols-4 {\n width: 33.3333333333%;\n }\n .llms-form-field.llms-cols-5 {\n width: 41.6666666667%;\n }\n .llms-form-field.llms-cols-6 {\n width: 50%;\n }\n .llms-form-field.llms-cols-7 {\n width: 58.3333333333%;\n }\n .llms-form-field.llms-cols-8 {\n width: 66.6666666667%;\n }\n .llms-form-field.llms-cols-9 {\n width: 75%;\n }\n .llms-form-field.llms-cols-10 {\n width: 83.3333333333%;\n }\n .llms-form-field.llms-cols-11 {\n width: 91.6666666667%;\n }\n .llms-form-field.llms-cols-12 {\n width: 100%;\n }\n}\n.llms-form-field.type-hidden {\n padding: 0;\n}\n.llms-form-field.type-radio input,\n.llms-form-field.type-radio label, .llms-form-field.type-checkbox input,\n.llms-form-field.type-checkbox label {\n display: inline-block;\n width: auto;\n}\n.llms-form-field.type-radio input, .llms-form-field.type-checkbox input {\n margin-right: 10px;\n}\n.llms-form-field.type-radio label + .llms-description, .llms-form-field.type-checkbox label + .llms-description {\n display: block;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio] {\n position: absolute;\n opacity: 0;\n visibility: none;\n}\n.llms-form-field.type-radio:not(.is-group) label:before {\n background: #fafafa;\n background-position: -24px 0;\n background-repeat: no-repeat;\n border-radius: 50%;\n box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.35) 0 0 0 1px;\n content: \"\";\n cursor: pointer;\n display: inline-block;\n height: 22px;\n margin-right: 5px;\n position: relative;\n transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n top: -3px;\n vertical-align: middle;\n width: 22px;\n z-index: 2;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked + label:before {\n transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n background-position: 0 0;\n background-image: radial-gradient(ellipse at center, #466dd8 0%, #466dd8 40%, #fafafa 45%);\n}\n.llms-form-field .llms-input-group {\n margin-top: 5px;\n}\n.llms-form-field .llms-input-group .llms-form-field {\n padding: 0 0 5px 5px;\n}\n.llms-form-field.type-reset button:not(.auto), .llms-form-field.type-button button:not(.auto), .llms-form-field.type-submit button:not(.auto) {\n width: 100%;\n}\n.llms-form-field .llms-description {\n font-size: 14px;\n font-style: italic;\n line-height: 18px;\n}\n.llms-form-field .llms-required {\n color: #bb231c;\n margin-left: 4px;\n}\n.llms-form-field input, .llms-form-field textarea, .llms-form-field select {\n width: 100%;\n margin-bottom: 5px;\n}\n.llms-form-field .select2-container .select2-selection--single {\n height: auto;\n padding: 4px 6px;\n}\n.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow {\n height: 100%;\n}\n\n.llms-password-strength-meter {\n border: 1px solid #dadada;\n display: none;\n font-size: 10px;\n margin-top: -10px;\n padding: 1px;\n position: relative;\n text-align: center;\n}\n.llms-password-strength-meter:before {\n bottom: 0;\n content: \"\";\n left: 0;\n position: absolute;\n top: 0;\n transition: width 0.4s ease;\n}\n.llms-password-strength-meter.mismatch, .llms-password-strength-meter.too-short, .llms-password-strength-meter.very-weak {\n border-color: #e35b5b;\n}\n.llms-password-strength-meter.mismatch:before, .llms-password-strength-meter.too-short:before, .llms-password-strength-meter.very-weak:before {\n background: rgba(227, 91, 91, 0.25);\n width: 25%;\n}\n.llms-password-strength-meter.too-short:before {\n width: 0;\n}\n.llms-password-strength-meter.weak {\n border-color: #f78b53;\n}\n.llms-password-strength-meter.weak:before {\n background: rgba(247, 139, 83, 0.25);\n width: 50%;\n}\n.llms-password-strength-meter.medium {\n border-color: #ffc733;\n}\n.llms-password-strength-meter.medium:before {\n background: rgba(255, 199, 51, 0.25);\n width: 75%;\n}\n.llms-password-strength-meter.strong {\n border-color: #83c373;\n}\n.llms-password-strength-meter.strong:before {\n background: rgba(131, 195, 115, 0.25);\n width: 100%;\n}\n.llms-password-strength-meter + .llms-description {\n display: block;\n}\n\n/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: \"FontAwesome\";\n src: url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");\n src: url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"), url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"), url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"), url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"), url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n\n.fa-border {\n padding: 0.2em 0.25em 0.15em;\n border: solid 0.08em #eeeeee;\n border-radius: 0.1em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left {\n margin-right: 0.3em;\n}\n\n.fa.fa-pull-right {\n margin-left: 0.3em;\n}\n\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n\n.pull-left {\n float: left;\n}\n\n.fa.pull-left {\n margin-right: 0.3em;\n}\n\n.fa.pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n\n.fa-stack-1x {\n line-height: inherit;\n}\n\n.fa-stack-2x {\n font-size: 2em;\n}\n\n.fa-inverse {\n color: #ffffff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n\n.fa-music:before {\n content: \"\\f001\";\n}\n\n.fa-search:before {\n content: \"\\f002\";\n}\n\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n\n.fa-heart:before {\n content: \"\\f004\";\n}\n\n.fa-star:before {\n content: \"\\f005\";\n}\n\n.fa-star-o:before {\n content: \"\\f006\";\n}\n\n.fa-user:before {\n content: \"\\f007\";\n}\n\n.fa-film:before {\n content: \"\\f008\";\n}\n\n.fa-th-large:before {\n content: \"\\f009\";\n}\n\n.fa-th:before {\n content: \"\\f00a\";\n}\n\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n\n.fa-check:before {\n content: \"\\f00c\";\n}\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n\n.fa-power-off:before {\n content: \"\\f011\";\n}\n\n.fa-signal:before {\n content: \"\\f012\";\n}\n\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n\n.fa-home:before {\n content: \"\\f015\";\n}\n\n.fa-file-o:before {\n content: \"\\f016\";\n}\n\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n\n.fa-road:before {\n content: \"\\f018\";\n}\n\n.fa-download:before {\n content: \"\\f019\";\n}\n\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n\n.fa-refresh:before {\n content: \"\\f021\";\n}\n\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n\n.fa-lock:before {\n content: \"\\f023\";\n}\n\n.fa-flag:before {\n content: \"\\f024\";\n}\n\n.fa-headphones:before {\n content: \"\\f025\";\n}\n\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n\n.fa-tag:before {\n content: \"\\f02b\";\n}\n\n.fa-tags:before {\n content: \"\\f02c\";\n}\n\n.fa-book:before {\n content: \"\\f02d\";\n}\n\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n\n.fa-print:before {\n content: \"\\f02f\";\n}\n\n.fa-camera:before {\n content: \"\\f030\";\n}\n\n.fa-font:before {\n content: \"\\f031\";\n}\n\n.fa-bold:before {\n content: \"\\f032\";\n}\n\n.fa-italic:before {\n content: \"\\f033\";\n}\n\n.fa-text-height:before {\n content: \"\\f034\";\n}\n\n.fa-text-width:before {\n content: \"\\f035\";\n}\n\n.fa-align-left:before {\n content: \"\\f036\";\n}\n\n.fa-align-center:before {\n content: \"\\f037\";\n}\n\n.fa-align-right:before {\n content: \"\\f038\";\n}\n\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n\n.fa-list:before {\n content: \"\\f03a\";\n}\n\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n\n.fa-indent:before {\n content: \"\\f03c\";\n}\n\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n\n.fa-pencil:before {\n content: \"\\f040\";\n}\n\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n\n.fa-adjust:before {\n content: \"\\f042\";\n}\n\n.fa-tint:before {\n content: \"\\f043\";\n}\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n\n.fa-arrows:before {\n content: \"\\f047\";\n}\n\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n\n.fa-backward:before {\n content: \"\\f04a\";\n}\n\n.fa-play:before {\n content: \"\\f04b\";\n}\n\n.fa-pause:before {\n content: \"\\f04c\";\n}\n\n.fa-stop:before {\n content: \"\\f04d\";\n}\n\n.fa-forward:before {\n content: \"\\f04e\";\n}\n\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n\n.fa-eject:before {\n content: \"\\f052\";\n}\n\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n\n.fa-ban:before {\n content: \"\\f05e\";\n}\n\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n\n.fa-expand:before {\n content: \"\\f065\";\n}\n\n.fa-compress:before {\n content: \"\\f066\";\n}\n\n.fa-plus:before {\n content: \"\\f067\";\n}\n\n.fa-minus:before {\n content: \"\\f068\";\n}\n\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n\n.fa-gift:before {\n content: \"\\f06b\";\n}\n\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n\n.fa-fire:before {\n content: \"\\f06d\";\n}\n\n.fa-eye:before {\n content: \"\\f06e\";\n}\n\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n\n.fa-plane:before {\n content: \"\\f072\";\n}\n\n.fa-calendar:before {\n content: \"\\f073\";\n}\n\n.fa-random:before {\n content: \"\\f074\";\n}\n\n.fa-comment:before {\n content: \"\\f075\";\n}\n\n.fa-magnet:before {\n content: \"\\f076\";\n}\n\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n\n.fa-retweet:before {\n content: \"\\f079\";\n}\n\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n\n.fa-folder:before {\n content: \"\\f07b\";\n}\n\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n\n.fa-key:before {\n content: \"\\f084\";\n}\n\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n\n.fa-comments:before {\n content: \"\\f086\";\n}\n\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n\n.fa-star-half:before {\n content: \"\\f089\";\n}\n\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n\n.fa-trophy:before {\n content: \"\\f091\";\n}\n\n.fa-github-square:before {\n content: \"\\f092\";\n}\n\n.fa-upload:before {\n content: \"\\f093\";\n}\n\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n\n.fa-phone:before {\n content: \"\\f095\";\n}\n\n.fa-square-o:before {\n content: \"\\f096\";\n}\n\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n\n.fa-twitter:before {\n content: \"\\f099\";\n}\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n\n.fa-github:before {\n content: \"\\f09b\";\n}\n\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n\n.fa-square:before {\n content: \"\\f0c8\";\n}\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n\n.fa-table:before {\n content: \"\\f0ce\";\n}\n\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n\n.fa-money:before {\n content: \"\\f0d6\";\n}\n\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n\n.fa-columns:before {\n content: \"\\f0db\";\n}\n\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n\n.fa-desktop:before {\n content: \"\\f108\";\n}\n\n.fa-laptop:before {\n content: \"\\f109\";\n}\n\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n\n.fa-spinner:before {\n content: \"\\f110\";\n}\n\n.fa-circle:before {\n content: \"\\f111\";\n}\n\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n\n.fa-terminal:before {\n content: \"\\f120\";\n}\n\n.fa-code:before {\n content: \"\\f121\";\n}\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n\n.fa-crop:before {\n content: \"\\f125\";\n}\n\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n\n.fa-question:before {\n content: \"\\f128\";\n}\n\n.fa-info:before {\n content: \"\\f129\";\n}\n\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n\n.fa-microphone:before {\n content: \"\\f130\";\n}\n\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n\n.fa-shield:before {\n content: \"\\f132\";\n}\n\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n\n.fa-rocket:before {\n content: \"\\f135\";\n}\n\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n\n.fa-html5:before {\n content: \"\\f13b\";\n}\n\n.fa-css3:before {\n content: \"\\f13c\";\n}\n\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n\n.fa-ticket:before {\n content: \"\\f145\";\n}\n\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n\n.fa-level-up:before {\n content: \"\\f148\";\n}\n\n.fa-level-down:before {\n content: \"\\f149\";\n}\n\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n\n.fa-compass:before {\n content: \"\\f14e\";\n}\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n\n.fa-gbp:before {\n content: \"\\f154\";\n}\n\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n\n.fa-file:before {\n content: \"\\f15b\";\n}\n\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n\n.fa-youtube:before {\n content: \"\\f167\";\n}\n\n.fa-xing:before {\n content: \"\\f168\";\n}\n\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n\n.fa-adn:before {\n content: \"\\f170\";\n}\n\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n\n.fa-apple:before {\n content: \"\\f179\";\n}\n\n.fa-windows:before {\n content: \"\\f17a\";\n}\n\n.fa-android:before {\n content: \"\\f17b\";\n}\n\n.fa-linux:before {\n content: \"\\f17c\";\n}\n\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n\n.fa-skype:before {\n content: \"\\f17e\";\n}\n\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n\n.fa-trello:before {\n content: \"\\f181\";\n}\n\n.fa-female:before {\n content: \"\\f182\";\n}\n\n.fa-male:before {\n content: \"\\f183\";\n}\n\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n\n.fa-archive:before {\n content: \"\\f187\";\n}\n\n.fa-bug:before {\n content: \"\\f188\";\n}\n\n.fa-vk:before {\n content: \"\\f189\";\n}\n\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n\n.fa-renren:before {\n content: \"\\f18b\";\n}\n\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n\n.fa-slack:before {\n content: \"\\f198\";\n}\n\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n\n.fa-openid:before {\n content: \"\\f19b\";\n}\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n\n.fa-google:before {\n content: \"\\f1a0\";\n}\n\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n\n.fa-language:before {\n content: \"\\f1ab\";\n}\n\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n\n.fa-building:before {\n content: \"\\f1ad\";\n}\n\n.fa-child:before {\n content: \"\\f1ae\";\n}\n\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n\n.fa-database:before {\n content: \"\\f1c0\";\n}\n\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n\n.fa-git:before {\n content: \"\\f1d3\";\n}\n\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n\n.fa-history:before {\n content: \"\\f1da\";\n}\n\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n\n.fa-header:before {\n content: \"\\f1dc\";\n}\n\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n\n.fa-at:before {\n content: \"\\f1fa\";\n}\n\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n\n.fa-bus:before {\n content: \"\\f207\";\n}\n\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n\n.fa-angellist:before {\n content: \"\\f209\";\n}\n\n.fa-cc:before {\n content: \"\\f20a\";\n}\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n\n.fa-diamond:before {\n content: \"\\f219\";\n}\n\n.fa-ship:before {\n content: \"\\f21a\";\n}\n\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n\n.fa-venus:before {\n content: \"\\f221\";\n}\n\n.fa-mars:before {\n content: \"\\f222\";\n}\n\n.fa-mercury:before {\n content: \"\\f223\";\n}\n\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n\n.fa-server:before {\n content: \"\\f233\";\n}\n\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n\n.fa-user-times:before {\n content: \"\\f235\";\n}\n\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n\n.fa-train:before {\n content: \"\\f238\";\n}\n\n.fa-subway:before {\n content: \"\\f239\";\n}\n\n.fa-medium:before {\n content: \"\\f23a\";\n}\n\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n\n.fa-object-group:before {\n content: \"\\f247\";\n}\n\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n\n.fa-clone:before {\n content: \"\\f24d\";\n}\n\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n\n.fa-registered:before {\n content: \"\\f25d\";\n}\n\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n\n.fa-gg:before {\n content: \"\\f260\";\n}\n\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n\n.fa-safari:before {\n content: \"\\f267\";\n}\n\n.fa-chrome:before {\n content: \"\\f268\";\n}\n\n.fa-firefox:before {\n content: \"\\f269\";\n}\n\n.fa-opera:before {\n content: \"\\f26a\";\n}\n\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n\n.fa-contao:before {\n content: \"\\f26d\";\n}\n\n.fa-500px:before {\n content: \"\\f26e\";\n}\n\n.fa-amazon:before {\n content: \"\\f270\";\n}\n\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n\n.fa-industry:before {\n content: \"\\f275\";\n}\n\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n\n.fa-map-o:before {\n content: \"\\f278\";\n}\n\n.fa-map:before {\n content: \"\\f279\";\n}\n\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n\n.fa-edge:before {\n content: \"\\f282\";\n}\n\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n\n.fa-modx:before {\n content: \"\\f285\";\n}\n\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n\n.fa-usb:before {\n content: \"\\f287\";\n}\n\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n\n.fa-percent:before {\n content: \"\\f295\";\n}\n\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n\n.fa-envira:before {\n content: \"\\f299\";\n}\n\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n\n.fa-blind:before {\n content: \"\\f29d\";\n}\n\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}","%cf,\n%clearfix {\n\t&:before,\n\t&:after {\n\t content: \" \";\n\t display: table;\n\t}\n\n\t&:after {\n \tclear: both;\n\t}\n}\n\n\n\n%llms-element {\n\tbackground: $el-background;\n\tbox-shadow: $el-box-shadow;\n\tdisplay: block;\n\tcolor: #212121;\n\tmin-height: 85px;\n\tpadding: 15px;\n\ttext-decoration: none;\n\tposition: relative;\n\ttransition: background .4s ease;\n\n\t&:hover {\n\t\tbackground: $el-background-hover;\n\t}\n}\n",".llms-button-action,\n.llms-button-danger,\n.llms-button-primary,\n.llms-button-secondary {\n\tborder:none;\n\tborder-radius: 8px;\n\tcolor: $color-white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n\tfont-size: 18px;\n\tfont-weight: 700;\n\ttext-decoration: none;\n\ttext-shadow: none;\n\tline-height: 1;\n\tmargin: 0;\n\tmax-width: 100%;\n\tpadding: 12px 24px;\n\tposition: relative;\n\ttransition: all .5s ease;\n\n\t&:disabled {\n\t\topacity: 0.5;\n\t}\n\t&:hover, &:active {\n\t\tcolor: $color-white;\n\t}\n\t&:focus {\n\t\tcolor: $color-white;\n\t}\n\n\t&.auto {\n\t\twidth: auto;\n\t}\n\n\t&.full {\n\t\tdisplay: block;\n\t\ttext-align: center;\n\t\twidth: 100%;\n\t}\n\n\t&.square {\n\t\tpadding: 12px;\n\t}\n\n\t&.small {\n\t\tfont-size: 13px;\n\t\tpadding: 8px 14px;\n\t\t&.square { padding: 8px; }\n\t}\n\n\t&.large {\n\t\tfont-size: 18px;\n\t\tline-height: 1.2;\n\t\tpadding: 16px 32px;\n\t\t&.square { padding: 16px; }\n\t\t.fa {\n\t\t\tleft: -7px;\n\t\t\tposition: relative;\n\t\t}\n\t}\n\n}\n\n/* Fix for cases where link color overrides the button color */\na.llms-button-action,\na.llms-button-danger,\na.llms-button-primary {\n\tcolor: $color-white;\n}\n\n.llms-button-primary {\n\tbackground: $color-brand-blue;\n\t&:hover,\n\t&.clicked {\n\t\tbackground: $color-brand-blue-dark;\n\t}\n\t&:focus,\n\t&:active {\n\t\tbackground: $color-brand-blue-light;\n\t}\n}\n\n.llms-button-secondary {\n\tbackground: #e1e1e1;\n\tcolor: $color-cinder;\n\t&:hover {\n\t\tcolor: #414141;\n\t\tbackground: darken( #e1e1e1, 8 );\n\t}\n\t&:focus,\n\t&:active {\n\t\tcolor: #414141;\n\t\tbackground: lighten( #e1e1e1, 4 );\n\t}\n}\n/* Fix for cases where link color overrides the button color */\na.llms-button-secondary {\n\tcolor: $color-cinder;\n}\n\n.llms-button-action {\n\tbackground: $color-orange;\n\t&:hover,\n\t&.clicked {\n\t\tbackground: $color-brand-orange-dark;\n\t}\n\t&:focus,\n\t&:active {\n\t\tbackground: $color-brand-orange-light;\n\t}\n}\n\n.llms-button-danger {\n\tbackground: $color-danger;\n\t&:hover {\n\t\tbackground: darken( $color-danger, 8 );\n\t}\n\t&:focus,\n\t&:active {\n\t\tbackground: lighten( $color-danger, 4 );\n\t}\n}\n\n.llms-button-outline {\n\tbackground: transparent;\n\tborder: 3px solid #1D2327;\n\tborder-radius: 8px;\n\tcolor: #1D2327;\n\tcursor: pointer;\n\tfont-size: 16px;\n\tfont-weight: 700;\n\ttext-decoration: none;\n\ttext-shadow: none;\n\tline-height: 1;\n\tmargin: 0;\n\tmax-width: 100%;\n\tpadding: 12px 24px;\n\tposition: relative;\n\ttransition: all .5s ease;\n\n\t&:disabled {\n\t\topacity: 0.5;\n\t}\n\t&:hover, &:active {\n\t\tcolor: #1D2327;\n\t}\n\t&:focus {\n\t\tcolor: #1D2327;\n\t}\n\n\t&.auto {\n\t\twidth: auto;\n\t}\n\n\t&.full {\n\t\tdisplay: block;\n\t\ttext-align: center;\n\t\twidth: 100%;\n\t}\n\n\t&.square {\n\t\tpadding: 12px;\n\t}\n\n}\n\n.llms-course-continue-button {\n\tdisplay: inline-block;\n}\n","// ----- LifterLMS Brand Colors ----- \\\\\n$color-brand-dark-blue: #243c56;\n\n$color-brand-blue: #466dd8;\n$color-brand-blue-dark: darken( $color-brand-blue, 12 ); // #0077e4\n$color-brand-blue-light: lighten( $color-brand-blue, 8 );\n\n$color-brand-orange: #f8954f;\n$color-brand-orange-dark: #f67d28;\n$color-brand-orange-light: lighten( $color-brand-orange, 8 );\n\n$color-brand-aqua: #17bebb;\n\n$color-brand-pink: #ef476f;\n\n\n\n// ----- name our versions of common colors ----- \\\\\n$color-black: #010101;\n$color-green: #4d8d3c;\n$color-blue: $color-brand-blue;\n$color-red: #bb231c;\n$color-white: #fefefe;\n$color-aqua: #35bbaa;\n$color-purple: #845ef7;\n$color-orange: #c05621;\n\n$color-red-hover: darken($color-red,5);\n\n\n// ----- state / action names ----- \\\\\n$color-success: $color-green;\n$color-danger: $color-red;\n\n\n\n\n\n\n\n\n$color-lightgrey:\t\t#ccc;\n$color-grey: \t\t\t#999;\n$color-darkgrey:\t\t#666;\n$color-cinder:\t\t\t#444;\n$color-lightblue:\t\t#33b1cb;\n$color-darkblue:\t\t#0185a3;\n\n\n\n\n\n\n\n\n\n\n\n\n$color-border: #dedede;\n\n$el-box-shadow: 0 1px 2px 0 rgba($color-black,0.4);\n$el-background: #f1f1f1;\n$el-background-hover: #eaeaea;\n\n$break-xsmall: 320px;\n$break-small: 641px;\n$break-medium: 768px;\n$break-large: 1024px;\n\n$radius-small: 6px;\n$radius-medium: 12px;\n","//\n// LifterLMS Brand Colors\n// Currently overrides brand colors on the admin panel\n//\n\n$color-brand-blue: #466dd8;\n$color-brand-blue-dark: darken( $color-brand-blue, 8 );\n$color-brand-dark-blue: darken( $color-brand-blue, 24 );\n$color-brand-blue-light: lighten( $color-brand-blue, 8 );\n\n$color-brand-orange: #f8954f;\n$color-brand-orange-dark: #f67d28;\n$color-brand-orange-light: lighten( $color-brand-orange, 8 );\n\n$color-brand-aqua: #17bebb;\n\n$color-brand-pink: #ef476f;\n\n$color-blue: $color-brand-blue;\n",".lifterlms, // Settings & Course Builder.\n.llms-metabox, // Some Metaboxes.\n.llms-mb-container, // Other Metaboxes.\n.llms-quiz-wrapper { // Quiz results.\n\n\t[data-tip],\n\t[data-title-default],\n\t[data-title-active] {\n\n\t\t$bgcolor: #444;\n\n\t\tposition: relative;\n\n\t\t&.tip--top-right {\n\t\t\t&:before {\n\t\t\t\tbottom: 100%;\n\t\t\t\tleft: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\tbottom: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-top-color: $bgcolor;\n\t\t\t\tleft: 6px;\n\t\t\t\ttop: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\ttop: -6px;\n\t\t\t}\n\t\t}\n\n\n\t\t&.tip--top-left {\n\t\t\t&:before {\n\t\t\t\tbottom: 100%;\n\t\t\t\tright: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\tbottom: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-top-color: $bgcolor;\n\t\t\t\tright: 6px;\n\t\t\t\ttop: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\ttop: -6px;\n\t\t\t}\n\t\t}\n\n\n\n\t\t&.tip--bottom-left {\n\t\t\t&:before {\n\t\t\t\ttop: 100%;\n\t\t\t\tright: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\ttop: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-bottom-color: $bgcolor;\n\t\t\t\tright: 6px;\n\t\t\t\tbottom: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\tbottom: -6px;\n\t\t\t}\n\t\t}\n\n\t\t&.tip--bottom-right {\n\t\t\t&:before {\n\t\t\t\ttop: 100%;\n\t\t\t\tleft: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\ttop: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-bottom-color: $bgcolor;\n\t\t\t\tleft: 6px;\n\t\t\t\tbottom: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\tbottom: -6px;\n\t\t\t}\n\t\t}\n\n\t\t&:before {\n\t\t\tbackground: $bgcolor;\n\t\t\tborder-radius: 4px;\n\t\t\tcolor: #fff;\n\t\t\tfont-size: 13px;\n\t\t\tline-height: 1.2;\n\t\t\tpadding: 8px;\n\t\t\tmax-width: 300px;\n\t\t\twidth: max-content;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tborder: 6px solid transparent;\n\t\t\theight: 0;\n\t\t\twidth: 0;\n\t\t}\n\n\t\t&:before,\n\t\t&:after {\n\t\t\topacity: 0;\n\t\t\ttransition: all 0.2s 0.1s ease;\n\t\t\tposition: absolute;\n\t\t\tpointer-events: none;\n\t\t\tvisibility: hidden;\n\t\t}\n\t\t&:hover:before,\n\t\t&:hover:after {\n\t\t\topacity: 1;\n\t\t\ttransition: all 0 0.1s ease;\n\t\t\tvisibility: visible;\n\t\t\tz-index: 99999999;\n\t\t}\n\n\t}\n\n\t[data-tip] {\n\t\t&:before {\n\t\t\tcontent: attr(data-tip);\n\t\t}\n\t}\n\t[data-tip].active {\n\t\t&:before {\n\t\t\tcontent: attr(data-tip-active);\n\t\t}\n\t}\n\n}\n","#adminmenu {\n\n\t.toplevel_page_lifterlms .wp-menu-image img {\n\t\tpadding-top: 6px;\n\t\twidth: 20px;\n\t}\n\n\t.toplevel_page_lifterlms,\n\t.opensub .wp-submenu li.current,\n\t.wp-submenu li.current,\n\t.wp-submenu li.current,\n\t.wp-submenu li.current,\n\ta.wp-has-current-submenu:focus+.wp-submenu li.current {\n\t\ta[href*=\"page=llms-add-ons\"] {\n\t\t\tcolor: $color-brand-orange;\n\t\t}\n\t}\n\n}\n\n\n","/******************************************************************\n\nGrids for Breakpoints\n\n******************************************************************/\n\n// using a mixin since we can't use placeholder selectors\n@mixin grid-col {\n float: left;\n padding-right: 0.75em;\n box-sizing: border-box;\n\n}\n\n// the last column\n.last-col {\n float: right;\n padding-right: 0 !important;\n}\n.last-col:after {\n clear: both;\n}\n\n/*\nMobile Grid Styles\nThese are the widths for the mobile grid.\nThere are four types, but you can add or customize\nthem however you see fit.\n*/\n@media (max-width: 767px) {\n\n .m-all {\n @include grid-col;\n width: 100%;\n padding-right: 0;\n }\n\n .m-1of2 {\n @include grid-col;\n width: 50%;\n }\n\n .m-1of3 {\n @include grid-col;\n width: 33.33%;\n }\n\n .m-2of3 {\n @include grid-col;\n width: 66.66%;\n }\n\n .m-1of4 {\n @include grid-col;\n width: 25%;\n }\n\n .m-3of4 {\n @include grid-col;\n width: 75%;\n }\n\n\t.m-right {\n\t\ttext-align: center;\n\t}\n\t.m-center {\n\t\ttext-align: center;\n\t}\n\t.m-left {\n\t\ttext-align: center;\n\t}\n\n .d-right {\n text-align: right;\n }\n .d-center {\n text-align: center;\n }\n .d-left {\n text-align: left;\n }\n\n} // end mobile styles\n\n\n/* Portrait tablet to landscape */\n@media (min-width: 768px) and (max-width: 1029px) {\n\n .t-all {\n @include grid-col;\n width: 100%;\n padding-right: 0;\n }\n\n .t-1of2 {\n @include grid-col;\n width: 50%;\n }\n\n .t-1of3 {\n @include grid-col;\n width: 33.33%;\n }\n\n .t-2of3 {\n @include grid-col;\n width: 66.66%;\n }\n\n .t-1of4 {\n @include grid-col;\n width: 25%;\n }\n\n .t-3of4 {\n @include grid-col;\n width: 75%;\n }\n\n .t-1of5 {\n @include grid-col;\n width: 20%;\n }\n\n .t-2of5 {\n @include grid-col;\n width: 40%;\n }\n\n .t-3of5 {\n @include grid-col;\n width: 60%;\n }\n\n .t-4of5 {\n @include grid-col;\n width: 80%;\n }\n\n\t.d-right {\n\t\ttext-align: right;\n\t}\n\t.d-center {\n\t\ttext-align: center;\n\t}\n\t.d-left {\n\t\ttext-align: left;\n\t}\n\n} // end tablet\n\n/* Landscape to small desktop */\n@media (min-width: 1030px) {\n\n .d-all {\n @include grid-col;\n width: 100%;\n padding-right: 0;\n }\n\n .d-1of2 {\n @include grid-col;\n width: 50%;\n }\n\n .d-1of3 {\n @include grid-col;\n width: 33.33%;\n }\n\n .d-2of3 {\n @include grid-col;\n width: 66.66%;\n }\n\n .d-1of4 {\n @include grid-col;\n width: 25%;\n }\n\n .d-3of4 {\n @include grid-col;\n width: 75%;\n }\n\n .d-1of5 {\n @include grid-col;\n width: 20%;\n }\n\n .d-2of5 {\n @include grid-col;\n width: 40%;\n }\n\n .d-3of5 {\n @include grid-col;\n width: 60%;\n }\n\n .d-4of5 {\n @include grid-col;\n width: 80%;\n }\n\n .d-1of6 {\n @include grid-col;\n width: 16.6666666667%;\n }\n\n .d-1of7 {\n @include grid-col;\n width: 14.2857142857%;\n }\n\n .d-2of7 {\n @include grid-col;\n width: 28.5714286%;\n }\n\n .d-3of7 {\n @include grid-col;\n width: 42.8571429%;\n }\n\n .d-4of7 {\n @include grid-col;\n width: 57.1428572%;\n }\n\n .d-5of7 {\n @include grid-col;\n width: 71.4285715%;\n }\n\n .d-6of7 {\n @include grid-col;\n width: 85.7142857%;\n }\n\n .d-1of8 {\n @include grid-col;\n width: 12.5%;\n }\n\n .d-1of9 {\n @include grid-col;\n width: 11.1111111111%;\n }\n\n .d-1of10 {\n @include grid-col;\n width: 10%;\n }\n\n .d-1of11 {\n @include grid-col;\n width: 9.09090909091%;\n }\n\n .d-1of12 {\n @include grid-col;\n width: 8.33%;\n }\n\n\t.d-right {\n\t\ttext-align: right;\n\t}\n\t.d-center {\n\t\ttext-align: center;\n\t}\n\t.d-left {\n\t\ttext-align: left;\n\t}\n\n} // end desktop styles\n","/******************************************************************\n\nForm Styles\n\n******************************************************************/\n\n// lifterlms form wrapper\n#llms-form-wrapper {\n\n\t// setup defaults\n\tinput[type=\"text\"],\n\tinput[type=\"password\"],\n\tinput[type=\"datetime\"],\n\tinput[type=\"datetime-local\"],\n\tinput[type=\"date\"],\n\tinput[type=\"month\"],\n\tinput[type=\"time\"],\n\tinput[type=\"week\"],\n\tinput[type=\"number\"],\n\tinput[type=\"email\"],\n\tinput[type=\"url\"],\n\tinput[type=\"search\"],\n\tinput[type=\"tel\"],\n\tinput[type=\"color\"],\n\tinput[type=\"checkbox\"],\n\tselect,\n\ttextarea,\n\t.llms-field {\n\n\t\t// a focused input (or hovered on)\n\t\t&:focus,\n\t\t&:active {\n\n\t\t} // end hover or focus\n\t}\n\n\t// sub wrapper for search filter form (analytics)\n\t.llms-search-form-wrapper {\n\t\tborder-bottom: 1px solid $color-grey;\n\t\tmargin: 20px 0;\n\n\t}\n\n\n\t#llms_analytics_search {\n\t\tborder:none !important;\n\t\ttext-shadow: none !important;\n\t\tborder: none !important;\n\t\toutline: none !important;\n\t\tbox-shadow: none !important;\n\t\tmargin: 0 !important;\n\t\tcolor: $color-white !important;\n\t\tbackground: $color-blue !important;\n\t\tborder-radius: 0;\n\t\ttransition: .5s;\n\n\t\t&:hover {\n\t\t\tbackground: $color-darkblue !important;\n\n\t\t}&:active {\n\t\t\tbackground: $color-lightblue !important;\n\t\t}\n\t}\n\n} // end input defaults\n\n\n#llms-skip-setup-form {\n\t.llms-admin-link {\n\t\tbackground:none!important;\n\t\tborder:none;\n\t\tpadding:0!important;\n\t\tcolor:#0074a2;\n\t\tcursor:pointer;\n\t\t&:hover {\n\t\t\tcolor:#2ea2cc\n\t\t}&:focus{\n\t\t\tcolor:#124964;\n\t\t}\n\n\t}\n\n}\n\n/**\n * Toggle Switch ( replaces checkbox on admin panels )\n */\n.llms-switch {\n\tposition: relative;\n\n\t.llms-toggle {\n\t\tposition: absolute;\n\t\tmargin-left: -9999px;\n\t\tvisibility: hidden;\n\t}\n\n\t.llms-toggle + label {\n\t\tbox-sizing: border-box;\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tcursor: pointer;\n\t\toutline: none;\n\t\tuser-select: none;\n\t}\n\n\tinput.llms-toggle-round + label {\n\t\tborder: 2px solid #6c7781;\n\t\tborder-radius: 10px;\n\t\theight: 20px;\n\t\twidth: 36px;\n\t}\n\tinput.llms-toggle-round + label:before,\n\tinput.llms-toggle-round + label:after {\n\t\tbox-sizing: border-box;\n\t\tcontent: '';\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\ttransition: background 0.4s;\n\t}\n\n\tinput.llms-toggle-round:checked + label {\n\t\tborder-color: #11a0d2;\n\t \tbackground-color: #11a0d2;\n\t}\n\n\t// Primary dot (that moves.)\n\tinput.llms-toggle-round + label:after {\n\t\theight: 12px;\n\t\tleft: 2px;\n\t\ttop: 2px;\n\t\tbackground-color: #6c7781;\n\t\tborder-radius: 50%;\n\t\ttransition: margin 0.4s;\n\t\twidth: 12px;\n\t\tz-index: 3;\n\t}\n\n\t// Primary dot when toggle on.\n\tinput.llms-toggle-round:checked + label:after {\n\t\tbackground-color: $color-white;\n\t\tmargin-left: 16px;\n\t}\n\n\t// Secondary dot: empty on the right side of the toggle when toggled off.\n\tinput.llms-toggle-round + label:before {\n\t\theight: 8px;\n\t\ttop: 4px;\n\t\tborder: 1px solid #6c7781;\n\t\tborder-radius: 50%;\n\t\tright: 4px;\n\t\twidth: 8px;\n\t\tz-index: 2;\n\t}\n\n\tinput.llms-toggle-round:checked + label:before {\n\t\tborder-color: $color-white;\n\t\tborder-radius: 0;\n\t\tleft: 6px;\n\t\tright: auto;\n\t\twidth: 2px;\n\t}\n\n}\n\n#llms-profile-fields {\n\tmargin: 50px 0;\n\t.llms-form-field {\n\t\tpadding-left: 0;\n\t}\n\tlabel {\n\t\tdisplay: block;\n\t\tfont-weight: bold;\n\t\tpadding: 8px 0 2px;\n\t}\n\t.type-checkbox .type-checkbox {\n\t\tlabel {\n\t\t\tdisplay: initial;\n\t\t\tfont-weight: initial;\n\t\t\tpadding: 0;\n\t\t}\n\t\tinput {\n\t\t\tdisplay: inline-block;\n\t\t\tmargin-bottom: 0;\n\t\t\twidth: 1rem;\n\t\t}\n\t}\n\tselect {\n\t\tmax-width: 100%;\n\t}\n}\n","a.llms-voucher-delete {\n\tbackground: $color-danger;\n\tcolor: $color-white;\n\tdisplay: block;\n\tpadding: 4px 2px;\n\ttext-decoration: none;\n\ttransition: ease .3s all;\n\n\t&:hover {\n\t\tbackground: #af3a26;\n\t}\n}\n\n\n\n.llms-voucher-codes-wrapper,\n.llms-voucher-redemption-wrapper {\n\n table {\n width: 100%;\n border-collapse: collapse;\n\n th, td {\n border: none;\n }\n\n thead {\n background-color: $color-blue;\n color:#fff;\n th {\n padding: 10px 10px;\n }\n }\n\n tr {\n counter-increment: row-counter;\n &:nth-child(even) {\n background-color: #F1F1F1;\n }\n\n td {\n padding: 5px;\n &:first-child:before {\n content: counter( row-counter );\n }\n }\n }\n }\n}\n\n.llms-voucher-codes-wrapper {\n\n table {\n width: 100%;\n border-collapse: collapse;\n\n th, td {\n border: none;\n }\n\n thead {\n background-color: $color-blue;\n color:#fff;\n }\n\n tr {\n &:nth-child(even) {\n background-color: #F1F1F1;\n }\n\n td {\n\n span {\n display: inline-block;\n min-width: 30px;\n }\n }\n }\n }\n\n button {\n cursor: pointer;\n }\n\n .llms-voucher-delete {\n float: right;\n margin-right: 15px;\n }\n\n .llms-voucher-uses {\n width: 50px;\n }\n\n .llms-voucher-add-codes {\n float: right;\n\n input[type=\"text\"] {\n width: 30px;\n }\n }\n}\n\n.llms-voucher-export-wrapper {\n\n .llms-voucher-export-type {\n width: 100%;\n\n p {\n margin: 0 0 0 15px;\n }\n }\n\n .llms-voucher-email-wrapper {\n width: 100%;\n margin: 25px 0;\n\n input[type=\"text\"] {\n width: 100%;\n }\n\n p {\n margin: 0;\n }\n }\n\n > button {\n float: right;\n }\n}\n\n.postbox .inside {\n overflow: auto;\n}\n",".llms-widget {\n\tbackground-color: #FFF;\n\tborder: 1px solid #dedede;\n\tborder-radius: 12px;\n\tbox-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);\n\tbox-sizing: border-box;\n\tmargin-bottom: 20px;\n\tpadding: 20px;\n\tposition: relative;\n\twidth: 100%;\n\n\t&.alt {\n\n\t\tborder: 1px solid $color-lightgrey;\n\t\tbackground-color: #efefef;\n\t\tmargin-bottom: 10px;\n\n\t\t.llms-label {\n\t\t\tcolor: #777;\n\t\t\tfont-size: 14px;\n\t\t\tmargin-bottom: 10px;\n\t\t\tpadding-bottom: 5px;\n\t\t}\n\n\t\th2 {\n\t\t\tcolor: #444;\n\t\t\tfont-weight: 300;\n\t\t}\n\n\t}\n\n\ta {\n\t\tborder-bottom: 1px dotted $color-brand-blue;\n\t\tdisplay: inline-block;\n\t\ttext-decoration: none;\n\n\t\t&:hover {\n\t\t\tborder-bottom: 1px dotted $color-brand-blue-dark;\n\t\t}\n\t}\n\n\t// Nested for specificity (matches h1).\n\t.llms-widget-content {\n\t\tmargin: .67em 0;\n\t\tcolor: $color-brand-blue;\n\t\tfont-size: 2.4em;\n\t\tfont-weight: 700;\n\t\tline-height: 1;\n\t\tword-break: break-all;\n\t}\n\n\th2 {\n\t\tfont-size: 1.8em;\n\t}\n\n\t.llms-label {\n\t\tbox-sizing: border-box;\n\t\tfont-size: 18px;\n\t\tfont-weight: 400;\n\t\tmargin: 0 0 10px 0;\n\t\ttext-align: center;\n\t}\n\n\t.llms-chart {\n\t\twidth: 100%;\n\t\tpadding: 10px;\n\t\tbox-sizing: border-box;\n\t}\n\n\tmark.yes {\n\t\tbackground-color: #7ad03a;\n\t}\n\n\t.llms-subtitle {\n\t\tmargin-bottom: 0;\n\t}\n\n\t.spinner {\n\t\tfloat: none;\n\t\tleft: 50%;\n\t\tmargin: -10px 0 0 -10px;\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\tz-index: 2;\n\t}\n\n\t&.is-loading {\n\n\t\t&:before {\n\t\t\tbackground: $color-white;\n\t\t\tbottom: 0;\n\t\t\tcontent: '';\n\t\t\tleft: 0;\n\t\t\topacity: 0.9;\n\t\t\tposition: absolute;\n\t\t\tright: 0;\n\t\t\ttop: 0;\n\t\t\tz-index: 1;\n\t\t}\n\n\t\t.spinner {\n\t\t\tvisibility: visible;\n\t\t}\n\n\t}\n\n\ttd[colspan=\"2\"] {\n\t\tpadding-left: 0;\n\t}\n\n\ttr.llms-disabled-field {\n\t\topacity: 0.5;\n\t\tpointer-events: none;\n\t}\n\n}\n\n.llms-widget-1-3,\n.llms-widget-1-4,\n.llms-widget-1-5 {\n\ttext-align: center;\n}\n\n\n.llms-widget {\n\t.llms-widget-info-toggle {\n\t\tcolor: #AAA;\n\t\tcursor: pointer;\n\t\tfont-size: 16px;\n\t\tposition: absolute;\n\t\tright: 20px;\n\t\ttop: 20px;\n\t}\n\n\t&.info-showing {\n\t\t.llms-widget-info {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n.llms-widget-info {\n\tbackground: $color-cinder;\n\tcolor: $color-white;\n\tbottom: -50px;\n\tdisplay: none;\n\tpadding: 15px;\n\tposition: absolute;\n\ttext-align: center;\n\tleft: 10px;\n\tright: 15px;\n\tz-index: 3;\n\t&:before {\n\t\tcontent: '';\n\t\tborder: 12px solid transparent;\n\t\tborder-bottom-color: $color-cinder;\n\t\tleft: 50%;\n\t\tmargin-left: -12px;\n\t\tposition: absolute;\n\t\ttop: -24px;\n\t}\n\n\tp {\n\t\tmargin: 0;\n\t}\n\n}\n\n.llms-widget-row {\n\t@include clearfix();\n}\n\n.llms-widget-row .no-padding {\n\tpadding: 0 !important;\n}\n","\n@mixin clearfix() {\n\t&:before,\n\t&:after {\n\t content: \" \";\n\t display: table;\n\t}\n\t&:after {\n\t clear: both;\n\t}\n}\n\n//\n// Positioning mixin\n//\n// @param [string] $position: position\n// @param [list] $args (()): offsets list\n//\n// @source http://hugogiraudel.com/2013/08/05/offsets-sass-mixin/\n//\n@mixin position($position, $args: ()) {\n\t$offsets: top right bottom left;\n\tposition: $position;\n\n\t@each $offset in $offsets {\n\t\t$index: index($args, $offset);\n\n\t\t@if $index {\n\t\t\t@if $index == length($args) {\n\t\t\t\t#{$offset}: 0;\n\t\t\t}\n\t\t\t@else {\n\t\t\t\t$next: nth($args, $index + 1);\n\t\t\t\t@if is-valid-length($next) {\n\t\t\t\t\t#{$offset}: $next;\n\t\t\t\t}\n\t\t\t\t@else if index($offsets, $next) {\n\t\t\t\t\t#{$offset}: 0;\n\t\t\t\t}\n\t\t\t\t@else {\n\t\t\t\t\t@warn \"Invalid value `#{$next}` for offset `#{$offset}`.\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n//\n// Function checking if $value is a valid length\n// @param [literal] $value: value to test\n// @return [bool]\n//\n@function is-valid-length($value) {\n\t$r: (type-of($value) == \"number\" and not unitless($value)) or (index(auto initial inherit 0, $value) != null);\n\t@return $r;\n}\n\n//\n// Shorthands\n//\n@mixin absolute($args: ()) {\n\t@include position(absolute, $args);\n}\n\n@mixin fixed($args: ()) {\n\t@include position(fixed, $args);\n}\n\n@mixin relative($args: ()) {\n\t@include position(relative, $args);\n}\n\n\n\n@mixin order_status_badges() {\n\n\t.llms-status {\n\t\tborder-radius: $radius-small;\n\t\tdisplay: inline-block;\n\t\tfont-size: 13px;\n\t\tfont-weight: 700;\n\t\tline-height: 1.4;\n\t\tpadding: 2px 6px;\n\t\tvertical-align: middle;\n\n\t\t&.llms-size--large {\n\t\t\tfont-size: 105%;\n\t\t\tpadding: 6px 12px;\n\t\t}\n\n\t\t&.llms-active,\n\t\t&.llms-completed,\n\t\t&.llms-pass, // quiz\n\t\t&.llms-txn-succeeded {\n\t\t\tcolor: $color-green;\n\t\t\tbackground-color: rgba( $color-green, .15 );\n\t\t}\n\n\t\t&.llms-fail, // quiz\n\t\t&.llms-failed,\n\t\t&.llms-expired,\n\t\t&.llms-cancelled,\n\t\t&.llms-txn-failed {\n\t\t\tcolor: $color-red;\n\t\t\tbackground-color: rgba( $color-red, .15 );\n\t\t}\n\n\t\t&.llms-incomplete, // assignment\n\t\t&.llms-on-hold,\n\t\t&.llms-pending,\n\t\t&.llms-pending-cancel,\n\t\t&.llms-refunded,\n\t\t&.llms-txn-pending,\n\t\t&.llms-txn-refunded {\n\t\t\tcolor: $color-orange;\n\t\t\tbackground-color: rgba( $color-orange, .15 );\n\t\t}\n\n\t}\n\n}\n","/******************************************************************\n\nSVG Styles\n\n******************************************************************/\n\nsvg {\n &.icon {\n height: 24px;\n width: 24px;\n display: inline-block;\n fill: currentColor; // Inherit color\n vertical-align: baseline; // Options: baseline, sub, super, text-top, text-bottom, middle, top, bottom\n\n // Different styling for when an icon appears in a button element\n button & {\n height: 18px;\n width: 18px;\n margin: 4px -4px 0 4px;\n filter: drop-shadow( 0 1px #eee );\n float: right;\n \n }&.menu-icon {\n height: 20px;\n width: 20px;\n display: inline-block;\n fill: currentColor;\n vertical-align: text-bottom;\n margin-right: 10px;\n \n }&.tree-icon {\n height: 13px;\n width: 13px;\n vertical-align: middle;\n \n }&.section-icon {\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n \n }&.button-icon {\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n \n }&.button-icon-attr {\n height: 10px;\n width: 10px;\n vertical-align: middle;\n \n }&.list-icon {\n height: 12px;\n width: 12px;\n vertical-align: middle;\n \n &.on {\n color: $color-blue;\n\n }&.off {\n color: $color-cinder;\n }\n \n }&.detail-icon {\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n cursor:default;\n \n &.on {\n color: $color-blue;\n\n }&.off {\n color: $color-lightgrey;\n }\n }\n\n }\n\n &.icon-ion {}\n\n &.icon-ion-edit {}\n\n // rotate for arrow tips\n &.icon-ion-arrow-up {\n transform: rotate(90deg);\n }\n\n use {\n pointer-events: none;\n }\n\n}","/******************************************************************\n\nMetabox Tabs\n\n******************************************************************/\n\n// free space up if the metabox is on the side\n#side-sortables .tab-content {\n\tpadding: 0;\n}\n\n.llms-mb-container .tab-content{\n display: none;\n background-color: #FFF;\n padding: 0 20px;\n \n ul:not(.select2-selection__rendered) {\n margin: 0 0 15px 0;\n\n > li {\n padding: 20px 0;\n margin: 0;\n\n &.select:not([class*=\"d-\"]) {\n \twidth: 100%;\n }\n\n &:last-child {\n border: 0;\n padding-bottom: 0;\n\n }\n\n &.top {\n border-bottom: 0;\n padding-bottom: 0;\n }\n\n }\n }\n\n .full-width { width: 100%; }\n\n #wp-content-editor-tools {\n background: none;\n }\n\n}\n\n.llms-mb-container .tab-content.llms-active{\n display: inherit;\n}\n\n\n.llms-mb-container .tab-content .no-border {\n border-bottom: 0px;\n}\n","/******************************************************************\n\nStyles for topModal modal\n\n******************************************************************/\n\n/**\n * Base modal styles\n */\n.topModal {\n display:none;\n position:relative;\n border:4px solid #808080;\n background:#fff;\n z-index:1000001;\n padding:2px;\n max-width:500px;\n margin: 34px auto 0;\n box-sizing: border-box;\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-color: #ffffff;\n border-radius: 2px;\n border: 1px solid #dddddd;\n\n}.topModalClose {\n float:right;\n cursor:pointer;\n margin-right: 10px;\n margin-top: 10px;\n\n}.topModalContainer {\n display: none;\n overflow: auto;\n overflow-y: hidden;\n position: fixed;\n top: 0 !important;\n right: 0;\n bottom: 0;\n left: 0;\n -webkit-overflow-scrolling: touch;\n width: auto !important;\n margin-left: 0 !important;\n background-color: transparent !important;\n z-index: 100002 !important;\n\n}.topModalBackground {\n display:none;\n background:#000;\n position:fixed;\n height:100%;\n width:100%;\n top:0 !important;\n left:0;\n margin-left: 0 !important;\n z-index: 100002 !important;\n box-sizing: border-box;\n overflow: auto;\n overflow-y: hidden;\n\n}body.modal-open {\n overflow: hidden;\n\n}.llms-modal-header {\n border-top-right-radius: 1px;\n border-top-left-radius: 1px;\n background: $color-blue;\n color: #eeeeee;\n padding: 10px 15px;\n font-size: 18px;\n\n}#llms-icon-modal-close {\n width:16px;\n height: 16px;\n fill: $color-white;\n\n}.llms-modal-content {\n padding: 20px;\n\n h3 {\n margin-top: 0;\n }\n\n}\n\n/**\n * Custom Modal Styles for LifterLMS\n */\n.llms-modal-form {\n\n h1 {\n margin-top: 0;\n }\n\n input[type=text] {\n width: 100%;\n }\n\n textarea,\n input[type=\"text\"],\n input[type=\"password\"],\n input[type=\"file\"],\n input[type=\"datetime\"],\n input[type=\"datetime-local\"],\n input[type=\"date\"],\n input[type=\"month\"],\n input[type=\"time\"],\n input[type=\"week\"],\n input[type=\"number\"],\n input[type=\"email\"],\n input[type=\"url\"],\n input[type=\"search\"],\n input[type=\"tel\"],\n input[type=\"color\"] {\n padding: 0 .4em 0 .4em;\n margin-bottom: 2em;\n vertical-align: middle;\n border-radius: 3px;\n min-width: 50px;\n max-width: 635px;\n width: 100%;\n min-height: 32px;\n background-color: #fff;\n border: 1px solid $color-lightgrey;\n margin: 0 0 24px 0;\n outline: none;\n transition: border 0.3s ease-in-out 0s;\n\n &:focus {\n background: $color-white;\n border: 1px solid $color-blue;\n\n }\n }\n\n textarea {\n padding: .4em !important;\n height: 100px !important;\n border-radius: 3px;\n vertical-align: middle;\n min-height: 32px;\n outline: none;\n box-sizing: border-box;\n\n &:focus {\n background: $color-white;\n border: 1px solid $color-blue;\n\n }\n\n }\n\n .chosen-container-single .chosen-single {\n border-radius: 3px;\n vertical-align: middle;\n min-height: 32px;\n border: 1px solid $color-lightgrey;\n width: 100%;\n background: $color-white !important;\n outline: none;\n box-sizing: border-box;\n box-shadow: 0 0 0 #fff;\n line-height: 32px;\n margin: 0 0 24px 0;\n\n &:focus {\n background: $color-white;\n border: 1px solid $color-blue;\n }\n }\n\n .chosen-container-single .chosen-single div b {\n margin-top: 4px;\n }\n\n .chosen-search input[type=text] {\n border: 1px solid $color-lightgrey;\n\n &:focus {\n background-color: $color-white;\n border: 1px solid $color-blue;\n }\n\n }\n\n .chosen-container-single .chosen-drop {\n margin-top: -28px;\n }\n\n .llms-button-primary, .llms-button-secondary {\n padding: 10px 10px;\n border-radius: 0;\n transition: .5s;\n box-shadow: 0 1px 1px #ccc;\n\n &.full {\n width: 100%;\n }\n }\n}\n\n.modal-open .select2-dropdown {\n z-index: 1000005;\n}\n",".button.llms-merge-code-button {\n\tvertical-align: middle;\n\tsvg {\n\t\tmargin-right: 2px;\n\t\tposition: relative;\n\t\ttop: 4px;\n\t\twidth: 16px;\n\t\tg {\n\t\t\tfill: currentColor;\n\t\t}\n\t}\n}\n\n.llms-mb-container {\n\t.llms-merge-code-wrapper {\n\t\tfloat: right;\n\t\ttop: -5px;\n\t}\n}\n\n.llms-merge-code-wrapper {\n\tdisplay: inline;\n\tposition: relative;\n}\n\n.llms-merge-codes {\n background: #f7f7f7;\n\tborder: 1px solid #ccc;\n\tborder-radius: 3px;\n box-shadow: 0 1px 0 #ccc;\n color: #555;\n\tdisplay: none;\n\tleft: 1px;\n\toverflow: hidden;\n\tposition: absolute;\n\ttop: 30px;\n\twidth: 200px;\n\n\tul {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\tli {\n\t\tcursor: pointer;\n\t\tmargin: 0;\n\t\tpadding: 4px 8px !important;\n\t\tborder-bottom: 1px solid #ccc;\n\t}\n\n\tli:hover {\n\t\tcolor: #23282d;\n\t\tbackground: #fefefe;\n\t}\n\n\t&.active {\n\t\tdisplay: block;\n\t\tz-index: 777;\n\t}\n\n}\n","/******************************************************************\n\nBase Mobile\n\n******************************************************************/\n\n.llms-nav-tab,\n.llms-nav-tab-filters {\n\tdisplay: block;\n\twidth: 100%;\n}\n\nform.llms-nav-tab-filters.full-width {\n\twidth: 100%;\n\n\tlabel {\n\t\tdisplay: inline-block;\n\t\twidth: 10%;\n\t\ttext-align: left;\n\t}\n\n\t.select2-container {\n\t\twidth: 85% !important;\n\t}\n}\n\n.llms-nav-tab-settings {\n\tdisplay: block;\n\twidth: 100%;\n}\n\n//select box form wrapper\n#llms-form-wrapper {\n\t.llms-select {\n\t\twidth: 100%;\n\t\tmargin-bottom: 20px;\n\n\t}.llms-checkbox {\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\t\ttext-align: left;\n\n\t}.llms-filter-options {\n\t\twidth: 100%;\n\t\t//margin-bottom: 20px;\n\n\t}.llms-date-select {\n\t\twidth: 100%;\n\t\tdisplay: inline-block;\n\t\tmargin-bottom: 20px;\n\t\tinput[type=\"text\"] {\n\t\t\twidth: 100%;\n\t\t}\n\n\t}.llms-search-button {\n\t\t//display: inline-block;\n\t\t//width: 30%;\n\t\t#llms-search-button {\n\n\t\t//float: right;\n\t}\n\n\t}\n\n}\n\n// .llms-widget-full {\n// \t&.top {\n// \t\tmargin-top: 20px;\n// \t}\n// }\n// .llms-widget {\n// \t.form-table td {\n// \t\tpadding: 15px 0;\n// \t\tul { margin: 5px 0 0; }\n\n\n// \t\t.conditional-field {\n// \t\t\tdisplay: none;\n// \t\t\tmargin-left: 25px;\n// \t\t}\n// \t\t.conditional-radio:checked ~ .conditional-field {\n// \t\t\tdisplay: block;\n// \t\t}\n\n\n// \t}\n// }\n\nul.tabs li{\n display: block;\n }\n\n","//\n// Main Admin CSS File\n//\n\n@import \"_includes/vars\";\n@import \"_includes/vars-brand-colors\";\n\n@import \"_includes/extends\";\n@import \"_includes/buttons\";\n@import \"_includes/mixins\";\n\n@import \"_includes/tooltip\";\n\n// wp menu item\n@import \"admin/_wp-menu\";\n\n// grid layout for breakpoints\n@import \"admin/partials/grid\";\n\n// forms\n@import \"admin/modules/forms\";\n\n// voucher\n@import \"admin/modules/voucher\";\n\n// widgets\n@import \"admin/modules/widgets\";\n\n// icons\n@import \"admin/modules/icons\";\n\n// icons\n@import \"admin/modules/mb-tabs\";\n\n// icons\n@import \"admin/modules/top-modal\";\n\n@import \"admin/modules/merge-codes\";\n\n// Base (mobile)\n@import \"admin/breakpoints/base\";\n\n// Larger mobile devices\n@media only screen and (min-width: 481px) {\n\t@import \"admin/breakpoints/481up\";\n}\n\n// Tablets and smaller laptops\n@media only screen and (min-width: 768px) {\n\t@import \"admin/breakpoints/768up\";\n}\n\n// Desktops\n@media only screen and (min-width: 1030px) {\n\t@import \"admin/breakpoints/1030up\";\n}\n\n// Larger Monitors and TVs\n@media only screen and (min-width: 1240px) {\n\t@import \"admin/breakpoints/1240up\";\n}\n\n@import \"admin/main\";\n\n@import \"admin/llms-table\";\n@import \"admin/modules/llms-order-note\";\n\n// metabox related\n@import \"admin/metaboxes/llms-metabox\";\n@import \"admin/metaboxes/metabox-instructors\";\n@import \"admin/metaboxes/metabox-orders\";\n@import \"admin/metaboxes/metabox-engagements-type\";\n@import \"admin/metaboxes/metabox-product\";\n@import \"admin/metaboxes/metabox-students\";\n@import \"admin/metaboxes/metabox-field-repeater\";\n@import \"admin/metaboxes/builder-launcher\";\n\n@import \"admin/post-tables/llms_orders\";\n@import \"admin/post-tables/post-tables\";\n\n@import \"admin/tabs\";\n@import \"admin/fonts\";\n@import \"admin/reporting\";\n\n@import \"admin/settings\";\n\n@import \"admin/dashboard\";\n@import \"admin/dashboard-widget\";\n@import \"admin/resources\";\n\n@import \"admin/quiz-attempt-review\";\n\n@import \"_includes/llms-form-field\";\n@import \"_includes/vendor/_font-awesome\";\n","/******************************************************************\n\nLarger Phones\n\n******************************************************************/\n\n//select box form wrapper\n#llms-form-wrapper {\n\t\n\t.llms-checkbox {\n\t\twidth: 33%;\n\t\t//text-align: center;\n\t\t\t\n\t}\n}\n","/******************************************************************\n\nTablets and small computers\n\n******************************************************************/\n\nul.tabs li{\n display: inline-block;\n }\n\n//option page tab menu\n.llms-nav-tab {\n\tdisplay: inline-block;\n\twidth: 33%;\n}\n.llms-nav-tab-settings {\n\tdisplay: inline-block;\n\twidth: 25%;\n}\n\n//select box form wrapper\n#llms-form-wrapper {\n\t.llms-select {\n\t\twidth: 50%;\n\t\tmax-width: 500px;\n\n\t}.llms-filter-options {\n\t\twidth: 50%;\n\t\t//display: inline-block;\n\t\tmax-width: 500px;\n\n\t}.llms-date-select {\n\t\twidth: 47.5%;\n\n\t\t&:first-child {\n\t\t\tmargin-right: 5%\n\t\t}\n\n\t}\n}\n\n.llms-widget {\n\tinput[type=\"text\"],\n\tinput[type=\"password\"],\n\tinput[type=\"datetime\"],\n\tinput[type=\"datetime-local\"],\n\tinput[type=\"date\"],\n\tinput[type=\"month\"],\n\tinput[type=\"time\"],\n\tinput[type=\"week\"],\n\tinput[type=\"number\"],\n\tinput[type=\"email\"],\n\tinput[type=\"url\"],\n\tinput[type=\"search\"],\n\tinput[type=\"tel\"],\n\tinput[type=\"color\"],\n\tselect,\n\ttextarea, {\n\t\twidth: 50%;\n\n\t\t&.medium { width: 30%; }\n\t\t&.small { width: 20%; }\n\t\t&.tiny { width: 10%; }\n\t}\n\n\t// .form-table th {\n\t// \twidth: 140px;\n\t// }\n\n}\n\n\n\n","/******************************************************************\n\nDesktop Stylesheet\n\n******************************************************************/\n\n//option page tab menu\n.llms-nav-tab {\n\tdisplay: inline-block;\n\twidth: 33.333%;\n}\n.llms-nav-tab-settings {\n\tdisplay: inline-block;\n\twidth: 25%;\n}\n\n//select box form wrapper\n#llms-form-wrapper {\n\t.llms-select {\n\t\tdisplay: inline-block;\n\t\twidth: 47.5%;\n\t\t&:first-child {\n\t\t\tmargin-right: 5%;\n\t\t}\n\n\t}.llms-filter-options {\n\t\tdisplay: inline-block;\n\t\twidth: 47.5%;\n\n\t\t&.date-filter {\n\t\t\tmargin-right: 5%;\n\t\t}.llms-date-select {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t}.llms-date-select {\n\t\twidth: 47.5%;\n\n\t\t&:first-child {\n\t\t\tmargin-right: 5%\n\t\t}\n\n\t}\n}\n\n.llms-widget-row {\n\t@include clearfix;\n\t.llms-widget-1-5 {\n\t\tvertical-align: top;\n\t\twidth: 20%;\n\t\tfloat: left;\n\t\tbox-sizing: border-box;\n\t\tpadding: 0 5px;\n\t}\n\t.llms-widget-1-4 {\n\t\tvertical-align: top;\n\t\twidth: 25%;\n\t\tfloat: left;\n\t\tbox-sizing: border-box;\n\t\tpadding: 0 5px;\n\t}\n\t.llms-widget-1-3 {\n\t\twidth: 33.3%;\n\t\tfloat: left;\n\t\tbox-sizing: border-box;\n\t\tpadding: 0 5px;\n\t}\n\t.llms-widget-1-2 {\n\t\twidth: 50%;\n\t\tfloat: left;\n\t\tbox-sizing: border-box;\n\t\tpadding: 0 5px;\n\t\tvertical-align: top;\n\t}\n\n}\n","/******************************************************************\n\nlarge Monitor Stylesheet\n\n******************************************************************/\n\n.llms-nav-tab-filters,\n.llms-nav-tab-settings {\n\tfloat: left;\n\twidth: 12.5%;\n}\n",".wrap.lifterlms {\n\tmargin-top: 0;\n}\n\n.llms-header {\n\tbackground-color: #FFF;\n\tmargin: 0 0 0 -20px;\n\tpadding: 20px 10px;\n\tposition: relative;\n\tz-index: 1;\n\n\t.llms-inside-wrap {\n\t\tdisplay: flex;\n\t\tpadding: 0 10px;\n\t}\n\n\n\t.lifterlms-logo {\n\t\tflex: 0 0 190px;\n\t\tmax-height: 52px;\n\t\tmargin-right: 10px;\n\t}\n\n\t.llms-meta {\n\t\talign-self: center;\n\t\tdisplay: flex;\n\t\tflex: 1;\n\t\tfont-size: 16px;\n\t\tjustify-content: space-between;\n\t\tline-height: 1.5;\n\n\t\t.llms-version {\n\t\t\tbackground-color: #1d2327;\n\t\t\tcolor: #FFF;\n\t\t\tborder-radius: 999px;\n\t\t\tfont-size: 13px;\n\t\t\tfont-weight: 700;\n\t\t\tpadding: 6px 12px;\n\t\t}\n\n\t\ta {\n\t\t\tdisplay: inline-block;\n\t\t}\n\n\t\t.llms-license {\n\t\t\tborder-right: 1px solid #CCC;\n\t\t\tfont-weight: 700;\n\t\t\tmargin-right: 12px;\n\t\t\tpadding-right: 12px;\n\n\t\t\ta {\n\t\t\t\ttext-decoration: none;\n\n\t\t\t\t&:before {\n\t\t\t\t\tcontent: \"\\f534\";\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tfont: 400 16px/1 dashicons;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\tpadding-right: 3px;\n\t\t\t\t\tposition: relative;\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t\tvertical-align: text-bottom;\n\t\t\t\t}\n\n\t\t\t\t&.llms-license-none {\n\t\t\t\t\tcolor: #888;\n\n\t\t\t\t\t&:before {\n\t\t\t\t\t\tcontent: \"\\f335\";\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t&.llms-license-active {\n\t\t\t\t\tcolor: #008a20;\n\n\t\t\t\t\t&:before {\n\t\t\t\t\t\tcontent: \"\\f112\";\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t\t.llms-support {\n\t\t\tfont-weight: 700;\n\n\t\t\ta {\n\t\t\t\tcolor: #1d2327;\n\t\t\t\ttext-decoration: none;\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\n.llms-subheader {\n\talign-items: center;\n\tbackground-color: #FFF;\n\tbox-shadow: 0 1px 3px rgba( 0, 0, 0, 0.15 );\n\tdisplay: flex;\n\tflex-direction: row;\n\tmargin-left: -20px;\n\tpadding: 10px 20px;\n\twidth: 100%;\n\tz-index: 1;\n\n\th1 {\n\t\tfont-weight: 700;\n\t\tpadding: 0;\n\n\t\ta {\n\t\t\tcolor: inherit;\n\t\t\ttext-decoration: none;\n\t\t}\n\t}\n\n}\n\n#post_course_difficulty {\n\tmin-width: 200px;\n}\n#_video-embed, #_audio-embed {\n\twidth: 100%;\n}\n\nhr {\n\tbackground-color: #CCC;\n\tborder: none;\n\theight: 1px;\n\tmargin: 30px 0;\n\tpadding: 0;\n}\n\n.llms_certificate_default_image, .llms_certificate_image {\n\twidth: 300px;\n}\n\n.llms_achievement_default_image, .llms_achievement_image {\n\twidth: 120px;\n}\n\ndiv[id^=\"lifterlms-\"] .inside {\n\toverflow: visible;\n}\n\n.notice.llms-admin-notice {\n\tbackground-color: #FFF;\n\tborder: 1px solid #ccd0d4;\n\tbox-shadow: 0 1px 4px rgba( 0, 0, 0, 0.15 );\n\tdisplay: flex;\n\tpadding: 0 !important;\n\tposition: relative;\n\n\t.notice-dismiss {\n\t\ttext-decoration: none;\n\t}\n\n\t&.notice-warning {\n\t\tborder-left: 4px solid #F8954F;\n\n\t\t.llms-admin-notice-icon {\n\t\t\tbackground-color: #FEF4ED;\n\t\t}\n\t}\n\n\t&.notice-info {\n\t\tborder-left: 4px solid #466DD8;\n\n\t\th3 {\n\t\t\tcolor: #466DD8;\n\t\t}\n\n\t\t.llms-admin-notice-icon {\n\t\t\tbackground-color: #EDF0FB;\n\t\t}\n\n\t}\n\n\t&.notice-success {\n\t\tborder-left: 4px solid #18A957;\n\n\t\th3 {\n\t\t\tcolor: #18A957;\n\t\t}\n\n\t\t.llms-admin-notice-icon {\n\t\t\tbackground-color: #E8F6EE;\n\t\t}\n\n\t}\n\n\t&.notice-error {\n\t\tborder-left: 4px solid #DF1642;\n\n\t\th3 {\n\t\t\tcolor: #9C0F2E;\n\t\t}\n\n\t\t.llms-admin-notice-icon {\n\t\t\tbackground-color: #FCE8EC;\n\t\t}\n\n\t}\n\n\t.llms-admin-notice-icon {\n\t\tbackground-image: url(../../assets/images/lifterlms-icon-color.png);\n\t\tbackground-position: center center;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: 30px;\n\t\tmin-width: 70px;\n\n\t}\n\n\t.llms-admin-notice-content {\n\t\tcolor: #111;\n\t\tpadding: 20px;\n\t}\n\n\th3 {\n\t\tfont-size: 18px;\n\t\tfont-weight: 700;\n\t\tline-height: 25px;\n\t\tmargin: 0 0 15px 0;\n\t}\n\n\tbutton,\n\t.llms-button-primary {\n\t\tdisplay: inline-block;\n\t}\n\n\tp {\n\t\tfont-size: 14px;\n\t\tline-height: 22px;\n\t\tmargin: 0 0 15px 0;\n\t\tmax-width: 65em;\n\t\tpadding: 0;\n\t}\n\n\tp:last-of-type {\n\t\tmargin-bottom: 0;\n\t}\n}\n\n.llms-button-action,\n.llms-button-danger,\n.llms-button-primary,\n.llms-button-secondary {\n\t&.small .dashicons {\n\t\tfont-size: 13px;\n\t\theight: 13px;\n\t\twidth: 13px;\n\t}\n\n\t&:hover {\n\t\tbox-shadow: none;\n\t}\n}\n\na.llms-view-as {\n\tline-height: 2;\n\tmargin-right: 8px;\n}\n\n.llms-image-field-preview {\n\tmax-height: 80px;\n\tvertical-align: middle;\n\twidth: auto;\n}\n\n.llms-image-field-remove {\n\t&.hidden { display: none; }\n}\n\n.llms-log-viewer {\n\tbackground: #fff;\n\tborder: 1px solid #e5e5e5;\n\tbox-shadow: 0 1px 1px rgba(0,0,0,.04);\n\tmargin: 20px 0;\n\tpadding: 25px;\n\n\tpre {\n\t\tfont-family: monospace;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twhite-space: pre-wrap;\n\t}\n}\n\n.llms-status--tools {\n\t.llms-table {\n\t\tbackground: #fff;\n\t\tborder: 1px solid #e5e5e5;\n\t\tbox-shadow: 0 1px 1px rgba(0,0,0,.04);\n\t\ttd, th {\n\t\t\tpadding: 10px;\n\t\t\tvertical-align: top;\n\t\t}\n\t\tth {\n\t\t\twidth: 28%;\n\t\t}\n\t\tp {\n\t\t\tmargin: 0 0 10px;\n\t\t}\n\t}\n}\n\n.llms-error {\n\tcolor: $color-red;\n\tfont-style: italic;\n}\n\n.llms-rating-stars {\n\tcolor: #ffb900;\n\ttext-decoration: none;\n}\n\n@media screen and (max-width: 782px) {\n\t.llms-header {\n\t\ttop: 46px;\n\n\t\t.llms-inside-wrap {\n\t\t\tflex-direction: column;\n\t\t\tgap: 20px;\n\n\t\t\t.lifterlms-logo {\n\t\t\t\talign-self: center;\n\t\t\t\tflex: inherit;\n\t\t\t\tmax-height: initial;\n\t\t\t\tmax-width: 200px;\n\t\t\t}\n\n\t\t\t.llms-meta {\n\t\t\t\tcolumn-gap: 10px;\n\t\t\t}\n\t\t}\n\t}\n}\n",".llms-table-wrap {\n\tposition: relative;\n}\n\n.llms-table-header {\n\tpadding: 0;\n\n\t@include clearfix();\n\n\th2 {\n\t\tfont-size: 20px;\n\t\tpadding: 0;\n\t\tdisplay: inline-block;\n\t\tline-height: 1.5;\n\t\tmargin: 0 0 20px 0;\n\t\tvertical-align: middle;\n\t}\n\n\t.llms-table-search,\n\t.llms-table-filters {\n\t\tfloat: right;\n\t\tpadding-left: 10px;\n\t}\n\n\t.llms-table-search input {\n\t\tmargin: 0;\n\t\tpadding: 0 8px;\n\t}\n\n}\n\n.llms-table {\n\n\tborder: 1px solid #c3c4c7;\n\tborder-collapse: collapse;\n\twidth: 100%;\n\n\ta:not(.small) {\n\t\tcolor: $color-brand-blue;\n\t\t&:hover {\n\t\t\tcolor: $color-brand-blue-dark;\n\t\t}\n\t}\n\n\ttd, th {\n\t\tborder-bottom: 1px solid #c3c4c7;\n\t\tpadding: 10px 12px;\n\t\ttext-align: center;\n\n\t\t&.expandable.closed {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t.llms-button-primary,\n\t\t.llms-button-secondary,\n\t\t.llms-button-action,\n\t\t.llms-button-danger {\n\t\t\tdisplay: inline-block;\n\t\t}\n\n\t}\n\n\ttr.llms-quiz-pending {\n\t\ttd {\n\t\t\tfont-weight: 700;\n\t\t}\n\t}\n\n\tthead th,\n\ttfoot th {\n\t\tbackground-color: #FFF;\n\t\tfont-weight: 700;\n\n\t\ta.llms-sortable {\n\t\t\t// display: block;\n\t\t\tpadding-right: 16px;\n\t\t\tposition: relative;\n\t\t\ttext-decoration: none;\n\t\t\twidth: 100%;\n\t\t\t&.active {\n\t\t\t\t// show the current sorted when a sort is active\n\t\t\t\t&[data-order=\"DESC\"] .asc { opacity: 1; }\n\t\t\t\t&[data-order=\"ASC\"] .desc { opacity: 1; }\n\t\t\t}\n\t\t\t// show the opposite on hover\n\t\t\t&:hover {\n\t\t\t\t&[data-order=\"DESC\"] {\n\t\t\t\t\t.asc { opacity: 0; }\n\t\t\t\t\t.desc { opacity: 1; }\n\t\t\t\t}\n\t\t\t\t&[data-order=\"ASC\"] {\n\t\t\t\t\t.asc { opacity: 1; }\n\t\t\t\t\t.desc { opacity: 0; }\n\t\t\t\t}\n\t\t\t}\n\t\t\t.dashicons {\n\t\t\t\tcolor: #444;\n\t\t\t\tfont-size: 16px;\n\t\t\t\theight: 16px;\n\t\t\t\topacity: 0;\n\t\t\t\tposition: absolute;\n\t\t\t\twidth: 16px;\n\t\t\t}\n\t\t}\n\t}\n\n\ttfoot th {\n\t\tborder-bottom: none;\n\n\t\t.llms-table-export {\n\t\t\tfloat: left;\n\t\t\t.llms-table-progress {\n\t\t\t\tbackground: #efefef;\n\t\t\t\tdisplay: none;\n\t\t\t\tmargin-left: 8px;\n\t\t\t\tvertical-align: middle;\n\t\t\t\twidth: 100px;\n\t\t\t}\n\t\t}\n\n\t\t.llms-clear-resumable-attempts {\n\t\t\tfloat: left;\n\t\t}\n\n\t\t.llms-table-pagination {\n\t\t\tfloat: right;\n\t\t}\n\n\t}\n\n\t&.zebra tbody tr:nth-child( even ) {\n\t\tth, td { background-color: #fff; }\n\t}\n\n\t&.zebra tbody tr:nth-child( odd ) {\n\t\tth, td { background-color: #f6f7f7; }\n\t}\n\n\t&.text-left {\n\t\ttd, th {\n\t\t\ttext-align: left;\n\t\t}\n\t}\n\n\t&.size-large {\n\t\ttd, th {\n\t\t\tfont-size: 14px;\n\t\t\tpadding: 10px 12px;\n\t\t}\n\t}\n\n\t.llms-drag-handle {\n\t\tcolor: #777;\n\t\tcursor: pointer;\n\t\t-webkit-transition: color 0.4s ease;\n\t\ttransition: color 0.4s ease;\n\t}\n\n\t.llms-action-icon {\n\t\tcolor: #777;\n\t\ttext-decoration: none;\n\n\t\t.tooltip {\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t&:hover {\n\t\t\tcolor: $color-blue;\n\t\t}\n\n\t\t&.danger:hover {\n\t\t\tcolor: $color-danger;\n\t\t}\n\t}\n\n\t.llms-table-page-count {\n\t\tfont-size: 12px;\n\t\tpadding: 0 5px;\n\t}\n\n}\n\n// progress bars within the tables\n.llms-table-progress {\n\ttext-align: center;\n\t.llms-table-progress-bar {\n\t\tbackground: #eee;\n\t\tborder-radius: 10px;\n\t\theight: 16px;\n\t\toverflow: hidden;\n\t\tposition: relative;\n\t\t.llms-table-progress-inner {\n\t\t\tbackground: $color-brand-blue;\n\t\t\theight: 100%;\n\t\t\ttransition: width 0.2s ease;\n\t\t}\n\t}\n\t.llms-table-progress-text {\n\t\tcolor: $color-brand-blue;\n\t\tfont-size: 12px;\n\t\tfont-weight: 700;\n\t\tline-height: 16px;\n\t}\n}\n\n\n.llms-table.llms-gateway-table,\n.llms-table.llms-integrations-table {\n\t.status {\n\t\t.fa {\n\t\t\tcolor: $color-brand-blue;\n\t\t\tfont-size: 22px;\n\t\t}\n\t}\n\t.sort {\n\t\tcursor: move;\n\t\ttext-align: center;\n\t\twidth: 10px;\n\t}\n}\n\n.llms-gb-table-notifications {\n\tth, td {\n\t\ttext-align: left;\n\t}\n}\n",".llms-order-note {\n\n\t.llms-order-note-content {\n\t\tbackground: #efefef;\n\t\tmargin-bottom: 10px;\n\t\tpadding: 10px;\n\t\tposition: relative;\n\t\t&:after {\n\t\t\tborder-style: solid;\n\t\t\tborder-color: #efefef transparent;\n\t\t\tborder-width: 10px 10px 0 0;\n\t\t\tbottom: -10px;\n\t\t\tcontent: '';\n\t\t\tdisplay: block;\n\t\t\theight: 0;\n\t\t\tleft: 20px;\n\t\t\tposition: absolute;\n\t\t\twidth: 0;\n\n\t\t}\n\t\tp {\n\t\t\tfont-size: 13px;\n\t\t\tmargin: 0;\n\t\t\tline-height: 1.5;\n\t\t}\n\t}\n\n\t.llms-order-note-meta {\n\t\tcolor: #999;\n\t\tfont-size: 11px;\n\t\tmargin-left: 10px;\n\t}\n\n\n}\n","\n// This is a \"legacy\" rule that may be removable\n.llms-mb-list {\n\n\tlabel {\n\t\tfont-size: 15px;\n\t\tfont-weight: 700;\n\t\tline-height: 1.5;\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t}\n\n\t.description {\n\t\tmargin-bottom: 8px;\n\t}\n\n\t.input-full {\n\t\twidth: 100%;\n\t}\n}\n\n\n#poststuff .llms-metabox {\n\n\t@extend %cf;\n\n\th2, h3, h4, h6 {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\th2 {\n\t\tfont-size: 18px;\n\t\tfont-weight: 700;\n\t}\n\n\th3 {\n\t\tcolor: #1e1e1e;\n\t\tfont-size: 16px;\n\t}\n\n\th4 {\n\t\tcolor: #1e1e1e;\n\t\tfont-size: 16px;\n\t\tline-height: 1.5;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n\n\th4:not(.llms-collapsible-body h4:first-of-type) {\n\t\tmargin-top: 20px;\n\t}\n\n\t.llms-transaction-test-mode {\n\t\tbackground: #ffffd7;\n\t\tfont-style: italic;\n\t\tleft: 0;\n\t\tpadding: 2px;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\t\ttext-align: center;\n\t}\n\n\ta.llms-editable,\n\t.llms-metabox-icon,\n\tbutton.llms-editable {\n\t\tcolor: $color-grey;\n\t\ttext-decoration: none;\n\t\t&:hover {\n\t\t\tcolor: $color-brand-blue;\n\t\t}\n\t}\n\n\tbutton.llms-editable {\n\t\tborder: none;\n\t\tbackground: none;\n\t\tcursor: pointer;\n\t\tpadding: 0;\n\t\tvertical-align: top;\n\t}\n\n\th4 button.llms-editable {\n\t\tfloat: right;\n\t}\n\n\t.llms-table {\n\t\tmargin-top: 10px;\n\n\t}\n\n\tbutton.llms-button-primary {\n\t\tborder-radius: 8px;\n\t\tfont-size: 16px;\n\t\tfont-weight: 700;\n\t\theight: auto;\n\t}\n}\n\n.llms-metabox-section {\n\tbackground: #fff;\n\tmargin-top: 25px;\n\tposition: relative;\n\n\t&.no-top-margin {\n\t\tmargin-top: 0;\n\t}\n\n\t.llms-metabox-field {\n\t\tmargin: 5px 0;\n\t\tposition: relative;\n\t\tlabel {\n\t\t\tcolor: #1e1e1e;\n\t\t\tdisplay: block;\n\t\t\tmargin-bottom: 5px;\n\t\t\tfont-size: 14px;\n\t\t\tfont-weight: 400;\n\t\t}\n\n\t\tselect,\n\t\ttextarea,\n\t\tinput[type=\"text\"],\n\t\tinput[type=\"number\"] {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\tinput.md-text {\n\t\t\twidth: 105px;\n\t\t}\n\n\t\tinput.sm-text {\n\t\t\twidth: 45px;\n\t\t}\n\n\t\t.llms-datetime-field {\n\n\t\t\t.llms-date-input {\n\t\t\t\twidth: 95px;\n\t\t\t}\n\t\t\t.llms-time-input {\n\t\t\t\twidth: 45px;\n\t\t\t}\n\t\t\tem {\n\t\t\t\tfont-style: normal;\n\t\t\t\tpadding: 0 3px;\n\t\t\t}\n\n\t\t}\n\n\t\t.select2-container--default .select2-search--inline .select2-search__field {\n\t\t\tmin-height: auto;\n\t\t}\n\n\t\t.select2-container--default .select2-selection--multiple .select2-selection__rendered li {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t}\n\n\t/* Fixes to tighten the space between tinymce editor and label */\n\t.llms-metabox-field:has(.wp-editor-wrap) label {\n\t\tposition: relative;\n\t\tz-index: 5;\n\t}\n\n\t.llms-metabox-field .wp-editor-wrap {\n\t\tmargin-top: -30px;\n\t}\n\n}\n\n.llms-collapsible {\n\n\t@extend %clearfix;\n\n\tbackground: #fff;\n\tborder: 1px solid #efefef;\n\tborder-radius: 6px;\n\tbox-shadow: 2px 2px 8px rgba(0, 0, 0, 0.08);\n\tdisplay: block;\n\tmargin: 0;\n\tpadding: 0;\n\tposition: relative;\n\ttext-align: center;\n\tmargin-top: 0;\n\n\t&:last-child {\n\t\tmargin-bottom: 0;\n\t}\n\n\t&.opened .llms-collapsible-header {\n\t\t.dashicons-arrow-down {\n\t\t\tdisplay: none;\n\t\t}\n\t\t.dashicons-arrow-up {\n\t\t\tdisplay: inline;\n\t\t}\n\t}\n\n\t.llms-collapsible-header {\n\t\t@extend %clearfix;\n\t\tpadding: 15px;\n\n\t\t[class^=\"d-\"] {\n\t\t\talign-items: center;\n\t\t\tdisplay: flex;\n\t\t\tgap: 5px;\n\t\t}\n\n\t\t.d-right {\n\t\t\tjustify-content: flex-end;\n\t\t\tpadding-right: 0;\n\t\t}\n\n\t\th3 {\n\t\t\tcolor: #1e1e1e;\n\t\t\tdisplay: inline;\n\t\t\tmargin: 0;\n\t\t\tfont-size: 16px;\n\t\t\tfont-weight: 700;\n\n\t\t\tsmall {\n\t\t\t\tfont-weight: 400;\n\t\t\t}\n\t\t}\n\n\t\t.dashicons-arrow-up {\n\t\t\tdisplay: inline;\n\t\t}\n\t\t.dashicons-arrow-up {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\ta {\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t\t.dashicons {\n\t\t\tcolor: #1e1e1e;\n\t\t\tcursor: pointer;\n\t\t\ttransition: color .4s ease;\n\t\t\t&:hover {\n\t\t\t\tcolor: $color-blue;\n\t\t\t}\n\n\t\t\t&.dashicons-warning,&.dashicons-warning:hover,\n\t\t\t&.dashicons-trash:hover,\n\t\t\t&.dashicons-no:hover {\n\t\t\t\tcolor: $color-danger;\n\t\t\t}\n\t\t\t&.dashicons-warning.medium-danger {\n\t\t\t\t&,\n\t\t\t\t&:hover {\n\t\t\t\t\tcolor: $color-orange;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n\t.llms-collapsible-body {\n\t\t@extend %clearfix;\n\t\tdisplay: none;\n\t\tpadding: 15px;\n\t}\n\n}\n","._llms_instructors_data.repeater {\n\t.llms-repeater-rows .llms-repeater-row:first-child {\n\t\t.llms-repeater-remove { display: none; }\n\t}\n\n\t.llms-mb-list {\n\t\tpadding: 0 5px !important;\n\t}\n}\n",".post-type-llms_order #post-body-content { display: none; }\n#lifterlms-order-details {\n\t.handlediv,\n\t.handlediv.button-link,\n\t.postbox-header { display: none;}\n\t.inside {\n\t\tpadding: 20px;\n\t\tmargin-top: 0;\n\n\t}\n}\n\n// failed transaction color\n.llms-table tbody tr.llms-txn-failed td {\n\tbackground-color: rgba( $color-red, 0.5 );\n\tborder-bottom-color: rgba( $color-red, 0.5 );\n}\n\n// refunded transaction color\n.llms-table tbody tr.llms-txn-refunded td {\n\tbackground-color: rgba( orange, 0.5 );\n\tborder-bottom-color: rgba( orange, 0.5 );\n}\n\n.llms-txn-refund-form,\n.llms-manual-txn-form {\n\t.llms-metabox-section {\n\t\tmargin-top: 0;\n\t}\n\t.llms-metabox-field {\n\t\ttext-align: right;\n\t\tinput {\n\t\t\t&[type=\"number\"] { max-width: 100px; }\n\t\t\t&[type=\"text\"] { max-width: 340px; }\n\n\t\t}\n\t}\n}\n\n.llms-manual-txn-form {\n\tbackground-color: #eaeaea;\n\t.llms-metabox-section {\n\t\tbackground-color: #eaeaea;\n\t}\n}\n\n#llms-remaining-edit {\n\tdisplay: none;\n}\n.llms-remaining-edit--content {\n\tlabel, span, textarea {\n\t\tdisplay: block;\n\t}\n\n\tlabel {\n\t\tmargin-bottom: 20px;\n\t}\n\n\ttextarea, input {\n\t\twidth: 100%;\n\t}\n}\n",".submitbox .llms-mb-section,\n.llms-award-engagement-submitbox .llms-mb-list {\n\tmargin-bottom: 12px;\n\t&:last-of-type {\n\t\tmargin-bottom: 0;\n\t}\n\t@at-root .sync-action,\n\t&.student-info,\n\t&.post_author_override label {\n\t\t&:before {\n\t\t\t// dashicons-admin-users.\n\t\t\tfont: normal 20px/1 dashicons;\n\t\t\tspeak: never;\n\t\t\tdisplay: inline-block;\n\t\t\tmargin-left: -1px;\n\t\t\tpadding-right: 3px;\n\t\t\tvertical-align: top;\n\t\t\t-webkit-font-smoothing: antialiased;\n\t\t\t-moz-osx-font-smoothing: grayscale;\n\t\t\tposition: relative;\n\t\t\ttop: -1px;\n\t\t\tcolor: #8c8f94;\n\t\t\tbody:not(.admin-color-fresh) & {\n\t\t\t\tcolor: currentColor; // Used when selecting a different admin color scheme from the default one.\n\t\t\t}\n\t\t}\n\t}\n\t&.student-info,\n\t&.post_author_override label {\n\t\t&:before {\n\t\t\tcontent: '\\f110';\n\t\t}\n\t}\n\t@at-root .sync-action:before {\n\t\tcontent: '\\f113';\n\t\tcolor: white;\n\t}\n\t&.post_author_override label {\n\t\tdisplay: inline-block;\n\t\twidth: auto;;\n\t}\n}\n",".llms-metabox {\n\n\t> p:first-child {\n\t\tmargin-top: 0;\n\t}\n\n\t#llms-new-access-plan-model {\n\t\tdisplay: none;\n\t}\n\n\t.llms-access-plans {\n\t\t@extend %clearfix;\n\t\tcolor: #1e1e1e;\n\n\t\t> .llms-no-plans-msg {\n\t\t\tdisplay: none;\n\t\t\t.notice {\n\t\t\t\tmargin-right: 0;\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t}\n\t\t> .llms-no-plans-msg:last-child {\n\t\t\tdisplay: block;\n\t\t}\n\n\t\t&.dragging {\n\t\t\tbackground: #efefef;\n\t\t\tbox-shadow: inset 0 0 0 1px #e5e5e5;\n\t\t}\n\n\t\t.llms-spinning {\n\t\t\tz-index: 1;\n\t\t}\n\n\t\t.llms-invalid {\n\t\t\tborder-color: $color-danger;\n\t\t\t.dashicons-warning {\n\t\t\t\tdisplay: inline;\n\t\t\t}\n\t\t}\n\t\t.llms-needs-attention .dashicons-warning.medium-danger {\n\t\t\tdisplay: inline;\n\t\t}\n\t\t.dashicons-warning {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t.llms-access-plan {\n\t\tmargin-bottom: 20px;\n\t\ttext-align: left;\n\n\t\t[data-tip]:before {\n\t\t\ttext-align: center;\n\t\t}\n\n\t\t.llms-plan-link,\n\t\t[data-controller] {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&:hover,\n\t\t&.opened {\n\t\t\t.llms-plan-link {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\t\t}\n\n\t\t.llms-metabox-field {\n\t\t\tmargin: 15px 0;\n\t\t}\n\n\t\t.llms-required {\n\t\t\tcolor: $color-danger;\n\t\t\tmargin-left: 3px;\n\t\t}\n\t\t.notice {\n\t\t\tmargin-left: 0;\n\t\t}\n\t}\n\n}\n",".llms-metabox-students {\n\t.llms-table {\n\t\ttr .name {\n\t\t\ttext-align: left;\n\t\t}\n\t}\n\n\t.llms-add-student:hover {\n\t\tcolor: $color-green;\n\t}\n\t.llms-remove-student:hover {\n\t\tcolor: $color-red;\n\t}\n\n}\n",".llms-mb-container .tab-content ul:not(.select2-selection__rendered).llms-mb-repeater-fields > li.llms-mb-list {\n\tborder-bottom: none;\n\tpadding: 0 0 10px;\n}\n\n.llms-mb-list.repeater {\n\n\t.llms-repeater-rows {\n\t\tposition: relative;\n\t\tmargin-top: 10px;\n\t\tmin-height: 10px;\n\n\t\t&.dragging {\n\t\t\tbackground: #efefef;\n\t\t\tbox-shadow: inset 0 0 0 1px #e5e5e5;\n\t\t}\n\t}\n\n\t.llms-repeater-row {\n\t\tbackground: #fff;\n\t}\n\n\t.llms-mb-repeater-fields {\n\n\t}\n\n\t.llms-mb-repeater-footer {\n\t\ttext-align: right;\n\t\tmargin-top: 20px;\n\t}\n\n\t.tmce-active .wp-editor-area {\n\t\tcolor: #32373c; // wp core default color\n\t}\n\n}\n",".llms-builder-launcher {\n\n\tp {\n\t\tmargin-top: 0;\n\t}\n\n\tol {\n\t\tmargin-top: -6px;\n\t}\n\n\t.llms-button-primary {\n\t\tbox-sizing: border-box;\n\t}\n\n}\n",".wp-list-table {\n\t@include order_status_badges();\n}\n\n#lifterlms-order-transactions .llms-table tfoot th {\n\ttext-align: right;\n}\n",".llms-post-table-post-filter {\n\tdisplay: inline-block;\n\tmargin-right: 6px;\n\tmax-width: 100%;\n\twidth: 220px;\n}\n",".llms-nav-tab-wrapper {\n\tbackground: $color-blue;\n\tmargin: 20px 0;\n\n\t&.llms-nav-secondary {\n\t\tbackground: #e1e1e1;\n\n\t\t.llms-nav-item {\n\t\t\tmargin: 0;\n\n\t\t\t.llms-nav-link:hover,\n\t\t\t&.llms-active .llms-nav-link {\n\t\t\t\tbackground: darken( #e1e1e1, 8 );\n\t\t\t}\n\n\t\t}\n\n\t\t.llms-nav-link {\n\t\t\tcolor: #414141;\n\t\t\tfont-size: 15px;\n\t\t\tpadding: 8px 14px;\n\n\t\t\t.dashicons {\n\t\t\t\tfont-size: 15px;\n\t\t\t\theight: 15px;\n\t\t\t\twidth: 15px;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t&.llms-nav-text {\n\t\tbackground: inherit;\n\t\t.llms-nav-items {\n\t\t\tpadding-left: 0;\n\t\t}\n\t\t.llms-nav-item {\n\t\t\tbackground: inherit;\n\t\t\tcolor: #646970;\n\t\t\t&:last-child:after {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tcontent: '|';\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmargin: 0 8px 0 6px;\n\t\t\t}\n\t\t\t.llms-nav-link:hover {\n\t\t\t\tbackground: inherit;\n\t\t\t\tcolor: $color-brand-blue;\n\t\t\t}\n\t\t\t&.llms-active .llms-nav-link {\n\t\t\t\tbackground: inherit;\n\t\t\t\tcolor: #000;\n\t\t\t\tfont-weight: 600;\n\t\t\t\ttext-decoration: none;\n\t\t\t}\n\t\t\t.llms-nav-link {\n\t\t\t\tcolor: $color-brand-blue;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tletter-spacing: 0;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\ttext-decoration: underline;\n\t\t\t\ttext-transform: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t&.llms-nav-style-tabs {\n\t\tbackground-color: $color-brand-dark-blue;\n\t\tmargin: 0;\n\t\tpadding-top: 8px;\n\n\t\t.llms-nav-item {\n\t\t\tmargin: 0 3px;\n\n\t\t\t.llms-nav-link {\n\t\t\t\tborder-top-left-radius: 4px;\n\t\t\t\tborder-top-right-radius: 4px;\n\t\t\t}\n\n\t\t\t&.llms-active .llms-nav-link {\n\t\t\t\tbackground-color: #FFF;\n\t\t\t\tcolor: $color-brand-blue;\n\t\t\t\tfont-weight: 700;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t&.llms-nav-style-filters {\n\t\tbackground-color: $color-brand-blue;\n\t\tborder-radius: 12px;\n\t\tmargin: 20px 0;\n\t\toverflow: hidden;\n\t\tpadding: 0;\n\n\t\t.llms-nav-items {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: space-between;\n\t\t\tpadding-left: 0;\n\n\t\t\t@media only screen and (min-width: 782px) {\n\t\t\t\tflex-direction: row;\n\t\t\t}\n\n\t\t\t.llms-nav-item {\n\t\t\t\tfloat: none;\n\n\t\t\t\t.llms-nav-link {\n\t\t\t\t\tpadding: 14px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t.llms-nav-items {\n\t\t@include clearfix;\n\t\tmargin: 0;\n\t\tpadding-left: 10px;\n\t}\n\n\t\t.llms-nav-item {\n\t\t\tmargin: 0;\n\n\t\t\t.llms-nav-link:hover {\n\t\t\t\tbackground: $color-brand-blue;\n\t\t\t}\n\t\t\t&.llms-active .llms-nav-link {\n\t\t\t\tbackground: $color-brand-dark-blue;\n\t\t\t}\n\n\t\t\t&.llms-active .llms-nav-link {\n\t\t\t\tfont-weight: 400;\n\t\t\t}\n\n\t\t\t@media only screen and (min-width: 768px) {\n\t\t\t\tfloat: left;\n\n\t\t\t\t&.llms-nav-item-right {\n\t\t\t\t\tfloat: right;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t\t.llms-nav-link {\n\n\t\t\t\tcolor: #fff;\n\t\t\t\tcursor: pointer;\n\t\t\t\tdisplay: block;\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 15px;\n\t\t\t\tpadding: 9px 18px;\n\t\t\t\ttext-align: center;\n\t\t\t\ttext-decoration: none;\n\t\t\t\ttransition: all .3s ease;\n\n\t\t\t}\n}\n","#llms-options-page-contents {\n\th2 {\n\t\tcolor: #999;\n\t\tfont-weight: 500;\n\t\tletter-spacing: 2px;\n\t\tborder-bottom: 1px solid #999;\n\t}\n}\n",".llms-reporting.wrap {\n\n\t.llms-options-page-contents {\n\n\t\t.llms-nav-tab-wrapper.llms-nav-secondary {\n\t\t\tbox-shadow: 0 1px 3px rgba( 0, 0, 0, 0.15 );\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t}\n\t}\n\n\t.llms-stab-title {\n\t\tcolor: $color-brand-dark-blue;\n\t\tfont-size: 36px;\n\t\tfont-weight: 300;\n\t\tmargin-bottom: 20px;\n\t}\n\n\ttd.id a {\n\t\ttext-decoration: none;\n\t}\n\n\tth.id, td.id,\n\tth.name, td.name,\n\tth.registered, td.registered,\n\tth.last_seen, td.last_seen,\n\tth.overall_progress, td.overall_progress,\n\tth.title, td.title,\n\tth.course, td.course,\n\tth.lesson, td.lesson { text-align: left; }\n\n\ttd.section-title {\n\t\tbackground: #eaeaea;\n\t\ttext-align: left;\n\t\tfont-weight: 700;\n\t\tpadding: 16px 4px;\n\t}\n\n\ttd.questions-table {\n\t\ttext-align: left;\n\n\t\t.correct,\n\t\t.question,\n\t\t.selected {\n\t\t\ttext-align: left;\n\t\t\tmax-width: 300px;\n\n\t\t\timg {\n\t\t\t\theight: auto;\n\t\t\t\tmax-width: 64px;\n\t\t\t}\n\t\t}\n\t}\n\n\ttable.quiz-attempts {\n\t\tmargin-bottom: 40px;\n\t}\n\n\t&.tab--students {\n\t\t.llms-options-page-contents {\n\n\t\t\t#llms-award-certificate-wrapper .components-button.is-secondary {\n\t\t\t\tbackground: #e1e1e1;\n\t\t\t\tborder-radius: 8px;\n\t\t\t\tbox-shadow: none;\n\t\t\t\tcolor: #414141;\n\t\t\t\tfont-size: 13px;\n\t\t\t\tfont-weight: 700;\n\t\t\t\theight: auto;\n\t\t\t\tpadding: 8px 14px;\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&.tab--enrollments,\n\t&.tab--sales {\n\n\t\t.llms-nav-tab-wrapper.llms-nav-secondary {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t\t.llms-options-page-contents {\n\t\t\tbox-shadow: none;\n\t\t\tbackground: none;\n\t\t\tmargin-top: 20px;\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t.llms-nav-style-filters {\n\n\t\t\t.llms-analytics-form {\n\t\t\t\talign-items: center;\n\t\t\t\talign-self: center;\n\t\t\t\tcolor: #FFF;\n\t\t\t\tdisplay: flex;\n\t\t\t\tfont-size: 13px;\n\t\t\t\tgap: 5px;\n\n\t\t\t\tlabel {\n\t\t\t\t\tfont-weight: 700;\n\t\t\t\t}\n\n\t\t\t\tinput {\n\t\t\t\t\tborder: 0;\n\t\t\t\t\tfont-size: 13px;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: 0 4px;\n\t\t\t\t\tvertical-align: middle;\n\t\t\t\t\twidth: 110px;\n\t\t\t\t}\n\n\t\t\t\t.select2-container {\n\t\t\t\t\tinput {\n\t\t\t\t\t\twidth: 100% !important;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t.button.small {\n\t\t\theight: 23px;\n\t\t\tline-height: 23px;\n\t\t}\n\n\t\t.llms-analytics-filters {\n\t\t\tdisplay: none;\n\n\t\t\t.llms-inside-wrap {\n\t\t\t\tbackground-color: #FFF;\n\t\t\t\tbackground-color: #FFF;\n\t\t\t\tbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n\t\t\t\tmargin: -20px 10px 20px 10px;\n\t\t\t\tpadding: 20px;\n\t\t\t}\n\n\t\t\t.llms-nav-items {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tgap: 20px;\n\t\t\t\tjustify-content: space-between;\n\t\t\t\tmargin: 0;\n\n\t\t\t\t@media only screen and (min-width: 782px) {\n\t\t\t\t\tflex-direction: row;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t.llms-nav-item {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: 100%;\n\n\t\t\t\tlabel {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\tfont-weight: 700;\n\t\t\t\t\tmargin: 0 0 5px 0;\n\t\t\t\t}\n\n\t\t\t\t.select2-selection__rendered{\n\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\ttext-overflow: inherit;\n\t\t\t\t\twhite-space: normal;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tp {\n\t\t\t\tmargin: 0;\n\t\t\t\ttext-align: right;\n\n\t\t\t\t.llms-button-primary {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\t}\n\n\t.llms-reporting-tab.llms-reporting-quiz .llms-table-filter-wrap {\n\t\twidth: 160px;\n\t}\n\n\t.llms-table-header {\n\t\tform { display: inline; }\n\t\t.button {\n\t\t\tmargin-left: 5px;\n\t\t}\n\t}\n}\n\n.llms-charts-wrapper {\n\tbackground-color: #FFF;\n\tborder: 1px solid #dedede;\n\tborder-radius: 12px;\n\tbox-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);\n\tpadding: 20px;\n}\n\n.llms-reporting-tab {\n\n\th1, h2, h3, h4, h5, h6 {\n\t\tmargin: 0;\n\t\ta {\n\t\t\tcolor: $color-brand-blue;\n\t\t\ttext-decoration: none;\n\t\t\t&:hover {\n\t\t\t\tcolor: $color-brand-blue;\n\t\t\t}\n\t\t}\n\t}\n\n\th2 {\n\t\tfont-size: 22px;\n\t\tline-height: 1.5;\n\n\t\t&.llms-table-title {\n\t\t\tmargin-bottom: 20px;\n\t\t}\n\n\t}\n\n\th5 {\n\t\tfont-size: 15px;\n\t\tline-height: 1.5;\n\t}\n\n\t.llms-reporting-body {\n\t\tbackground-color: #FFF;\n\t\tbox-shadow: 0 1px 3px rgba( 0, 0, 0, .13 );\n\t\tmargin: 20px auto;\n\t\tpadding: 0;\n\n\t\t.llms-reporting-stab {\n\t\t\tpadding: 30px;\n\n\t\t\t.llms-table-header {\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t}\n\n\t\t.llms-gb-tab {\n\t\t\tpadding: 30px;\n\t\t}\n\n\t\t.llms-reporting-header {\n\t\t\tpadding: 30px;\n\t\t\tmargin: 0;\n\n\t\t\t.llms-reporting-header-img {\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmargin-right: 10px;\n\t\t\t\toverflow: hidden;\n\t\t\t\tvertical-align: middle;\n\t\t\t\timg {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\tmax-height: 64px;\n\t\t\t\t\twidth: auto;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-reporting-header-info {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tvertical-align: middle;\n\n\t\t\t}\n\n\t\t}\n\t}\n\n}\n\n.llms-reporting-breadcrumbs {\n\tmargin: 0;\n\tpadding: 0;\n\ta {\n\t\tcolor: $color-brand-blue;\n\t\tfont-size: 15px;\n\t\ttext-decoration: none;\n\t\t&:hover {\n\t\t\tcolor: $color-brand-blue-dark;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: ' > ';\n\t\t\tcolor: #646970;\n\t\t}\n\n\t\t&:last-child {\n\t\t\tcolor: #000;\n\t\t\tfont-weight: 700;\n\t\t\t&:after { display: none; }\n\t\t}\n\t}\n}\n\n#llms-students-table .name {\n\ttext-align: left;\n}\n\n.llms-reporting-tab-content {\n\tdisplay: flex;\n\n\t> header {\n\t\t@include clearfix;\n\t}\n\n\th3 {\n\t\tmargin-bottom: 20px;\n\t}\n\n\t.llms-reporting-tab-filter {\n\t\tfloat: right;\n\t\tposition: relative;\n\t\tmargin-right: 0.75em;\n\t\twidth: 180px;\n\t\ttop: -3px;\n\t}\n\n\n\t.llms-reporting-tab-main {\n\t\tflex: 3;\n\t\tmax-width: 75%;\n\t}\n\t.llms-reporting-tab-side {\n\t\tflex: 1;\n\t\tmargin-left: 20px;\n\t}\n\n\t> .llms-table-wrap {\n\t\tflex: 1;\n\t}\n\n}\n\n\n.llms-reporting-widgets {\n\t@include clearfix;\n}\n\n.llms-reporting-widget {\n\n\tborder-top: 4px solid $color-brand-blue;\n\tbackground: #fafafa;\n\tmargin-bottom: 10px;\n\tpadding: 30px;\n\t@include clearfix;\n\n\t.fa {\n\t\tcolor: #999;\n\t\tfloat: left;\n\t\tfont-size: 32px;\n\t\tmargin-right: 10px;\n\t}\n\n\tstrong {\n\t\tcolor: #333;\n\t\tfont-size: 20px;\n\t\tline-height: 1.2;\n\t}\n\n\t&.llms-reporting-student-address {\n\t\tstrong {\n\t\t\tline-height: 1.1;\n\t\t}\n\t}\n\n\tsup,\n\t.llms-price-currency-symbol {\n\t\tfont-size: 75%;\n\t\tposition: relative;\n\t\ttop: -4px;\n\t\tvertical-align: baseline;\n\t}\n\n\tsmall {\n\t\tfont-size: 13px;\n\t\t&.compare {\n\t\t\tmargin-left: 5px;\n\t\t\t&.positive {\n\t\t\t\tcolor: $color-green;\n\t\t\t}\n\t\t\t&.negative {\n\t\t\t\tcolor: $color-red;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n.llms-reporting-event {\n\tborder-left: 4px solid #555;\n\tbackground: #fafafa;\n\tfont-size: 11px;\n\tline-height: 1.2;\n\tmargin-bottom: 0.75em;\n\tpadding: 10px;\n\t@include clearfix;\n\n\t&.color--blue {\n\t\tborder-left-color: $color-blue;\n\t}\n\n\t&.color--green,\n\t&._enrollment_trigger,\n\t&._is_complete.yes {\n\t\tborder-left-color: $color-green;\n\t}\n\n\t&.color--purple,\n\t&._status.enrolled {\n\t\tborder-left-color: $color-purple;\n\t}\n\n\t&.color--red,\n\t&._status.expired,\n\t&._status.cancelled {\n\t\tborder-left-color: $color-red;\n\t}\n\t&.color--orange,\n\t&._achievement_earned,\n\t&._certificate_earned,\n\t&._email_sent {\n\t\tborder-left-color: $color-orange;\n\t}\n\n\ttime {\n\t\tcolor: #888;\n\t}\n\n\t.llms-student-avatar {\n\t\tmargin-left: 10px;\n\t\tfloat: right;\n\t}\n\n\ta {\n\t\ttext-decoration: none;\n\t\tcolor: inherit;\n\t}\n\n}\n\n@media only screen and (min-width: 782px) {\n\t.llms-reporting.wrap {\n\t\t.llms-options-page-contents {\n\t\t\t.llms-nav-tab-wrapper.llms-nav-secondary {\n\t\t\t\tmargin-left: 0;\n\t\t\t\tmargin-right: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\n@import \"../_includes/quiz-result-question-list\";\n",".llms-quiz-attempt-results {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style-type: none;\n\n\t.llms-quiz-attempt-question {\n\t\tbackground: #efefef;\n\t\tborder-radius: $radius-small;\n\t\tmargin: 0 0 15px;\n\t\tposition: relative;\n\t\tlist-style-type: none;\n\t\t.toggle-answer {\n\t\t\tcolor: inherit;\n\t\t\tdisplay: flex;\n\t\t\tgap: 10px;\n\t\t\tjustify-content: space-between;\n\t\t\tpadding: 15px 35px 15px 15px;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t\t&.status--waiting.correct,\n\t\t&.status--waiting.incorrect {\n\t\t\tbackground: rgba( $color-orange, 0.2 );\n\t\t\t.llms-status-icon {\n\t\t\t\tbackground-color: $color-orange;\n\t\t\t}\n\t\t}\n\n\t\t&.status--graded.correct {\n\t\t\tbackground: rgba( $color-green, 0.15 );\n\t\t\t.llms-status-icon {\n\t\t\t\tbackground-color: $color-green;\n\t\t\t}\n\t\t}\n\t\t&.status--graded.incorrect {\n\t\t\tbackground: rgba( $color-red, 0.15 );\n\t\t\t.llms-status-icon {\n\t\t\t\tbackground-color: $color-red;\n\t\t\t}\n\t\t}\n\t\tpre {\n\t\t\toverflow: auto;\n\t\t}\n\t\t.llms-question-title {\n\t\t\tfont-size: 22px;\n\t\t\tmargin: 0;\n\t\t\tline-height: 1.4;\n\t\t}\n\n\t\t.llms-points {\n\t\t\tline-height: 1.4;\n\t\t}\n\n\t\t.llms-status-icon-tip {\n\t\t\tposition: absolute;\n\t\t\tright: -12px;\n\t\t\ttop: -2px;\n\t\t}\n\n\t\t.llms-status-icon {\n\t\t\tcolor: rgba( 255, 255, 255, 0.65 );\n\t\t\tborder-radius: 50%;\n\t\t\tfont-size: 30px;\n\t\t\theight: 40px;\n\t\t\tline-height: 40px;\n\t\t\ttext-align: center;\n\t\t\twidth: 40px;\n\t\t}\n\n\t\t.llms-quiz-attempt-question-main {\n\t\t\tdisplay: none;\n\t\t\tpadding: 0 15px 15px;\n\n\t\t\t.llms-quiz-results-label {\n\t\t\t\tfont-weight: 700;\n\t\t\t\tmargin: 0 0 10px;\n\t\t\t\tpadding: 0;\n\t\t\t}\n\n\t\t\tul.llms-quiz-attempt-answers {\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\tli.llms-quiz-attempt-answer {\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\tmargin: 0 0 0 30px;\n\t\t\t\t\t&:only-child {\n\t\t\t\t\t\tlist-style-type: none;\n\t\t\t\t\t\tmargin-left: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\timg {\n\t\t\t\theight: auto;\n\t\t\t\tmax-width: 200px;\n\t\t\t}\n\n\t\t\t.llms-quiz-attempt-answer-section {\n\t\t\t\tborder-top: 2px solid rgba( #fff, 0.5 );\n\t\t\t\tmargin-top: 20px;\n\t\t\t\tpadding-top: 20px;\n\t\t\t\t&:first-child {\n\t\t\t\t\tborder-top: none;\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\tpadding-top: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t&.type--picture_choice,\n\t\t&.type--picture_reorder {\n\t\t\tul.llms-quiz-attempt-answers {\n\t\t\t\tlist-style-type: none;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\n\t\t\t\tli.llms-quiz-attempt-answer {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tlist-style-type: none;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: 5px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.type--removed {\n\t\t\t.llms-question-title {\n\t\t\t\tfont-style: italic;\n\t\t\t\tfont-weight: normal;\n\t\t\t}\n\t\t\topacity: .5;\n\t\t}\n\n\t}\n}\n",".wrap.llms-reporting,\n.wrap.lifterlms-settings,\n.wrap.llms-status {\n\n\t.llms-inside-wrap {\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 auto;\n\n\t\t.llms-nav-text {\n\t\t\tmargin: 0 auto;\n\t\t}\n\t}\n\n\t.llms-subheader {\n\n\t\t.llms-save {\n\t\t\tflex: auto;\n\t\t\ttext-align: right;\n\t\t}\n\n\t}\n\n\t.llms-nav-tab-wrapper.llms-nav-secondary {\n\t\tbackground-color: #FFF;\n\t\tbox-shadow: 0 1px 3px rgba( 0, 0, 0, 0.15 );\n\t\tmargin: 0 -20px 20px -10px;\n\n\t\t.llms-nav-items {\n\t\t\tpadding-left: 0;\n\t\t}\n\n\t\t.llms-nav-item {\n\t\t\t.llms-nav-link:hover {\n\t\t\t\tbackground: #f0f0f1;\n\t\t\t\tcolor: #222222;\n\t\t\t}\n\n\t\t\t&.llms-active .llms-nav-link {\n\t\t\t\tbackground: #fafafa;\n\t\t\t\tcolor: $color-blue;\n\t\t\t\tborder-top-color: $color-blue;\n\t\t\t}\n\n\t\t\t&.llms-active .llms-nav-link {\n\t\t\t\tfont-weight: 700;\n\t\t\t}\n\t\t}\n\n\t\t.llms-nav-link {\n\t\t\tborder-top: 2px solid transparent;\n\t\t\tpadding: 14px;\n\t\t}\n\n\t}\n\n\t.llms-setting-group {\n\t\tbackground-color: #FFF;\n\t\tbox-shadow: 0 1px 3px rgba( 0, 0, 0, .13 );\n\t\tmargin: 20px auto;\n\t\tpadding: 20px;\n\n\t\t.llms-label {\n\t\t\tborder-bottom: 1px solid #efefef;\n\t\t\tfont-weight: 700;\n\t\t\tfont-size: 20px;\n\t\t\tpadding: 20px;\n\t\t\tmargin: -20px -20px 20px;\n\n\t\t\t.llms-button-primary {\n\t\t\t\tmargin-left: 10px;\n\t\t\t}\n\t\t}\n\n\t\t.llms-help-tooltip .dashicons {\n\t\t\tcolor: #444;\n\t\t\tcursor: help;\n\t\t}\n\n\t\t.form-table {\n\t\t\tmargin: 0;\n\t\t\ttr:first-child .llms-subtitle {\n\t\t\t\tmargin-top: 0;\n\t\t\t}\n\t\t}\n\n\t\ttd[colspan=\"2\"] {\n\t\t\tpadding-top: 0;\n\t\t\tpadding-left: 0;\n\t\t}\n\n\t\ttr.llms-disabled-field {\n\t\t\topacity: 0.5;\n\t\t\tpointer-events: none;\n\t\t}\n\n\t\tp {\n\t\t\tfont-size: 14px;\n\t\t}\n\t\tinput[type=\"text\"],\n\t\tinput[type=\"password\"],\n\t\tinput[type=\"datetime\"],\n\t\tinput[type=\"datetime-local\"],\n\t\tinput[type=\"date\"],\n\t\tinput[type=\"month\"],\n\t\tinput[type=\"time\"],\n\t\tinput[type=\"week\"],\n\t\tinput[type=\"number\"],\n\t\tinput[type=\"email\"],\n\t\tinput[type=\"url\"],\n\t\tinput[type=\"search\"],\n\t\tinput[type=\"tel\"],\n\t\tinput[type=\"color\"],\n\t\tselect,\n\t\ttextarea:not(.wp-editor-area) {\n\t\t\twidth: 50%;\n\t\t\t&.medium { width: 30%; }\n\t\t\t&.small { width: 20%; }\n\t\t\t&.tiny { width: 10%; }\n\t\t}\n\t}\n\n\t@media only screen and (min-width: 782px) {\n\t\t.llms-nav-tab-wrapper.llms-nav-secondary {\n\t\t\t.llms-nav-item {\n\t\t\t\t&.llms-active .llms-nav-link {\n\t\t\t\t\tbackground: #fff;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Email Delivery providers.\n\t#llms-mailhawk-connect {\n\t\theight: auto;\n\t\tmargin: 0 0 6px;\n\t\tposition: relative;\n\n\t\t.dashicons {\n\t\t\tmargin: -4px 4px 0 0;\n\t\t\tvertical-align: middle;\n\t\t}\n\t}\n\t#llms-sendwp-connect {\n\t\theight: auto;\n\t\tmargin: 0 0 6px;\n\t\tposition: relative;\n\n\t\t.fa {\n\t\t\tmargin-right: 4px;\n\t\t}\n\t}\n\n}\n\n@media only screen and (min-width: 782px) {\n\t.wrap.lifterlms-settings {\n\t\t.llms-subheader {\n\t\t\theight: 40px;\n\t\t\tposition: sticky;\n\t\t\ttop: 32px;\n\t\t}\n\t\t.llms-nav-tab-wrapper.llms-nav-secondary {\n\t\t\tmargin: 0 -20px 20px -22px;\n\n\t\t\t.llms-nav-items {\n\t\t\t\tpadding-left: 10px;\n\t\t\t}\n\n\t\t}\n\t}\n\n\t.wrap.llms-reporting {\n\t\t.llms-nav-tab-wrapper.llms-nav-secondary {\n\t\t\tmargin: 0 -20px 20px -22px;\n\n\t\t\t.llms-nav-items {\n\t\t\t\tpadding-left: 10px;\n\t\t\t}\n\n\t\t}\n\t}\n\t\n\n\t.wrap.llms-status {\n\t\t.llms-nav-tab-wrapper.llms-nav-secondary {\n\t\t\tmargin: 0 -20px 20px -22px;\n\n\t\t\t.llms-nav-items {\n\t\t\t\tpadding-left: 10px;\n\t\t\t}\n\n\t\t}\n\t}\n}\n",".wrap.llms-dashboard {\n\n\t.llms-inside-wrap {\n\t\tpadding-top: 30px;\n\t}\n\n\t#poststuff {\n\n\t\th2 {\n\t\t\tpadding: 12px 20px;\n\t\t}\n\n\t}\n\n\t.llms-dashboard-activity {\n\n\t\th2 {\n\t\t\tfont-size: 20px;\n\t\t\tfont-weight: 700;\n\t\t\tline-height: 1.5;\n\t\t\tmargin-top: 0;\n\t\t\ttext-align: center;\n\t\t}\n\t}\n\n\t.postbox {\n\t\tbackground-color: #FFF;\n\t\tborder: none;\n\t\tbox-shadow: 0 1px 3px rgba( 0, 0, 0, 0.13 );\n\n\t\t.postbox-header {\n\t\t\tborder-bottom-color: #efefef;\n\n\t\t}\n\n\t\t.inside {\n\t\t\tpadding: 20px;\n\t\t}\n\t}\n\n\t#llms_dashboard_addons {\n\n\t\t.llms-addons-wrap {\n\t\t\tmargin-top: 0;\n\n\t\t\t.llms-add-on-item {\n\t\t\t\tmargin-top: 0;\n\n\t\t\t\tp {\n\t\t\t\t\ttext-align: left;\n\t\t\t\t}\n\n\t\t\t\tfooter.llms-actions {\n\t\t\t\t\tpadding-top: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tp {\n\t\t\ttext-align: center;\n\n\t\t\t.llms-button-primary {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmargin-top: 15px;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t#llms_dashboard_quick_links {\n\n\t\tul {\n\t\t\tlist-style: disc;\n\t\t\tmargin: 5px 0 0 20px;\n\n\t\t\tli {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tline-height: 1.5;\n\t\t\t}\n\t\t}\n\n\t\t.llms-quick-links {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: 1fr;\n\t\t\tgrid-gap: 30px;\n\n\t\t\ta {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\n\t\t\t.llms-list {\n\n\t\t\t\th3 {\n\t\t\t\t\tmargin: 0 0 10px 0;\n\t\t\t\t}\n\n\t\t\t\tul {\n\t\t\t\t\tmargin-bottom: 20px;\n\n\t\t\t\t\t&.llms-checklist {\n\t\t\t\t\t\tlist-style: none;\n\t\t\t\t\t\tmargin-left: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t.fa {\n\t\t\t\t\ttext-align: center;\n\t\t\t\t\twidth: 16px;\n\t\t\t\t}\n\n\t\t\t\t.fa-check {\n\t\t\t\t\tcolor: #008a20;\n\t\t\t\t}\n\n\t\t\t\t.fa-times {\n\t\t\t\t\tcolor: #d63638;\n\t\t\t\t}\n\n\t\t\t\t.llms-button-primary,\n\t\t\t\t.llms-button-secondary,\n\t\t\t\t.llms-button-action {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\ttext-align: center;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t@media only screen and (min-width: 782px) {\n\t\t\t\tgrid-template-columns: 1fr 1fr 1fr;\n\t\t\t}\n\t\t}\n\n\t\t.llms-help-links {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: 1fr 1fr;\n\t\t\tgrid-gap: 20px;\n\n\t\t\t.llms-list {\n\n\t\t\t\th3 {\n\t\t\t\t\tmargin: 0;\n\n\t\t\t\t\t.dashicons {\n\t\t\t\t\t\tcolor: #AAA;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t@media only screen and (min-width: 782px) {\n\t\t\t\tgrid-template-columns: 1fr 1fr 1fr 1fr;\n\t\t\t}\n\n\t\t}\n\n\t}\n\t#llms_dashboard_blog,\n\t#llms_dashboard_podcast {\n\n\t\tul {\n\t\t\tmargin: 0;\n\n\t\t\tli {\n\t\t\t\tmargin: 0 0 15px 0;\n\n\t\t\t\ta {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tp {\n\t\t\tmargin: 15px 0;\n\t\t\ttext-align: center;\n\n\t\t\ta {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\t\t}\n\t}\n\n}\n","#llms_dashboard_widget {\n\n\t.inside {\n\t\tmargin: 0;\n\t\tpadding-bottom: 8px;\n\t}\n\n\t.llms-dashboard-widget-wrap {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\talign-items: center;\n\t\tpadding-top: 12px;\n\t}\n\n\t.activity-block {\n\t\tpadding-bottom: 8px;\n\t\tborder-color: #e8e8e8;\n\t}\n\n\th3 {\n\t\tmargin-bottom: 0;\n\t}\n\n\t.llms-charts-wrapper {\n\t\tdisplay: none;\n\t}\n\n\t.llms-widget-row {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tgap: 8px;\n\t\twidth: 100%;\n\t\talign-items: stretch;\n\t\tpadding: 4px 0;\n\n\t\t&:before,\n\t\t&:after {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t.llms-widget-1-4 {\n\t\tpadding: 0;\n\t\tflex: 1;\n\t}\n\n\t.llms-widget {\n\t\tpadding: 8px 8px 12px;\n\t\tmargin: 0;\n\t\tborder-radius: 6px;\n\t\tborder: 1px solid #e8e8e8;\n\t\tbox-shadow: 0px 2px 4px rgb(246 247 247);\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tjustify-content: center;\n\t\talign-items: flex-end;\n\t}\n\n\t.llms-label {\n\t\tfont-size: 14px;\n\t\twidth: 100%;\n\t\talign-self: flex-start;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t}\n\n\t.llms-widget-content {\n\t\tfont-size: 20px;\n\t\tmargin: 0;\n\t}\n\n\t.llms-widget-info-toggle {\n\t\tdisplay: none;\n\t}\n\n\ta {\n\t\tborder: 0;\n\t}\n\n\t.subsubsub {\n\t\tcolor: #dcdcde;\n\t}\n}\n\n.llms-dashboard-widget-feed {\n\tmargin: 0 -12px;\n\tpadding: 0;\n\tbackground-color: #f6f7f7;\n\n\tli {\n\t\tmargin: 0;\n\t\tpadding: 8px 12px;\n\t\tborder-bottom: 1px solid #e8e8e8;\n\t}\n\n\tspan {\n\t\tdisplay: block;\n\t}\n}\n",".wrap.llms-resources {\n\n\t.llms-inside-wrap {\n\t\tpadding-top: 30px;\n\t}\n\n\t#poststuff {\n\n\t\t#post-body.columns-2 {\n\t\t\tmargin-right: 350px;\n\n\t\t\t#side-sortables {\n\t\t\t\twidth: 330px;\n\n\t\t\t\t@media only screen and (max-width: 850px) {\n\t\t\t\t\twidth: auto;\n\t\t\t\t}\t\n\n\t\t\t}\n\n\t\t}\n\n\t\t#postbox-container-1 {\n\t\t\tfloat: right;\n\t\t\tmargin-right: -350px;\n\t\t\twidth: 330px\n\t\t}\n\n\t\th2 {\n\t\t\tpadding: 12px 20px;\n\t\t}\n\n\t}\n\n\t#poststuff \n\t.postbox {\n\t\tbackground-color: #FFF;\n\t\tborder: none;\n\t\tbox-shadow: 0 1px 3px rgba( 0, 0, 0, 0.13 );\n\n\t\t.postbox-header {\n\t\t\tborder-bottom-color: #efefef;\n\n\t\t}\n\n\t\t.inside {\n\t\t\tmargin: 0;\n\t\t\tpadding: 20px;\n\t\t}\n\t}\n\n\t#llms_dashboard_welcome_video {\n\n\t\t.llms-welcome-video {\n\n\t\t\tp {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tline-height: 1.5;\n\t\t\t\tmargin: 0 0 40px 0;\n\t\t\t}\n\n\t\t\t.llms-welcome-video-container {\n\t\t\t\theight: 0;\n\t\t\t\toverflow: hidden;\n\t\t\t\tpadding-top: 30px;\n\t\t\t\tpadding-bottom: 56.25%;\n\t\t\t\tposition: relative;\n\n\t\t\t\tiframe,\n\t\t\t\tobject,\n\t\t\t\tembed {\n\t\t\t\t\tleft: 0;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t#llms_dashboard_getting_started {\n\n\t\tul {\n\t\t\tmargin: 0 0 20px 0;\n\n\t\t\tli {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tline-height: 1.5;\n\t\t\t\tmargin-bottom: 15px;\n\t\t\t}\n\t\t}\n\n\t\t.llms-button-primary {\n\t\t\tdisplay: block;\n\t\t\tmargin-top: auto;\n\t\t\tmax-width: 300px;\n\t\t\ttext-align: center;\n\t\t}\n\n\t}\n\n\t#llms_dashboard_resource_links {\n\n\t\tul {\n\t\t\tlist-style: disc;\n\t\t\tmargin: 5px 0 0 20px;\n\n\t\t\tli {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tline-height: 1.5;\n\t\t\t}\n\t\t}\n\n\t\t.llms-resource-links {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: 1fr;\n\t\t\tgrid-gap: 60px;\n\n\t\t\ta {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\n\t\t\t.llms-list {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\n\t\t\t\th3 {\n\t\t\t\t\tmargin: 0 0 10px 0;\n\n\t\t\t\t\t.dashicons {\n\t\t\t\t\t\tcolor: #AAA;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tul {\n\t\t\t\t\tmargin-bottom: 20px;\n\t\t\t\t}\n\n\t\t\t\t.llms-button-primary,\n\t\t\t\t.llms-button-secondary,\n\t\t\t\t.llms-button-action {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\tmargin-top: auto;\n\t\t\t\t\tmax-width: 300px;\n\t\t\t\t\ttext-align: center;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t@media only screen and (min-width: 782px) {\n\t\t\t\tgrid-template-columns: 1fr 1fr 1fr;\n\t\t\t}\n\t\t}\n\n\t}\n\n}\n",".llms-remarks {\n\n\t.llms-remarks-field {\n\t\theight: 120px;\n\t\twidth: 100%;\n\t}\n\n\tinput[type=\"number\"] {\n\t\twidth: 60px;\n\t}\n\n\n}\n\n\nbutton[name=\"llms_quiz_attempt_action\"] {\n\t.save { display: none; }\n\t&.grading {\n\t\t.default { display: none };\n\t\t.save { display: inline; }\n\t}\n}\n\n",".llms-form-fields {\n\t@extend %clearfix;\n\tbox-sizing: border-box;\n\t& * {\n\t\tbox-sizing: border-box;\n\t}\n\t&.flush {\n\t\t.llms-form-field {\n\t\t\tpadding: 0 0 20px;\n\t\t}\n\t}\n\n\tlabel:not(.llms-field-html label) {\n\t\tfont-weight: 700;\n\t}\n\n\t.wp-block-columns, .wp-block-column {\n\t\tmargin-bottom: 0;\n\t}\n}\n\n\t.llms-form-heading {\n\t\tpadding: 0 10px 10px;\n\t}\n\n\t.llms-form-field {\n\t\tfloat: left;\n\t\tpadding: 0 10px 20px;\n\t\tposition: relative;\n\t\twidth: 100%;\n\n\t\t// Ensure \"empty\" labels don't break the layout.\n\t\t// See the billing_address_2 field which has no label.\n\t\tlabel:empty:after {\n\t\t\tcontent: '\\00a0';\n\t\t}\n\n\t\t[type=\"text\"],\n\t\t[type=\"password\"],\n\t\t[type=\"email\"],\n\t\t[type=\"url\"],\n\t\t[type=\"tel\"],\n\t\t[type=\"number\"] {\n\t\t\tbackground-color: $color-white;\n\t\t\tbackground-clip: padding-box;\n\t\t\tborder: 1px solid $color-grey;\n\t\t\tborder-radius: $radius-small;\n\t\t\tbox-sizing: border-box;\n\t\t\tfont-size: 16px;\n\t\t\tline-height: 1;\n\t\t\tpadding: 8px 12px;\n\t\t\ttransition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\tinput:focus,\n\t\tinput:focus-visible {\n\t\t\tborder-color: $color-brand-blue-light;\n\t\t\toutline: thin solid;\n\t\t}\n\n\t\tselect {\n\t\t\t-webkit-appearance: none;\n\t\t\t-moz-appearance: none;\n\t\t\t-ms-appearance: none;\n\t\t\tappearance: none;\n\t\t\tbackground-color: $color-white;\n\t\t\tborder: 1px solid $color-grey;\n\t\t\tborder-radius: $radius-small;\n\t\t\tbox-sizing: border-box;\n\t\t\tcolor: $color-black;\n\t\t\tpadding: 8px 12px;\n\t\t\tmargin: 0;\n\t\t\twidth: 100%;\n\t\t\tfont-family: inherit;\n\t\t\tfont-size: 16px;\n\t\t\tcursor: inherit;\n\t\t\tline-height: 1.6;\n\t\t\tz-index: 1;\n\t\t\toutline: none;\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-image: linear-gradient(45deg, transparent 50%, currentcolor 50%), linear-gradient(135deg, currentcolor 50%, transparent 50%);\n\t\t\tbackground-position: right 15px top 1.3rem, right 10px top 1.3rem;\n\t\t\tbackground-size: 5px 5px, 5px 5px;\n\t\t}\n\n\t\tselect::-ms-expand {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\tselect:focus {\n\t\t\tborder: 1px solid $color-brand-blue-light;\n\t\t\toutline: thin solid;\n\t\t}\n\n\t\t&.valid {\n\t\t\tinput[type=\"date\"], input[type=\"time\"], input[type=\"datetime-local\"], input[type=\"week\"], input[type=\"month\"], input[type=\"text\"], input[type=\"email\"], input[type=\"url\"], input[type=\"password\"], input[type=\"search\"], input[type=\"tel\"], input[type=\"number\"], textarea, select {\n\t\t\t\tbackground: rgba( #83c373, .3 );\n\t\t\t\tborder-color: #83c373;\n\t\t\t}\n\t\t}\n\n\t\t&.error,\n\t\t&.invalid {\n\t\t\tinput[type=\"date\"], input[type=\"time\"], input[type=\"datetime-local\"], input[type=\"week\"], input[type=\"month\"], input[type=\"text\"], input[type=\"email\"], input[type=\"url\"], input[type=\"password\"], input[type=\"search\"], input[type=\"tel\"], input[type=\"number\"], textarea, select {\n\t\t\t\tbackground: rgba( $color-red, .3 );\n\t\t\t\tborder-color: $color-red;\n\t\t\t}\n\t\t}\n\n\t\t&.llms-visually-hidden-field {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&.align-right {\n\t\t\ttext-align: right;\n\t\t}\n\n\t\t@media screen and ( min-width: 600px ) {\n\t\t\t$i: 1;\n\t\t\t@while $i <= 12 {\n\t\t\t\t&.llms-cols-#{$i} {\n\t\t\t\t\twidth: calc( $i / 12 ) * 100%;\n\t\t\t\t\t$i: $i + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.type-hidden { padding: 0; }\n\n\t\t&.type-radio,\n\t\t&.type-checkbox {\n\t\t\tinput,\n\t\t\tlabel {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: auto;\n\t\t\t}\n\t\t\tinput {\n\t\t\t\tmargin-right: 10px;\n\t\t\t}\n\t\t\tlabel + .llms-description {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\n\t\t&.type-radio:not(.is-group) {\n\n\t\t\tinput[type=\"radio\"] {\n\t\t\t\tposition: absolute;\n\t\t\t\topacity: 0;\n\t\t\t\tvisibility: none;\n\t\t\t}\n\n\t\t\tlabel:before {\n\t\t\t\tbackground: #fafafa;\n\t\t\t\tbackground-position: -24px 0;\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tbox-shadow: hsla( 0,0%,100%,.15) 0 1px 1px, inset hsla(0,0%,0%,.35) 0 0 0 1px;\n\t\t\t\tcontent: '';\n\t\t\t\tcursor: pointer;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\theight: 22px;\n\t\t\t\tmargin-right: 5px;\n\t\t\t\tposition: relative;\n\t\t\t\ttransition: background-position .15s cubic-bezier(.8, 0, 1, 1);\n\t\t\t\ttop: -3px;\n\t\t\t\tvertical-align: middle;\n\t\t\t\twidth: 22px;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\tinput[type=\"radio\"]:checked + label:before {\n\t\t\t\ttransition: background-position .2s .15s cubic-bezier(0, 0, .2, 1);\n\t\t\t\tbackground-position: 0 0;\n\t\t\t\tbackground-image: radial-gradient(ellipse at center, $color-brand-blue 0%,$color-brand-blue 40%, #fafafa 45%);\n\t\t\t}\n\n\t\t}\n\n\t\t.llms-input-group {\n\t\t\tmargin-top: 5px;\n\t\t\t.llms-form-field {\n\t\t\t\tpadding: 0 0 5px 5px;\n\t\t\t}\n\t\t}\n\n\t\t&.type-reset,\n\t\t&.type-button,\n\t\t&.type-submit {\n\t\t\tbutton:not(.auto) { width: 100%; }\n\t\t}\n\n\t\t.llms-description {\n\t\t\tfont-size: 14px;\n\t\t\tfont-style: italic;\n\t\t\tline-height: 18px;\n\t\t}\n\n\t\t.llms-required {\n\t\t\tcolor: $color-red;\n\t\t\tmargin-left: 4px;\n\t\t}\n\n\t\tinput, textarea, select {\n\t\t\twidth: 100%;\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\n\t\t.select2-container .select2-selection--single {\n\t\t\theight: auto;\n\t\t\tpadding: 4px 6px;\n\t\t}\n\t\t.select2-container--default .select2-selection--single .select2-selection__arrow {\n\t\t\theight: 100%;\n\t\t}\n\n\t}\n\n\n\t.llms-password-strength-meter {\n\t\tborder: 1px solid #dadada;\n\t\tdisplay: none;\n\t\tfont-size: 10px;\n\t\tmargin-top: -10px;\n\t\tpadding: 1px;\n\t\tposition: relative;\n\t\ttext-align: center;\n\n\t\t&:before {\n\t\t\tbottom: 0;\n\t\t\tcontent: '';\n\t\t\tleft: 0;\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\ttransition: width .4s ease;\n\t\t}\n\n\t\t&.mismatch,\n\t\t&.too-short,\n\t\t&.very-weak {\n\t\t\tborder-color: #e35b5b;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #e35b5b, 0.25 );\n\t\t\t\twidth: 25%;\n\t\t\t}\n\t\t}\n\n\t\t&.too-short:before {\n\t\t\twidth: 0;\n\t\t}\n\n\t\t&.weak {\n\t\t\tborder-color: #f78b53;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #f78b53, 0.25 );\n\t\t\t\twidth: 50%;\n\t\t\t}\n\t\t}\n\n\t\t&.medium {\n\t\t\tborder-color: #ffc733;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #ffc733, 0.25 );\n\t\t\t\twidth: 75%;\n\t\t\t}\n\t\t}\n\n\t\t&.strong {\n\t\t\tborder-color: #83c373;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #83c373, 0.25 );\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\n\t\t+ .llms-description {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n","/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left {\n margin-right: .3em;\n}\n.fa.fa-pull-right {\n margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n.pull-left {\n float: left;\n}\n.fa.pull-left {\n margin-right: .3em;\n}\n.fa.pull-right {\n margin-left: .3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n.fa-music:before {\n content: \"\\f001\";\n}\n.fa-search:before {\n content: \"\\f002\";\n}\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n.fa-heart:before {\n content: \"\\f004\";\n}\n.fa-star:before {\n content: \"\\f005\";\n}\n.fa-star-o:before {\n content: \"\\f006\";\n}\n.fa-user:before {\n content: \"\\f007\";\n}\n.fa-film:before {\n content: \"\\f008\";\n}\n.fa-th-large:before {\n content: \"\\f009\";\n}\n.fa-th:before {\n content: \"\\f00a\";\n}\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n.fa-check:before {\n content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n.fa-power-off:before {\n content: \"\\f011\";\n}\n.fa-signal:before {\n content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n.fa-home:before {\n content: \"\\f015\";\n}\n.fa-file-o:before {\n content: \"\\f016\";\n}\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n.fa-road:before {\n content: \"\\f018\";\n}\n.fa-download:before {\n content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n.fa-refresh:before {\n content: \"\\f021\";\n}\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n.fa-lock:before {\n content: \"\\f023\";\n}\n.fa-flag:before {\n content: \"\\f024\";\n}\n.fa-headphones:before {\n content: \"\\f025\";\n}\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n.fa-tag:before {\n content: \"\\f02b\";\n}\n.fa-tags:before {\n content: \"\\f02c\";\n}\n.fa-book:before {\n content: \"\\f02d\";\n}\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n.fa-print:before {\n content: \"\\f02f\";\n}\n.fa-camera:before {\n content: \"\\f030\";\n}\n.fa-font:before {\n content: \"\\f031\";\n}\n.fa-bold:before {\n content: \"\\f032\";\n}\n.fa-italic:before {\n content: \"\\f033\";\n}\n.fa-text-height:before {\n content: \"\\f034\";\n}\n.fa-text-width:before {\n content: \"\\f035\";\n}\n.fa-align-left:before {\n content: \"\\f036\";\n}\n.fa-align-center:before {\n content: \"\\f037\";\n}\n.fa-align-right:before {\n content: \"\\f038\";\n}\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n.fa-list:before {\n content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n.fa-indent:before {\n content: \"\\f03c\";\n}\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n.fa-pencil:before {\n content: \"\\f040\";\n}\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n.fa-adjust:before {\n content: \"\\f042\";\n}\n.fa-tint:before {\n content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n.fa-arrows:before {\n content: \"\\f047\";\n}\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n.fa-backward:before {\n content: \"\\f04a\";\n}\n.fa-play:before {\n content: \"\\f04b\";\n}\n.fa-pause:before {\n content: \"\\f04c\";\n}\n.fa-stop:before {\n content: \"\\f04d\";\n}\n.fa-forward:before {\n content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n.fa-eject:before {\n content: \"\\f052\";\n}\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n.fa-ban:before {\n content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n.fa-expand:before {\n content: \"\\f065\";\n}\n.fa-compress:before {\n content: \"\\f066\";\n}\n.fa-plus:before {\n content: \"\\f067\";\n}\n.fa-minus:before {\n content: \"\\f068\";\n}\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n.fa-gift:before {\n content: \"\\f06b\";\n}\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n.fa-fire:before {\n content: \"\\f06d\";\n}\n.fa-eye:before {\n content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n.fa-plane:before {\n content: \"\\f072\";\n}\n.fa-calendar:before {\n content: \"\\f073\";\n}\n.fa-random:before {\n content: \"\\f074\";\n}\n.fa-comment:before {\n content: \"\\f075\";\n}\n.fa-magnet:before {\n content: \"\\f076\";\n}\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n.fa-retweet:before {\n content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n.fa-folder:before {\n content: \"\\f07b\";\n}\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n.fa-key:before {\n content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n.fa-comments:before {\n content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n.fa-star-half:before {\n content: \"\\f089\";\n}\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n.fa-trophy:before {\n content: \"\\f091\";\n}\n.fa-github-square:before {\n content: \"\\f092\";\n}\n.fa-upload:before {\n content: \"\\f093\";\n}\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n.fa-phone:before {\n content: \"\\f095\";\n}\n.fa-square-o:before {\n content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n.fa-twitter:before {\n content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n.fa-github:before {\n content: \"\\f09b\";\n}\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n.fa-square:before {\n content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n.fa-table:before {\n content: \"\\f0ce\";\n}\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n.fa-money:before {\n content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n.fa-columns:before {\n content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n.fa-desktop:before {\n content: \"\\f108\";\n}\n.fa-laptop:before {\n content: \"\\f109\";\n}\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n.fa-spinner:before {\n content: \"\\f110\";\n}\n.fa-circle:before {\n content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n.fa-terminal:before {\n content: \"\\f120\";\n}\n.fa-code:before {\n content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n.fa-crop:before {\n content: \"\\f125\";\n}\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n.fa-question:before {\n content: \"\\f128\";\n}\n.fa-info:before {\n content: \"\\f129\";\n}\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n.fa-microphone:before {\n content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n.fa-shield:before {\n content: \"\\f132\";\n}\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n.fa-rocket:before {\n content: \"\\f135\";\n}\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n.fa-html5:before {\n content: \"\\f13b\";\n}\n.fa-css3:before {\n content: \"\\f13c\";\n}\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n.fa-ticket:before {\n content: \"\\f145\";\n}\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n.fa-level-up:before {\n content: \"\\f148\";\n}\n.fa-level-down:before {\n content: \"\\f149\";\n}\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n.fa-compass:before {\n content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n.fa-gbp:before {\n content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n.fa-file:before {\n content: \"\\f15b\";\n}\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n.fa-youtube:before {\n content: \"\\f167\";\n}\n.fa-xing:before {\n content: \"\\f168\";\n}\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n.fa-adn:before {\n content: \"\\f170\";\n}\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n.fa-apple:before {\n content: \"\\f179\";\n}\n.fa-windows:before {\n content: \"\\f17a\";\n}\n.fa-android:before {\n content: \"\\f17b\";\n}\n.fa-linux:before {\n content: \"\\f17c\";\n}\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n.fa-skype:before {\n content: \"\\f17e\";\n}\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n.fa-trello:before {\n content: \"\\f181\";\n}\n.fa-female:before {\n content: \"\\f182\";\n}\n.fa-male:before {\n content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n.fa-archive:before {\n content: \"\\f187\";\n}\n.fa-bug:before {\n content: \"\\f188\";\n}\n.fa-vk:before {\n content: \"\\f189\";\n}\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n.fa-renren:before {\n content: \"\\f18b\";\n}\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n.fa-slack:before {\n content: \"\\f198\";\n}\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n.fa-openid:before {\n content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n.fa-google:before {\n content: \"\\f1a0\";\n}\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n.fa-language:before {\n content: \"\\f1ab\";\n}\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n.fa-building:before {\n content: \"\\f1ad\";\n}\n.fa-child:before {\n content: \"\\f1ae\";\n}\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n.fa-database:before {\n content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n.fa-git:before {\n content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n.fa-history:before {\n content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n.fa-header:before {\n content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n.fa-at:before {\n content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n.fa-bus:before {\n content: \"\\f207\";\n}\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n.fa-angellist:before {\n content: \"\\f209\";\n}\n.fa-cc:before {\n content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n.fa-diamond:before {\n content: \"\\f219\";\n}\n.fa-ship:before {\n content: \"\\f21a\";\n}\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n.fa-venus:before {\n content: \"\\f221\";\n}\n.fa-mars:before {\n content: \"\\f222\";\n}\n.fa-mercury:before {\n content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n.fa-server:before {\n content: \"\\f233\";\n}\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n.fa-user-times:before {\n content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n.fa-train:before {\n content: \"\\f238\";\n}\n.fa-subway:before {\n content: \"\\f239\";\n}\n.fa-medium:before {\n content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n.fa-object-group:before {\n content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n.fa-clone:before {\n content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n.fa-registered:before {\n content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n.fa-gg:before {\n content: \"\\f260\";\n}\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n.fa-safari:before {\n content: \"\\f267\";\n}\n.fa-chrome:before {\n content: \"\\f268\";\n}\n.fa-firefox:before {\n content: \"\\f269\";\n}\n.fa-opera:before {\n content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n.fa-contao:before {\n content: \"\\f26d\";\n}\n.fa-500px:before {\n content: \"\\f26e\";\n}\n.fa-amazon:before {\n content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n.fa-industry:before {\n content: \"\\f275\";\n}\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n.fa-map-o:before {\n content: \"\\f278\";\n}\n.fa-map:before {\n content: \"\\f279\";\n}\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n.fa-edge:before {\n content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n.fa-modx:before {\n content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n.fa-usb:before {\n content: \"\\f287\";\n}\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n.fa-percent:before {\n content: \"\\f295\";\n}\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n.fa-envira:before {\n content: \"\\f299\";\n}\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n.fa-blind:before {\n content: \"\\f29d\";\n}\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n"],"sourceRoot":"../../scss"}
\ No newline at end of file
diff --git a/assets/maps/css/admin.min.css.map b/assets/maps/css/admin.min.css.map
new file mode 100644
index 0000000000..869d108c1d
--- /dev/null
+++ b/assets/maps/css/admin.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["admin.css"],"names":[],"mappings":"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","file":"../../css/admin.min.css","sourcesContent":["@charset \"UTF-8\";\n#poststuff .llms-metabox:before, #poststuff .llms-metabox:after,\n.llms-form-fields:before,\n.llms-metabox .llms-access-plans:before,\n.llms-collapsible .llms-collapsible-body:before,\n.llms-collapsible .llms-collapsible-header:before,\n.llms-collapsible:before,\n.llms-form-fields:after,\n.llms-metabox .llms-access-plans:after,\n.llms-collapsible .llms-collapsible-body:after,\n.llms-collapsible .llms-collapsible-header:after,\n.llms-collapsible:after {\n content: \" \";\n display: table;\n}\n#poststuff .llms-metabox:after,\n.llms-form-fields:after,\n.llms-metabox .llms-access-plans:after,\n.llms-collapsible .llms-collapsible-body:after,\n.llms-collapsible .llms-collapsible-header:after,\n.llms-collapsible:after {\n clear: both;\n}\n\n.llms-button-action,\n.llms-button-danger,\n.llms-button-primary,\n.llms-button-secondary {\n border: none;\n border-radius: 8px;\n color: #fefefe;\n cursor: pointer;\n display: inline-block;\n font-size: 18px;\n font-weight: 700;\n text-decoration: none;\n text-shadow: none;\n line-height: 1;\n margin: 0;\n max-width: 100%;\n padding: 12px 24px;\n position: relative;\n -webkit-transition: all 0.5s ease;\n transition: all 0.5s ease;\n}\n.llms-button-action:disabled,\n.llms-button-danger:disabled,\n.llms-button-primary:disabled,\n.llms-button-secondary:disabled {\n opacity: 0.5;\n}\n.llms-button-action:hover, .llms-button-action:active,\n.llms-button-danger:hover,\n.llms-button-danger:active,\n.llms-button-primary:hover,\n.llms-button-primary:active,\n.llms-button-secondary:hover,\n.llms-button-secondary:active {\n color: #fefefe;\n}\n.llms-button-action:focus,\n.llms-button-danger:focus,\n.llms-button-primary:focus,\n.llms-button-secondary:focus {\n color: #fefefe;\n}\n.llms-button-action.auto,\n.llms-button-danger.auto,\n.llms-button-primary.auto,\n.llms-button-secondary.auto {\n width: auto;\n}\n.llms-button-action.full,\n.llms-button-danger.full,\n.llms-button-primary.full,\n.llms-button-secondary.full {\n display: block;\n text-align: center;\n width: 100%;\n}\n.llms-button-action.square,\n.llms-button-danger.square,\n.llms-button-primary.square,\n.llms-button-secondary.square {\n padding: 12px;\n}\n.llms-button-action.small,\n.llms-button-danger.small,\n.llms-button-primary.small,\n.llms-button-secondary.small {\n font-size: 13px;\n padding: 8px 14px;\n}\n.llms-button-action.small.square,\n.llms-button-danger.small.square,\n.llms-button-primary.small.square,\n.llms-button-secondary.small.square {\n padding: 8px;\n}\n.llms-button-action.large,\n.llms-button-danger.large,\n.llms-button-primary.large,\n.llms-button-secondary.large {\n font-size: 18px;\n line-height: 1.2;\n padding: 16px 32px;\n}\n.llms-button-action.large.square,\n.llms-button-danger.large.square,\n.llms-button-primary.large.square,\n.llms-button-secondary.large.square {\n padding: 16px;\n}\n.llms-button-action.large .fa,\n.llms-button-danger.large .fa,\n.llms-button-primary.large .fa,\n.llms-button-secondary.large .fa {\n left: -7px;\n position: relative;\n}\n\n/* Fix for cases where link color overrides the button color */\na.llms-button-action,\na.llms-button-danger,\na.llms-button-primary {\n color: #fefefe;\n}\n\n.llms-button-primary {\n background: #466dd8;\n}\n.llms-button-primary:hover, .llms-button-primary.clicked {\n background: #2b55cb;\n}\n.llms-button-primary:focus, .llms-button-primary:active {\n background: #6888df;\n}\n\n.llms-button-secondary {\n background: #e1e1e1;\n color: #444;\n}\n.llms-button-secondary:hover {\n color: #414141;\n background: #cdcdcd;\n}\n.llms-button-secondary:focus, .llms-button-secondary:active {\n color: #414141;\n background: #ebebeb;\n}\n\n/* Fix for cases where link color overrides the button color */\na.llms-button-secondary {\n color: #444;\n}\n\n.llms-button-action {\n background: #c05621;\n}\n.llms-button-action:hover, .llms-button-action.clicked {\n background: #f67d28;\n}\n.llms-button-action:focus, .llms-button-action:active {\n background: #faad76;\n}\n\n.llms-button-danger {\n background: #bb231c;\n}\n.llms-button-danger:hover {\n background: #981c17;\n}\n.llms-button-danger:focus, .llms-button-danger:active {\n background: #cd261f;\n}\n\n.llms-button-outline {\n background: transparent;\n border: 3px solid #1D2327;\n border-radius: 8px;\n color: #1D2327;\n cursor: pointer;\n font-size: 16px;\n font-weight: 700;\n text-decoration: none;\n text-shadow: none;\n line-height: 1;\n margin: 0;\n max-width: 100%;\n padding: 12px 24px;\n position: relative;\n -webkit-transition: all 0.5s ease;\n transition: all 0.5s ease;\n}\n.llms-button-outline:disabled {\n opacity: 0.5;\n}\n.llms-button-outline:hover, .llms-button-outline:active {\n color: #1D2327;\n}\n.llms-button-outline:focus {\n color: #1D2327;\n}\n.llms-button-outline.auto {\n width: auto;\n}\n.llms-button-outline.full {\n display: block;\n text-align: center;\n width: 100%;\n}\n.llms-button-outline.square {\n padding: 12px;\n}\n\n.llms-course-continue-button {\n display: inline-block;\n}\n\n.lifterlms [data-tip],\n.lifterlms [data-title-default],\n.lifterlms [data-title-active],\n.llms-metabox [data-tip],\n.llms-metabox [data-title-default],\n.llms-metabox [data-title-active],\n.llms-mb-container [data-tip],\n.llms-mb-container [data-title-default],\n.llms-mb-container [data-title-active],\n.llms-quiz-wrapper [data-tip],\n.llms-quiz-wrapper [data-title-default],\n.llms-quiz-wrapper [data-title-active] {\n position: relative;\n}\n.lifterlms [data-tip].tip--top-right:before,\n.lifterlms [data-title-default].tip--top-right:before,\n.lifterlms [data-title-active].tip--top-right:before,\n.llms-metabox [data-tip].tip--top-right:before,\n.llms-metabox [data-title-default].tip--top-right:before,\n.llms-metabox [data-title-active].tip--top-right:before,\n.llms-mb-container [data-tip].tip--top-right:before,\n.llms-mb-container [data-title-default].tip--top-right:before,\n.llms-mb-container [data-title-active].tip--top-right:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:before {\n bottom: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--top-right:hover:before,\n.lifterlms [data-title-default].tip--top-right:hover:before,\n.lifterlms [data-title-active].tip--top-right:hover:before,\n.llms-metabox [data-tip].tip--top-right:hover:before,\n.llms-metabox [data-title-default].tip--top-right:hover:before,\n.llms-metabox [data-title-active].tip--top-right:hover:before,\n.llms-mb-container [data-tip].tip--top-right:hover:before,\n.llms-mb-container [data-title-default].tip--top-right:hover:before,\n.llms-mb-container [data-title-active].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-right:after,\n.lifterlms [data-title-default].tip--top-right:after,\n.lifterlms [data-title-active].tip--top-right:after,\n.llms-metabox [data-tip].tip--top-right:after,\n.llms-metabox [data-title-default].tip--top-right:after,\n.llms-metabox [data-title-active].tip--top-right:after,\n.llms-mb-container [data-tip].tip--top-right:after,\n.llms-mb-container [data-title-default].tip--top-right:after,\n.llms-mb-container [data-title-active].tip--top-right:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:after {\n border-top-color: #444;\n left: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-right:hover:after,\n.lifterlms [data-title-default].tip--top-right:hover:after,\n.lifterlms [data-title-active].tip--top-right:hover:after,\n.llms-metabox [data-tip].tip--top-right:hover:after,\n.llms-metabox [data-title-default].tip--top-right:hover:after,\n.llms-metabox [data-title-active].tip--top-right:hover:after,\n.llms-mb-container [data-tip].tip--top-right:hover:after,\n.llms-mb-container [data-title-default].tip--top-right:hover:after,\n.llms-mb-container [data-title-active].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--top-left:before,\n.lifterlms [data-title-default].tip--top-left:before,\n.lifterlms [data-title-active].tip--top-left:before,\n.llms-metabox [data-tip].tip--top-left:before,\n.llms-metabox [data-title-default].tip--top-left:before,\n.llms-metabox [data-title-active].tip--top-left:before,\n.llms-mb-container [data-tip].tip--top-left:before,\n.llms-mb-container [data-title-default].tip--top-left:before,\n.llms-mb-container [data-title-active].tip--top-left:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:before {\n bottom: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--top-left:hover:before,\n.lifterlms [data-title-default].tip--top-left:hover:before,\n.lifterlms [data-title-active].tip--top-left:hover:before,\n.llms-metabox [data-tip].tip--top-left:hover:before,\n.llms-metabox [data-title-default].tip--top-left:hover:before,\n.llms-metabox [data-title-active].tip--top-left:hover:before,\n.llms-mb-container [data-tip].tip--top-left:hover:before,\n.llms-mb-container [data-title-default].tip--top-left:hover:before,\n.llms-mb-container [data-title-active].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-left:after,\n.lifterlms [data-title-default].tip--top-left:after,\n.lifterlms [data-title-active].tip--top-left:after,\n.llms-metabox [data-tip].tip--top-left:after,\n.llms-metabox [data-title-default].tip--top-left:after,\n.llms-metabox [data-title-active].tip--top-left:after,\n.llms-mb-container [data-tip].tip--top-left:after,\n.llms-mb-container [data-title-default].tip--top-left:after,\n.llms-mb-container [data-title-active].tip--top-left:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:after {\n border-top-color: #444;\n right: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-left:hover:after,\n.lifterlms [data-title-default].tip--top-left:hover:after,\n.lifterlms [data-title-active].tip--top-left:hover:after,\n.llms-metabox [data-tip].tip--top-left:hover:after,\n.llms-metabox [data-title-default].tip--top-left:hover:after,\n.llms-metabox [data-title-active].tip--top-left:hover:after,\n.llms-mb-container [data-tip].tip--top-left:hover:after,\n.llms-mb-container [data-title-default].tip--top-left:hover:after,\n.llms-mb-container [data-title-active].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--bottom-left:before,\n.lifterlms [data-title-default].tip--bottom-left:before,\n.lifterlms [data-title-active].tip--bottom-left:before,\n.llms-metabox [data-tip].tip--bottom-left:before,\n.llms-metabox [data-title-default].tip--bottom-left:before,\n.llms-metabox [data-title-active].tip--bottom-left:before,\n.llms-mb-container [data-tip].tip--bottom-left:before,\n.llms-mb-container [data-title-default].tip--bottom-left:before,\n.llms-mb-container [data-title-active].tip--bottom-left:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:before {\n top: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:before,\n.lifterlms [data-title-default].tip--bottom-left:hover:before,\n.lifterlms [data-title-active].tip--bottom-left:hover:before,\n.llms-metabox [data-tip].tip--bottom-left:hover:before,\n.llms-metabox [data-title-default].tip--bottom-left:hover:before,\n.llms-metabox [data-title-active].tip--bottom-left:hover:before,\n.llms-mb-container [data-tip].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-left:after,\n.lifterlms [data-title-default].tip--bottom-left:after,\n.lifterlms [data-title-active].tip--bottom-left:after,\n.llms-metabox [data-tip].tip--bottom-left:after,\n.llms-metabox [data-title-default].tip--bottom-left:after,\n.llms-metabox [data-title-active].tip--bottom-left:after,\n.llms-mb-container [data-tip].tip--bottom-left:after,\n.llms-mb-container [data-title-default].tip--bottom-left:after,\n.llms-mb-container [data-title-active].tip--bottom-left:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:after {\n border-bottom-color: #444;\n right: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:after,\n.lifterlms [data-title-default].tip--bottom-left:hover:after,\n.lifterlms [data-title-active].tip--bottom-left:hover:after,\n.llms-metabox [data-tip].tip--bottom-left:hover:after,\n.llms-metabox [data-title-default].tip--bottom-left:hover:after,\n.llms-metabox [data-title-active].tip--bottom-left:hover:after,\n.llms-mb-container [data-tip].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip].tip--bottom-right:before,\n.lifterlms [data-title-default].tip--bottom-right:before,\n.lifterlms [data-title-active].tip--bottom-right:before,\n.llms-metabox [data-tip].tip--bottom-right:before,\n.llms-metabox [data-title-default].tip--bottom-right:before,\n.llms-metabox [data-title-active].tip--bottom-right:before,\n.llms-mb-container [data-tip].tip--bottom-right:before,\n.llms-mb-container [data-title-default].tip--bottom-right:before,\n.llms-mb-container [data-title-active].tip--bottom-right:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:before {\n top: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:before,\n.lifterlms [data-title-default].tip--bottom-right:hover:before,\n.lifterlms [data-title-active].tip--bottom-right:hover:before,\n.llms-metabox [data-tip].tip--bottom-right:hover:before,\n.llms-metabox [data-title-default].tip--bottom-right:hover:before,\n.llms-metabox [data-title-active].tip--bottom-right:hover:before,\n.llms-mb-container [data-tip].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-right:after,\n.lifterlms [data-title-default].tip--bottom-right:after,\n.lifterlms [data-title-active].tip--bottom-right:after,\n.llms-metabox [data-tip].tip--bottom-right:after,\n.llms-metabox [data-title-default].tip--bottom-right:after,\n.llms-metabox [data-title-active].tip--bottom-right:after,\n.llms-mb-container [data-tip].tip--bottom-right:after,\n.llms-mb-container [data-title-default].tip--bottom-right:after,\n.llms-mb-container [data-title-active].tip--bottom-right:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:after {\n border-bottom-color: #444;\n left: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:after,\n.lifterlms [data-title-default].tip--bottom-right:hover:after,\n.lifterlms [data-title-active].tip--bottom-right:hover:after,\n.llms-metabox [data-tip].tip--bottom-right:hover:after,\n.llms-metabox [data-title-default].tip--bottom-right:hover:after,\n.llms-metabox [data-title-active].tip--bottom-right:hover:after,\n.llms-mb-container [data-tip].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip]:before,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-active]:before,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-active]:before,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-active]:before,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-active]:before {\n background: #444;\n border-radius: 4px;\n color: #fff;\n font-size: 13px;\n line-height: 1.2;\n padding: 8px;\n max-width: 300px;\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n}\n.lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:after {\n content: \"\";\n border: 6px solid transparent;\n height: 0;\n width: 0;\n}\n.lifterlms [data-tip]:before, .lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:before,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:before,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:before,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:before,\n.llms-quiz-wrapper [data-title-active]:after {\n opacity: 0;\n -webkit-transition: all 0.2s 0.1s ease;\n transition: all 0.2s 0.1s ease;\n position: absolute;\n pointer-events: none;\n visibility: hidden;\n}\n.lifterlms [data-tip]:hover:before, .lifterlms [data-tip]:hover:after,\n.lifterlms [data-title-default]:hover:before,\n.lifterlms [data-title-default]:hover:after,\n.lifterlms [data-title-active]:hover:before,\n.lifterlms [data-title-active]:hover:after,\n.llms-metabox [data-tip]:hover:before,\n.llms-metabox [data-tip]:hover:after,\n.llms-metabox [data-title-default]:hover:before,\n.llms-metabox [data-title-default]:hover:after,\n.llms-metabox [data-title-active]:hover:before,\n.llms-metabox [data-title-active]:hover:after,\n.llms-mb-container [data-tip]:hover:before,\n.llms-mb-container [data-tip]:hover:after,\n.llms-mb-container [data-title-default]:hover:before,\n.llms-mb-container [data-title-default]:hover:after,\n.llms-mb-container [data-title-active]:hover:before,\n.llms-mb-container [data-title-active]:hover:after,\n.llms-quiz-wrapper [data-tip]:hover:before,\n.llms-quiz-wrapper [data-tip]:hover:after,\n.llms-quiz-wrapper [data-title-default]:hover:before,\n.llms-quiz-wrapper [data-title-default]:hover:after,\n.llms-quiz-wrapper [data-title-active]:hover:before,\n.llms-quiz-wrapper [data-title-active]:hover:after {\n opacity: 1;\n -webkit-transition: all 0 0.1s ease;\n transition: all 0 0.1s ease;\n visibility: visible;\n z-index: 99999999;\n}\n.lifterlms [data-tip]:before,\n.llms-metabox [data-tip]:before,\n.llms-mb-container [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:before {\n content: attr(data-tip);\n}\n.lifterlms [data-tip].active:before,\n.llms-metabox [data-tip].active:before,\n.llms-mb-container [data-tip].active:before,\n.llms-quiz-wrapper [data-tip].active:before {\n content: attr(data-tip-active);\n}\n\n#adminmenu .toplevel_page_lifterlms .wp-menu-image img {\n padding-top: 6px;\n width: 20px;\n}\n#adminmenu .toplevel_page_lifterlms a[href*=\"page=llms-add-ons\"],\n#adminmenu .opensub .wp-submenu li.current a[href*=\"page=llms-add-ons\"],\n#adminmenu .wp-submenu li.current a[href*=\"page=llms-add-ons\"],\n#adminmenu .wp-submenu li.current a[href*=\"page=llms-add-ons\"],\n#adminmenu .wp-submenu li.current a[href*=\"page=llms-add-ons\"],\n#adminmenu a.wp-has-current-submenu:focus + .wp-submenu li.current a[href*=\"page=llms-add-ons\"] {\n color: #f8954f;\n}\n\n/******************************************************************\n\nGrids for Breakpoints\n\n******************************************************************/\n.last-col {\n float: right;\n padding-right: 0 !important;\n}\n\n.last-col:after {\n clear: both;\n}\n\n/*\nMobile Grid Styles\nThese are the widths for the mobile grid.\nThere are four types, but you can add or customize\nthem however you see fit.\n*/\n@media (max-width: 767px) {\n .m-all {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 100%;\n padding-right: 0;\n }\n .m-1of2 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 50%;\n }\n .m-1of3 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 33.33%;\n }\n .m-2of3 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 66.66%;\n }\n .m-1of4 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 25%;\n }\n .m-3of4 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 75%;\n }\n .m-right {\n text-align: center;\n }\n .m-center {\n text-align: center;\n }\n .m-left {\n text-align: center;\n }\n .d-right {\n text-align: right;\n }\n .d-center {\n text-align: center;\n }\n .d-left {\n text-align: left;\n }\n}\n/* Portrait tablet to landscape */\n@media (min-width: 768px) and (max-width: 1029px) {\n .t-all {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 100%;\n padding-right: 0;\n }\n .t-1of2 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 50%;\n }\n .t-1of3 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 33.33%;\n }\n .t-2of3 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 66.66%;\n }\n .t-1of4 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 25%;\n }\n .t-3of4 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 75%;\n }\n .t-1of5 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 20%;\n }\n .t-2of5 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 40%;\n }\n .t-3of5 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 60%;\n }\n .t-4of5 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 80%;\n }\n .d-right {\n text-align: right;\n }\n .d-center {\n text-align: center;\n }\n .d-left {\n text-align: left;\n }\n}\n/* Landscape to small desktop */\n@media (min-width: 1030px) {\n .d-all {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 100%;\n padding-right: 0;\n }\n .d-1of2 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 50%;\n }\n .d-1of3 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 33.33%;\n }\n .d-2of3 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 66.66%;\n }\n .d-1of4 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 25%;\n }\n .d-3of4 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 75%;\n }\n .d-1of5 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 20%;\n }\n .d-2of5 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 40%;\n }\n .d-3of5 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 60%;\n }\n .d-4of5 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 80%;\n }\n .d-1of6 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 16.6666666667%;\n }\n .d-1of7 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 14.2857142857%;\n }\n .d-2of7 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 28.5714286%;\n }\n .d-3of7 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 42.8571429%;\n }\n .d-4of7 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 57.1428572%;\n }\n .d-5of7 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 71.4285715%;\n }\n .d-6of7 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 85.7142857%;\n }\n .d-1of8 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 12.5%;\n }\n .d-1of9 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 11.1111111111%;\n }\n .d-1of10 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 10%;\n }\n .d-1of11 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 9.0909090909%;\n }\n .d-1of12 {\n float: left;\n padding-right: 0.75em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 8.33%;\n }\n .d-right {\n text-align: right;\n }\n .d-center {\n text-align: center;\n }\n .d-left {\n text-align: left;\n }\n}\n/******************************************************************\n\nForm Styles\n\n******************************************************************/\n#llms-form-wrapper .llms-search-form-wrapper {\n border-bottom: 1px solid #999;\n margin: 20px 0;\n}\n#llms-form-wrapper #llms_analytics_search {\n border: none !important;\n text-shadow: none !important;\n border: none !important;\n outline: none !important;\n -webkit-box-shadow: none !important;\n box-shadow: none !important;\n margin: 0 !important;\n color: #fefefe !important;\n background: #466dd8 !important;\n border-radius: 0;\n -webkit-transition: 0.5s;\n transition: 0.5s;\n}\n#llms-form-wrapper #llms_analytics_search:hover {\n background: #0185a3 !important;\n}\n#llms-form-wrapper #llms_analytics_search:active {\n background: #33b1cb !important;\n}\n\n#llms-skip-setup-form .llms-admin-link {\n background: none !important;\n border: none;\n padding: 0 !important;\n color: #0074a2;\n cursor: pointer;\n}\n#llms-skip-setup-form .llms-admin-link:hover {\n color: #2ea2cc;\n}\n#llms-skip-setup-form .llms-admin-link:focus {\n color: #124964;\n}\n\n/**\n * Toggle Switch ( replaces checkbox on admin panels )\n */\n.llms-switch {\n position: relative;\n}\n.llms-switch .llms-toggle {\n position: absolute;\n margin-left: -9999px;\n visibility: hidden;\n}\n.llms-switch .llms-toggle + label {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n display: block;\n position: relative;\n cursor: pointer;\n outline: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.llms-switch input.llms-toggle-round + label {\n border: 2px solid #6c7781;\n border-radius: 10px;\n height: 20px;\n width: 36px;\n}\n.llms-switch input.llms-toggle-round + label:before,\n.llms-switch input.llms-toggle-round + label:after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n content: \"\";\n display: block;\n position: absolute;\n -webkit-transition: background 0.4s;\n transition: background 0.4s;\n}\n.llms-switch input.llms-toggle-round:checked + label {\n border-color: #11a0d2;\n background-color: #11a0d2;\n}\n.llms-switch input.llms-toggle-round + label:after {\n height: 12px;\n left: 2px;\n top: 2px;\n background-color: #6c7781;\n border-radius: 50%;\n -webkit-transition: margin 0.4s;\n transition: margin 0.4s;\n width: 12px;\n z-index: 3;\n}\n.llms-switch input.llms-toggle-round:checked + label:after {\n background-color: #fefefe;\n margin-left: 16px;\n}\n.llms-switch input.llms-toggle-round + label:before {\n height: 8px;\n top: 4px;\n border: 1px solid #6c7781;\n border-radius: 50%;\n right: 4px;\n width: 8px;\n z-index: 2;\n}\n.llms-switch input.llms-toggle-round:checked + label:before {\n border-color: #fefefe;\n border-radius: 0;\n left: 6px;\n right: auto;\n width: 2px;\n}\n\n#llms-profile-fields {\n margin: 50px 0;\n}\n#llms-profile-fields .llms-form-field {\n padding-left: 0;\n}\n#llms-profile-fields label {\n display: block;\n font-weight: bold;\n padding: 8px 0 2px;\n}\n#llms-profile-fields .type-checkbox .type-checkbox label {\n display: initial;\n font-weight: initial;\n padding: 0;\n}\n#llms-profile-fields .type-checkbox .type-checkbox input {\n display: inline-block;\n margin-bottom: 0;\n width: 1rem;\n}\n#llms-profile-fields select {\n max-width: 100%;\n}\n\na.llms-voucher-delete {\n background: #bb231c;\n color: #fefefe;\n display: block;\n padding: 4px 2px;\n text-decoration: none;\n -webkit-transition: ease 0.3s all;\n transition: ease 0.3s all;\n}\na.llms-voucher-delete:hover {\n background: #af3a26;\n}\n\n.llms-voucher-codes-wrapper table,\n.llms-voucher-redemption-wrapper table {\n width: 100%;\n border-collapse: collapse;\n}\n.llms-voucher-codes-wrapper table th, .llms-voucher-codes-wrapper table td,\n.llms-voucher-redemption-wrapper table th,\n.llms-voucher-redemption-wrapper table td {\n border: none;\n}\n.llms-voucher-codes-wrapper table thead,\n.llms-voucher-redemption-wrapper table thead {\n background-color: #466dd8;\n color: #fff;\n}\n.llms-voucher-codes-wrapper table thead th,\n.llms-voucher-redemption-wrapper table thead th {\n padding: 10px 10px;\n}\n.llms-voucher-codes-wrapper table tr,\n.llms-voucher-redemption-wrapper table tr {\n counter-increment: row-counter;\n}\n.llms-voucher-codes-wrapper table tr:nth-child(even),\n.llms-voucher-redemption-wrapper table tr:nth-child(even) {\n background-color: #F1F1F1;\n}\n.llms-voucher-codes-wrapper table tr td,\n.llms-voucher-redemption-wrapper table tr td {\n padding: 5px;\n}\n.llms-voucher-codes-wrapper table tr td:first-child:before,\n.llms-voucher-redemption-wrapper table tr td:first-child:before {\n content: counter(row-counter);\n}\n\n.llms-voucher-codes-wrapper table {\n width: 100%;\n border-collapse: collapse;\n}\n.llms-voucher-codes-wrapper table th, .llms-voucher-codes-wrapper table td {\n border: none;\n}\n.llms-voucher-codes-wrapper table thead {\n background-color: #466dd8;\n color: #fff;\n}\n.llms-voucher-codes-wrapper table tr:nth-child(even) {\n background-color: #F1F1F1;\n}\n.llms-voucher-codes-wrapper table tr td span {\n display: inline-block;\n min-width: 30px;\n}\n.llms-voucher-codes-wrapper button {\n cursor: pointer;\n}\n.llms-voucher-codes-wrapper .llms-voucher-delete {\n float: right;\n margin-right: 15px;\n}\n.llms-voucher-codes-wrapper .llms-voucher-uses {\n width: 50px;\n}\n.llms-voucher-codes-wrapper .llms-voucher-add-codes {\n float: right;\n}\n.llms-voucher-codes-wrapper .llms-voucher-add-codes input[type=text] {\n width: 30px;\n}\n\n.llms-voucher-export-wrapper .llms-voucher-export-type {\n width: 100%;\n}\n.llms-voucher-export-wrapper .llms-voucher-export-type p {\n margin: 0 0 0 15px;\n}\n.llms-voucher-export-wrapper .llms-voucher-email-wrapper {\n width: 100%;\n margin: 25px 0;\n}\n.llms-voucher-export-wrapper .llms-voucher-email-wrapper input[type=text] {\n width: 100%;\n}\n.llms-voucher-export-wrapper .llms-voucher-email-wrapper p {\n margin: 0;\n}\n.llms-voucher-export-wrapper > button {\n float: right;\n}\n\n.postbox .inside {\n overflow: auto;\n}\n\n.llms-widget {\n background-color: #FFF;\n border: 1px solid #dedede;\n border-radius: 12px;\n -webkit-box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);\n box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin-bottom: 20px;\n padding: 20px;\n position: relative;\n width: 100%;\n}\n.llms-widget.alt {\n border: 1px solid #ccc;\n background-color: #efefef;\n margin-bottom: 10px;\n}\n.llms-widget.alt .llms-label {\n color: #777;\n font-size: 14px;\n margin-bottom: 10px;\n padding-bottom: 5px;\n}\n.llms-widget.alt h2 {\n color: #444;\n font-weight: 300;\n}\n.llms-widget a {\n border-bottom: 1px dotted #466dd8;\n display: inline-block;\n text-decoration: none;\n}\n.llms-widget a:hover {\n border-bottom: 1px dotted #2b55cb;\n}\n.llms-widget .llms-widget-content {\n margin: 0.67em 0;\n color: #466dd8;\n font-size: 2.4em;\n font-weight: 700;\n line-height: 1;\n word-break: break-all;\n}\n.llms-widget h2 {\n font-size: 1.8em;\n}\n.llms-widget .llms-label {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n font-size: 18px;\n font-weight: 400;\n margin: 0 0 10px 0;\n text-align: center;\n}\n.llms-widget .llms-chart {\n width: 100%;\n padding: 10px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.llms-widget mark.yes {\n background-color: #7ad03a;\n}\n.llms-widget .llms-subtitle {\n margin-bottom: 0;\n}\n.llms-widget .spinner {\n float: none;\n left: 50%;\n margin: -10px 0 0 -10px;\n position: absolute;\n top: 50%;\n z-index: 2;\n}\n.llms-widget.is-loading:before {\n background: #fefefe;\n bottom: 0;\n content: \"\";\n left: 0;\n opacity: 0.9;\n position: absolute;\n right: 0;\n top: 0;\n z-index: 1;\n}\n.llms-widget.is-loading .spinner {\n visibility: visible;\n}\n.llms-widget td[colspan=\"2\"] {\n padding-left: 0;\n}\n.llms-widget tr.llms-disabled-field {\n opacity: 0.5;\n pointer-events: none;\n}\n\n.llms-widget-1-3,\n.llms-widget-1-4,\n.llms-widget-1-5 {\n text-align: center;\n}\n\n.llms-widget .llms-widget-info-toggle {\n color: #AAA;\n cursor: pointer;\n font-size: 16px;\n position: absolute;\n right: 20px;\n top: 20px;\n}\n.llms-widget.info-showing .llms-widget-info {\n display: block;\n}\n\n.llms-widget-info {\n background: #444;\n color: #fefefe;\n bottom: -50px;\n display: none;\n padding: 15px;\n position: absolute;\n text-align: center;\n left: 10px;\n right: 15px;\n z-index: 3;\n}\n.llms-widget-info:before {\n content: \"\";\n border: 12px solid transparent;\n border-bottom-color: #444;\n left: 50%;\n margin-left: -12px;\n position: absolute;\n top: -24px;\n}\n.llms-widget-info p {\n margin: 0;\n}\n\n.llms-widget-row:before, .llms-widget-row:after {\n content: \" \";\n display: table;\n}\n.llms-widget-row:after {\n clear: both;\n}\n\n.llms-widget-row .no-padding {\n padding: 0 !important;\n}\n\n/******************************************************************\n\nSVG Styles\n\n******************************************************************/\nsvg.icon {\n height: 24px;\n width: 24px;\n display: inline-block;\n fill: currentColor;\n vertical-align: baseline;\n}\nbutton svg.icon {\n height: 18px;\n width: 18px;\n margin: 4px -4px 0 4px;\n -webkit-filter: drop-shadow(0 1px #eee);\n filter: drop-shadow(0 1px #eee);\n float: right;\n}\nsvg.icon.menu-icon {\n height: 20px;\n width: 20px;\n display: inline-block;\n fill: currentColor;\n vertical-align: text-bottom;\n margin-right: 10px;\n}\nsvg.icon.tree-icon {\n height: 13px;\n width: 13px;\n vertical-align: middle;\n}\nsvg.icon.section-icon {\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n}\nsvg.icon.button-icon {\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n}\nsvg.icon.button-icon-attr {\n height: 10px;\n width: 10px;\n vertical-align: middle;\n}\nsvg.icon.list-icon {\n height: 12px;\n width: 12px;\n vertical-align: middle;\n}\nsvg.icon.list-icon.on {\n color: #466dd8;\n}\nsvg.icon.list-icon.off {\n color: #444;\n}\nsvg.icon.detail-icon {\n height: 16px;\n width: 16px;\n vertical-align: text-bottom;\n cursor: default;\n}\nsvg.icon.detail-icon.on {\n color: #466dd8;\n}\nsvg.icon.detail-icon.off {\n color: #ccc;\n}\nsvg.icon-ion-arrow-up {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\nsvg use {\n pointer-events: none;\n}\n\n/******************************************************************\n\nMetabox Tabs\n\n******************************************************************/\n#side-sortables .tab-content {\n padding: 0;\n}\n\n.llms-mb-container .tab-content {\n display: none;\n background-color: #FFF;\n padding: 0 20px;\n}\n.llms-mb-container .tab-content ul:not(.select2-selection__rendered) {\n margin: 0 0 15px 0;\n}\n.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li {\n padding: 20px 0;\n margin: 0;\n}\n.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li.select:not([class*=d-]) {\n width: 100%;\n}\n.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li:last-child {\n border: 0;\n padding-bottom: 0;\n}\n.llms-mb-container .tab-content ul:not(.select2-selection__rendered) > li.top {\n border-bottom: 0;\n padding-bottom: 0;\n}\n.llms-mb-container .tab-content .full-width {\n width: 100%;\n}\n.llms-mb-container .tab-content #wp-content-editor-tools {\n background: none;\n}\n\n.llms-mb-container .tab-content.llms-active {\n display: inherit;\n}\n\n.llms-mb-container .tab-content .no-border {\n border-bottom: 0px;\n}\n\n/******************************************************************\n\nStyles for topModal modal\n\n******************************************************************/\n/**\n * Base modal styles\n */\n.topModal {\n display: none;\n position: relative;\n border: 4px solid #808080;\n background: #fff;\n z-index: 1000001;\n padding: 2px;\n max-width: 500px;\n margin: 34px auto 0;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-color: #ffffff;\n border-radius: 2px;\n border: 1px solid #dddddd;\n}\n\n.topModalClose {\n float: right;\n cursor: pointer;\n margin-right: 10px;\n margin-top: 10px;\n}\n\n.topModalContainer {\n display: none;\n overflow: auto;\n overflow-y: hidden;\n position: fixed;\n top: 0 !important;\n right: 0;\n bottom: 0;\n left: 0;\n -webkit-overflow-scrolling: touch;\n width: auto !important;\n margin-left: 0 !important;\n background-color: transparent !important;\n z-index: 100002 !important;\n}\n\n.topModalBackground {\n display: none;\n background: #000;\n position: fixed;\n height: 100%;\n width: 100%;\n top: 0 !important;\n left: 0;\n margin-left: 0 !important;\n z-index: 100002 !important;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n overflow: auto;\n overflow-y: hidden;\n}\n\nbody.modal-open {\n overflow: hidden;\n}\n\n.llms-modal-header {\n border-top-right-radius: 1px;\n border-top-left-radius: 1px;\n background: #466dd8;\n color: #eeeeee;\n padding: 10px 15px;\n font-size: 18px;\n}\n\n#llms-icon-modal-close {\n width: 16px;\n height: 16px;\n fill: #fefefe;\n}\n\n.llms-modal-content {\n padding: 20px;\n}\n.llms-modal-content h3 {\n margin-top: 0;\n}\n\n/**\n * Custom Modal Styles for LifterLMS\n */\n.llms-modal-form h1 {\n margin-top: 0;\n}\n.llms-modal-form input[type=text] {\n width: 100%;\n}\n.llms-modal-form textarea,\n.llms-modal-form input[type=text],\n.llms-modal-form input[type=password],\n.llms-modal-form input[type=file],\n.llms-modal-form input[type=datetime],\n.llms-modal-form input[type=datetime-local],\n.llms-modal-form input[type=date],\n.llms-modal-form input[type=month],\n.llms-modal-form input[type=time],\n.llms-modal-form input[type=week],\n.llms-modal-form input[type=number],\n.llms-modal-form input[type=email],\n.llms-modal-form input[type=url],\n.llms-modal-form input[type=search],\n.llms-modal-form input[type=tel],\n.llms-modal-form input[type=color] {\n padding: 0 0.4em 0 0.4em;\n margin-bottom: 2em;\n vertical-align: middle;\n border-radius: 3px;\n min-width: 50px;\n max-width: 635px;\n width: 100%;\n min-height: 32px;\n background-color: #fff;\n border: 1px solid #ccc;\n margin: 0 0 24px 0;\n outline: none;\n -webkit-transition: border 0.3s ease-in-out 0s;\n transition: border 0.3s ease-in-out 0s;\n}\n.llms-modal-form textarea:focus,\n.llms-modal-form input[type=text]:focus,\n.llms-modal-form input[type=password]:focus,\n.llms-modal-form input[type=file]:focus,\n.llms-modal-form input[type=datetime]:focus,\n.llms-modal-form input[type=datetime-local]:focus,\n.llms-modal-form input[type=date]:focus,\n.llms-modal-form input[type=month]:focus,\n.llms-modal-form input[type=time]:focus,\n.llms-modal-form input[type=week]:focus,\n.llms-modal-form input[type=number]:focus,\n.llms-modal-form input[type=email]:focus,\n.llms-modal-form input[type=url]:focus,\n.llms-modal-form input[type=search]:focus,\n.llms-modal-form input[type=tel]:focus,\n.llms-modal-form input[type=color]:focus {\n background: #fefefe;\n border: 1px solid #466dd8;\n}\n.llms-modal-form textarea {\n padding: 0.4em !important;\n height: 100px !important;\n border-radius: 3px;\n vertical-align: middle;\n min-height: 32px;\n outline: none;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.llms-modal-form textarea:focus {\n background: #fefefe;\n border: 1px solid #466dd8;\n}\n.llms-modal-form .chosen-container-single .chosen-single {\n border-radius: 3px;\n vertical-align: middle;\n min-height: 32px;\n border: 1px solid #ccc;\n width: 100%;\n background: #fefefe !important;\n outline: none;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n -webkit-box-shadow: 0 0 0 #fff;\n box-shadow: 0 0 0 #fff;\n line-height: 32px;\n margin: 0 0 24px 0;\n}\n.llms-modal-form .chosen-container-single .chosen-single:focus {\n background: #fefefe;\n border: 1px solid #466dd8;\n}\n.llms-modal-form .chosen-container-single .chosen-single div b {\n margin-top: 4px;\n}\n.llms-modal-form .chosen-search input[type=text] {\n border: 1px solid #ccc;\n}\n.llms-modal-form .chosen-search input[type=text]:focus {\n background-color: #fefefe;\n border: 1px solid #466dd8;\n}\n.llms-modal-form .chosen-container-single .chosen-drop {\n margin-top: -28px;\n}\n.llms-modal-form .llms-button-primary, .llms-modal-form .llms-button-secondary {\n padding: 10px 10px;\n border-radius: 0;\n -webkit-transition: 0.5s;\n transition: 0.5s;\n -webkit-box-shadow: 0 1px 1px #ccc;\n box-shadow: 0 1px 1px #ccc;\n}\n.llms-modal-form .llms-button-primary.full, .llms-modal-form .llms-button-secondary.full {\n width: 100%;\n}\n\n.modal-open .select2-dropdown {\n z-index: 1000005;\n}\n\n.button.llms-merge-code-button {\n vertical-align: middle;\n}\n.button.llms-merge-code-button svg {\n margin-right: 2px;\n position: relative;\n top: 4px;\n width: 16px;\n}\n.button.llms-merge-code-button svg g {\n fill: currentColor;\n}\n\n.llms-mb-container .llms-merge-code-wrapper {\n float: right;\n top: -5px;\n}\n\n.llms-merge-code-wrapper {\n display: inline;\n position: relative;\n}\n\n.llms-merge-codes {\n background: #f7f7f7;\n border: 1px solid #ccc;\n border-radius: 3px;\n -webkit-box-shadow: 0 1px 0 #ccc;\n box-shadow: 0 1px 0 #ccc;\n color: #555;\n display: none;\n left: 1px;\n overflow: hidden;\n position: absolute;\n top: 30px;\n width: 200px;\n}\n.llms-merge-codes ul {\n margin: 0;\n padding: 0;\n}\n.llms-merge-codes li {\n cursor: pointer;\n margin: 0;\n padding: 4px 8px !important;\n border-bottom: 1px solid #ccc;\n}\n.llms-merge-codes li:hover {\n color: #23282d;\n background: #fefefe;\n}\n.llms-merge-codes.active {\n display: block;\n z-index: 777;\n}\n\n/******************************************************************\n\nBase Mobile\n\n******************************************************************/\n.llms-nav-tab,\n.llms-nav-tab-filters {\n display: block;\n width: 100%;\n}\n\nform.llms-nav-tab-filters.full-width {\n width: 100%;\n}\nform.llms-nav-tab-filters.full-width label {\n display: inline-block;\n width: 10%;\n text-align: left;\n}\nform.llms-nav-tab-filters.full-width .select2-container {\n width: 85% !important;\n}\n\n.llms-nav-tab-settings {\n display: block;\n width: 100%;\n}\n\n#llms-form-wrapper .llms-select {\n width: 100%;\n margin-bottom: 20px;\n}\n#llms-form-wrapper .llms-checkbox {\n display: inline-block;\n width: 100%;\n text-align: left;\n}\n#llms-form-wrapper .llms-filter-options {\n width: 100%;\n}\n#llms-form-wrapper .llms-date-select {\n width: 100%;\n display: inline-block;\n margin-bottom: 20px;\n}\n#llms-form-wrapper .llms-date-select input[type=text] {\n width: 100%;\n}\nul.tabs li {\n display: block;\n}\n\n@media only screen and (min-width: 481px) {\n /******************************************************************\n\n Larger Phones\n\n ******************************************************************/\n #llms-form-wrapper .llms-checkbox {\n width: 33%;\n }\n}\n@media only screen and (min-width: 768px) {\n /******************************************************************\n\n Tablets and small computers\n\n ******************************************************************/\n ul.tabs li {\n display: inline-block;\n }\n .llms-nav-tab {\n display: inline-block;\n width: 33%;\n }\n .llms-nav-tab-settings {\n display: inline-block;\n width: 25%;\n }\n #llms-form-wrapper .llms-select {\n width: 50%;\n max-width: 500px;\n }\n #llms-form-wrapper .llms-filter-options {\n width: 50%;\n max-width: 500px;\n }\n #llms-form-wrapper .llms-date-select {\n width: 47.5%;\n }\n #llms-form-wrapper .llms-date-select:first-child {\n margin-right: 5%;\n }\n .llms-widget input[type=text],\n.llms-widget input[type=password],\n.llms-widget input[type=datetime],\n.llms-widget input[type=datetime-local],\n.llms-widget input[type=date],\n.llms-widget input[type=month],\n.llms-widget input[type=time],\n.llms-widget input[type=week],\n.llms-widget input[type=number],\n.llms-widget input[type=email],\n.llms-widget input[type=url],\n.llms-widget input[type=search],\n.llms-widget input[type=tel],\n.llms-widget input[type=color],\n.llms-widget select,\n.llms-widget textarea {\n width: 50%;\n }\n .llms-widget input[type=text].medium,\n.llms-widget input[type=password].medium,\n.llms-widget input[type=datetime].medium,\n.llms-widget input[type=datetime-local].medium,\n.llms-widget input[type=date].medium,\n.llms-widget input[type=month].medium,\n.llms-widget input[type=time].medium,\n.llms-widget input[type=week].medium,\n.llms-widget input[type=number].medium,\n.llms-widget input[type=email].medium,\n.llms-widget input[type=url].medium,\n.llms-widget input[type=search].medium,\n.llms-widget input[type=tel].medium,\n.llms-widget input[type=color].medium,\n.llms-widget select.medium,\n.llms-widget textarea.medium {\n width: 30%;\n }\n .llms-widget input[type=text].small,\n.llms-widget input[type=password].small,\n.llms-widget input[type=datetime].small,\n.llms-widget input[type=datetime-local].small,\n.llms-widget input[type=date].small,\n.llms-widget input[type=month].small,\n.llms-widget input[type=time].small,\n.llms-widget input[type=week].small,\n.llms-widget input[type=number].small,\n.llms-widget input[type=email].small,\n.llms-widget input[type=url].small,\n.llms-widget input[type=search].small,\n.llms-widget input[type=tel].small,\n.llms-widget input[type=color].small,\n.llms-widget select.small,\n.llms-widget textarea.small {\n width: 20%;\n }\n .llms-widget input[type=text].tiny,\n.llms-widget input[type=password].tiny,\n.llms-widget input[type=datetime].tiny,\n.llms-widget input[type=datetime-local].tiny,\n.llms-widget input[type=date].tiny,\n.llms-widget input[type=month].tiny,\n.llms-widget input[type=time].tiny,\n.llms-widget input[type=week].tiny,\n.llms-widget input[type=number].tiny,\n.llms-widget input[type=email].tiny,\n.llms-widget input[type=url].tiny,\n.llms-widget input[type=search].tiny,\n.llms-widget input[type=tel].tiny,\n.llms-widget input[type=color].tiny,\n.llms-widget select.tiny,\n.llms-widget textarea.tiny {\n width: 10%;\n }\n}\n@media only screen and (min-width: 1030px) {\n /******************************************************************\n\n Desktop Stylesheet\n\n ******************************************************************/\n .llms-nav-tab {\n display: inline-block;\n width: 33.333%;\n }\n .llms-nav-tab-settings {\n display: inline-block;\n width: 25%;\n }\n #llms-form-wrapper .llms-select {\n display: inline-block;\n width: 47.5%;\n }\n #llms-form-wrapper .llms-select:first-child {\n margin-right: 5%;\n }\n #llms-form-wrapper .llms-filter-options {\n display: inline-block;\n width: 47.5%;\n }\n #llms-form-wrapper .llms-filter-options.date-filter {\n margin-right: 5%;\n }\n #llms-form-wrapper .llms-filter-options .llms-date-select {\n margin-bottom: 0;\n }\n #llms-form-wrapper .llms-date-select {\n width: 47.5%;\n }\n #llms-form-wrapper .llms-date-select:first-child {\n margin-right: 5%;\n }\n .llms-widget-row:before, .llms-widget-row:after {\n content: \" \";\n display: table;\n }\n .llms-widget-row:after {\n clear: both;\n }\n .llms-widget-row .llms-widget-1-5 {\n vertical-align: top;\n width: 20%;\n float: left;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0 5px;\n }\n .llms-widget-row .llms-widget-1-4 {\n vertical-align: top;\n width: 25%;\n float: left;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0 5px;\n }\n .llms-widget-row .llms-widget-1-3 {\n width: 33.3%;\n float: left;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0 5px;\n }\n .llms-widget-row .llms-widget-1-2 {\n width: 50%;\n float: left;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0 5px;\n vertical-align: top;\n }\n}\n@media only screen and (min-width: 1240px) {\n /******************************************************************\n\n large Monitor Stylesheet\n\n ******************************************************************/\n .llms-nav-tab-filters,\n.llms-nav-tab-settings {\n float: left;\n width: 12.5%;\n }\n}\n.wrap.lifterlms {\n margin-top: 0;\n}\n\n.llms-header {\n background-color: #FFF;\n margin: 0 0 0 -20px;\n padding: 20px 10px;\n position: relative;\n z-index: 1;\n}\n.llms-header .llms-inside-wrap {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding: 0 10px;\n}\n.llms-header .lifterlms-logo {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 190px;\n flex: 0 0 190px;\n max-height: 52px;\n margin-right: 10px;\n}\n.llms-header .llms-meta {\n -ms-flex-item-align: center;\n align-self: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n font-size: 16px;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n line-height: 1.5;\n}\n.llms-header .llms-meta .llms-version {\n background-color: #1d2327;\n color: #FFF;\n border-radius: 999px;\n font-size: 13px;\n font-weight: 700;\n padding: 6px 12px;\n}\n.llms-header .llms-meta a {\n display: inline-block;\n}\n.llms-header .llms-meta .llms-license {\n border-right: 1px solid #CCC;\n font-weight: 700;\n margin-right: 12px;\n padding-right: 12px;\n}\n.llms-header .llms-meta .llms-license a {\n text-decoration: none;\n}\n.llms-header .llms-meta .llms-license a:before {\n content: \"\\f534\";\n display: inline-block;\n font: 400 16px/1 dashicons;\n left: 0;\n padding-right: 3px;\n position: relative;\n text-decoration: none;\n vertical-align: text-bottom;\n}\n.llms-header .llms-meta .llms-license a.llms-license-none {\n color: #888;\n}\n.llms-header .llms-meta .llms-license a.llms-license-none:before {\n content: \"\\f335\";\n}\n.llms-header .llms-meta .llms-license a.llms-license-active {\n color: #008a20;\n}\n.llms-header .llms-meta .llms-license a.llms-license-active:before {\n content: \"\\f112\";\n}\n.llms-header .llms-meta .llms-support {\n font-weight: 700;\n}\n.llms-header .llms-meta .llms-support a {\n color: #1d2327;\n text-decoration: none;\n}\n\n.llms-subheader {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n background-color: #FFF;\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n margin-left: -20px;\n padding: 10px 20px;\n width: 100%;\n z-index: 1;\n}\n.llms-subheader h1 {\n font-weight: 700;\n padding: 0;\n}\n.llms-subheader h1 a {\n color: inherit;\n text-decoration: none;\n}\n\n#post_course_difficulty {\n min-width: 200px;\n}\n\n#_video-embed, #_audio-embed {\n width: 100%;\n}\n\nhr {\n background-color: #CCC;\n border: none;\n height: 1px;\n margin: 30px 0;\n padding: 0;\n}\n\n.llms_certificate_default_image, .llms_certificate_image {\n width: 300px;\n}\n\n.llms_achievement_default_image, .llms_achievement_image {\n width: 120px;\n}\n\ndiv[id^=lifterlms-] .inside {\n overflow: visible;\n}\n\n.notice.llms-admin-notice {\n background-color: #FFF;\n border: 1px solid #ccd0d4;\n -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding: 0 !important;\n position: relative;\n}\n.notice.llms-admin-notice .notice-dismiss {\n text-decoration: none;\n}\n.notice.llms-admin-notice.notice-warning {\n border-left: 4px solid #F8954F;\n}\n.notice.llms-admin-notice.notice-warning .llms-admin-notice-icon {\n background-color: #FEF4ED;\n}\n.notice.llms-admin-notice.notice-info {\n border-left: 4px solid #466DD8;\n}\n.notice.llms-admin-notice.notice-info h3 {\n color: #466DD8;\n}\n.notice.llms-admin-notice.notice-info .llms-admin-notice-icon {\n background-color: #EDF0FB;\n}\n.notice.llms-admin-notice.notice-success {\n border-left: 4px solid #18A957;\n}\n.notice.llms-admin-notice.notice-success h3 {\n color: #18A957;\n}\n.notice.llms-admin-notice.notice-success .llms-admin-notice-icon {\n background-color: #E8F6EE;\n}\n.notice.llms-admin-notice.notice-error {\n border-left: 4px solid #DF1642;\n}\n.notice.llms-admin-notice.notice-error h3 {\n color: #9C0F2E;\n}\n.notice.llms-admin-notice.notice-error .llms-admin-notice-icon {\n background-color: #FCE8EC;\n}\n.notice.llms-admin-notice .llms-admin-notice-icon {\n background-image: url(../../assets/images/lifterlms-icon-color.png);\n background-position: center center;\n background-repeat: no-repeat;\n background-size: 30px;\n min-width: 70px;\n}\n.notice.llms-admin-notice .llms-admin-notice-content {\n color: #111;\n padding: 20px;\n}\n.notice.llms-admin-notice h3 {\n font-size: 18px;\n font-weight: 700;\n line-height: 25px;\n margin: 0 0 15px 0;\n}\n.notice.llms-admin-notice button,\n.notice.llms-admin-notice .llms-button-primary {\n display: inline-block;\n}\n.notice.llms-admin-notice p {\n font-size: 14px;\n line-height: 22px;\n margin: 0 0 15px 0;\n max-width: 65em;\n padding: 0;\n}\n.notice.llms-admin-notice p:last-of-type {\n margin-bottom: 0;\n}\n\n.llms-button-action.small .dashicons,\n.llms-button-danger.small .dashicons,\n.llms-button-primary.small .dashicons,\n.llms-button-secondary.small .dashicons {\n font-size: 13px;\n height: 13px;\n width: 13px;\n}\n.llms-button-action:hover,\n.llms-button-danger:hover,\n.llms-button-primary:hover,\n.llms-button-secondary:hover {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n\na.llms-view-as {\n line-height: 2;\n margin-right: 8px;\n}\n\n.llms-image-field-preview {\n max-height: 80px;\n vertical-align: middle;\n width: auto;\n}\n\n.llms-image-field-remove.hidden {\n display: none;\n}\n\n.llms-log-viewer {\n background: #fff;\n border: 1px solid #e5e5e5;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);\n margin: 20px 0;\n padding: 25px;\n}\n.llms-log-viewer pre {\n font-family: monospace;\n margin: 0;\n padding: 0;\n white-space: pre-wrap;\n}\n\n.llms-status--tools .llms-table {\n background: #fff;\n border: 1px solid #e5e5e5;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);\n}\n.llms-status--tools .llms-table td, .llms-status--tools .llms-table th {\n padding: 10px;\n vertical-align: top;\n}\n.llms-status--tools .llms-table th {\n width: 28%;\n}\n.llms-status--tools .llms-table p {\n margin: 0 0 10px;\n}\n\n.llms-error {\n color: #bb231c;\n font-style: italic;\n}\n\n.llms-rating-stars {\n color: #ffb900;\n text-decoration: none;\n}\n\n@media screen and (max-width: 782px) {\n .llms-header {\n top: 46px;\n }\n .llms-header .llms-inside-wrap {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n gap: 20px;\n }\n .llms-header .llms-inside-wrap .lifterlms-logo {\n -ms-flex-item-align: center;\n align-self: center;\n -webkit-box-flex: inherit;\n -ms-flex: inherit;\n flex: inherit;\n max-height: initial;\n max-width: 200px;\n }\n .llms-header .llms-inside-wrap .llms-meta {\n -webkit-column-gap: 10px;\n -moz-column-gap: 10px;\n column-gap: 10px;\n }\n}\n.llms-table-wrap {\n position: relative;\n}\n\n.llms-table-header {\n padding: 0;\n}\n.llms-table-header:before, .llms-table-header:after {\n content: \" \";\n display: table;\n}\n.llms-table-header:after {\n clear: both;\n}\n.llms-table-header h2 {\n font-size: 20px;\n padding: 0;\n display: inline-block;\n line-height: 1.5;\n margin: 0 0 20px 0;\n vertical-align: middle;\n}\n.llms-table-header .llms-table-search,\n.llms-table-header .llms-table-filters {\n float: right;\n padding-left: 10px;\n}\n.llms-table-header .llms-table-search input {\n margin: 0;\n padding: 0 8px;\n}\n\n.llms-table {\n border: 1px solid #c3c4c7;\n border-collapse: collapse;\n width: 100%;\n}\n.llms-table a:not(.small) {\n color: #466dd8;\n}\n.llms-table a:not(.small):hover {\n color: #2b55cb;\n}\n.llms-table td, .llms-table th {\n border-bottom: 1px solid #c3c4c7;\n padding: 10px 12px;\n text-align: center;\n}\n.llms-table td.expandable.closed, .llms-table th.expandable.closed {\n display: none;\n}\n.llms-table td .llms-button-primary,\n.llms-table td .llms-button-secondary,\n.llms-table td .llms-button-action,\n.llms-table td .llms-button-danger, .llms-table th .llms-button-primary,\n.llms-table th .llms-button-secondary,\n.llms-table th .llms-button-action,\n.llms-table th .llms-button-danger {\n display: inline-block;\n}\n.llms-table tr.llms-quiz-pending td {\n font-weight: 700;\n}\n.llms-table thead th,\n.llms-table tfoot th {\n background-color: #FFF;\n font-weight: 700;\n}\n.llms-table thead th a.llms-sortable,\n.llms-table tfoot th a.llms-sortable {\n padding-right: 16px;\n position: relative;\n text-decoration: none;\n width: 100%;\n}\n.llms-table thead th a.llms-sortable.active[data-order=DESC] .asc,\n.llms-table tfoot th a.llms-sortable.active[data-order=DESC] .asc {\n opacity: 1;\n}\n.llms-table thead th a.llms-sortable.active[data-order=ASC] .desc,\n.llms-table tfoot th a.llms-sortable.active[data-order=ASC] .desc {\n opacity: 1;\n}\n.llms-table thead th a.llms-sortable:hover[data-order=DESC] .asc,\n.llms-table tfoot th a.llms-sortable:hover[data-order=DESC] .asc {\n opacity: 0;\n}\n.llms-table thead th a.llms-sortable:hover[data-order=DESC] .desc,\n.llms-table tfoot th a.llms-sortable:hover[data-order=DESC] .desc {\n opacity: 1;\n}\n.llms-table thead th a.llms-sortable:hover[data-order=ASC] .asc,\n.llms-table tfoot th a.llms-sortable:hover[data-order=ASC] .asc {\n opacity: 1;\n}\n.llms-table thead th a.llms-sortable:hover[data-order=ASC] .desc,\n.llms-table tfoot th a.llms-sortable:hover[data-order=ASC] .desc {\n opacity: 0;\n}\n.llms-table thead th a.llms-sortable .dashicons,\n.llms-table tfoot th a.llms-sortable .dashicons {\n color: #444;\n font-size: 16px;\n height: 16px;\n opacity: 0;\n position: absolute;\n width: 16px;\n}\n.llms-table tfoot th {\n border-bottom: none;\n}\n.llms-table tfoot th .llms-table-export {\n float: left;\n}\n.llms-table tfoot th .llms-table-export .llms-table-progress {\n background: #efefef;\n display: none;\n margin-left: 8px;\n vertical-align: middle;\n width: 100px;\n}\n.llms-table tfoot th .llms-clear-resumable-attempts {\n float: left;\n}\n.llms-table tfoot th .llms-table-pagination {\n float: right;\n}\n.llms-table.zebra tbody tr:nth-child(even) th, .llms-table.zebra tbody tr:nth-child(even) td {\n background-color: #fff;\n}\n.llms-table.zebra tbody tr:nth-child(odd) th, .llms-table.zebra tbody tr:nth-child(odd) td {\n background-color: #f6f7f7;\n}\n.llms-table.text-left td, .llms-table.text-left th {\n text-align: left;\n}\n.llms-table.size-large td, .llms-table.size-large th {\n font-size: 14px;\n padding: 10px 12px;\n}\n.llms-table .llms-drag-handle {\n color: #777;\n cursor: pointer;\n -webkit-transition: color 0.4s ease;\n transition: color 0.4s ease;\n}\n.llms-table .llms-action-icon {\n color: #777;\n text-decoration: none;\n}\n.llms-table .llms-action-icon .tooltip {\n cursor: pointer;\n}\n.llms-table .llms-action-icon:hover {\n color: #466dd8;\n}\n.llms-table .llms-action-icon.danger:hover {\n color: #bb231c;\n}\n.llms-table .llms-table-page-count {\n font-size: 12px;\n padding: 0 5px;\n}\n\n.llms-table-progress {\n text-align: center;\n}\n.llms-table-progress .llms-table-progress-bar {\n background: #eee;\n border-radius: 10px;\n height: 16px;\n overflow: hidden;\n position: relative;\n}\n.llms-table-progress .llms-table-progress-bar .llms-table-progress-inner {\n background: #466dd8;\n height: 100%;\n -webkit-transition: width 0.2s ease;\n transition: width 0.2s ease;\n}\n.llms-table-progress .llms-table-progress-text {\n color: #466dd8;\n font-size: 12px;\n font-weight: 700;\n line-height: 16px;\n}\n\n.llms-table.llms-gateway-table .status .fa,\n.llms-table.llms-integrations-table .status .fa {\n color: #466dd8;\n font-size: 22px;\n}\n.llms-table.llms-gateway-table .sort,\n.llms-table.llms-integrations-table .sort {\n cursor: move;\n text-align: center;\n width: 10px;\n}\n\n.llms-gb-table-notifications th, .llms-gb-table-notifications td {\n text-align: left;\n}\n\n.llms-order-note .llms-order-note-content {\n background: #efefef;\n margin-bottom: 10px;\n padding: 10px;\n position: relative;\n}\n.llms-order-note .llms-order-note-content:after {\n border-style: solid;\n border-color: #efefef transparent;\n border-width: 10px 10px 0 0;\n bottom: -10px;\n content: \"\";\n display: block;\n height: 0;\n left: 20px;\n position: absolute;\n width: 0;\n}\n.llms-order-note .llms-order-note-content p {\n font-size: 13px;\n margin: 0;\n line-height: 1.5;\n}\n.llms-order-note .llms-order-note-meta {\n color: #999;\n font-size: 11px;\n margin-left: 10px;\n}\n\n.llms-mb-list label {\n font-size: 15px;\n font-weight: 700;\n line-height: 1.5;\n display: block;\n width: 100%;\n}\n.llms-mb-list .description {\n margin-bottom: 8px;\n}\n.llms-mb-list .input-full {\n width: 100%;\n}\n\n#poststuff .llms-metabox h2, #poststuff .llms-metabox h3, #poststuff .llms-metabox h4, #poststuff .llms-metabox h6 {\n margin: 0;\n padding: 0;\n}\n#poststuff .llms-metabox h2 {\n font-size: 18px;\n font-weight: 700;\n}\n#poststuff .llms-metabox h3 {\n color: #1e1e1e;\n font-size: 16px;\n}\n#poststuff .llms-metabox h4 {\n color: #1e1e1e;\n font-size: 16px;\n line-height: 1.5;\n padding: 0;\n margin: 0;\n}\n#poststuff .llms-metabox h4:not(.llms-collapsible-body h4:first-of-type) {\n margin-top: 20px;\n}\n#poststuff .llms-metabox .llms-transaction-test-mode {\n background: #ffffd7;\n font-style: italic;\n left: 0;\n padding: 2px;\n position: absolute;\n right: 0;\n top: 0;\n text-align: center;\n}\n#poststuff .llms-metabox a.llms-editable,\n#poststuff .llms-metabox .llms-metabox-icon,\n#poststuff .llms-metabox button.llms-editable {\n color: #999;\n text-decoration: none;\n}\n#poststuff .llms-metabox a.llms-editable:hover,\n#poststuff .llms-metabox .llms-metabox-icon:hover,\n#poststuff .llms-metabox button.llms-editable:hover {\n color: #466dd8;\n}\n#poststuff .llms-metabox button.llms-editable {\n border: none;\n background: none;\n cursor: pointer;\n padding: 0;\n vertical-align: top;\n}\n#poststuff .llms-metabox h4 button.llms-editable {\n float: right;\n}\n#poststuff .llms-metabox .llms-table {\n margin-top: 10px;\n}\n#poststuff .llms-metabox button.llms-button-primary {\n border-radius: 8px;\n font-size: 16px;\n font-weight: 700;\n height: auto;\n}\n\n.llms-metabox-section {\n background: #fff;\n margin-top: 25px;\n position: relative;\n /* Fixes to tighten the space between tinymce editor and label */\n}\n.llms-metabox-section.no-top-margin {\n margin-top: 0;\n}\n.llms-metabox-section .llms-metabox-field {\n margin: 5px 0;\n position: relative;\n}\n.llms-metabox-section .llms-metabox-field label {\n color: #1e1e1e;\n display: block;\n margin-bottom: 5px;\n font-size: 14px;\n font-weight: 400;\n}\n.llms-metabox-section .llms-metabox-field select,\n.llms-metabox-section .llms-metabox-field textarea,\n.llms-metabox-section .llms-metabox-field input[type=text],\n.llms-metabox-section .llms-metabox-field input[type=number] {\n width: 100%;\n}\n.llms-metabox-section .llms-metabox-field input.md-text {\n width: 105px;\n}\n.llms-metabox-section .llms-metabox-field input.sm-text {\n width: 45px;\n}\n.llms-metabox-section .llms-metabox-field .llms-datetime-field .llms-date-input {\n width: 95px;\n}\n.llms-metabox-section .llms-metabox-field .llms-datetime-field .llms-time-input {\n width: 45px;\n}\n.llms-metabox-section .llms-metabox-field .llms-datetime-field em {\n font-style: normal;\n padding: 0 3px;\n}\n.llms-metabox-section .llms-metabox-field .select2-container--default .select2-search--inline .select2-search__field {\n min-height: auto;\n}\n.llms-metabox-section .llms-metabox-field .select2-container--default .select2-selection--multiple .select2-selection__rendered li {\n margin-bottom: 0;\n}\n.llms-metabox-section .llms-metabox-field:has(.wp-editor-wrap) label {\n position: relative;\n z-index: 5;\n}\n.llms-metabox-section .llms-metabox-field .wp-editor-wrap {\n margin-top: -30px;\n}\n\n.llms-collapsible {\n background: #fff;\n border: 1px solid #efefef;\n border-radius: 6px;\n -webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.08);\n box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.08);\n display: block;\n margin: 0;\n padding: 0;\n position: relative;\n text-align: center;\n margin-top: 0;\n}\n.llms-collapsible:last-child {\n margin-bottom: 0;\n}\n.llms-collapsible.opened .llms-collapsible-header .dashicons-arrow-down {\n display: none;\n}\n.llms-collapsible.opened .llms-collapsible-header .dashicons-arrow-up {\n display: inline;\n}\n.llms-collapsible .llms-collapsible-header {\n padding: 15px;\n}\n.llms-collapsible .llms-collapsible-header [class^=d-] {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 5px;\n}\n.llms-collapsible .llms-collapsible-header .d-right {\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding-right: 0;\n}\n.llms-collapsible .llms-collapsible-header h3 {\n color: #1e1e1e;\n display: inline;\n margin: 0;\n font-size: 16px;\n font-weight: 700;\n}\n.llms-collapsible .llms-collapsible-header h3 small {\n font-weight: 400;\n}\n.llms-collapsible .llms-collapsible-header .dashicons-arrow-up {\n display: inline;\n}\n.llms-collapsible .llms-collapsible-header .dashicons-arrow-up {\n display: none;\n}\n.llms-collapsible .llms-collapsible-header a {\n text-decoration: none;\n}\n.llms-collapsible .llms-collapsible-header .dashicons {\n color: #1e1e1e;\n cursor: pointer;\n -webkit-transition: color 0.4s ease;\n transition: color 0.4s ease;\n}\n.llms-collapsible .llms-collapsible-header .dashicons:hover {\n color: #466dd8;\n}\n.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning:hover, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-trash:hover, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-no:hover {\n color: #bb231c;\n}\n.llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning.medium-danger, .llms-collapsible .llms-collapsible-header .dashicons.dashicons-warning.medium-danger:hover {\n color: #c05621;\n}\n.llms-collapsible .llms-collapsible-body {\n display: none;\n padding: 15px;\n}\n\n._llms_instructors_data.repeater .llms-repeater-rows .llms-repeater-row:first-child .llms-repeater-remove {\n display: none;\n}\n._llms_instructors_data.repeater .llms-mb-list {\n padding: 0 5px !important;\n}\n\n.post-type-llms_order #post-body-content {\n display: none;\n}\n\n#lifterlms-order-details .handlediv,\n#lifterlms-order-details .handlediv.button-link,\n#lifterlms-order-details .postbox-header {\n display: none;\n}\n#lifterlms-order-details .inside {\n padding: 20px;\n margin-top: 0;\n}\n\n.llms-table tbody tr.llms-txn-failed td {\n background-color: rgba(187, 35, 28, 0.5);\n border-bottom-color: rgba(187, 35, 28, 0.5);\n}\n\n.llms-table tbody tr.llms-txn-refunded td {\n background-color: rgba(255, 165, 0, 0.5);\n border-bottom-color: rgba(255, 165, 0, 0.5);\n}\n\n.llms-txn-refund-form .llms-metabox-section,\n.llms-manual-txn-form .llms-metabox-section {\n margin-top: 0;\n}\n.llms-txn-refund-form .llms-metabox-field,\n.llms-manual-txn-form .llms-metabox-field {\n text-align: right;\n}\n.llms-txn-refund-form .llms-metabox-field input[type=number],\n.llms-manual-txn-form .llms-metabox-field input[type=number] {\n max-width: 100px;\n}\n.llms-txn-refund-form .llms-metabox-field input[type=text],\n.llms-manual-txn-form .llms-metabox-field input[type=text] {\n max-width: 340px;\n}\n\n.llms-manual-txn-form {\n background-color: #eaeaea;\n}\n.llms-manual-txn-form .llms-metabox-section {\n background-color: #eaeaea;\n}\n\n#llms-remaining-edit {\n display: none;\n}\n\n.llms-remaining-edit--content label, .llms-remaining-edit--content span, .llms-remaining-edit--content textarea {\n display: block;\n}\n.llms-remaining-edit--content label {\n margin-bottom: 20px;\n}\n.llms-remaining-edit--content textarea, .llms-remaining-edit--content input {\n width: 100%;\n}\n\n.submitbox .llms-mb-section,\n.llms-award-engagement-submitbox .llms-mb-list {\n margin-bottom: 12px;\n}\n.submitbox .llms-mb-section:last-of-type,\n.llms-award-engagement-submitbox .llms-mb-list:last-of-type {\n margin-bottom: 0;\n}\n.sync-action:before, .submitbox .llms-mb-section.student-info:before, .submitbox .llms-mb-section.post_author_override label:before,\n.llms-award-engagement-submitbox .llms-mb-list.student-info:before,\n.llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before {\n font: normal 20px/1 dashicons;\n speak: never;\n display: inline-block;\n margin-left: -1px;\n padding-right: 3px;\n vertical-align: top;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n position: relative;\n top: -1px;\n color: #8c8f94;\n}\nbody:not(.admin-color-fresh) .sync-action:before, body:not(.admin-color-fresh) .submitbox .llms-mb-section.student-info:before, body:not(.admin-color-fresh) .submitbox .llms-mb-section.post_author_override label:before,\nbody:not(.admin-color-fresh) .llms-award-engagement-submitbox .llms-mb-list.student-info:before,\nbody:not(.admin-color-fresh) .llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before {\n color: currentColor;\n}\n\n.submitbox .llms-mb-section.student-info:before, .submitbox .llms-mb-section.post_author_override label:before,\n.llms-award-engagement-submitbox .llms-mb-list.student-info:before,\n.llms-award-engagement-submitbox .llms-mb-list.post_author_override label:before {\n content: \"\\f110\";\n}\n.sync-action:before {\n content: \"\\f113\";\n color: white;\n}\n\n.submitbox .llms-mb-section.post_author_override label,\n.llms-award-engagement-submitbox .llms-mb-list.post_author_override label {\n display: inline-block;\n width: auto;\n}\n\n.llms-metabox > p:first-child {\n margin-top: 0;\n}\n.llms-metabox #llms-new-access-plan-model {\n display: none;\n}\n.llms-metabox .llms-access-plans {\n color: #1e1e1e;\n}\n.llms-metabox .llms-access-plans > .llms-no-plans-msg {\n display: none;\n}\n.llms-metabox .llms-access-plans > .llms-no-plans-msg .notice {\n margin-right: 0;\n margin-left: 0;\n}\n.llms-metabox .llms-access-plans > .llms-no-plans-msg:last-child {\n display: block;\n}\n.llms-metabox .llms-access-plans.dragging {\n background: #efefef;\n -webkit-box-shadow: inset 0 0 0 1px #e5e5e5;\n box-shadow: inset 0 0 0 1px #e5e5e5;\n}\n.llms-metabox .llms-access-plans .llms-spinning {\n z-index: 1;\n}\n.llms-metabox .llms-access-plans .llms-invalid {\n border-color: #bb231c;\n}\n.llms-metabox .llms-access-plans .llms-invalid .dashicons-warning {\n display: inline;\n}\n.llms-metabox .llms-access-plans .llms-needs-attention .dashicons-warning.medium-danger {\n display: inline;\n}\n.llms-metabox .llms-access-plans .dashicons-warning {\n display: none;\n}\n.llms-metabox .llms-access-plan {\n margin-bottom: 20px;\n text-align: left;\n}\n.llms-metabox .llms-access-plan [data-tip]:before {\n text-align: center;\n}\n.llms-metabox .llms-access-plan .llms-plan-link,\n.llms-metabox .llms-access-plan [data-controller] {\n display: none;\n}\n.llms-metabox .llms-access-plan:hover .llms-plan-link, .llms-metabox .llms-access-plan.opened .llms-plan-link {\n display: inline-block;\n}\n.llms-metabox .llms-access-plan .llms-metabox-field {\n margin: 15px 0;\n}\n.llms-metabox .llms-access-plan .llms-required {\n color: #bb231c;\n margin-left: 3px;\n}\n.llms-metabox .llms-access-plan .notice {\n margin-left: 0;\n}\n\n.llms-metabox-students .llms-table tr .name {\n text-align: left;\n}\n.llms-metabox-students .llms-add-student:hover {\n color: #4d8d3c;\n}\n.llms-metabox-students .llms-remove-student:hover {\n color: #bb231c;\n}\n\n.llms-mb-container .tab-content ul:not(.select2-selection__rendered).llms-mb-repeater-fields > li.llms-mb-list {\n border-bottom: none;\n padding: 0 0 10px;\n}\n\n.llms-mb-list.repeater .llms-repeater-rows {\n position: relative;\n margin-top: 10px;\n min-height: 10px;\n}\n.llms-mb-list.repeater .llms-repeater-rows.dragging {\n background: #efefef;\n -webkit-box-shadow: inset 0 0 0 1px #e5e5e5;\n box-shadow: inset 0 0 0 1px #e5e5e5;\n}\n.llms-mb-list.repeater .llms-repeater-row {\n background: #fff;\n}\n.llms-mb-list.repeater .llms-mb-repeater-footer {\n text-align: right;\n margin-top: 20px;\n}\n.llms-mb-list.repeater .tmce-active .wp-editor-area {\n color: #32373c;\n}\n\n.llms-builder-launcher p {\n margin-top: 0;\n}\n.llms-builder-launcher ol {\n margin-top: -6px;\n}\n.llms-builder-launcher .llms-button-primary {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n.wp-list-table .llms-status {\n border-radius: 6px;\n display: inline-block;\n font-size: 13px;\n font-weight: 700;\n line-height: 1.4;\n padding: 2px 6px;\n vertical-align: middle;\n}\n.wp-list-table .llms-status.llms-size--large {\n font-size: 105%;\n padding: 6px 12px;\n}\n.wp-list-table .llms-status.llms-active, .wp-list-table .llms-status.llms-completed, .wp-list-table .llms-status.llms-pass, .wp-list-table .llms-status.llms-txn-succeeded {\n color: #4d8d3c;\n background-color: rgba(77, 141, 60, 0.15);\n}\n.wp-list-table .llms-status.llms-fail, .wp-list-table .llms-status.llms-failed, .wp-list-table .llms-status.llms-expired, .wp-list-table .llms-status.llms-cancelled, .wp-list-table .llms-status.llms-txn-failed {\n color: #bb231c;\n background-color: rgba(187, 35, 28, 0.15);\n}\n.wp-list-table .llms-status.llms-incomplete, .wp-list-table .llms-status.llms-on-hold, .wp-list-table .llms-status.llms-pending, .wp-list-table .llms-status.llms-pending-cancel, .wp-list-table .llms-status.llms-refunded, .wp-list-table .llms-status.llms-txn-pending, .wp-list-table .llms-status.llms-txn-refunded {\n color: #c05621;\n background-color: rgba(192, 86, 33, 0.15);\n}\n\n#lifterlms-order-transactions .llms-table tfoot th {\n text-align: right;\n}\n\n.llms-post-table-post-filter {\n display: inline-block;\n margin-right: 6px;\n max-width: 100%;\n width: 220px;\n}\n\n.llms-nav-tab-wrapper {\n background: #466dd8;\n margin: 20px 0;\n}\n.llms-nav-tab-wrapper.llms-nav-secondary {\n background: #e1e1e1;\n}\n.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item {\n margin: 0;\n}\n.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover, .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {\n background: #cdcdcd;\n}\n.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link {\n color: #414141;\n font-size: 15px;\n padding: 8px 14px;\n}\n.llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link .dashicons {\n font-size: 15px;\n height: 15px;\n width: 15px;\n}\n.llms-nav-tab-wrapper.llms-nav-text {\n background: inherit;\n}\n.llms-nav-tab-wrapper.llms-nav-text .llms-nav-items {\n padding-left: 0;\n}\n.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item {\n background: inherit;\n color: #646970;\n}\n.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item:last-child:after {\n display: none;\n}\n.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item:after {\n content: \"|\";\n display: inline-block;\n margin: 0 8px 0 6px;\n}\n.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item .llms-nav-link:hover {\n background: inherit;\n color: #466dd8;\n}\n.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item.llms-active .llms-nav-link {\n background: inherit;\n color: #000;\n font-weight: 600;\n text-decoration: none;\n}\n.llms-nav-tab-wrapper.llms-nav-text .llms-nav-item .llms-nav-link {\n color: #466dd8;\n display: inline-block;\n letter-spacing: 0;\n margin: 0;\n padding: 0;\n text-decoration: underline;\n text-transform: none;\n}\n.llms-nav-tab-wrapper.llms-nav-style-tabs {\n background-color: #1c3987;\n margin: 0;\n padding-top: 8px;\n}\n.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item {\n margin: 0 3px;\n}\n.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item .llms-nav-link {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.llms-nav-tab-wrapper.llms-nav-style-tabs .llms-nav-item.llms-active .llms-nav-link {\n background-color: #FFF;\n color: #466dd8;\n font-weight: 700;\n}\n.llms-nav-tab-wrapper.llms-nav-style-filters {\n background-color: #466dd8;\n border-radius: 12px;\n margin: 20px 0;\n overflow: hidden;\n padding: 0;\n}\n.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding-left: 0;\n}\n@media only screen and (min-width: 782px) {\n .llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n }\n}\n.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items .llms-nav-item {\n float: none;\n}\n.llms-nav-tab-wrapper.llms-nav-style-filters .llms-nav-items .llms-nav-item .llms-nav-link {\n padding: 14px;\n}\n.llms-nav-tab-wrapper .llms-nav-items {\n margin: 0;\n padding-left: 10px;\n}\n.llms-nav-tab-wrapper .llms-nav-items:before, .llms-nav-tab-wrapper .llms-nav-items:after {\n content: \" \";\n display: table;\n}\n.llms-nav-tab-wrapper .llms-nav-items:after {\n clear: both;\n}\n.llms-nav-tab-wrapper .llms-nav-item {\n margin: 0;\n}\n.llms-nav-tab-wrapper .llms-nav-item .llms-nav-link:hover {\n background: #466dd8;\n}\n.llms-nav-tab-wrapper .llms-nav-item.llms-active .llms-nav-link {\n background: #1c3987;\n}\n.llms-nav-tab-wrapper .llms-nav-item.llms-active .llms-nav-link {\n font-weight: 400;\n}\n@media only screen and (min-width: 768px) {\n .llms-nav-tab-wrapper .llms-nav-item {\n float: left;\n }\n .llms-nav-tab-wrapper .llms-nav-item.llms-nav-item-right {\n float: right;\n }\n}\n.llms-nav-tab-wrapper .llms-nav-link {\n color: #fff;\n cursor: pointer;\n display: block;\n font-weight: 400;\n font-size: 15px;\n padding: 9px 18px;\n text-align: center;\n text-decoration: none;\n -webkit-transition: all 0.3s ease;\n transition: all 0.3s ease;\n}\n\n#llms-options-page-contents h2 {\n color: #999;\n font-weight: 500;\n letter-spacing: 2px;\n border-bottom: 1px solid #999;\n}\n\n.llms-reporting.wrap .llms-options-page-contents .llms-nav-tab-wrapper.llms-nav-secondary {\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n margin: 0;\n padding: 0;\n}\n.llms-reporting.wrap .llms-stab-title {\n color: #1c3987;\n font-size: 36px;\n font-weight: 300;\n margin-bottom: 20px;\n}\n.llms-reporting.wrap td.id a {\n text-decoration: none;\n}\n.llms-reporting.wrap th.id, .llms-reporting.wrap td.id,\n.llms-reporting.wrap th.name, .llms-reporting.wrap td.name,\n.llms-reporting.wrap th.registered, .llms-reporting.wrap td.registered,\n.llms-reporting.wrap th.last_seen, .llms-reporting.wrap td.last_seen,\n.llms-reporting.wrap th.overall_progress, .llms-reporting.wrap td.overall_progress,\n.llms-reporting.wrap th.title, .llms-reporting.wrap td.title,\n.llms-reporting.wrap th.course, .llms-reporting.wrap td.course,\n.llms-reporting.wrap th.lesson, .llms-reporting.wrap td.lesson {\n text-align: left;\n}\n.llms-reporting.wrap td.section-title {\n background: #eaeaea;\n text-align: left;\n font-weight: 700;\n padding: 16px 4px;\n}\n.llms-reporting.wrap td.questions-table {\n text-align: left;\n}\n.llms-reporting.wrap td.questions-table .correct,\n.llms-reporting.wrap td.questions-table .question,\n.llms-reporting.wrap td.questions-table .selected {\n text-align: left;\n max-width: 300px;\n}\n.llms-reporting.wrap td.questions-table .correct img,\n.llms-reporting.wrap td.questions-table .question img,\n.llms-reporting.wrap td.questions-table .selected img {\n height: auto;\n max-width: 64px;\n}\n.llms-reporting.wrap table.quiz-attempts {\n margin-bottom: 40px;\n}\n.llms-reporting.wrap.tab--students .llms-options-page-contents #llms-award-certificate-wrapper .components-button.is-secondary {\n background: #e1e1e1;\n border-radius: 8px;\n -webkit-box-shadow: none;\n box-shadow: none;\n color: #414141;\n font-size: 13px;\n font-weight: 700;\n height: auto;\n padding: 8px 14px;\n}\n.llms-reporting.wrap.tab--enrollments .llms-nav-tab-wrapper.llms-nav-secondary, .llms-reporting.wrap.tab--sales .llms-nav-tab-wrapper.llms-nav-secondary {\n margin-bottom: 0;\n}\n.llms-reporting.wrap.tab--enrollments .llms-options-page-contents, .llms-reporting.wrap.tab--sales .llms-options-page-contents {\n -webkit-box-shadow: none;\n box-shadow: none;\n background: none;\n margin-top: 20px;\n padding: 0;\n}\n.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-item-align: center;\n align-self: center;\n color: #FFF;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n font-size: 13px;\n gap: 5px;\n}\n.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form label, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form label {\n font-weight: 700;\n}\n.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form input, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form input {\n border: 0;\n font-size: 13px;\n margin: 0;\n padding: 0 4px;\n vertical-align: middle;\n width: 110px;\n}\n.llms-reporting.wrap.tab--enrollments .llms-nav-style-filters .llms-analytics-form .select2-container input, .llms-reporting.wrap.tab--sales .llms-nav-style-filters .llms-analytics-form .select2-container input {\n width: 100% !important;\n}\n.llms-reporting.wrap.tab--enrollments .button.small, .llms-reporting.wrap.tab--sales .button.small {\n height: 23px;\n line-height: 23px;\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters, .llms-reporting.wrap.tab--sales .llms-analytics-filters {\n display: none;\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-inside-wrap, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-inside-wrap {\n background-color: #FFF;\n background-color: #FFF;\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n margin: -20px 10px 20px 10px;\n padding: 20px;\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-items, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-items {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n gap: 20px;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n margin: 0;\n}\n@media only screen and (min-width: 782px) {\n .llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-items, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-items {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n }\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 100%;\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item label, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item label {\n display: block;\n font-weight: 700;\n margin: 0 0 5px 0;\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters .llms-nav-item .select2-selection__rendered, .llms-reporting.wrap.tab--sales .llms-analytics-filters .llms-nav-item .select2-selection__rendered {\n word-wrap: break-word;\n text-overflow: inherit;\n white-space: normal;\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters p, .llms-reporting.wrap.tab--sales .llms-analytics-filters p {\n margin: 0;\n text-align: right;\n}\n.llms-reporting.wrap.tab--enrollments .llms-analytics-filters p .llms-button-primary, .llms-reporting.wrap.tab--sales .llms-analytics-filters p .llms-button-primary {\n display: inline-block;\n}\n.llms-reporting.wrap .llms-reporting-tab.llms-reporting-quiz .llms-table-filter-wrap {\n width: 160px;\n}\n.llms-reporting.wrap .llms-table-header form {\n display: inline;\n}\n.llms-reporting.wrap .llms-table-header .button {\n margin-left: 5px;\n}\n\n.llms-charts-wrapper {\n background-color: #FFF;\n border: 1px solid #dedede;\n border-radius: 12px;\n -webkit-box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);\n box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);\n padding: 20px;\n}\n\n.llms-reporting-tab h1, .llms-reporting-tab h2, .llms-reporting-tab h3, .llms-reporting-tab h4, .llms-reporting-tab h5, .llms-reporting-tab h6 {\n margin: 0;\n}\n.llms-reporting-tab h1 a, .llms-reporting-tab h2 a, .llms-reporting-tab h3 a, .llms-reporting-tab h4 a, .llms-reporting-tab h5 a, .llms-reporting-tab h6 a {\n color: #466dd8;\n text-decoration: none;\n}\n.llms-reporting-tab h1 a:hover, .llms-reporting-tab h2 a:hover, .llms-reporting-tab h3 a:hover, .llms-reporting-tab h4 a:hover, .llms-reporting-tab h5 a:hover, .llms-reporting-tab h6 a:hover {\n color: #466dd8;\n}\n.llms-reporting-tab h2 {\n font-size: 22px;\n line-height: 1.5;\n}\n.llms-reporting-tab h2.llms-table-title {\n margin-bottom: 20px;\n}\n.llms-reporting-tab h5 {\n font-size: 15px;\n line-height: 1.5;\n}\n.llms-reporting-tab .llms-reporting-body {\n background-color: #FFF;\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n margin: 20px auto;\n padding: 0;\n}\n.llms-reporting-tab .llms-reporting-body .llms-reporting-stab {\n padding: 30px;\n}\n.llms-reporting-tab .llms-reporting-body .llms-reporting-stab .llms-table-header {\n margin: 0;\n}\n.llms-reporting-tab .llms-reporting-body .llms-gb-tab {\n padding: 30px;\n}\n.llms-reporting-tab .llms-reporting-body .llms-reporting-header {\n padding: 30px;\n margin: 0;\n}\n.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-img {\n border-radius: 50%;\n display: inline-block;\n margin-right: 10px;\n overflow: hidden;\n vertical-align: middle;\n}\n.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-img img {\n display: block;\n max-height: 64px;\n width: auto;\n}\n.llms-reporting-tab .llms-reporting-body .llms-reporting-header .llms-reporting-header-info {\n display: inline-block;\n vertical-align: middle;\n}\n\n.llms-reporting-breadcrumbs {\n margin: 0;\n padding: 0;\n}\n.llms-reporting-breadcrumbs a {\n color: #466dd8;\n font-size: 15px;\n text-decoration: none;\n}\n.llms-reporting-breadcrumbs a:hover {\n color: #2b55cb;\n}\n.llms-reporting-breadcrumbs a:after {\n content: \" > \";\n color: #646970;\n}\n.llms-reporting-breadcrumbs a:last-child {\n color: #000;\n font-weight: 700;\n}\n.llms-reporting-breadcrumbs a:last-child:after {\n display: none;\n}\n\n#llms-students-table .name {\n text-align: left;\n}\n\n.llms-reporting-tab-content {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.llms-reporting-tab-content > header:before, .llms-reporting-tab-content > header:after {\n content: \" \";\n display: table;\n}\n.llms-reporting-tab-content > header:after {\n clear: both;\n}\n.llms-reporting-tab-content h3 {\n margin-bottom: 20px;\n}\n.llms-reporting-tab-content .llms-reporting-tab-filter {\n float: right;\n position: relative;\n margin-right: 0.75em;\n width: 180px;\n top: -3px;\n}\n.llms-reporting-tab-content .llms-reporting-tab-main {\n -webkit-box-flex: 3;\n -ms-flex: 3;\n flex: 3;\n max-width: 75%;\n}\n.llms-reporting-tab-content .llms-reporting-tab-side {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n margin-left: 20px;\n}\n.llms-reporting-tab-content > .llms-table-wrap {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n\n.llms-reporting-widgets:before, .llms-reporting-widgets:after {\n content: \" \";\n display: table;\n}\n.llms-reporting-widgets:after {\n clear: both;\n}\n\n.llms-reporting-widget {\n border-top: 4px solid #466dd8;\n background: #fafafa;\n margin-bottom: 10px;\n padding: 30px;\n}\n.llms-reporting-widget:before, .llms-reporting-widget:after {\n content: \" \";\n display: table;\n}\n.llms-reporting-widget:after {\n clear: both;\n}\n.llms-reporting-widget .fa {\n color: #999;\n float: left;\n font-size: 32px;\n margin-right: 10px;\n}\n.llms-reporting-widget strong {\n color: #333;\n font-size: 20px;\n line-height: 1.2;\n}\n.llms-reporting-widget.llms-reporting-student-address strong {\n line-height: 1.1;\n}\n.llms-reporting-widget sup,\n.llms-reporting-widget .llms-price-currency-symbol {\n font-size: 75%;\n position: relative;\n top: -4px;\n vertical-align: baseline;\n}\n.llms-reporting-widget small {\n font-size: 13px;\n}\n.llms-reporting-widget small.compare {\n margin-left: 5px;\n}\n.llms-reporting-widget small.compare.positive {\n color: #4d8d3c;\n}\n.llms-reporting-widget small.compare.negative {\n color: #bb231c;\n}\n\n.llms-reporting-event {\n border-left: 4px solid #555;\n background: #fafafa;\n font-size: 11px;\n line-height: 1.2;\n margin-bottom: 0.75em;\n padding: 10px;\n}\n.llms-reporting-event:before, .llms-reporting-event:after {\n content: \" \";\n display: table;\n}\n.llms-reporting-event:after {\n clear: both;\n}\n.llms-reporting-event.color--blue {\n border-left-color: #466dd8;\n}\n.llms-reporting-event.color--green, .llms-reporting-event._enrollment_trigger, .llms-reporting-event._is_complete.yes {\n border-left-color: #4d8d3c;\n}\n.llms-reporting-event.color--purple, .llms-reporting-event._status.enrolled {\n border-left-color: #845ef7;\n}\n.llms-reporting-event.color--red, .llms-reporting-event._status.expired, .llms-reporting-event._status.cancelled {\n border-left-color: #bb231c;\n}\n.llms-reporting-event.color--orange, .llms-reporting-event._achievement_earned, .llms-reporting-event._certificate_earned, .llms-reporting-event._email_sent {\n border-left-color: #c05621;\n}\n.llms-reporting-event time {\n color: #888;\n}\n.llms-reporting-event .llms-student-avatar {\n margin-left: 10px;\n float: right;\n}\n.llms-reporting-event a {\n text-decoration: none;\n color: inherit;\n}\n\n@media only screen and (min-width: 782px) {\n .llms-reporting.wrap .llms-options-page-contents .llms-nav-tab-wrapper.llms-nav-secondary {\n margin-left: 0;\n margin-right: 0;\n }\n}\n.llms-quiz-attempt-results {\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question {\n background: #efefef;\n border-radius: 6px;\n margin: 0 0 15px;\n position: relative;\n list-style-type: none;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer {\n color: inherit;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 10px;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 15px 35px 15px 15px;\n text-decoration: none;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct, .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect {\n background: rgba(192, 86, 33, 0.2);\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon, .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon {\n background-color: #c05621;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct {\n background: rgba(77, 141, 60, 0.15);\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon {\n background-color: #4d8d3c;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect {\n background: rgba(187, 35, 28, 0.15);\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon {\n background-color: #bb231c;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question pre {\n overflow: auto;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title {\n font-size: 22px;\n margin: 0;\n line-height: 1.4;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points {\n line-height: 1.4;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip {\n position: absolute;\n right: -12px;\n top: -2px;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon {\n color: rgba(255, 255, 255, 0.65);\n border-radius: 50%;\n font-size: 30px;\n height: 40px;\n line-height: 40px;\n text-align: center;\n width: 40px;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main {\n display: none;\n padding: 0 15px 15px;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label {\n font-weight: 700;\n margin: 0 0 10px;\n padding: 0;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers {\n margin: 0;\n padding: 0;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n padding: 0;\n margin: 0 0 0 30px;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child {\n list-style-type: none;\n margin-left: 0;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img {\n height: auto;\n max-width: 200px;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section {\n border-top: 2px solid rgba(255, 255, 255, 0.5);\n margin-top: 20px;\n padding-top: 20px;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child {\n border-top: none;\n margin-top: 0;\n padding-top: 0;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers, .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer, .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n display: inline-block;\n list-style-type: none;\n margin: 0;\n padding: 5px;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed {\n opacity: 0.5;\n}\n.llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title {\n font-style: italic;\n font-weight: normal;\n}\n\n.wrap.llms-reporting .llms-inside-wrap,\n.wrap.lifterlms-settings .llms-inside-wrap,\n.wrap.llms-status .llms-inside-wrap {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0 auto;\n}\n.wrap.llms-reporting .llms-inside-wrap .llms-nav-text,\n.wrap.lifterlms-settings .llms-inside-wrap .llms-nav-text,\n.wrap.llms-status .llms-inside-wrap .llms-nav-text {\n margin: 0 auto;\n}\n.wrap.llms-reporting .llms-subheader .llms-save,\n.wrap.lifterlms-settings .llms-subheader .llms-save,\n.wrap.llms-status .llms-subheader .llms-save {\n -webkit-box-flex: 1;\n -ms-flex: auto;\n flex: auto;\n text-align: right;\n}\n.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary,\n.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary,\n.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary {\n background-color: #FFF;\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);\n margin: 0 -20px 20px -10px;\n}\n.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items,\n.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items,\n.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {\n padding-left: 0;\n}\n.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover,\n.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover,\n.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item .llms-nav-link:hover {\n background: #f0f0f1;\n color: #222222;\n}\n.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,\n.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,\n.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {\n background: #fafafa;\n color: #466dd8;\n border-top-color: #466dd8;\n}\n.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,\n.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,\n.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {\n font-weight: 700;\n}\n.wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link,\n.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link,\n.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-link {\n border-top: 2px solid transparent;\n padding: 14px;\n}\n.wrap.llms-reporting .llms-setting-group,\n.wrap.lifterlms-settings .llms-setting-group,\n.wrap.llms-status .llms-setting-group {\n background-color: #FFF;\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n margin: 20px auto;\n padding: 20px;\n}\n.wrap.llms-reporting .llms-setting-group .llms-label,\n.wrap.lifterlms-settings .llms-setting-group .llms-label,\n.wrap.llms-status .llms-setting-group .llms-label {\n border-bottom: 1px solid #efefef;\n font-weight: 700;\n font-size: 20px;\n padding: 20px;\n margin: -20px -20px 20px;\n}\n.wrap.llms-reporting .llms-setting-group .llms-label .llms-button-primary,\n.wrap.lifterlms-settings .llms-setting-group .llms-label .llms-button-primary,\n.wrap.llms-status .llms-setting-group .llms-label .llms-button-primary {\n margin-left: 10px;\n}\n.wrap.llms-reporting .llms-setting-group .llms-help-tooltip .dashicons,\n.wrap.lifterlms-settings .llms-setting-group .llms-help-tooltip .dashicons,\n.wrap.llms-status .llms-setting-group .llms-help-tooltip .dashicons {\n color: #444;\n cursor: help;\n}\n.wrap.llms-reporting .llms-setting-group .form-table,\n.wrap.lifterlms-settings .llms-setting-group .form-table,\n.wrap.llms-status .llms-setting-group .form-table {\n margin: 0;\n}\n.wrap.llms-reporting .llms-setting-group .form-table tr:first-child .llms-subtitle,\n.wrap.lifterlms-settings .llms-setting-group .form-table tr:first-child .llms-subtitle,\n.wrap.llms-status .llms-setting-group .form-table tr:first-child .llms-subtitle {\n margin-top: 0;\n}\n.wrap.llms-reporting .llms-setting-group td[colspan=\"2\"],\n.wrap.lifterlms-settings .llms-setting-group td[colspan=\"2\"],\n.wrap.llms-status .llms-setting-group td[colspan=\"2\"] {\n padding-top: 0;\n padding-left: 0;\n}\n.wrap.llms-reporting .llms-setting-group tr.llms-disabled-field,\n.wrap.lifterlms-settings .llms-setting-group tr.llms-disabled-field,\n.wrap.llms-status .llms-setting-group tr.llms-disabled-field {\n opacity: 0.5;\n pointer-events: none;\n}\n.wrap.llms-reporting .llms-setting-group p,\n.wrap.lifterlms-settings .llms-setting-group p,\n.wrap.llms-status .llms-setting-group p {\n font-size: 14px;\n}\n.wrap.llms-reporting .llms-setting-group input[type=text],\n.wrap.llms-reporting .llms-setting-group input[type=password],\n.wrap.llms-reporting .llms-setting-group input[type=datetime],\n.wrap.llms-reporting .llms-setting-group input[type=datetime-local],\n.wrap.llms-reporting .llms-setting-group input[type=date],\n.wrap.llms-reporting .llms-setting-group input[type=month],\n.wrap.llms-reporting .llms-setting-group input[type=time],\n.wrap.llms-reporting .llms-setting-group input[type=week],\n.wrap.llms-reporting .llms-setting-group input[type=number],\n.wrap.llms-reporting .llms-setting-group input[type=email],\n.wrap.llms-reporting .llms-setting-group input[type=url],\n.wrap.llms-reporting .llms-setting-group input[type=search],\n.wrap.llms-reporting .llms-setting-group input[type=tel],\n.wrap.llms-reporting .llms-setting-group input[type=color],\n.wrap.llms-reporting .llms-setting-group select,\n.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area),\n.wrap.lifterlms-settings .llms-setting-group input[type=text],\n.wrap.lifterlms-settings .llms-setting-group input[type=password],\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime],\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local],\n.wrap.lifterlms-settings .llms-setting-group input[type=date],\n.wrap.lifterlms-settings .llms-setting-group input[type=month],\n.wrap.lifterlms-settings .llms-setting-group input[type=time],\n.wrap.lifterlms-settings .llms-setting-group input[type=week],\n.wrap.lifterlms-settings .llms-setting-group input[type=number],\n.wrap.lifterlms-settings .llms-setting-group input[type=email],\n.wrap.lifterlms-settings .llms-setting-group input[type=url],\n.wrap.lifterlms-settings .llms-setting-group input[type=search],\n.wrap.lifterlms-settings .llms-setting-group input[type=tel],\n.wrap.lifterlms-settings .llms-setting-group input[type=color],\n.wrap.lifterlms-settings .llms-setting-group select,\n.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area),\n.wrap.llms-status .llms-setting-group input[type=text],\n.wrap.llms-status .llms-setting-group input[type=password],\n.wrap.llms-status .llms-setting-group input[type=datetime],\n.wrap.llms-status .llms-setting-group input[type=datetime-local],\n.wrap.llms-status .llms-setting-group input[type=date],\n.wrap.llms-status .llms-setting-group input[type=month],\n.wrap.llms-status .llms-setting-group input[type=time],\n.wrap.llms-status .llms-setting-group input[type=week],\n.wrap.llms-status .llms-setting-group input[type=number],\n.wrap.llms-status .llms-setting-group input[type=email],\n.wrap.llms-status .llms-setting-group input[type=url],\n.wrap.llms-status .llms-setting-group input[type=search],\n.wrap.llms-status .llms-setting-group input[type=tel],\n.wrap.llms-status .llms-setting-group input[type=color],\n.wrap.llms-status .llms-setting-group select,\n.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area) {\n width: 50%;\n}\n.wrap.llms-reporting .llms-setting-group input[type=text].medium,\n.wrap.llms-reporting .llms-setting-group input[type=password].medium,\n.wrap.llms-reporting .llms-setting-group input[type=datetime].medium,\n.wrap.llms-reporting .llms-setting-group input[type=datetime-local].medium,\n.wrap.llms-reporting .llms-setting-group input[type=date].medium,\n.wrap.llms-reporting .llms-setting-group input[type=month].medium,\n.wrap.llms-reporting .llms-setting-group input[type=time].medium,\n.wrap.llms-reporting .llms-setting-group input[type=week].medium,\n.wrap.llms-reporting .llms-setting-group input[type=number].medium,\n.wrap.llms-reporting .llms-setting-group input[type=email].medium,\n.wrap.llms-reporting .llms-setting-group input[type=url].medium,\n.wrap.llms-reporting .llms-setting-group input[type=search].medium,\n.wrap.llms-reporting .llms-setting-group input[type=tel].medium,\n.wrap.llms-reporting .llms-setting-group input[type=color].medium,\n.wrap.llms-reporting .llms-setting-group select.medium,\n.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=text].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=password].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=date].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=month].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=time].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=week].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=number].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=email].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=url].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=search].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=tel].medium,\n.wrap.lifterlms-settings .llms-setting-group input[type=color].medium,\n.wrap.lifterlms-settings .llms-setting-group select.medium,\n.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).medium,\n.wrap.llms-status .llms-setting-group input[type=text].medium,\n.wrap.llms-status .llms-setting-group input[type=password].medium,\n.wrap.llms-status .llms-setting-group input[type=datetime].medium,\n.wrap.llms-status .llms-setting-group input[type=datetime-local].medium,\n.wrap.llms-status .llms-setting-group input[type=date].medium,\n.wrap.llms-status .llms-setting-group input[type=month].medium,\n.wrap.llms-status .llms-setting-group input[type=time].medium,\n.wrap.llms-status .llms-setting-group input[type=week].medium,\n.wrap.llms-status .llms-setting-group input[type=number].medium,\n.wrap.llms-status .llms-setting-group input[type=email].medium,\n.wrap.llms-status .llms-setting-group input[type=url].medium,\n.wrap.llms-status .llms-setting-group input[type=search].medium,\n.wrap.llms-status .llms-setting-group input[type=tel].medium,\n.wrap.llms-status .llms-setting-group input[type=color].medium,\n.wrap.llms-status .llms-setting-group select.medium,\n.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).medium {\n width: 30%;\n}\n.wrap.llms-reporting .llms-setting-group input[type=text].small,\n.wrap.llms-reporting .llms-setting-group input[type=password].small,\n.wrap.llms-reporting .llms-setting-group input[type=datetime].small,\n.wrap.llms-reporting .llms-setting-group input[type=datetime-local].small,\n.wrap.llms-reporting .llms-setting-group input[type=date].small,\n.wrap.llms-reporting .llms-setting-group input[type=month].small,\n.wrap.llms-reporting .llms-setting-group input[type=time].small,\n.wrap.llms-reporting .llms-setting-group input[type=week].small,\n.wrap.llms-reporting .llms-setting-group input[type=number].small,\n.wrap.llms-reporting .llms-setting-group input[type=email].small,\n.wrap.llms-reporting .llms-setting-group input[type=url].small,\n.wrap.llms-reporting .llms-setting-group input[type=search].small,\n.wrap.llms-reporting .llms-setting-group input[type=tel].small,\n.wrap.llms-reporting .llms-setting-group input[type=color].small,\n.wrap.llms-reporting .llms-setting-group select.small,\n.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).small,\n.wrap.lifterlms-settings .llms-setting-group input[type=text].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=password].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=date].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=month].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=time].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=week].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=number].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=email].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=url].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=search].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=tel].small,\n.wrap.lifterlms-settings .llms-setting-group input[type=color].small,\n.wrap.lifterlms-settings .llms-setting-group select.small,\n.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).small,\n.wrap.llms-status .llms-setting-group input[type=text].small,\n.wrap.llms-status .llms-setting-group input[type=password].small,\n.wrap.llms-status .llms-setting-group input[type=datetime].small,\n.wrap.llms-status .llms-setting-group input[type=datetime-local].small,\n.wrap.llms-status .llms-setting-group input[type=date].small,\n.wrap.llms-status .llms-setting-group input[type=month].small,\n.wrap.llms-status .llms-setting-group input[type=time].small,\n.wrap.llms-status .llms-setting-group input[type=week].small,\n.wrap.llms-status .llms-setting-group input[type=number].small,\n.wrap.llms-status .llms-setting-group input[type=email].small,\n.wrap.llms-status .llms-setting-group input[type=url].small,\n.wrap.llms-status .llms-setting-group input[type=search].small,\n.wrap.llms-status .llms-setting-group input[type=tel].small,\n.wrap.llms-status .llms-setting-group input[type=color].small,\n.wrap.llms-status .llms-setting-group select.small,\n.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).small {\n width: 20%;\n}\n.wrap.llms-reporting .llms-setting-group input[type=text].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=password].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=datetime].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=datetime-local].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=date].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=month].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=time].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=week].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=number].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=email].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=url].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=search].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=tel].tiny,\n.wrap.llms-reporting .llms-setting-group input[type=color].tiny,\n.wrap.llms-reporting .llms-setting-group select.tiny,\n.wrap.llms-reporting .llms-setting-group textarea:not(.wp-editor-area).tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=text].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=password].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=datetime-local].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=date].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=month].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=time].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=week].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=number].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=email].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=url].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=search].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=tel].tiny,\n.wrap.lifterlms-settings .llms-setting-group input[type=color].tiny,\n.wrap.lifterlms-settings .llms-setting-group select.tiny,\n.wrap.lifterlms-settings .llms-setting-group textarea:not(.wp-editor-area).tiny,\n.wrap.llms-status .llms-setting-group input[type=text].tiny,\n.wrap.llms-status .llms-setting-group input[type=password].tiny,\n.wrap.llms-status .llms-setting-group input[type=datetime].tiny,\n.wrap.llms-status .llms-setting-group input[type=datetime-local].tiny,\n.wrap.llms-status .llms-setting-group input[type=date].tiny,\n.wrap.llms-status .llms-setting-group input[type=month].tiny,\n.wrap.llms-status .llms-setting-group input[type=time].tiny,\n.wrap.llms-status .llms-setting-group input[type=week].tiny,\n.wrap.llms-status .llms-setting-group input[type=number].tiny,\n.wrap.llms-status .llms-setting-group input[type=email].tiny,\n.wrap.llms-status .llms-setting-group input[type=url].tiny,\n.wrap.llms-status .llms-setting-group input[type=search].tiny,\n.wrap.llms-status .llms-setting-group input[type=tel].tiny,\n.wrap.llms-status .llms-setting-group input[type=color].tiny,\n.wrap.llms-status .llms-setting-group select.tiny,\n.wrap.llms-status .llms-setting-group textarea:not(.wp-editor-area).tiny {\n width: 10%;\n}\n@media only screen and (min-width: 782px) {\n .wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,\n.wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link,\n.wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-item.llms-active .llms-nav-link {\n background: #fff;\n }\n}\n.wrap.llms-reporting #llms-mailhawk-connect,\n.wrap.lifterlms-settings #llms-mailhawk-connect,\n.wrap.llms-status #llms-mailhawk-connect {\n height: auto;\n margin: 0 0 6px;\n position: relative;\n}\n.wrap.llms-reporting #llms-mailhawk-connect .dashicons,\n.wrap.lifterlms-settings #llms-mailhawk-connect .dashicons,\n.wrap.llms-status #llms-mailhawk-connect .dashicons {\n margin: -4px 4px 0 0;\n vertical-align: middle;\n}\n.wrap.llms-reporting #llms-sendwp-connect,\n.wrap.lifterlms-settings #llms-sendwp-connect,\n.wrap.llms-status #llms-sendwp-connect {\n height: auto;\n margin: 0 0 6px;\n position: relative;\n}\n.wrap.llms-reporting #llms-sendwp-connect .fa,\n.wrap.lifterlms-settings #llms-sendwp-connect .fa,\n.wrap.llms-status #llms-sendwp-connect .fa {\n margin-right: 4px;\n}\n\n@media only screen and (min-width: 782px) {\n .wrap.lifterlms-settings .llms-subheader {\n height: 40px;\n position: sticky;\n top: 32px;\n }\n .wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary {\n margin: 0 -20px 20px -22px;\n }\n .wrap.lifterlms-settings .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {\n padding-left: 10px;\n }\n .wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary {\n margin: 0 -20px 20px -22px;\n }\n .wrap.llms-reporting .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {\n padding-left: 10px;\n }\n .wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary {\n margin: 0 -20px 20px -22px;\n }\n .wrap.llms-status .llms-nav-tab-wrapper.llms-nav-secondary .llms-nav-items {\n padding-left: 10px;\n }\n}\n.wrap.llms-dashboard .llms-inside-wrap {\n padding-top: 30px;\n}\n.wrap.llms-dashboard #poststuff h2 {\n padding: 12px 20px;\n}\n.wrap.llms-dashboard .llms-dashboard-activity h2 {\n font-size: 20px;\n font-weight: 700;\n line-height: 1.5;\n margin-top: 0;\n text-align: center;\n}\n.wrap.llms-dashboard .postbox {\n background-color: #FFF;\n border: none;\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n}\n.wrap.llms-dashboard .postbox .postbox-header {\n border-bottom-color: #efefef;\n}\n.wrap.llms-dashboard .postbox .inside {\n padding: 20px;\n}\n.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap {\n margin-top: 0;\n}\n.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item {\n margin-top: 0;\n}\n.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item p {\n text-align: left;\n}\n.wrap.llms-dashboard #llms_dashboard_addons .llms-addons-wrap .llms-add-on-item footer.llms-actions {\n padding-top: 0;\n}\n.wrap.llms-dashboard #llms_dashboard_addons p {\n text-align: center;\n}\n.wrap.llms-dashboard #llms_dashboard_addons p .llms-button-primary {\n display: inline-block;\n margin-top: 15px;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links ul {\n list-style: disc;\n margin: 5px 0 0 20px;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links ul li {\n font-size: 15px;\n line-height: 1.5;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links {\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: 30px;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links a {\n display: inline-block;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list h3 {\n margin: 0 0 10px 0;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list ul {\n margin-bottom: 20px;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list ul.llms-checklist {\n list-style: none;\n margin-left: 0;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa {\n text-align: center;\n width: 16px;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa-check {\n color: #008a20;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .fa-times {\n color: #d63638;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-primary,\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-secondary,\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links .llms-list .llms-button-action {\n display: block;\n text-align: center;\n}\n@media only screen and (min-width: 782px) {\n .wrap.llms-dashboard #llms_dashboard_quick_links .llms-quick-links {\n grid-template-columns: 1fr 1fr 1fr;\n }\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: 20px;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links .llms-list h3 {\n margin: 0;\n}\n.wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links .llms-list h3 .dashicons {\n color: #AAA;\n}\n@media only screen and (min-width: 782px) {\n .wrap.llms-dashboard #llms_dashboard_quick_links .llms-help-links {\n grid-template-columns: 1fr 1fr 1fr 1fr;\n }\n}\n.wrap.llms-dashboard #llms_dashboard_blog ul,\n.wrap.llms-dashboard #llms_dashboard_podcast ul {\n margin: 0;\n}\n.wrap.llms-dashboard #llms_dashboard_blog ul li,\n.wrap.llms-dashboard #llms_dashboard_podcast ul li {\n margin: 0 0 15px 0;\n}\n.wrap.llms-dashboard #llms_dashboard_blog ul li a,\n.wrap.llms-dashboard #llms_dashboard_podcast ul li a {\n display: block;\n}\n.wrap.llms-dashboard #llms_dashboard_blog p,\n.wrap.llms-dashboard #llms_dashboard_podcast p {\n margin: 15px 0;\n text-align: center;\n}\n.wrap.llms-dashboard #llms_dashboard_blog p a,\n.wrap.llms-dashboard #llms_dashboard_podcast p a {\n display: inline-block;\n}\n\n#llms_dashboard_widget .inside {\n margin: 0;\n padding-bottom: 8px;\n}\n#llms_dashboard_widget .llms-dashboard-widget-wrap {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n padding-top: 12px;\n}\n#llms_dashboard_widget .activity-block {\n padding-bottom: 8px;\n border-color: #e8e8e8;\n}\n#llms_dashboard_widget h3 {\n margin-bottom: 0;\n}\n#llms_dashboard_widget .llms-charts-wrapper {\n display: none;\n}\n#llms_dashboard_widget .llms-widget-row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n gap: 8px;\n width: 100%;\n -webkit-box-align: stretch;\n -ms-flex-align: stretch;\n align-items: stretch;\n padding: 4px 0;\n}\n#llms_dashboard_widget .llms-widget-row:before, #llms_dashboard_widget .llms-widget-row:after {\n display: none;\n}\n#llms_dashboard_widget .llms-widget-1-4 {\n padding: 0;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n#llms_dashboard_widget .llms-widget {\n padding: 8px 8px 12px;\n margin: 0;\n border-radius: 6px;\n border: 1px solid #e8e8e8;\n -webkit-box-shadow: 0px 2px 4px rgb(246, 247, 247);\n box-shadow: 0px 2px 4px rgb(246, 247, 247);\n height: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n#llms_dashboard_widget .llms-label {\n font-size: 14px;\n width: 100%;\n -ms-flex-item-align: start;\n align-self: flex-start;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n#llms_dashboard_widget .llms-widget-content {\n font-size: 20px;\n margin: 0;\n}\n#llms_dashboard_widget .llms-widget-info-toggle {\n display: none;\n}\n#llms_dashboard_widget a {\n border: 0;\n}\n#llms_dashboard_widget .subsubsub {\n color: #dcdcde;\n}\n\n.llms-dashboard-widget-feed {\n margin: 0 -12px;\n padding: 0;\n background-color: #f6f7f7;\n}\n.llms-dashboard-widget-feed li {\n margin: 0;\n padding: 8px 12px;\n border-bottom: 1px solid #e8e8e8;\n}\n.llms-dashboard-widget-feed span {\n display: block;\n}\n\n.wrap.llms-resources .llms-inside-wrap {\n padding-top: 30px;\n}\n.wrap.llms-resources #poststuff #post-body.columns-2 {\n margin-right: 350px;\n}\n.wrap.llms-resources #poststuff #post-body.columns-2 #side-sortables {\n width: 330px;\n}\n@media only screen and (max-width: 850px) {\n .wrap.llms-resources #poststuff #post-body.columns-2 #side-sortables {\n width: auto;\n }\n}\n.wrap.llms-resources #poststuff #postbox-container-1 {\n float: right;\n margin-right: -350px;\n width: 330px;\n}\n.wrap.llms-resources #poststuff h2 {\n padding: 12px 20px;\n}\n.wrap.llms-resources #poststuff .postbox {\n background-color: #FFF;\n border: none;\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n}\n.wrap.llms-resources #poststuff .postbox .postbox-header {\n border-bottom-color: #efefef;\n}\n.wrap.llms-resources #poststuff .postbox .inside {\n margin: 0;\n padding: 20px;\n}\n.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video p {\n font-size: 15px;\n line-height: 1.5;\n margin: 0 0 40px 0;\n}\n.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container {\n height: 0;\n overflow: hidden;\n padding-top: 30px;\n padding-bottom: 56.25%;\n position: relative;\n}\n.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container iframe,\n.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container object,\n.wrap.llms-resources #llms_dashboard_welcome_video .llms-welcome-video .llms-welcome-video-container embed {\n left: 0;\n height: 100%;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.wrap.llms-resources #llms_dashboard_getting_started ul {\n margin: 0 0 20px 0;\n}\n.wrap.llms-resources #llms_dashboard_getting_started ul li {\n font-size: 15px;\n line-height: 1.5;\n margin-bottom: 15px;\n}\n.wrap.llms-resources #llms_dashboard_getting_started .llms-button-primary {\n display: block;\n margin-top: auto;\n max-width: 300px;\n text-align: center;\n}\n.wrap.llms-resources #llms_dashboard_resource_links ul {\n list-style: disc;\n margin: 5px 0 0 20px;\n}\n.wrap.llms-resources #llms_dashboard_resource_links ul li {\n font-size: 15px;\n line-height: 1.5;\n}\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links {\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: 60px;\n}\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links a {\n display: inline-block;\n}\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list h3 {\n margin: 0 0 10px 0;\n}\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list h3 .dashicons {\n color: #AAA;\n}\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list ul {\n margin-bottom: 20px;\n}\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-primary,\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-secondary,\n.wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links .llms-list .llms-button-action {\n display: block;\n margin-top: auto;\n max-width: 300px;\n text-align: center;\n}\n@media only screen and (min-width: 782px) {\n .wrap.llms-resources #llms_dashboard_resource_links .llms-resource-links {\n grid-template-columns: 1fr 1fr 1fr;\n }\n}\n\n.llms-remarks .llms-remarks-field {\n height: 120px;\n width: 100%;\n}\n.llms-remarks input[type=number] {\n width: 60px;\n}\n\nbutton[name=llms_quiz_attempt_action] .save {\n display: none;\n}\nbutton[name=llms_quiz_attempt_action].grading .default {\n display: none;\n}\nbutton[name=llms_quiz_attempt_action].grading .save {\n display: inline;\n}\n\n.llms-form-fields {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.llms-form-fields * {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.llms-form-fields.flush .llms-form-field {\n padding: 0 0 20px;\n}\n.llms-form-fields label:not(.llms-field-html label) {\n font-weight: 700;\n}\n.llms-form-fields .wp-block-columns, .llms-form-fields .wp-block-column {\n margin-bottom: 0;\n}\n\n.llms-form-heading {\n padding: 0 10px 10px;\n}\n\n.llms-form-field {\n float: left;\n padding: 0 10px 20px;\n position: relative;\n width: 100%;\n}\n.llms-form-field label:empty:after {\n content: \" \";\n}\n.llms-form-field [type=text],\n.llms-form-field [type=password],\n.llms-form-field [type=email],\n.llms-form-field [type=url],\n.llms-form-field [type=tel],\n.llms-form-field [type=number] {\n background-color: #fefefe;\n background-clip: padding-box;\n border: 1px solid #999;\n border-radius: 6px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1;\n padding: 8px 12px;\n -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\n transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\n width: 100%;\n}\n.llms-form-field input:focus,\n.llms-form-field input:focus-visible {\n border-color: #6888df;\n outline: thin solid;\n}\n.llms-form-field select {\n -webkit-appearance: none;\n -moz-appearance: none;\n -ms-appearance: none;\n appearance: none;\n background-color: #fefefe;\n border: 1px solid #999;\n border-radius: 6px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #010101;\n padding: 8px 12px;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 16px;\n cursor: inherit;\n line-height: 1.6;\n z-index: 1;\n outline: none;\n background-repeat: no-repeat;\n background-image: linear-gradient(45deg, transparent 50%, currentcolor 50%), linear-gradient(135deg, currentcolor 50%, transparent 50%);\n background-position: right 15px top 1.3rem, right 10px top 1.3rem;\n background-size: 5px 5px, 5px 5px;\n}\n.llms-form-field select::-ms-expand {\n display: none;\n}\n.llms-form-field select:focus {\n border: 1px solid #6888df;\n outline: thin solid;\n}\n.llms-form-field.valid input[type=date], .llms-form-field.valid input[type=time], .llms-form-field.valid input[type=datetime-local], .llms-form-field.valid input[type=week], .llms-form-field.valid input[type=month], .llms-form-field.valid input[type=text], .llms-form-field.valid input[type=email], .llms-form-field.valid input[type=url], .llms-form-field.valid input[type=password], .llms-form-field.valid input[type=search], .llms-form-field.valid input[type=tel], .llms-form-field.valid input[type=number], .llms-form-field.valid textarea, .llms-form-field.valid select {\n background: rgba(131, 195, 115, 0.3);\n border-color: #83c373;\n}\n.llms-form-field.error input[type=date], .llms-form-field.error input[type=time], .llms-form-field.error input[type=datetime-local], .llms-form-field.error input[type=week], .llms-form-field.error input[type=month], .llms-form-field.error input[type=text], .llms-form-field.error input[type=email], .llms-form-field.error input[type=url], .llms-form-field.error input[type=password], .llms-form-field.error input[type=search], .llms-form-field.error input[type=tel], .llms-form-field.error input[type=number], .llms-form-field.error textarea, .llms-form-field.error select, .llms-form-field.invalid input[type=date], .llms-form-field.invalid input[type=time], .llms-form-field.invalid input[type=datetime-local], .llms-form-field.invalid input[type=week], .llms-form-field.invalid input[type=month], .llms-form-field.invalid input[type=text], .llms-form-field.invalid input[type=email], .llms-form-field.invalid input[type=url], .llms-form-field.invalid input[type=password], .llms-form-field.invalid input[type=search], .llms-form-field.invalid input[type=tel], .llms-form-field.invalid input[type=number], .llms-form-field.invalid textarea, .llms-form-field.invalid select {\n background: rgba(187, 35, 28, 0.3);\n border-color: #bb231c;\n}\n.llms-form-field.llms-visually-hidden-field {\n display: none;\n}\n.llms-form-field.align-right {\n text-align: right;\n}\n@media screen and (min-width: 600px) {\n .llms-form-field.llms-cols-1 {\n width: 8.3333333333%;\n }\n .llms-form-field.llms-cols-2 {\n width: 16.6666666667%;\n }\n .llms-form-field.llms-cols-3 {\n width: 25%;\n }\n .llms-form-field.llms-cols-4 {\n width: 33.3333333333%;\n }\n .llms-form-field.llms-cols-5 {\n width: 41.6666666667%;\n }\n .llms-form-field.llms-cols-6 {\n width: 50%;\n }\n .llms-form-field.llms-cols-7 {\n width: 58.3333333333%;\n }\n .llms-form-field.llms-cols-8 {\n width: 66.6666666667%;\n }\n .llms-form-field.llms-cols-9 {\n width: 75%;\n }\n .llms-form-field.llms-cols-10 {\n width: 83.3333333333%;\n }\n .llms-form-field.llms-cols-11 {\n width: 91.6666666667%;\n }\n .llms-form-field.llms-cols-12 {\n width: 100%;\n }\n}\n.llms-form-field.type-hidden {\n padding: 0;\n}\n.llms-form-field.type-radio input,\n.llms-form-field.type-radio label, .llms-form-field.type-checkbox input,\n.llms-form-field.type-checkbox label {\n display: inline-block;\n width: auto;\n}\n.llms-form-field.type-radio input, .llms-form-field.type-checkbox input {\n margin-right: 10px;\n}\n.llms-form-field.type-radio label + .llms-description, .llms-form-field.type-checkbox label + .llms-description {\n display: block;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio] {\n position: absolute;\n opacity: 0;\n visibility: none;\n}\n.llms-form-field.type-radio:not(.is-group) label:before {\n background: #fafafa;\n background-position: -24px 0;\n background-repeat: no-repeat;\n border-radius: 50%;\n -webkit-box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.35) 0 0 0 1px;\n box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.35) 0 0 0 1px;\n content: \"\";\n cursor: pointer;\n display: inline-block;\n height: 22px;\n margin-right: 5px;\n position: relative;\n -webkit-transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n top: -3px;\n vertical-align: middle;\n width: 22px;\n z-index: 2;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked + label:before {\n -webkit-transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n background-position: 0 0;\n background-image: radial-gradient(ellipse at center, #466dd8 0%, #466dd8 40%, #fafafa 45%);\n}\n.llms-form-field .llms-input-group {\n margin-top: 5px;\n}\n.llms-form-field .llms-input-group .llms-form-field {\n padding: 0 0 5px 5px;\n}\n.llms-form-field.type-reset button:not(.auto), .llms-form-field.type-button button:not(.auto), .llms-form-field.type-submit button:not(.auto) {\n width: 100%;\n}\n.llms-form-field .llms-description {\n font-size: 14px;\n font-style: italic;\n line-height: 18px;\n}\n.llms-form-field .llms-required {\n color: #bb231c;\n margin-left: 4px;\n}\n.llms-form-field input, .llms-form-field textarea, .llms-form-field select {\n width: 100%;\n margin-bottom: 5px;\n}\n.llms-form-field .select2-container .select2-selection--single {\n height: auto;\n padding: 4px 6px;\n}\n.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow {\n height: 100%;\n}\n\n.llms-password-strength-meter {\n border: 1px solid #dadada;\n display: none;\n font-size: 10px;\n margin-top: -10px;\n padding: 1px;\n position: relative;\n text-align: center;\n}\n.llms-password-strength-meter:before {\n bottom: 0;\n content: \"\";\n left: 0;\n position: absolute;\n top: 0;\n -webkit-transition: width 0.4s ease;\n transition: width 0.4s ease;\n}\n.llms-password-strength-meter.mismatch, .llms-password-strength-meter.too-short, .llms-password-strength-meter.very-weak {\n border-color: #e35b5b;\n}\n.llms-password-strength-meter.mismatch:before, .llms-password-strength-meter.too-short:before, .llms-password-strength-meter.very-weak:before {\n background: rgba(227, 91, 91, 0.25);\n width: 25%;\n}\n.llms-password-strength-meter.too-short:before {\n width: 0;\n}\n.llms-password-strength-meter.weak {\n border-color: #f78b53;\n}\n.llms-password-strength-meter.weak:before {\n background: rgba(247, 139, 83, 0.25);\n width: 50%;\n}\n.llms-password-strength-meter.medium {\n border-color: #ffc733;\n}\n.llms-password-strength-meter.medium:before {\n background: rgba(255, 199, 51, 0.25);\n width: 75%;\n}\n.llms-password-strength-meter.strong {\n border-color: #83c373;\n}\n.llms-password-strength-meter.strong:before {\n background: rgba(131, 195, 115, 0.25);\n width: 100%;\n}\n.llms-password-strength-meter + .llms-description {\n display: block;\n}\n\n/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: \"FontAwesome\";\n src: url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");\n src: url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"), url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"), url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"), url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"), url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n\n.fa-border {\n padding: 0.2em 0.25em 0.15em;\n border: solid 0.08em #eeeeee;\n border-radius: 0.1em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left {\n margin-right: 0.3em;\n}\n\n.fa.fa-pull-right {\n margin-left: 0.3em;\n}\n\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n\n.pull-left {\n float: left;\n}\n\n.fa.pull-left {\n margin-right: 0.3em;\n}\n\n.fa.pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n\n.fa-stack-1x {\n line-height: inherit;\n}\n\n.fa-stack-2x {\n font-size: 2em;\n}\n\n.fa-inverse {\n color: #ffffff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n\n.fa-music:before {\n content: \"\\f001\";\n}\n\n.fa-search:before {\n content: \"\\f002\";\n}\n\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n\n.fa-heart:before {\n content: \"\\f004\";\n}\n\n.fa-star:before {\n content: \"\\f005\";\n}\n\n.fa-star-o:before {\n content: \"\\f006\";\n}\n\n.fa-user:before {\n content: \"\\f007\";\n}\n\n.fa-film:before {\n content: \"\\f008\";\n}\n\n.fa-th-large:before {\n content: \"\\f009\";\n}\n\n.fa-th:before {\n content: \"\\f00a\";\n}\n\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n\n.fa-check:before {\n content: \"\\f00c\";\n}\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n\n.fa-power-off:before {\n content: \"\\f011\";\n}\n\n.fa-signal:before {\n content: \"\\f012\";\n}\n\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n\n.fa-home:before {\n content: \"\\f015\";\n}\n\n.fa-file-o:before {\n content: \"\\f016\";\n}\n\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n\n.fa-road:before {\n content: \"\\f018\";\n}\n\n.fa-download:before {\n content: \"\\f019\";\n}\n\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n\n.fa-refresh:before {\n content: \"\\f021\";\n}\n\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n\n.fa-lock:before {\n content: \"\\f023\";\n}\n\n.fa-flag:before {\n content: \"\\f024\";\n}\n\n.fa-headphones:before {\n content: \"\\f025\";\n}\n\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n\n.fa-tag:before {\n content: \"\\f02b\";\n}\n\n.fa-tags:before {\n content: \"\\f02c\";\n}\n\n.fa-book:before {\n content: \"\\f02d\";\n}\n\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n\n.fa-print:before {\n content: \"\\f02f\";\n}\n\n.fa-camera:before {\n content: \"\\f030\";\n}\n\n.fa-font:before {\n content: \"\\f031\";\n}\n\n.fa-bold:before {\n content: \"\\f032\";\n}\n\n.fa-italic:before {\n content: \"\\f033\";\n}\n\n.fa-text-height:before {\n content: \"\\f034\";\n}\n\n.fa-text-width:before {\n content: \"\\f035\";\n}\n\n.fa-align-left:before {\n content: \"\\f036\";\n}\n\n.fa-align-center:before {\n content: \"\\f037\";\n}\n\n.fa-align-right:before {\n content: \"\\f038\";\n}\n\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n\n.fa-list:before {\n content: \"\\f03a\";\n}\n\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n\n.fa-indent:before {\n content: \"\\f03c\";\n}\n\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n\n.fa-pencil:before {\n content: \"\\f040\";\n}\n\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n\n.fa-adjust:before {\n content: \"\\f042\";\n}\n\n.fa-tint:before {\n content: \"\\f043\";\n}\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n\n.fa-arrows:before {\n content: \"\\f047\";\n}\n\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n\n.fa-backward:before {\n content: \"\\f04a\";\n}\n\n.fa-play:before {\n content: \"\\f04b\";\n}\n\n.fa-pause:before {\n content: \"\\f04c\";\n}\n\n.fa-stop:before {\n content: \"\\f04d\";\n}\n\n.fa-forward:before {\n content: \"\\f04e\";\n}\n\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n\n.fa-eject:before {\n content: \"\\f052\";\n}\n\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n\n.fa-ban:before {\n content: \"\\f05e\";\n}\n\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n\n.fa-expand:before {\n content: \"\\f065\";\n}\n\n.fa-compress:before {\n content: \"\\f066\";\n}\n\n.fa-plus:before {\n content: \"\\f067\";\n}\n\n.fa-minus:before {\n content: \"\\f068\";\n}\n\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n\n.fa-gift:before {\n content: \"\\f06b\";\n}\n\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n\n.fa-fire:before {\n content: \"\\f06d\";\n}\n\n.fa-eye:before {\n content: \"\\f06e\";\n}\n\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n\n.fa-plane:before {\n content: \"\\f072\";\n}\n\n.fa-calendar:before {\n content: \"\\f073\";\n}\n\n.fa-random:before {\n content: \"\\f074\";\n}\n\n.fa-comment:before {\n content: \"\\f075\";\n}\n\n.fa-magnet:before {\n content: \"\\f076\";\n}\n\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n\n.fa-retweet:before {\n content: \"\\f079\";\n}\n\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n\n.fa-folder:before {\n content: \"\\f07b\";\n}\n\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n\n.fa-key:before {\n content: \"\\f084\";\n}\n\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n\n.fa-comments:before {\n content: \"\\f086\";\n}\n\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n\n.fa-star-half:before {\n content: \"\\f089\";\n}\n\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n\n.fa-trophy:before {\n content: \"\\f091\";\n}\n\n.fa-github-square:before {\n content: \"\\f092\";\n}\n\n.fa-upload:before {\n content: \"\\f093\";\n}\n\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n\n.fa-phone:before {\n content: \"\\f095\";\n}\n\n.fa-square-o:before {\n content: \"\\f096\";\n}\n\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n\n.fa-twitter:before {\n content: \"\\f099\";\n}\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n\n.fa-github:before {\n content: \"\\f09b\";\n}\n\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n\n.fa-square:before {\n content: \"\\f0c8\";\n}\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n\n.fa-table:before {\n content: \"\\f0ce\";\n}\n\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n\n.fa-money:before {\n content: \"\\f0d6\";\n}\n\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n\n.fa-columns:before {\n content: \"\\f0db\";\n}\n\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n\n.fa-desktop:before {\n content: \"\\f108\";\n}\n\n.fa-laptop:before {\n content: \"\\f109\";\n}\n\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n\n.fa-spinner:before {\n content: \"\\f110\";\n}\n\n.fa-circle:before {\n content: \"\\f111\";\n}\n\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n\n.fa-terminal:before {\n content: \"\\f120\";\n}\n\n.fa-code:before {\n content: \"\\f121\";\n}\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n\n.fa-crop:before {\n content: \"\\f125\";\n}\n\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n\n.fa-question:before {\n content: \"\\f128\";\n}\n\n.fa-info:before {\n content: \"\\f129\";\n}\n\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n\n.fa-microphone:before {\n content: \"\\f130\";\n}\n\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n\n.fa-shield:before {\n content: \"\\f132\";\n}\n\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n\n.fa-rocket:before {\n content: \"\\f135\";\n}\n\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n\n.fa-html5:before {\n content: \"\\f13b\";\n}\n\n.fa-css3:before {\n content: \"\\f13c\";\n}\n\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n\n.fa-ticket:before {\n content: \"\\f145\";\n}\n\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n\n.fa-level-up:before {\n content: \"\\f148\";\n}\n\n.fa-level-down:before {\n content: \"\\f149\";\n}\n\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n\n.fa-compass:before {\n content: \"\\f14e\";\n}\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n\n.fa-gbp:before {\n content: \"\\f154\";\n}\n\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n\n.fa-file:before {\n content: \"\\f15b\";\n}\n\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n\n.fa-youtube:before {\n content: \"\\f167\";\n}\n\n.fa-xing:before {\n content: \"\\f168\";\n}\n\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n\n.fa-adn:before {\n content: \"\\f170\";\n}\n\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n\n.fa-apple:before {\n content: \"\\f179\";\n}\n\n.fa-windows:before {\n content: \"\\f17a\";\n}\n\n.fa-android:before {\n content: \"\\f17b\";\n}\n\n.fa-linux:before {\n content: \"\\f17c\";\n}\n\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n\n.fa-skype:before {\n content: \"\\f17e\";\n}\n\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n\n.fa-trello:before {\n content: \"\\f181\";\n}\n\n.fa-female:before {\n content: \"\\f182\";\n}\n\n.fa-male:before {\n content: \"\\f183\";\n}\n\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n\n.fa-archive:before {\n content: \"\\f187\";\n}\n\n.fa-bug:before {\n content: \"\\f188\";\n}\n\n.fa-vk:before {\n content: \"\\f189\";\n}\n\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n\n.fa-renren:before {\n content: \"\\f18b\";\n}\n\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n\n.fa-slack:before {\n content: \"\\f198\";\n}\n\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n\n.fa-openid:before {\n content: \"\\f19b\";\n}\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n\n.fa-google:before {\n content: \"\\f1a0\";\n}\n\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n\n.fa-language:before {\n content: \"\\f1ab\";\n}\n\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n\n.fa-building:before {\n content: \"\\f1ad\";\n}\n\n.fa-child:before {\n content: \"\\f1ae\";\n}\n\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n\n.fa-database:before {\n content: \"\\f1c0\";\n}\n\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n\n.fa-git:before {\n content: \"\\f1d3\";\n}\n\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n\n.fa-history:before {\n content: \"\\f1da\";\n}\n\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n\n.fa-header:before {\n content: \"\\f1dc\";\n}\n\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n\n.fa-at:before {\n content: \"\\f1fa\";\n}\n\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n\n.fa-bus:before {\n content: \"\\f207\";\n}\n\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n\n.fa-angellist:before {\n content: \"\\f209\";\n}\n\n.fa-cc:before {\n content: \"\\f20a\";\n}\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n\n.fa-diamond:before {\n content: \"\\f219\";\n}\n\n.fa-ship:before {\n content: \"\\f21a\";\n}\n\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n\n.fa-venus:before {\n content: \"\\f221\";\n}\n\n.fa-mars:before {\n content: \"\\f222\";\n}\n\n.fa-mercury:before {\n content: \"\\f223\";\n}\n\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n\n.fa-server:before {\n content: \"\\f233\";\n}\n\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n\n.fa-user-times:before {\n content: \"\\f235\";\n}\n\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n\n.fa-train:before {\n content: \"\\f238\";\n}\n\n.fa-subway:before {\n content: \"\\f239\";\n}\n\n.fa-medium:before {\n content: \"\\f23a\";\n}\n\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n\n.fa-object-group:before {\n content: \"\\f247\";\n}\n\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n\n.fa-clone:before {\n content: \"\\f24d\";\n}\n\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n\n.fa-registered:before {\n content: \"\\f25d\";\n}\n\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n\n.fa-gg:before {\n content: \"\\f260\";\n}\n\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n\n.fa-safari:before {\n content: \"\\f267\";\n}\n\n.fa-chrome:before {\n content: \"\\f268\";\n}\n\n.fa-firefox:before {\n content: \"\\f269\";\n}\n\n.fa-opera:before {\n content: \"\\f26a\";\n}\n\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n\n.fa-contao:before {\n content: \"\\f26d\";\n}\n\n.fa-500px:before {\n content: \"\\f26e\";\n}\n\n.fa-amazon:before {\n content: \"\\f270\";\n}\n\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n\n.fa-industry:before {\n content: \"\\f275\";\n}\n\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n\n.fa-map-o:before {\n content: \"\\f278\";\n}\n\n.fa-map:before {\n content: \"\\f279\";\n}\n\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n\n.fa-edge:before {\n content: \"\\f282\";\n}\n\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n\n.fa-modx:before {\n content: \"\\f285\";\n}\n\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n\n.fa-usb:before {\n content: \"\\f287\";\n}\n\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n\n.fa-percent:before {\n content: \"\\f295\";\n}\n\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n\n.fa-envira:before {\n content: \"\\f299\";\n}\n\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n\n.fa-blind:before {\n content: \"\\f29d\";\n}\n\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n/*# sourceMappingURL=../maps/css/admin.css.map */\n"],"sourceRoot":"../../css"}
\ No newline at end of file
diff --git a/assets/maps/css/builder.css.map b/assets/maps/css/builder.css.map
new file mode 100644
index 0000000000..69f84d8837
--- /dev/null
+++ b/assets/maps/css/builder.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["builder.css","admin/_course-builder.scss","_includes/_vars-brand-colors.scss","_includes/_mixins.scss","_includes/_vars.scss"],"names":[],"mappings":"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","file":"../../css/builder.css","sourcesContent":["@charset \"UTF-8\";\nbody.admin_page_llms-course-builder {\n background: #fff;\n}\nbody.admin_page_llms-course-builder #adminmenumain {\n display: none;\n}\nbody.admin_page_llms-course-builder #wpbody-content {\n padding-bottom: 0;\n}\nbody.admin_page_llms-course-builder #wpfooter {\n display: none;\n}\nbody.admin_page_llms-course-builder #wpcontent, body.admin_page_llms-course-builder #wpfooter {\n margin-left: 0;\n}\nbody.admin_page_llms-course-builder .llms-button-secondary .fa {\n margin-right: 5px;\n}\nbody.admin_page_llms-course-builder .webui-popover .select2-container--default .select2-results__group {\n font-size: 16px;\n}\nbody.admin_page_llms-course-builder .webui-popover .select2-container--default .select2-results__option .select2-results__option {\n padding-left: 2em;\n}\n\n.wrap.lifterlms.llms-builder {\n margin: 0;\n padding: 0;\n position: relative;\n}\n.wrap.lifterlms.llms-builder.editor-active .llms-video-explainer {\n display: none;\n}\n.wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {\n padding: 10px;\n width: calc(100% - 200px);\n z-index: 3;\n}\n@media only screen and (min-width: 1200px) {\n .wrap.lifterlms.llms-builder.editor-active .llms-builder-main {\n width: 560px;\n }\n .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {\n width: calc(100% - 640px);\n }\n}\n@media only screen and (min-width: 1440px) {\n .wrap.lifterlms.llms-builder.editor-active .llms-builder-main {\n width: calc(100% - 780px);\n }\n .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {\n width: 720px;\n }\n}\n@media only screen and (min-width: 1680px) {\n .wrap.lifterlms.llms-builder.editor-active .llms-builder-main {\n width: calc(100% - 1000px);\n }\n .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {\n width: 940px;\n }\n}\n@media only screen and (max-width: 782px) {\n .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {\n position: absolute;\n top: 0;\n width: auto;\n }\n}\n.wrap.lifterlms.llms-builder .llms-headline {\n display: inline-block;\n font-weight: 400;\n margin: 0;\n padding: 0;\n transition: width 0.3s ease-in-out;\n vertical-align: middle;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main {\n padding: 30px 30px 30px 0;\n position: relative;\n width: calc(100% - 450px);\n z-index: 2;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons {\n display: inline-block;\n position: relative;\n vertical-align: middle;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons button {\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n cursor: pointer;\n outline: inherit;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons-lesson-id {\n vertical-align: top;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-course-header {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 15px;\n position: relative;\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-course-header .llms-button-secondary {\n margin-right: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections {\n box-shadow: 0 0 0 3px transparent;\n min-height: 60px;\n padding: 10px 0;\n transition: box-shadow 0.6s ease, min-height 0.2s ease;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections.dragging {\n box-shadow: 0 0 0 3px #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section {\n background: #fff;\n border: 1px solid #efefef;\n border-radius: 6px;\n box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.08);\n position: relative;\n margin: 0 0 20px 0;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header {\n align-items: center;\n display: flex;\n gap: 15px;\n justify-content: space-between;\n padding: 20px 10px 20px 30px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons {\n align-items: center;\n display: flex;\n gap: 15px;\n justify-content: space-between;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-right {\n display: flex;\n gap: 0px;\n margin-top: -5px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-right .llms-action-icon {\n padding: 5px 10px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-left {\n display: flex;\n gap: 15px;\n}\n@media only screen and (min-width: 1200px) {\n .wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-right,\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-left {\n white-space: nowrap;\n }\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.expanded .llms-lessons {\n overflow: visible;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.selected .llms-drag-utility.drag-section {\n border-color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.selected > .llms-builder-header .llms-headline {\n font-weight: 400;\n color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-footer {\n border-top: 1px solid #efefef;\n padding: 20px 20px 20px 30px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section:first-child:before {\n top: 30px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section:last-child:before {\n bottom: 55px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.expanded:last-child:before {\n bottom: 86px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons {\n box-shadow: 0 0 0 3px transparent;\n height: 0;\n margin: 0;\n padding: 0;\n transition: box-shadow 0.6s ease, min-height 0.2s ease;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.dragging {\n box-shadow: 0 0 0 3px #466dd8;\n min-height: 60px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.expanded, .wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.drag-expanded {\n height: auto;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.expanded li.llms-lesson, .wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.drag-expanded li.llms-lesson {\n pointer-events: auto;\n visibility: visible;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson {\n background: #fff;\n border-top: 1px solid #efefef;\n margin: 0;\n padding: 20px 10px 20px 30px;\n position: relative;\n pointer-events: none;\n visibility: hidden;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.selected .llms-drag-utility.drag-lesson {\n border-color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.selected > .llms-builder-header .llms-headline {\n color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 15px;\n justify-content: space-between;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-headline {\n font-weight: 700;\n margin-left: 10px;\n cursor: pointer;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons {\n align-items: center;\n display: flex;\n flex: 1;\n gap: 15px;\n justify-content: space-between;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-left {\n display: flex;\n gap: 15px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-right {\n display: flex;\n gap: 0;\n margin-top: -5px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-right .llms-action-icon {\n padding: 5px 10px;\n}\n@media only screen and (min-width: 1200px) {\n .wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-right,\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-left {\n white-space: nowrap;\n }\n}\n@media only screen and (min-width: 1200px) {\n .wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header > .llms-builder-header {\n flex-wrap: nowrap;\n }\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section .llms-drag-utility {\n background: #fff;\n border: 2px solid #ccc;\n border-radius: 50%;\n height: 10px;\n left: 13px;\n position: absolute;\n top: 24px;\n width: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson .llms-drag-utility {\n height: 6px;\n left: 14px;\n top: 25px !important;\n width: 6px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover > .llms-drag-utility,\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover > .llms-drag-utility {\n border-color: #fff;\n cursor: move;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover > .llms-drag-utility:hover:after,\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover > .llms-drag-utility:hover:after {\n color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover > .llms-drag-utility:after,\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover > .llms-drag-utility:after {\n background: #fff;\n content: \"··\\a··\\a··\";\n color: #ccc;\n display: block;\n font-size: 36px;\n height: 29px;\n letter-spacing: -1px;\n line-height: 8px;\n left: -7px;\n position: absolute;\n text-align: center;\n top: -12px;\n width: 23px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.ui-sortable-helper, .wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.ui-draggable-dragging,\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.ui-sortable-helper,\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.ui-draggable-dragging {\n border: 1px solid #ccc;\n background: #fff;\n transform: rotate(2deg);\n visibility: visible !important;\n z-index: 999;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.llms-sortable-placeholder,\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.llms-sortable-placeholder {\n border: 3px dashed #466dd8;\n background: rgba(70, 109, 216, 0.3);\n margin: 0 10px;\n padding: 5px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.llms-sortable-placeholder:before,\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.llms-sortable-placeholder:before {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections > li.llms-lesson.ui-draggable-dragging .llms-drag-utility {\n position: relative;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections > li.llms-lesson.ui-draggable-dragging .llms-drag-utility:after {\n left: -35px;\n top: -28px;\n}\n.wrap.lifterlms.llms-builder .llms-input-wrapper {\n position: relative;\n}\n.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container {\n font-size: inherit;\n font-family: inherit;\n}\n.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-editor.ql-blank::before {\n color: #a0a0a0;\n left: 8px;\n right: 8px;\n}\n.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-editor p {\n font-size: inherit;\n line-height: 1;\n}\n.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-tooltip {\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder .llms-input,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor {\n border: none;\n border-bottom: 2px dotted transparent;\n box-shadow: none;\n cursor: text;\n display: inline-block;\n font-size: inherit;\n font-weight: 700;\n height: auto;\n line-height: 1;\n margin: 0 8px;\n min-width: 60px;\n padding: 0;\n transition: border 0.2s ease, box-shadow 0.2s ease;\n}\n.wrap.lifterlms.llms-builder .llms-input:empty:before,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:empty:before {\n color: #a0a0a0;\n content: attr(data-placeholder);\n}\n.wrap.lifterlms.llms-builder .llms-input:hover,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:hover {\n border-bottom-color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-input[disabled],\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor[disabled] {\n cursor: not-allowed;\n}\n.wrap.lifterlms.llms-builder .llms-input[disabled]:hover,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor[disabled]:hover {\n border-bottom-color: transparent;\n}\n.wrap.lifterlms.llms-builder .llms-input:focus,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:focus {\n background: #fff;\n box-shadow: 0 0 0 4px #fff, 0 0 0 6px #466dd8;\n border-bottom: none;\n outline: none;\n}\n.wrap.lifterlms.llms-builder .llms-input b, .wrap.lifterlms.llms-builder .llms-input strong,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor b,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor strong {\n font-weight: 700;\n}\n.wrap.lifterlms.llms-builder .llms-input.standard,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard {\n border: 1px solid #e6e6e6;\n margin: 2px;\n padding: 5px 3px;\n}\n.wrap.lifterlms.llms-builder .llms-input.standard:hover,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard:hover {\n border-color: #d6d6d6;\n}\n.wrap.lifterlms.llms-builder .llms-input.standard:focus,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard:focus {\n box-shadow: 0 0 0 2px #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-input.permalink,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.permalink {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor {\n padding: 0 1px;\n}\n.wrap.lifterlms.llms-builder .llms-label {\n font-weight: 500;\n}\n.wrap.lifterlms.llms-builder .llms-label .fa {\n color: #aaa;\n padding-left: 6px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-editor .llms-label {\n float: left;\n margin-right: 10px;\n position: relative;\n top: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-editor textarea {\n border: none;\n padding: 10px;\n display: block;\n width: 100%;\n}\n.wrap.lifterlms.llms-builder .llms-editable-image button.llms-add-image {\n width: 130px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-image .llms-image {\n display: inline-block;\n position: relative;\n}\n.wrap.lifterlms.llms-builder .llms-editable-image .llms-image:hover .llms-action-icon {\n opacity: 1;\n}\n.wrap.lifterlms.llms-builder .llms-editable-image .llms-image .llms-action-icon {\n color: #fff;\n font-size: 24px;\n opacity: 0;\n padding: 0;\n position: absolute;\n transition: opacity 0.2s ease;\n right: 3px;\n top: 1px;\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder .llms-editable-image .llms-image img {\n display: block;\n height: 100px;\n max-width: 100%;\n width: auto;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group {\n background: #f4f4f4;\n padding: 10px;\n position: relative;\n margin: 0 1px;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-label,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-label {\n min-width: 100%;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-editable-input,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-editable-input {\n flex: 2;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-label--after,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-label--after {\n color: #888;\n min-width: auto;\n font-size: 85%;\n padding-left: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch {\n display: block;\n width: 100%;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:before, .wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:after,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:before,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:after {\n content: \" \";\n display: table;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:after,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:after {\n clear: both;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch .llms-label,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch .llms-label {\n width: calc(100% - 34px);\n}\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-image,\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-video,\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-editor,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-image,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-video,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-editor {\n margin-top: 2px;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard {\n display: block;\n width: 100%;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.two-digits, .wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.three-digits, .wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.four-digits,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.two-digits,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.three-digits,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.four-digits {\n display: inline-block;\n}\n.wrap.lifterlms.llms-builder .llms-editable-number .llms-input {\n color: #888;\n min-width: 30px;\n text-align: right;\n}\n.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.two-digits {\n width: 30px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.three-digits {\n width: 40px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.four-digits {\n width: 60px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-number small {\n color: #888;\n text-transform: uppercase;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings {\n background-color: #FFF;\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n}\n.wrap.lifterlms.llms-builder .llms-model-settings:before, .wrap.lifterlms.llms-builder .llms-model-settings:after {\n content: \" \";\n display: table;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings:after {\n clear: both;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header {\n border-bottom: 1px solid #efefef;\n padding: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header .fa-caret-up {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header .fa-caret-down {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-header .fa-caret-up {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-header .fa-caret-down {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-body {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-settings-group-header:before, .wrap.lifterlms.llms-builder .llms-settings-group-header:after {\n content: \" \";\n display: table;\n}\n.wrap.lifterlms.llms-builder .llms-settings-group-header:after {\n clear: both;\n}\n.wrap.lifterlms.llms-builder .llms-settings-group-header .llms-settings-group-title {\n display: inline-block;\n font-size: 16px;\n font-weight: 700;\n line-height: 1.5;\n margin: 0 5px;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder .llms-settings-group-header .llms-settings-group-toggle {\n float: right;\n font-size: 18px;\n padding: 2px;\n}\n.wrap.lifterlms.llms-builder .llms-settings-group-body {\n padding: 16px;\n}\n.wrap.lifterlms.llms-builder .llms-settings-row {\n display: flex;\n flex-wrap: wrap;\n margin: 2px 0;\n}\n.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field,\n.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group {\n flex: 1;\n}\n.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field:first-child,\n.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group:first-child {\n margin-left: 0;\n}\n.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field:last-child,\n.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group:last-child {\n margin-right: 0;\n}\n.wrap.lifterlms.llms-builder .llms-settings-row .llms-breaker {\n margin: 2px 0;\n width: 100%;\n}\n.wrap.lifterlms.llms-builder .llms-editable-select {\n margin: 2px 0;\n}\n.wrap.lifterlms.llms-builder .llms-editable-select .select2-container--default.select2-container--focus .select2-selection--multiple {\n border-color: #aaa;\n}\n.wrap.lifterlms.llms-builder .llms-editable-radio label {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-editable-radio.has-images input {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-editable-radio.has-images label {\n display: inline-block;\n margin: 0 3px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-radio.has-images label > span {\n transition: background 0.2s ease;\n display: inline-block;\n padding: 3px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-radio.has-images img {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-editable-radio.has-images input:checked + span {\n background: #466dd8;\n}\n.wrap.lifterlms.llms-builder .settings-field--disabled {\n opacity: 0.5;\n}\n.wrap.lifterlms.llms-builder .llms-action-icon {\n color: #666;\n display: inline-block;\n font-size: 13px;\n text-decoration: none;\n}\n.wrap.lifterlms.llms-builder .llms-action-icon:hover {\n color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-action-icon:hover.danger {\n color: #bb231c;\n}\n.wrap.lifterlms.llms-builder .llms-action-icon.circle {\n border: 2px solid #aaa;\n border-radius: 50%;\n font-size: 9px;\n height: 8px;\n line-height: 1;\n padding: 5px;\n text-align: center;\n width: 8px;\n}\n.wrap.lifterlms.llms-builder .llms-action-icon.circle:hover {\n border-color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-action-icon.circle:hover.danger {\n border-color: #bb231c;\n}\n.wrap.lifterlms.llms-builder ul.llms-info-list {\n display: flex;\n flex-wrap: wrap;\n gap: 15px;\n margin: 10px 0 0 8px;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item {\n color: #666;\n font-size: 13px;\n margin: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active, .wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .llms-action-icon {\n color: #466dd8;\n}\n.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .fa, .wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .llms-action-icon .fa {\n margin-right: 5px;\n}\n.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item button {\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n cursor: pointer;\n outline: inherit;\n}\n.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item button:hover {\n text-decoration: underline;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar {\n background: #e6e6e6;\n bottom: 0;\n overflow: hidden;\n padding: 30px;\n position: fixed;\n transition: width 0.3s ease-in-out;\n top: 32px;\n right: 0;\n width: 360px;\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul, .wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities li {\n margin: 0;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul {\n display: flex;\n gap: 15px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul li {\n flex: 1;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul li:last-child {\n margin-right: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility {\n background: #efefef;\n border: 1px solid #ccc;\n border-radius: 8px;\n color: inherit;\n cursor: pointer;\n display: block;\n overflow: hidden;\n padding: 6px 12px;\n position: relative;\n text-align: center;\n width: 100%;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility:hover {\n background: #fefefe;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility .fa {\n background: #848484;\n position: absolute;\n left: 0;\n top: 0;\n padding: 7px;\n color: #fff;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-sidebar-headline {\n margin: 0 0 10px;\n font-size: 22px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-elements-list {\n margin-bottom: 30px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-elements-list li {\n margin-bottom: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utility {\n color: #444;\n text-decoration: none;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button {\n background: #466dd8;\n border-radius: 8px;\n border: none;\n color: #fff;\n cursor: pointer;\n display: block;\n margin: 0;\n overflow: hidden;\n padding: 17px 20px;\n position: relative;\n transition: background 0.2s ease, color 0.2s ease;\n text-align: center;\n width: 100%;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button:hover {\n background: #2b55cb;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary {\n background: #efefef;\n color: #444;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary:hover {\n background: #fefefe;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary .fa {\n background: #848484;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button .fa {\n background: #1c3987;\n border-radius: 4px 0 0 4px;\n color: #fff;\n display: block;\n font-size: 20px;\n padding: 15px 20px;\n position: absolute;\n top: 0;\n left: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button[disabled=disabled] {\n opacity: 0.4;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.small {\n padding: 8px 10px 8px 46px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.small .fa {\n font-size: 15px;\n padding: 9px 10px;\n width: 20px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.right.small {\n padding-left: 10px;\n padding-right: 46px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.right .fa {\n border-radius: 0 4px 4px 0;\n left: auto;\n right: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor {\n height: 100%;\n min-height: 100%;\n position: relative;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav {\n background-color: #1c3987;\n margin: 0;\n padding: 8px 0 0 8px;\n font-size: 0;\n margin: -10px -10px 10px -10px;\n position: relative;\n z-index: 2;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu {\n list-style-type: none;\n margin: 0;\n padding: 0;\n position: relative;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item {\n display: inline-block;\n margin: 0 6px 0 0;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu:before {\n border: 8px solid transparent;\n border-left-color: #cacaca;\n content: \"\";\n position: absolute;\n top: 11px;\n left: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu .llms-editor-menu-item:hover > a,\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu .llms-editor-menu-item.active > a {\n background: #dfdfdf;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item:hover > a {\n background-color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active > a {\n background-color: #e6e6e6;\n color: #466dd8;\n font-weight: 700;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active > a:focus {\n box-shadow: none;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active > .llms-editor-menu {\n display: inline-block;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item a {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n color: #FFF;\n display: inline-block;\n padding: 9px 18px;\n text-decoration: none;\n transition: background 0.2s ease;\n font-size: 15px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right {\n float: right;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right a, .wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right:hover {\n background: transparent;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab {\n display: none;\n height: calc(100% - 90px);\n overflow: scroll;\n position: relative;\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz {\n display: flex;\n flex-direction: column;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz .llms-quiz-questions {\n flex: 1 0 auto;\n overflow: scroll;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz .llms-quiz-questions .llms-quiz-questions {\n overflow: visible;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save {\n bottom: 10px;\n left: 10px;\n position: absolute;\n right: 10px;\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-builder-error {\n background: #bb231c;\n border-radius: 4px;\n color: #fff;\n display: inline-block;\n font-style: italic;\n padding: 5px 15px 7px 25px;\n margin: 0 0 10px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-builder-error li {\n margin: 0;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-save {\n width: 75%;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-exit {\n padding-left: 5px;\n padding-right: 5px;\n width: 23%;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button {\n position: relative;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button i {\n position: absolute;\n left: 10px;\n top: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button i .llms-spinner {\n border-color: #fff;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status] .llms-status-indicator {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=saved] .status--saved {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=unsaved] {\n background-color: #f8954f;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=unsaved] .status--unsaved {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=saving] .status--saving {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=error] .status--error {\n display: block;\n}\n@media only screen and (max-width: 782px) {\n .wrap.lifterlms.llms-builder .llms-builder-sidebar {\n margin-right: 10px;\n position: relative;\n top: 0;\n width: auto;\n }\n .wrap.lifterlms.llms-builder .llms-builder-main {\n padding-right: 10px;\n width: auto;\n }\n}\n.wrap.lifterlms.llms-builder .select2-container {\n z-index: 99999999;\n}\n.wrap.lifterlms.llms-builder .select2-results__option {\n padding: 0;\n}\n.wrap.lifterlms.llms-builder .select2-container--default .select2-results__option--highlighted[aria-selected] {\n background: #466dd8;\n}\n.wrap.lifterlms.llms-builder .select2-container--default .select2-results__option--highlighted[aria-selected] .llms-existing-action {\n color: #fff;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result {\n align-items: center;\n display: flex;\n padding: 5px 5px 5px 0;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info {\n flex: 6;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h4, .wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h5 {\n margin: 0;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h4 {\n font-weight: 400;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h5 {\n font-weight: 300;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action {\n color: #466dd8;\n flex: 1;\n text-align: center;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action .fa {\n display: block;\n font-size: 30px;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action small {\n text-transform: uppercase;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-empty {\n margin: 100px auto;\n text-align: center;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-empty p {\n font-size: 18px;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-empty button.llms-element-button {\n max-width: 320px;\n margin: 0 auto;\n}\n.wrap.lifterlms.llms-builder .llms-editor-tab.tab--quiz .llms-model-header .llms-model-title {\n width: calc(100% - 310px);\n}\n.wrap.lifterlms.llms-builder .llms-editor-tab.tab--quiz .llms-model-header .llms-quiz-points {\n float: left;\n margin-right: 10px;\n width: 100px;\n}\n.wrap.lifterlms.llms-builder .llms-model-header {\n background-color: #FFF;\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n padding: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-model-header:before, .wrap.lifterlms.llms-builder .llms-model-header:after {\n content: \" \";\n display: table;\n}\n.wrap.lifterlms.llms-builder .llms-model-header:after {\n clear: both;\n}\n.wrap.lifterlms.llms-builder .llms-model-header .llms-model-title {\n float: left;\n margin-right: 10px;\n width: calc(100% - 200px);\n}\n.wrap.lifterlms.llms-builder .llms-model-header .llms-model-title .llms-input {\n width: calc(100% - 65px);\n}\n.wrap.lifterlms.llms-builder .llms-model-header .llms-model-status.llms-switch {\n float: left;\n margin-right: 10px;\n position: relative;\n text-align: right;\n top: -2px;\n width: 100px;\n}\n.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons {\n float: left;\n position: relative;\n text-align: right;\n width: 80px;\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons .llms-action-icon {\n margin-left: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons .fa {\n max-width: 15px;\n}\n.wrap.lifterlms.llms-builder .llms-model-header + .llms-model-settings.active {\n margin-top: -10px;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings {\n clear: both;\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings.active {\n display: block;\n margin-top: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-footer {\n display: flex;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button {\n flex: 1;\n margin: 0 5px;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button:first-child {\n margin-left: 0;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button:last-child {\n margin-right: 0;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button.llms-show-question-bank {\n flex: 2;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-tools {\n display: none;\n width: 100%;\n position: relative;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank:before, .wrap.lifterlms.llms-builder ul.llms-question-bank:after {\n content: \" \";\n display: table;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank:after {\n clear: both;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header {\n clear: both;\n padding-top: 20px;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header:first-child {\n padding-top: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header h4 {\n font-size: 20px;\n margin: 10px 5px;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type {\n box-sizing: border-box;\n float: left;\n margin: 0;\n padding: 3px;\n width: 33.3333%;\n transition: opacity 0.3s ease-in-out;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type.filtered {\n opacity: 0.3;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type .llms-type-unavailable {\n display: block;\n position: relative;\n text-decoration: none;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type .llms-type-unavailable .llms-element-button {\n opacity: 0.5;\n pointer-events: none;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions {\n margin: 10px 3px;\n padding: 5px;\n transition: box-shadow 0.6s ease;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions.dragging {\n box-shadow: 0 0 0 3px #466dd8;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions:empty:before {\n background: #fff;\n content: attr(data-empty-msg);\n display: block;\n font-size: 18px;\n margin: 0 auto;\n padding: 100px 0;\n text-align: center;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question {\n background: #fff;\n margin: 0 0 3px;\n padding: 15px 12px 10px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question:hover > .llms-builder-header .llms-action-icons {\n opacity: 1;\n pointer-events: auto;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions {\n margin-left: 12px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions .llms-question {\n border-bottom: 2px solid #e6e6e6;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions:empty:before {\n content: attr(data-empty-msg);\n display: block;\n font-size: 18px;\n text-align: center;\n margin: 20px auto;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions li.llms-question.llms-sortable-placeholder.qtype--group {\n display: none !important;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:before, .wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:after {\n content: \" \";\n display: table;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:after {\n clear: both;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header > * {\n float: left;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-body {\n display: none;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-body.active {\n display: block;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp {\n background: #466dd8;\n border-radius: 4px;\n color: #fff;\n cursor: move;\n font-size: 90%;\n margin-top: -5px;\n padding: 4px 10px 6px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp small, .wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp .fa {\n line-height: 1.2;\n vertical-align: middle;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp .fa {\n margin-right: 4px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-headline {\n width: calc(100% - 110px - 90px - 55px);\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-headline .ql-editor {\n width: calc(100% - 16px);\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-action-icons {\n width: 110px;\n opacity: 0;\n pointer-events: none;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-points {\n width: 90px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features {\n margin: 10px 0 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features:last-child {\n margin: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features .llms-switch {\n margin-right: 15px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-editable-video {\n position: relative;\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-wrapper {\n background: #f4f4f4;\n margin: 2px 1px;\n padding: 10px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header {\n margin-bottom: 10px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:before, .wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:after {\n content: \" \";\n display: table;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:after {\n clear: both;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header .llms-switch {\n float: right;\n text-align: right;\n width: 260px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices {\n border: 3px solid #f4f4f4;\n margin: -3px;\n padding: 0;\n transition: box-shadow 0.6s ease;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices.dragging {\n box-shadow: 0 0 0 3px #466dd8;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices.multi-choices li.llms-question-choice .llms-choice-id span {\n border-radius: 4px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice {\n margin: 0 0 5px;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice:last-child {\n margin-bottom: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id input[type=checkbox] {\n display: none;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id input[type=checkbox]:checked + .llms-marker {\n background: #4d8d3c;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker {\n border-radius: 50%;\n background: #d0d0d0;\n box-shadow: inset 0 0 1px #848484;\n color: #444;\n display: inline-block;\n font-size: 16px;\n height: 20px;\n line-height: 20px;\n padding: 5px;\n position: relative;\n text-align: center;\n transition: background 0.1s ease;\n width: 20px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker .fa {\n left: 7px;\n opacity: 0;\n position: absolute;\n top: 7px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker.selectable:hover b {\n opacity: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker.selectable:hover .fa {\n opacity: 1;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-input-wrapper,\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image {\n display: inline-block;\n width: calc(100% - 55px - 35px - 5px);\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-input {\n width: calc(100% - 16px);\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image .llms-image {\n vertical-align: middle;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image .llms-image img {\n height: 50px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-action-icons {\n display: inline-block;\n opacity: 1;\n pointer-events: auto;\n text-align: right;\n width: 55px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice.llms-sortable-placeholder {\n border: 3px dashed #466dd8 !important;\n background: rgba(70, 109, 216, 0.3);\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice.ui-sortable-helper {\n border: 1px solid #ccc;\n background: #fff;\n padding: 10px;\n transform: rotate(2deg);\n z-index: 999;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.ui-sortable-helper,\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.ui-draggable-dragging {\n border: 1px solid #ccc;\n background: #fff;\n transform: rotate(2deg);\n z-index: 999;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.llms-sortable-placeholder {\n border: 3px dashed #466dd8 !important;\n background: rgba(70, 109, 216, 0.3);\n}\n.wrap.lifterlms.llms-builder .llms-switch {\n display: inline-block;\n float: none;\n width: auto;\n}\n.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox] {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox]:checked + .llms-switch-slider {\n background: #4d8d3c;\n}\n.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox]:checked + .llms-switch-slider:after {\n transform: translateX(14px);\n}\n.wrap.lifterlms.llms-builder .llms-switch .llms-label {\n display: inline-block;\n vertical-align: top;\n}\n.wrap.lifterlms.llms-builder .llms-switch .llms-switch-slider {\n background: #e0e0e0;\n border-radius: 8px;\n display: inline-block;\n height: 16px;\n margin-top: 2px;\n position: relative;\n transition: background 0.2s ease;\n vertical-align: top;\n width: 30px;\n}\n.wrap.lifterlms.llms-builder .llms-switch .llms-switch-slider:after {\n background: #fff;\n border-radius: 8px;\n content: \"\";\n display: block;\n height: 12px;\n left: 2px;\n position: relative;\n transition: transform 0.2s ease;\n top: 2px;\n width: 12px;\n}\n.wrap.lifterlms.llms-builder .llms-video-explainer-trigger {\n display: block;\n margin: 40px 0 0;\n cursor: pointer;\n position: relative;\n width: 100%;\n transition: color 0.2s ease;\n color: initial;\n}\n.wrap.lifterlms.llms-builder .llms-video-explainer-trigger:hover {\n color: currentColor;\n}\n.wrap.lifterlms.llms-builder .llms-video-explainer-trigger:after {\n position: absolute;\n inset: 0;\n margin: auto;\n pointer-events: none;\n content: \"▶\";\n display: flex;\n justify-content: center;\n align-items: center;\n clear: both;\n height: 2em;\n width: 2em;\n border-radius: 4em;\n border: 4px solid currentColor;\n font-size: 2.5em;\n}\n.wrap.lifterlms.llms-builder .llms-video-explainer-trigger img {\n display: block;\n width: 100%;\n border-radius: 4px;\n}\n\n.llms-multi-input .llms-input-wrapper {\n width: 50%;\n float: left;\n margin-bottom: 6px;\n font-size: 12px;\n}\n\n.llms-multi-input .llms-input-wrapper .llms-input {\n font-size: 12px;\n padding: 5px;\n}","body.admin_page_llms-course-builder {\n\tbackground: #fff;\n\n\t#adminmenumain { display: none; }\n\t#wpbody-content { padding-bottom: 0; }\n\t#wpfooter { display: none; }\n\n\t#wpcontent, #wpfooter {\n\t\tmargin-left: 0;\n\t}\n\n\t.llms-button-secondary {\n\t\t.fa {\n\t\t\tmargin-right: 5px;\n\t\t}\n\t}\n\n\t// &.folded {\n\t// \t.llms-course-builder {\n\t// \t\tleft: 56px;\n\t// \t}\n\t// }\n\n\t.webui-popover {\n\t\t.select2-container--default {\n\t\t\t.select2-results__group {\n\t\t\t\tfont-size: 16px;\n\t\t\t}\n\t\t\t.select2-results__option .select2-results__option {\n\t\t\t\tpadding-left: 2em;\n\t\t\t}\n\t\t}\n\n\t}\n}\n\n.wrap.lifterlms.llms-builder {\n\tmargin: 0;\n\tpadding: 0;\n\tposition: relative;\n\n\n\t&.editor-active {\n\t\t.llms-video-explainer {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t.llms-builder-sidebar {\n\t\t\tpadding: 10px;\n\t\t\twidth: calc( 100% - 200px );\n\t\t\tz-index: 3;\n\t\t}\n\t\t@media only screen and ( min-width: 1200px ) {\n\t\t\t.llms-builder-main {\n\t\t\t\twidth: 560px;\n\t\t\t}\n\t\t\t.llms-builder-sidebar {\n\t\t\t\twidth: calc( 100% - 640px );\n\t\t\t}\n\t\t}\n\t\t@media only screen and ( min-width: 1440px ) {\n\t\t\t.llms-builder-main {\n\t\t\t\twidth: calc( 100% - 780px );\n\t\t\t}\n\t\t\t.llms-builder-sidebar {\n\t\t\t\twidth: 720px;\n\t\t\t}\n\t\t}\n\t\t@media only screen and ( min-width: 1680px ) {\n\t\t\t.llms-builder-main {\n\t\t\t\twidth: calc( 100% - 1000px );\n\t\t\t}\n\t\t\t.llms-builder-sidebar {\n\t\t\t\twidth: 940px;\n\t\t\t}\n\t\t}\n\t\t@media only screen and ( max-width: 782px ) {\n\t\t\t.llms-builder-sidebar {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\twidth: auto;\n\t\t\t}\n\t\t}\n\t}\n\n\t.llms-headline {\n\t\tdisplay: inline-block;\n\t\tfont-weight: 400;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\ttransition: width 0.3s ease-in-out;\n\t\tvertical-align: middle;\n\t}\n\n\t.llms-builder-main {\n\t\tpadding: 30px 30px 30px 0;\n\t\tposition: relative;\n\t\twidth: calc( 100% - 450px );\n\t\tz-index: 2;\n\n\t\t.llms-action-icons {\n\t\t\tdisplay: inline-block;\n\t\t\tposition: relative;\n\t\t\tvertical-align: middle;\n\t\t\tbutton {\n\t\t\t\tbackground: none;\n\t\t\t\tcolor: inherit;\n\t\t\t\tborder: none;\n\t\t\t\tpadding: 0;\n\t\t\t\tcursor: pointer;\n\t\t\t\toutline: inherit;\n\t\t\t}\n\t\t}\n\n\t\t.llms-action-icons-lesson-id {\n\t\t\tvertical-align: top;\n\t\t}\n\n\t\t// Course\n\t\t.llms-course-header {\n\t\t\talign-items: center;\n\t\t\tdisplay: flex;\n\t\t\tflex-wrap: wrap;\n\t\t\tgap: 15px;\n\t\t\tposition: relative;\n\t\t\tz-index: 1;\n\t\t\t.llms-button-secondary {\n\t\t\t\tmargin-right: 10px;\n\t\t\t}\n\t\t}\n\n\n\t\t// Sections\n\t\tul.llms-sections {\n\t\t\tbox-shadow: 0 0 0 3px transparent;\n\t\t\tmin-height: 60px;\n\t\t\tpadding: 10px 0;\n\t\t\ttransition: box-shadow 0.6s ease, min-height 0.2s ease;\n\t\t\t&.dragging {\n\t\t\t\tbox-shadow: 0 0 0 3px $color-brand-blue;\n\t\t\t}\n\t\t}\n\n\t\t\tli.llms-section {\n\t\t\t\tbackground: #fff;\n\t\t\t\tborder: 1px solid #efefef;\n\t\t\t\tborder-radius: 6px;\n\t\t\t\tbox-shadow: 2px 2px 8px rgba( 0, 0, 0, 0.08 );\n\t\t\t\tposition: relative;\n\t\t\t\tmargin: 0 0 20px 0;\n\t\t\t\tpadding: 0;\n\n\t\t\t\t> .llms-builder-header {\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tgap: 15px;\n\t\t\t\t\tjustify-content: space-between;\n\t\t\t\t\tpadding: 20px 10px 20px 30px;\n\t\t\t\t\t.llms-action-icons {\n\t\t\t\t\t\talign-items: center;\n\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\tgap: 15px;\n\t\t\t\t\t\tjustify-content: space-between;\n\t\t\t\t\t\t.llms-action-icons-right {\n\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\tgap: 0px;\n\t\t\t\t\t\t\tmargin-top: -5px;\n\t\t\t\t\t\t\t.llms-action-icon {\n\t\t\t\t\t\t\t\tpadding: 5px 10px;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.llms-action-icons-left {\n\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\tgap: 15px;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t@media only screen and ( min-width: 1200px ) {\n\t\t\t\t\t\t\t.llms-action-icons-right,\n\t\t\t\t\t\t\t.llms-action-icons-left {\n\t\t\t\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t&.expanded {\n\t\t\t\t\t.llms-lessons { overflow: visible; }\n\t\t\t\t}\n\t\t\t\t&.selected {\n\t\t\t\t\t.llms-drag-utility.drag-section {\n\t\t\t\t\t\tborder-color: $color-brand-blue;\n\t\t\t\t\t}\n\t\t\t\t\t> .llms-builder-header .llms-headline {\n\t\t\t\t\t\tfont-weight: 400;\n\t\t\t\t\t\tcolor: $color-brand-blue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t> .llms-builder-footer {\n\t\t\t\t\tborder-top: 1px solid #efefef;\n\t\t\t\t\tpadding: 20px 20px 20px 30px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tli.llms-section:first-child:before {\n\t\t\t\ttop: 30px;\n\t\t\t}\n\n\t\t\tli.llms-section:last-child:before {\n\t\t\t\tbottom: 55px;\n\t\t\t}\n\n\t\t\tli.llms-section.expanded:last-child:before {\n\t\t\t\tbottom: 86px;\n\t\t\t}\n\n\t\t// Lessons\n\t\tul.llms-lessons {\n\t\t\tbox-shadow: 0 0 0 3px transparent;\n\t\t\theight: 0;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\ttransition: box-shadow 0.6s ease, min-height 0.2s ease;\n\t\t\t&.dragging {\n\t\t\t\tbox-shadow: 0 0 0 3px $color-brand-blue;\n\t\t\t\tmin-height: 60px;\n\t\t\t}\n\t\t\t&.expanded, // added via backbone view events\n\t\t\t&.drag-expanded { // added only during dragover events and ignores model attrs\n\t\t\t\theight: auto;\n\t\t\t\tli.llms-lesson {\n\t\t\t\t\tpointer-events: auto;\n\t\t\t\t\tvisibility: visible;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t\tli.llms-lesson {\n\t\t\t\tbackground: #fff;\n\t\t\t\tborder-top: 1px solid #efefef;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 20px 10px 20px 30px;\n\t\t\t\tposition: relative;\n\t\t\t\tpointer-events: none;\n\t\t\t\tvisibility: hidden;\n\n\t\t\t\t&.selected {\n\t\t\t\t\t.llms-drag-utility.drag-lesson {\n\t\t\t\t\t\tborder-color: $color-brand-blue;\n\t\t\t\t\t}\n\t\t\t\t\t> .llms-builder-header .llms-headline {\n\t\t\t\t\t\tcolor: $color-brand-blue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t> .llms-builder-header {\n\t\t\t\t\t.llms-headline {\n\t\t\t\t\t\tfont-weight: 700;\n\t\t\t\t\t\tmargin-left: 10px;\n\t\t\t\t\t\tcursor: pointer;\n\t\t\t\t\t}\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\tgap: 15px;\n\t\t\t\t\tjustify-content: space-between;\n\t\t\t\t\t.llms-action-icons {\n\t\t\t\t\t\talign-items: center;\n\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\tflex: 1;\n\t\t\t\t\t\tgap: 15px;\n\t\t\t\t\t\tjustify-content: space-between;\n\t\t\t\t\t\t.llms-action-icons-left {\n\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\tgap: 15px;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.llms-action-icons-right {\n\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\tgap: 0;\n\t\t\t\t\t\t\tmargin-top: -5px;\n\t\t\t\t\t\t\t.llms-action-icon {\n\t\t\t\t\t\t\t\tpadding: 5px 10px;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t@media only screen and ( min-width: 1200px ) {\n\t\t\t\t\t\t\t.llms-action-icons-right,\n\t\t\t\t\t\t\t.llms-action-icons-left {\n\t\t\t\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t@media only screen and ( min-width: 1200px ) {\n\t\t\t\t\t\t> .llms-builder-header {\n\t\t\t\t\t\t\tflex-wrap: nowrap;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t// Drag Utilities\n\t\tli.llms-section .llms-drag-utility {\n\t\t\tbackground: #fff;\n\t\t\tborder: 2px solid #ccc;\n\t\t\tborder-radius: 50%;\n\t\t\theight: 10px;\n\t\t\tleft: 13px;\n\t\t\tposition: absolute;\n\t\t\ttop: 24px;\n\t\t\twidth: 10px;\n\t\t}\n\n\t\tli.llms-lesson .llms-drag-utility {\n\t\t\theight: 6px;\n\t\t\tleft: 14px;\n\t\t\ttop: 25px !important;\n\t\t\twidth: 6px;\n\t\t}\n\n\t\t.llms-section:hover > .llms-drag-utility,\n\t\t.llms-lesson:hover > .llms-drag-utility {\n\t\t\tborder-color: #fff;\n\t\t\tcursor: move;\n\t\t\t&:hover:after {\n\t\t\t\tcolor: $color-brand-blue;\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tbackground: #fff;\n\t\t\t\tcontent: '\\00b7\\00b7\\A\\00b7\\00b7\\A\\00b7\\00b7';\n\t\t\t\tcolor: #ccc;\n\t\t\t\tdisplay: block;\n\t\t\t\tfont-size: 36px;\n\t\t\t\theight: 29px;\n\t\t\t\tletter-spacing: -1px;\n\t\t\t\tline-height: 8px;\n\t\t\t\tleft: -7px;\n\t\t\t\tposition: absolute;\n\t\t\t\ttext-align: center;\n\t\t\t\ttop: -12px;\n\t\t\t\twidth: 23px;\n\t\t\t}\n\t\t}\n\n\t\t// Sortable\n\t\tli.llms-section,\n\t\tli.llms-lesson {\n\t\t\t&.ui-sortable-helper,\n\t\t\t&.ui-draggable-dragging {\n\t\t\t\tborder: 1px solid #ccc;\n\t\t\t\tbackground: #fff;\n\t\t\t\ttransform: rotate( 2deg );\n\t\t\t\tvisibility: visible !important;\n\t\t\t\tz-index: 999;\n\t\t\t}\n\n\t\t\t&.llms-sortable-placeholder {\n\t\t\t\tborder: 3px dashed $color-brand-blue;\n\t\t\t\tbackground: rgba( $color-brand-blue, 0.3 );\n\t\t\t\tmargin: 0 10px;\n\t\t\t\tpadding: 5px;\n\t\t\t\t&:before { display: none; }\n\t\t\t}\n\t\t}\n\n\t\tul.llms-sections > li.llms-lesson.ui-draggable-dragging .llms-drag-utility {\n\t\t\tposition: relative;\n\t\t\t&:after {\n\t\t\t\tleft: -35px;\n\t\t\t\ttop: -28px;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t// Editable\n\t.llms-input-wrapper {\n\t\tposition: relative;\n\t}\n\n\t.llms-input-formatting.ql-container {\n\t\tfont-size: inherit;\n\t\tfont-family: inherit;\n\t\t.ql-editor.ql-blank::before {\n\t\t\tcolor: #a0a0a0;\n\t\t\tleft: 8px;\n\t\t\tright: 8px;\n\t\t}\n\t\t.ql-editor {\n\t\t\tp {\n\t\t\t\tfont-size: inherit;\n\t\t\t\tline-height: 1;\n\t\t\t}\n\t\t}\n\t\t.ql-tooltip {\n\t\t\tz-index: 1;\n\t\t}\n\t}\n\n\t.llms-input,\n\t.llms-input-formatting .ql-editor {\n\t\tborder: none;\n\t\tborder-bottom: 2px dotted transparent;\n\t\tbox-shadow: none;\n\t\tcursor: text;\n\t\tdisplay: inline-block;\n\t\tfont-size: inherit;\n\t\tfont-weight: 700;\n\t\theight: auto;\n\t\tline-height: 1;\n\t\tmargin: 0 8px;\n\t\tmin-width: 60px;\n\t\tpadding: 0;\n\t\ttransition: border 0.2s ease, box-shadow 0.2s ease;\n\t\t&:empty:before {\n\t\t\tcolor: #a0a0a0;\n\t\t\tcontent: attr( data-placeholder );\n\t\t}\n\t\t&:hover {\n\t\t\tborder-bottom-color: $color-brand-blue;\n\t\t}\n\t\t&[disabled] {\n\t\t\tcursor: not-allowed;\n\t\t\t&:hover {\n\t\t\t\tborder-bottom-color: transparent;\n\t\t\t}\n\t\t}\n\t\t&:focus {\n\t\t\tbackground: #fff;\n\t\t\tbox-shadow: 0 0 0 4px #fff, 0 0 0 6px $color-brand-blue;\n\t\t\tborder-bottom: none;\n\t\t\toutline: none;\n\t\t}\n\t\tb, strong {\n\t\t\tfont-weight: 700;\n\t\t}\n\t\t&.standard {\n\t\t\tborder: 1px solid #e6e6e6;\n\t\t\tmargin: 2px;\n\t\t\tpadding: 5px 3px;\n\t\t\t&:hover {\n\t\t\t\tborder-color: #d6d6d6;\n\t\t\t}\n\t\t\t&:focus {\n\t\t\t\tbox-shadow: 0 0 0 2px $color-brand-blue;\n\t\t\t}\n\t\t}\n\t\t&.permalink {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t.llms-input-formatting .ql-editor {\n\t\tpadding: 0 1px;\n\t}\n\n\t.llms-label {\n\t\tfont-weight: 500;\n\t\t.fa {\n\t\t\tcolor: #aaa;\n\t\t\tpadding-left: 6px;\n\t\t}\n\t}\n\n\t// .llms-editable-image,\n\t// .llms-editable-video,\n\t// .llms-editable-editor {\n\t// }\n\n\t.llms-editable-editor {\n\t\t.llms-label {\n\t\t\tfloat: left;\n\t\t\tmargin-right: 10px;\n\t\t\tposition: relative;\n\t\t\ttop: 10px;\n\t\t}\n\t\ttextarea {\n\t\t\tborder: none;\n\t\t\tpadding: 10px;\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\t.llms-editable-image {\n\t\tbutton.llms-add-image {\n\t\t\twidth: 130px;\n\t\t}\n\t\t.llms-image {\n\t\t\tdisplay: inline-block;\n\t\t\tposition: relative;\n\t\t\t&:hover .llms-action-icon {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t\t.llms-action-icon {\n\t\t\t\tcolor: #fff;\n\t\t\t\tfont-size: 24px;\n\t\t\t\topacity: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\tposition: absolute;\n\t\t\t\ttransition: opacity 0.2s ease;\n\t\t\t\tright: 3px;\n\t\t\t\ttop: 1px;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\t\t\timg {\n\t\t\t\tdisplay: block;\n\t\t\t\theight: 100px;\n\t\t\t\tmax-width: 100%;\n\t\t\t\twidth: auto;\n\t\t\t}\n\t\t}\n\t}\n\n\t.llms-settings-field,\n\t.llms-editable-toggle-group {\n\t\tbackground: #f4f4f4;\n\t\tpadding: 10px;\n\t\tposition: relative;\n\t\tmargin: 0 1px;\n\n\t\t&.has-label-after {\n\t\t\talign-items: center;\n\t\t\tdisplay: flex;\n\t\t\tflex-wrap: wrap;\n\n\t\t\t.llms-label {\n\t\t\t\tmin-width: 100%;\n\t\t\t}\n\t\t\t.llms-editable-input {\n\t\t\t\tflex: 2;\n\t\t\t}\n\t\t\t.llms-label--after {\n\t\t\t\tcolor: #888;\n\t\t\t\tmin-width: auto;\n\t\t\t\tfont-size: 85%;\n\t\t\t\tpadding-left: 10px;\n\t\t\t}\n\t\t}\n\n\t\t.llms-switch {\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\t@include clearfix;\n\n\t\t\t.llms-label {\n\t\t\t\twidth: calc( 100% - 34px );\n\t\t\t}\n\t\t}\n\n\t\t.llms-editable-image,\n\t\t.llms-editable-video,\n\t\t.llms-editable-editor {\n\t\t\tmargin-top: 2px;\n\t\t}\n\n\t\t.llms-input.standard {\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\t&.two-digits,\n\t\t\t&.three-digits,\n\t\t\t&.four-digits {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t.llms-editable-number {\n\t\t.llms-input {\n\t\t\tcolor: #888;\n\t\t\tmin-width: 30px;\n\t\t\ttext-align: right;\n\t\t\t&.two-digits {\n\t\t\t\twidth: 30px;\n\t\t\t}\n\t\t\t&.three-digits {\n\t\t\t\twidth: 40px;\n\t\t\t}\n\t\t\t&.four-digits {\n\t\t\t\twidth: 60px;\n\t\t\t}\n\t\t}\n\t\tsmall {\n\t\t\tcolor: #888;\n\t\t\ttext-transform: uppercase;\n\t\t}\n\t}\n\n\t.llms-model-settings {\n\t\tbackground-color: #FFF;\n\t\t-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n\t\tbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n\t\t@include clearfix();\n\n\t\t.llms-settings-group-header {\n\t\t\tborder-bottom: 1px solid #efefef;\n\t\t\tpadding: 10px;\n\n\t\t\t.fa-caret-up { display: block; }\n\t\t\t.fa-caret-down { display: none; }\n\t\t}\n\t\t&.hidden {\n\t\t\t.llms-settings-group-header {\n\t\t\t\t.fa-caret-up { display: none; }\n\t\t\t\t.fa-caret-down { display: block; }\n\t\t\t}\n\t\t\t.llms-settings-group-body { display: none; }\n\t\t}\n\t}\n\n\t.llms-settings-group-header {\n\t\t@include clearfix();\n\t\t.llms-settings-group-title {\n\t\t\tdisplay: inline-block;\n\t\t\tfont-size: 16px;\n\t\t\tfont-weight: 700;\n\t\t\tline-height: 1.5;\n\t\t\tmargin: 0 5px;\n\t\t\tpadding: 0;\n\t\t}\n\t\t.llms-settings-group-toggle {\n\t\t\tfloat: right;\n\t\t\tfont-size: 18px;\n\t\t\tpadding: 2px;\n\t\t}\n\t}\n\n\t.llms-settings-group-body {\n\t\tpadding: 16px;\n\t}\n\n\t.llms-settings-row {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tmargin: 2px 0;\n\n\t\t.llms-settings-field,\n\t\t.llms-editable-toggle-group {\n\t\t\tflex: 1;\n\t\t\t&:first-child {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t&:last-child {\n\t\t\t\tmargin-right: 0;\n\t\t\t}\n\t\t}\n\n\t\t.llms-breaker {\n\t\t\tmargin: 2px 0;\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\t.llms-editable-select {\n\t\tmargin: 2px 0;\n\t\t.select2-container--default.select2-container--focus .select2-selection--multiple {\n\t\t\tborder-color: #aaa;\n\t\t}\n\t}\n\n\t.llms-editable-radio {\n\t\tlabel {\n\t\t\tdisplay: block;\n\t\t}\n\t\t&.has-images {\n\t\t\tinput { display: none; }\n\t\t\tlabel {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmargin: 0 3px;\n\t\t\t}\n\t\t\tlabel > span {\n\t\t\t\ttransition: background 0.2s ease;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tpadding: 3px;\n\t\t\t}\n\t\t\timg { display: block; }\n\t\t\tinput:checked + span {\n\t\t\t\tbackground: $color-brand-blue;\n\t\t\t}\n\t\t}\n\t}\n\n\t.settings-field--disabled {\n\t\topacity: 0.5;\n\t}\n\n\t// Icons\n\t.llms-action-icon {\n\t\tcolor: #666;\n\t\tdisplay: inline-block;\n\t\tfont-size: 13px;\n\t\ttext-decoration: none;\n\t\t&:hover {\n\t\t\tcolor: $color-brand-blue;\n\t\t\t&.danger { color: $color-danger; }\n\t\t}\n\t\t&.circle {\n\t\t\tborder: 2px solid #aaa;\n\t\t\tborder-radius: 50%;\n\t\t\tfont-size: 9px;\n\t\t\theight: 8px;\n\t\t\tline-height: 1;\n\t\t\tpadding: 5px;\n\t\t\ttext-align: center;\n\t\t\twidth: 8px;\n\t\t\t&:hover {\n\t\t\t\tborder-color: $color-brand-blue;\n\t\t\t\t&.danger {\n\t\t\t\t\tborder-color: $color-danger;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tul.llms-info-list {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tgap: 15px;\n\t\tmargin: 10px 0 0 8px;\n\t\tpadding: 0;\n\t\tli.llms-info-item {\n\t\t\tcolor: #666;\n\t\t\tfont-size: 13px;\n\t\t\tmargin: 0;\n\t\t\t&.active,\n\t\t\t&.active .llms-action-icon {\n\t\t\t\tcolor: $color-brand-blue;\n\t\t\t\t.fa {\n\t\t\t\t\tmargin-right: 5px;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbutton {\n\t\t\t\tbackground: none;\n\t\t\t\tcolor: inherit;\n\t\t\t\tborder: none;\n\t\t\t\tpadding: 0;\n\t\t\t\tcursor: pointer;\n\t\t\t\toutline: inherit;\n\t\t\t\t&:hover {\n\t\t\t\t\ttext-decoration: underline;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Sidebar\n\t.llms-builder-sidebar {\n\t\tbackground: #e6e6e6;\n\t\tbottom: 0;\n\t\toverflow: hidden;\n\t\tpadding: 30px;\n\t\tposition: fixed;\n\t\ttransition: width 0.3s ease-in-out;\n\t\ttop: 32px;\n\t\tright: 0;\n\t\twidth: 360px;\n\t\tz-index: 1;\n\n\t\t.llms-utilities {\n\n\t\t\tul, li {\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t}\n\n\t\t\tul {\n\t\t\t\tdisplay: flex;\n\t\t\t\tgap: 15px;\n\t\t\t\tli {\n\t\t\t\t\tflex: 1;\n\t\t\t\t\t&:last-child {\n\t\t\t\t\t\tmargin-right: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-utility {\n\t\t\t\tbackground: #efefef;\n\t\t\t\tborder: 1px solid #ccc;\n\t\t\t\tborder-radius: 8px;\n\t\t\t\tcolor: inherit;\n\t\t\t\tcursor: pointer;\n\t\t\t\tdisplay: block;\n\t\t\t\toverflow: hidden;\n\t\t\t\tpadding: 6px 12px;\n\t\t\t\tposition: relative;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 100%;\n\n\t\t\t\t&:hover {\n\t\t\t\t\tbackground: #fefefe;\n\t\t\t\t}\n\n\t\t\t\t.fa {\n\t\t\t\t\tbackground: #848484;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tpadding: 7px;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t.llms-sidebar-headline {\n\t\t\tmargin: 0 0 10px;\n\t\t\tfont-size: 22px;\n\t\t}\n\n\t\t.llms-elements-list {\n\t\t\tmargin-bottom: 30px;\n\t\t\tli {\n\t\t\t\tmargin-bottom: 10px;\n\t\t\t}\n\t\t}\n\n\t\t.llms-utility {\n\t\t\tcolor: #444;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t\t.llms-element-button {\n\t\t\tbackground: $color-brand-blue;\n\t\t\tborder-radius: 8px;\n\t\t\tborder: none;\n\t\t\tcolor: #fff;\n\t\t\tcursor: pointer;\n\t\t\tdisplay: block;\n\t\t\tmargin: 0;\n\t\t\toverflow: hidden;\n\t\t\tpadding: 17px 20px;\n\t\t\tposition: relative;\n\t\t\ttransition: background 0.2s ease, color 0.2s ease;\n\t\t\ttext-align: center;\n\t\t\twidth: 100%;\n\n\t\t\t&:hover {\n\t\t\t\tbackground: $color-brand-blue-dark;\n\t\t\t}\n\n\t\t\t&.secondary {\n\t\t\t\tbackground: #efefef;\n\t\t\t\tcolor: #444;\n\t\t\t\t&:hover {\n\t\t\t\t\tbackground: #fefefe;\n\t\t\t\t}\n\t\t\t\t.fa {\n\t\t\t\t\tbackground: #848484;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.fa {\n\t\t\t\tbackground: $color-brand-dark-blue;\n\t\t\t\tborder-radius: 4px 0 0 4px;\n\t\t\t\tcolor: #fff;\n\t\t\t\tdisplay: block;\n\t\t\t\tfont-size: 20px;\n\t\t\t\tpadding: 15px 20px;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t}\n\n\t\t\t&[disabled=\"disabled\"] {\n\t\t\t\topacity: 0.4;\n\t\t\t}\n\n\t\t\t&.small {\n\n\t\t\t\tpadding: 8px 10px 8px 46px;\n\t\t\t\t.fa {\n\t\t\t\t\tfont-size: 15px;\n\t\t\t\t\tpadding: 9px 10px;\n\t\t\t\t\twidth: 20px;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t&.right {\n\n\t\t\t\t&.small {\n\t\t\t\t\tpadding-left: 10px;\n\t\t\t\t\tpadding-right: 46px;\n\t\t\t\t}\n\n\t\t\t\t.fa {\n\t\t\t\t\tborder-radius: 0 4px 4px 0;\n\t\t\t\t\tleft: auto;\n\t\t\t\t\tright: 0;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\n\n\t\t.llms-editor {\n\t\t\theight: 100%;\n\t\t\tmin-height: 100%;\n\t\t\tposition: relative;\n\t\t}\n\n\t\t\t// .llms-builder-close-editor {\n\t\t\t// \tbackground: $color-brand-blue;\n\t\t\t// \tborder: none;\n\t\t\t// \tborder-radius: 50%;\n\t\t\t// \tcolor: #fff;\n\t\t\t// \tcursor: pointer;\n\t\t\t// \tdisplay: inline-block;\n\t\t\t// \tfont-size: 18px;\n\t\t\t// \theight: 30px;\n\t\t\t// \tmargin: 0;\n\t\t\t// \tposition: absolute;\n\t\t\t// \tright: 0;\n\t\t\t// \ttext-align: center;\n\t\t\t// \ttop: 3px;\n\t\t\t// \twidth: 30px;\n\t\t\t// \tz-index: 3;\n\t\t\t// }\n\n\t\t\t.llms-editor-nav {\n\t\t\t\tbackground-color: $color-brand-dark-blue;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 8px 0 0 8px;\n\t\t\t\tfont-size: 0;\n\t\t\t\tmargin: -10px -10px 10px -10px;\n\t\t\t\tposition: relative;\n\t\t\t\tz-index: 2;\n\n\t\t\t\t.llms-editor-menu {\n\t\t\t\t\tlist-style-type: none;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\tposition: relative;\n\n\t\t\t\t\t.llms-editor-menu-item {\n\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\tmargin: 0 6px 0 0;\n\t\t\t\t\t\tpadding: 0;\n\n\t\t\t\t\t\t> .llms-editor-menu {\n\t\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t\t\t&:before {\n\t\t\t\t\t\t\t\tborder: 8px solid transparent;\n\t\t\t\t\t\t\t\tborder-left-color: #cacaca;\n\t\t\t\t\t\t\t\tcontent: '';\n\t\t\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\t\t\ttop: 11px;\n\t\t\t\t\t\t\t\tleft: 0;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.llms-editor-menu-item:hover > a,\n\t\t\t\t\t\t\t.llms-editor-menu-item.active > a {\n\t\t\t\t\t\t\t\tbackground: #dfdfdf;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&:hover > a {\n\t\t\t\t\t\t\tbackground-color: $color-brand-blue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&.active > a {\n\t\t\t\t\t\t\tbackground-color: #e6e6e6;\n\t\t\t\t\t\t\tcolor: $color-brand-blue;\n\t\t\t\t\t\t\tfont-weight: 700;\n\n\t\t\t\t\t\t\t&:focus {\n\t\t\t\t\t\t\t\tbox-shadow: none;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&.active > .llms-editor-menu {\n\t\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ta {\n\t\t\t\t\t\t\tborder-top-left-radius: 4px;\n\t\t\t\t\t\t\tborder-top-right-radius: 4px;\n\t\t\t\t\t\t\tcolor: #FFF;\n\t\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\t\tpadding: 9px 18px;\n\t\t\t\t\t\t\ttext-decoration: none;\n\t\t\t\t\t\t\ttransition: background 0.2s ease;\n\t\t\t\t\t\t\tfont-size: 15px;\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t&.right {\n\t\t\t\t\t\t\tfloat: right;\n\n\t\t\t\t\t\t\ta,\n\t\t\t\t\t\t\t&:hover {\n\t\t\t\t\t\t\t\tbackground: transparent;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-editor-tab {\n\t\t\t\tdisplay: none;\n\t\t\t\theight: calc( 100% - 90px );\n\t\t\t\toverflow: scroll;\n\t\t\t\tposition: relative;\n\t\t\t\tz-index: 1;\n\t\t\t\t&.active {\n\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\t&.tab--quiz {\n\n\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\tflex-direction: column;\n\n\t\t\t\t\t\t.llms-quiz-questions {\n\t\t\t\t\t\t\tflex: 1 0 auto;\n\t\t\t\t\t\t\toverflow: scroll;\n\n\t\t\t\t\t\t\t// groups\n\t\t\t\t\t\t\t.llms-quiz-questions {\n\t\t\t\t\t\t\t\toverflow: visible;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t\t// .llms-builder-editor {\n\n\t\t\t// \topacity: 0;\n\t\t\t// \tmargin: 10px 0;\n\t\t\t// \ttransition: opacity 0.2s linear;\n\n\t\t\t// \t&.ready {\n\t\t\t// \t\topacity: 1;\n\t\t\t// \t}\n\n\t\t\t// \ttextarea {\n\t\t\t// \t\tborder: none;\n\t\t\t// \t\tdisplay: block;\n\t\t\t// \t\twidth: 100%;\n\t\t\t// \t}\n\t\t\t// }\n\n\t\t.llms-builder-save {\n\n\t\t\tbottom: 10px;\n\t\t\tleft: 10px;\n\t\t\tposition: absolute;\n\t\t\tright: 10px;\n\t\t\tz-index: 1;\n\n\t\t\t.llms-builder-error {\n\t\t\t\tbackground: $color-danger;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tcolor: #fff;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tfont-style: italic;\n\t\t\t\tpadding: 5px 15px 7px 25px;\n\t\t\t\tmargin: 0 0 10px;\n\n\t\t\t\tli {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t.llms-save {\n\t\t\t\twidth: 75%;\n\t\t\t}\n\t\t\t.llms-exit {\n\t\t\t\tpadding-left: 5px;\n\t\t\t\tpadding-right: 5px;\n\t\t\t\twidth: 23%;\n\t\t\t}\n\n\t\t\tbutton {\n\t\t\t\tposition: relative;\n\t\t\t\ti {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tleft: 10px;\n\t\t\t\t\ttop: 10px;\n\n\t\t\t\t\t.llms-spinner {\n\t\t\t\t\t\tborder-color: #fff;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tbutton[data-status] .llms-status-indicator { display: none; }\n\t\t\tbutton[data-status=\"saved\"] .status--saved { display: block; }\n\t\t\tbutton[data-status=\"unsaved\"] {\n\t\t\t\tbackground-color: $color-brand-orange;\n\t\t\t\t.status--unsaved { display: block; }\n\t\t\t}\n\t\t\tbutton[data-status=\"saving\"] .status--saving { display: block; }\n\t\t\tbutton[data-status=\"error\"] .status--error { display: block; }\n\n\t\t}\n\n\t}\n\t@media only screen and ( max-width: 782px ) {\n\t\t.llms-builder-sidebar {\n\t\t\tmargin-right: 10px;\n\t\t\tposition: relative;\n\t\t\ttop: 0;\n\t\t\twidth: auto;\n\t\t}\n\t\t.llms-builder-main {\n\t\t\tpadding-right: 10px;\n\t\t\twidth: auto;\n\t\t}\n\t}\n\n\t// Search Popover\n\t .select2-container {\n\t \tz-index: 99999999;\n\t }\n\n\t.select2-results__option {\n\t\tpadding: 0;\n\t}\n\n\t.select2-container--default .select2-results__option--highlighted[aria-selected] {\n\t\tbackground: $color-brand-blue;\n\t\t.llms-existing-action {\n\t\t\tcolor: #fff;\n\t\t}\n\t}\n\n\t.llms-existing-lesson-result {\n\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tpadding: 5px 5px 5px 0;\n\n\t\t.llms-existing-info {\n\t\t\tflex: 6;\n\n\t\t\th4, h5 {\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\th4 {\n\t\t\t\tfont-weight: 400;\n\t\t\t}\n\n\t\t\th5 {\n\t\t\t\tfont-weight: 300;\n\t\t\t}\n\t\t}\n\n\t\t.llms-existing-action {\n\t\t\tcolor: $color-brand-blue;\n\t\t\tflex: 1;\n\t\t\ttext-align: center;\n\n\t\t\t.fa {\n\t\t\t\tdisplay: block;\n\t\t\t\tfont-size: 30px;\n\t\t\t}\n\n\t\t\tsmall {\n\t\t\t\ttext-transform: uppercase;\n\t\t\t}\n\n\t\t}\n\n\n\t}\n\n\n\t// Quiz\n\t .llms-quiz-empty {\n \tmargin: 100px auto;\n \ttext-align: center;\n\n \tp { font-size: 18px; }\n \tbutton.llms-element-button {\n \t\tmax-width: 320px;\n \t\tmargin: 0 auto;\n \t}\n\n\t }\n\n\t.llms-editor-tab.tab--quiz {\n\t\t.llms-model-header {\n\t\t\t.llms-model-title {\n\t\t\t\twidth: calc( 100% - 310px );\n\t\t\t}\n\t\t\t.llms-quiz-points {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-right: 10px;\n\t\t\t\twidth: 100px;\n\t\t\t}\n\t\t}\n\t}\n\n\t.llms-model-header {\n\t\tbackground-color: #FFF;\n\t\t-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n\t\tbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n\t\tpadding: 10px;\n\t\t@include clearfix();\n\n\t\t.llms-model-title {\n\t\t\tfloat: left;\n\t\t\tmargin-right: 10px;\n\t\t\twidth: calc( 100% - 200px );\n\t\t\t.llms-input {\n\t\t\t\twidth: calc( 100% - 65px );\n\t\t\t}\n\t\t}\n\t\t.llms-model-status.llms-switch {\n\t\t\tfloat: left;\n\t\t\tmargin-right: 10px;\n\t\t\tposition: relative;\n\t\t\ttext-align: right;\n\t\t\ttop: -2px;\n\t\t\twidth: 100px;\n\t\t}\n\t\t.llms-action-icons {\n\t\t\tfloat: left;\n\t\t\tposition: relative;\n\t\t\ttext-align: right;\n\t\t\twidth: 80px;\n\t\t\tz-index: 1;\n\t\t\t.llms-action-icon {\n\t\t\t\tmargin-left: 10px;\n\t\t\t}\n\t\t\t.fa {\n\t\t\t\tmax-width: 15px;\n\t\t\t}\n\t\t}\n\t}\n\n\t.llms-model-header + .llms-model-settings.active {\n\t\tmargin-top: -10px;\n\t}\n\n\t.llms-model-settings {\n\t\tclear: both;\n\t\tdisplay: none;\n\n\t\t&.active {\n\t\t\tdisplay: block;\n\t\t\tmargin-top: 10px;\n\t\t}\n\t}\n\n\t.llms-quiz-footer {\n\t\tdisplay: flex;\n\t\tbutton.llms-element-button {\n\t\t\tflex: 1;\n\t\t\tmargin: 0 5px;\n\t\t\t&:first-child { margin-left: 0; }\n\t\t\t&:last-child { margin-right: 0; }\n\t\t\t&.llms-show-question-bank {\n\t\t\t\tflex: 2;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Question Bank\n\t.llms-quiz-tools {\n\t\tdisplay: none;\n\t\twidth: 100%;\n\t\tposition: relative;\n\n\t\t// .llms-quiz-tools-search {\n\t\t// \tpadding: 0 10px;\n\t\t// \tmargin-bottom: 15px;\n\n\t\t// \t.fa {\n\t\t// \t\tcolor: #888;\n\t\t// \t\tfont-size: 16px;\n\t\t// \t}\n\n\t\t// \tinput[type=\"search\"] {\n\t\t// \t\tbackground: inherit;\n\t\t// \t\tborder: none;\n\t\t// \t\tborder-bottom: 1px solid #bbb;\n\t\t// \t\tbox-shadow: none;\n\t\t// \t\tfont-size: 16px;\n\t\t// \t\tmargin: 8px 0 0;\n\t\t// \t\tpadding: 2px 5px;\n\t\t// \t\twidth: calc( 100% - 200px );\n\n\t\t// \t\t&:focus {\n\t\t// \t\t\tborder-bottom-color: $color-brand-blue;\n\t\t// \t\t}\n\t\t// \t}\n\n\t\t// }\n\n\t}\n\n\tul.llms-question-bank {\n\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\t@include clearfix;\n\n\t\tli.llms-question-bank-header {\n\t\t\tclear: both;\n\t\t\tpadding-top: 20px;\n\t\t\t&:first-child {\n\t\t\t\tpadding-top: 0;\n\t\t\t}\n\t\t\th4 {\n\t\t\t\tfont-size: 20px;\n\t\t\t\tmargin: 10px 5px;\n\t\t\t}\n\t\t}\n\n\t\tli.llms-question-type {\n\t\t\tbox-sizing: border-box;\n\t\t\tfloat: left;\n\t\t\tmargin: 0;\n\t\t\tpadding: 3px;\n\t\t\twidth: 33.3333%;\n\t\t\ttransition: opacity 0.3s ease-in-out;\n\n\t\t\t&.filtered {\n\t\t\t\topacity: 0.3;\n\t\t\t}\n\n\t\t\t.llms-type-unavailable {\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: relative;\n\t\t\t\ttext-decoration: none;\n\t\t\t\t.llms-element-button {\n\t\t\t\t\topacity: 0.5;\n\t\t\t\t\tpointer-events: none;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// Quiz Questions\n\tul.llms-quiz-questions {\n\n\t\tmargin: 10px 3px;\n\t\tpadding: 5px;\n\t\ttransition: box-shadow 0.6s ease;\n\n\t\t&.dragging {\n\t\t\tbox-shadow: 0 0 0 3px $color-brand-blue;\n\t\t}\n\n\t\t&:empty:before {\n\t\t\tbackground: #fff;\n\t\t\tcontent: attr(data-empty-msg);\n\t\t\tdisplay: block;\n\t\t\tfont-size: 18px;\n\t\t\tmargin: 0 auto;\n\t\t\tpadding: 100px 0;\n\t\t\ttext-align: center;\n\t\t}\n\n\t\tli.llms-question {\n\n\t\t\tbackground: #fff;\n\t\t\tmargin: 0 0 3px;\n\t\t\tpadding: 15px 12px 10px;\n\n\t\t\t&:hover {\n\t\t\t\t> .llms-builder-header .llms-action-icons {\n\t\t\t\t\topacity: 1;\n\t\t\t\t\tpointer-events: auto;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// groups\n\t\t\tul.llms-quiz-questions {\n\t\t\t\tmargin-left: 12px;\n\t\t\t\t.llms-question {\n\t\t\t\t\tborder-bottom: 2px solid #e6e6e6;\n\t\t\t\t}\n\t\t\t\t&:empty:before {\n\t\t\t\t\tcontent: attr(data-empty-msg);\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\tfont-size: 18px;\n\t\t\t\t\ttext-align: center;\n\t\t\t\t\tmargin: 20px auto;\n\t\t\t\t}\n\t\t\t\tli.llms-question.llms-sortable-placeholder.qtype--group {\n\t\t\t\t\tdisplay: none !important;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-builder-header {\n\t\t\t\t@include clearfix;\n\t\t\t\t> * {\n\t\t\t\t\tfloat: left;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-question-body {\n\t\t\t\tdisplay: none;\n\t\t\t\t&.active {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-data-stamp {\n\t\t\t\tbackground: $color-brand-blue;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tcolor: #fff;\n\t\t\t\tcursor: move;\n\t\t\t\tfont-size: 90%;\n\t\t\t\tmargin-top: -5px;\n\t\t\t\tpadding: 4px 10px 6px;\n\n\t\t\t\tsmall, .fa {\n\t\t\t\t\tline-height: 1.2;\n\t\t\t\t\tvertical-align: middle;\n\t\t\t\t}\n\n\t\t\t\t.fa {\n\t\t\t\t\tmargin-right: 4px;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t.llms-headline {\n\t\t\t\twidth: calc( 100% - 110px - 90px - 55px );\n\t\t\t\t.ql-editor {\n\t\t\t\t\twidth: calc( 100% - 16px );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-action-icons {\n\t\t\t\twidth: 110px;\n\t\t\t\topacity: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t.llms-question-points {\n\t\t\t\twidth: 90px;\n\t\t\t}\n\n\t\t\t.llms-question-features {\n\t\t\t\tmargin: 10px 0 0;\n\t\t\t\t&:last-child {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\t\t\t\t.llms-switch {\n\t\t\t\t\tmargin-right: 15px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-editable-video {\n\t\t\t\tposition: relative;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t}\n\n\t\t\t.llms-question-choices-wrapper {\n\t\t\t\tbackground: #f4f4f4;\n\t\t\t\tmargin: 2px 1px;\n\t\t\t\tpadding: 10px;\n\t\t\t}\n\n\t\t\t\t.llms-question-choices-list-header {\n\t\t\t\t\t@include clearfix;\n\t\t\t\t\tmargin-bottom: 10px;\n\n\t\t\t\t\t.llms-switch {\n\t\t\t\t\t\tfloat: right;\n\t\t\t\t\t\ttext-align: right;\n\t\t\t\t\t\twidth: 260px;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tul.llms-question-choices {\n\t\t\t\tborder: 3px solid #f4f4f4;\n\t\t\t\tmargin: -3px;\n\t\t\t\tpadding: 0;\n\t\t\t\ttransition: box-shadow 0.6s ease;\n\n\t\t\t\t&.dragging {\n\t\t\t\t\tbox-shadow: 0 0 0 3px $color-brand-blue;\n\t\t\t\t}\n\n\t\t\t\t&.multi-choices li.llms-question-choice .llms-choice-id span {\n\t\t\t\t\tborder-radius: 4px;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t\tli.llms-question-choice {\n\t\t\t\t\tmargin: 0 0 5px;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\t&:last-child { margin-bottom: 0; }\n\n\t\t\t\t\t.llms-choice-id {\n\n\t\t\t\t\t\tinput[type=\"checkbox\"] {\n\t\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tinput[type=\"checkbox\"]:checked + .llms-marker {\n\t\t\t\t\t\t\tbackground: $color-green;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.llms-marker {\n\t\t\t\t\t\t\tborder-radius: 50%;\n\t\t\t\t\t\t\tbackground: #d0d0d0;\n\t\t\t\t\t\t\tbox-shadow: inset 0 0 1px #848484;\n\t\t\t\t\t\t\tcolor: #444;\n\t\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\t\tfont-size: 16px;\n\t\t\t\t\t\t\theight: 20px;\n\t\t\t\t\t\t\tline-height: 20px;\n\t\t\t\t\t\t\tpadding: 5px;\n\t\t\t\t\t\t\tposition: relative;\n\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\ttransition: background 0.1s ease;\n\t\t\t\t\t\t\twidth: 20px;\n\n\t\t\t\t\t\t\t.fa {\n\t\t\t\t\t\t\t\tleft: 7px;\n\t\t\t\t\t\t\t\topacity: 0;\n\t\t\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\t\t\ttop: 7px;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t&.selectable:hover {\n\t\t\t\t\t\t\t\tb { opacity: 0 }\n\t\t\t\t\t\t\t\t.fa { opacity: 1; }\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t.llms-input-wrapper,\n\t\t\t\t\t.llms-editable-image {\n\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\t// action icons width, label width, ul margins\n\t\t\t\t\t\twidth: calc( 100% - 55px - 35px - 5px );\n\t\t\t\t\t}\n\n\t\t\t\t\t\t.llms-input {\n\t\t\t\t\t\t\twidth: calc( 100% - 16px );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t.llms-editable-image .llms-image {\n\t\t\t\t\t\tvertical-align: middle;\n\t\t\t\t\t\timg {\n\t\t\t\t\t\t\theight: 50px;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t.llms-action-icons {\n\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t\tpointer-events: auto;\n\t\t\t\t\t\ttext-align: right;\n\t\t\t\t\t\twidth: 55px;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tli.llms-question-choice.llms-sortable-placeholder {\n\t\t\t\t\tborder: 3px dashed $color-brand-blue !important;\n\t\t\t\t\tbackground: rgba( $color-brand-blue, 0.3 );\n\t\t\t\t}\n\n\t\t\t\tli.llms-question-choice.ui-sortable-helper {\n\t\t\t\t\tborder: 1px solid #ccc;\n\t\t\t\t\tbackground: #fff;\n\t\t\t\t\tpadding: 10px;\n\t\t\t\t\ttransform: rotate( 2deg );\n\t\t\t\t\tz-index: 999;\n\t\t\t\t}\n\n\t\tli.llms-question.ui-sortable-helper,\n\t\tli.llms-question.ui-draggable-dragging {\n\t\t\tborder: 1px solid #ccc;\n\t\t\tbackground: #fff;\n\t\t\ttransform: rotate( 2deg );\n\t\t\tz-index: 999;\n\t\t}\n\n\t\tli.llms-question.llms-sortable-placeholder {\n\t\t\tborder: 3px dashed $color-brand-blue !important;\n\t\t\tbackground: rgba( $color-brand-blue, 0.3 );\n\t\t}\n\n\t}\n\n\n\t.llms-switch {\n\t\tdisplay: inline-block;\n\t\tfloat: none;\n\t\twidth: auto;\n\n\t\tinput[type=\"checkbox\"] {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\tinput[type=\"checkbox\"]:checked + .llms-switch-slider {\n\t\t\tbackground: $color-green;\n\t\t}\n\n\t\tinput[type=\"checkbox\"]:checked + .llms-switch-slider:after {\n\t\t\ttransform: translateX( 14px );\n\t\t}\n\n\t\t.llms-label {\n\t\t\tdisplay: inline-block;\n\t\t\tvertical-align: top;\n\t\t}\n\n\t\t.llms-switch-slider {\n\t\t\tbackground: #e0e0e0;\n\t\t\tborder-radius: 8px;\n\t\t\tdisplay: inline-block;\n\t\t\theight: 16px;\n\t\t\tmargin-top: 2px;\n\t\t\tposition: relative;\n\t\t\ttransition: background 0.2s ease;\n\t\t\tvertical-align: top;\n\t\t\twidth: 30px;\n\n\t\t\t&:after {\n\t\t\t\tbackground: #fff;\n\t\t\t\tborder-radius: 8px;\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: block;\n\t\t\t\theight: 12px;\n\t\t\t\tleft: 2px;\n\t\t\t\tposition: relative;\n\t\t\t\ttransition: transform 0.2s ease;\n\t\t\t\ttop: 2px;\n\t\t\t\twidth: 12px;\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t.llms-video-explainer-trigger {\n\t\tdisplay: block;\n\t\tmargin: 40px 0 0;\n\t\tcursor: pointer;\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\ttransition: color 0.2s ease;\n\t\tcolor: initial;\n\t\t&:hover {\n\t\t\tcolor: currentColor;\n\t\t}\n\t\t&:after {\n\t\t\tposition: absolute;\n\t\t\tinset: 0;\n\t\t\tmargin: auto;\n\t\t\tpointer-events: none;\n\t\t\tcontent: '▶';\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\tclear: both;\n\t\t\theight: 2em;\n\t\t\twidth: 2em;\n\t\t\tborder-radius: 4em;\n\t\t\tborder: 4px solid currentColor;\n\t\t\tfont-size: 2.5em;\n\t\t}\n\t\timg {\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\tborder-radius: 4px;\n\t\t}\n\t}\n}\n\n\n\n.llms-multi-input .llms-input-wrapper {\n\twidth: 50%;\n\tfloat: left;\n\tmargin-bottom: 6px;\n\tfont-size: 12px;\n}\n\n.llms-multi-input .llms-input-wrapper .llms-input {\n\tfont-size: 12px;\n padding: 5px;\n}\n","//\n// LifterLMS Brand Colors\n// Currently overrides brand colors on the admin panel\n//\n\n$color-brand-blue: #466dd8;\n$color-brand-blue-dark: darken( $color-brand-blue, 8 );\n$color-brand-dark-blue: darken( $color-brand-blue, 24 );\n$color-brand-blue-light: lighten( $color-brand-blue, 8 );\n\n$color-brand-orange: #f8954f;\n$color-brand-orange-dark: #f67d28;\n$color-brand-orange-light: lighten( $color-brand-orange, 8 );\n\n$color-brand-aqua: #17bebb;\n\n$color-brand-pink: #ef476f;\n\n$color-blue: $color-brand-blue;\n","\n@mixin clearfix() {\n\t&:before,\n\t&:after {\n\t content: \" \";\n\t display: table;\n\t}\n\t&:after {\n\t clear: both;\n\t}\n}\n\n//\n// Positioning mixin\n//\n// @param [string] $position: position\n// @param [list] $args (()): offsets list\n//\n// @source http://hugogiraudel.com/2013/08/05/offsets-sass-mixin/\n//\n@mixin position($position, $args: ()) {\n\t$offsets: top right bottom left;\n\tposition: $position;\n\n\t@each $offset in $offsets {\n\t\t$index: index($args, $offset);\n\n\t\t@if $index {\n\t\t\t@if $index == length($args) {\n\t\t\t\t#{$offset}: 0;\n\t\t\t}\n\t\t\t@else {\n\t\t\t\t$next: nth($args, $index + 1);\n\t\t\t\t@if is-valid-length($next) {\n\t\t\t\t\t#{$offset}: $next;\n\t\t\t\t}\n\t\t\t\t@else if index($offsets, $next) {\n\t\t\t\t\t#{$offset}: 0;\n\t\t\t\t}\n\t\t\t\t@else {\n\t\t\t\t\t@warn \"Invalid value `#{$next}` for offset `#{$offset}`.\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n//\n// Function checking if $value is a valid length\n// @param [literal] $value: value to test\n// @return [bool]\n//\n@function is-valid-length($value) {\n\t$r: (type-of($value) == \"number\" and not unitless($value)) or (index(auto initial inherit 0, $value) != null);\n\t@return $r;\n}\n\n//\n// Shorthands\n//\n@mixin absolute($args: ()) {\n\t@include position(absolute, $args);\n}\n\n@mixin fixed($args: ()) {\n\t@include position(fixed, $args);\n}\n\n@mixin relative($args: ()) {\n\t@include position(relative, $args);\n}\n\n\n\n@mixin order_status_badges() {\n\n\t.llms-status {\n\t\tborder-radius: $radius-small;\n\t\tdisplay: inline-block;\n\t\tfont-size: 13px;\n\t\tfont-weight: 700;\n\t\tline-height: 1.4;\n\t\tpadding: 2px 6px;\n\t\tvertical-align: middle;\n\n\t\t&.llms-size--large {\n\t\t\tfont-size: 105%;\n\t\t\tpadding: 6px 12px;\n\t\t}\n\n\t\t&.llms-active,\n\t\t&.llms-completed,\n\t\t&.llms-pass, // quiz\n\t\t&.llms-txn-succeeded {\n\t\t\tcolor: $color-green;\n\t\t\tbackground-color: rgba( $color-green, .15 );\n\t\t}\n\n\t\t&.llms-fail, // quiz\n\t\t&.llms-failed,\n\t\t&.llms-expired,\n\t\t&.llms-cancelled,\n\t\t&.llms-txn-failed {\n\t\t\tcolor: $color-red;\n\t\t\tbackground-color: rgba( $color-red, .15 );\n\t\t}\n\n\t\t&.llms-incomplete, // assignment\n\t\t&.llms-on-hold,\n\t\t&.llms-pending,\n\t\t&.llms-pending-cancel,\n\t\t&.llms-refunded,\n\t\t&.llms-txn-pending,\n\t\t&.llms-txn-refunded {\n\t\t\tcolor: $color-orange;\n\t\t\tbackground-color: rgba( $color-orange, .15 );\n\t\t}\n\n\t}\n\n}\n","// ----- LifterLMS Brand Colors ----- \\\\\n$color-brand-dark-blue: #243c56;\n\n$color-brand-blue: #466dd8;\n$color-brand-blue-dark: darken( $color-brand-blue, 12 ); // #0077e4\n$color-brand-blue-light: lighten( $color-brand-blue, 8 );\n\n$color-brand-orange: #f8954f;\n$color-brand-orange-dark: #f67d28;\n$color-brand-orange-light: lighten( $color-brand-orange, 8 );\n\n$color-brand-aqua: #17bebb;\n\n$color-brand-pink: #ef476f;\n\n\n\n// ----- name our versions of common colors ----- \\\\\n$color-black: #010101;\n$color-green: #4d8d3c;\n$color-blue: $color-brand-blue;\n$color-red: #bb231c;\n$color-white: #fefefe;\n$color-aqua: #35bbaa;\n$color-purple: #845ef7;\n$color-orange: #c05621;\n\n$color-red-hover: darken($color-red,5);\n\n\n// ----- state / action names ----- \\\\\n$color-success: $color-green;\n$color-danger: $color-red;\n\n\n\n\n\n\n\n\n$color-lightgrey:\t\t#ccc;\n$color-grey: \t\t\t#999;\n$color-darkgrey:\t\t#666;\n$color-cinder:\t\t\t#444;\n$color-lightblue:\t\t#33b1cb;\n$color-darkblue:\t\t#0185a3;\n\n\n\n\n\n\n\n\n\n\n\n\n$color-border: #dedede;\n\n$el-box-shadow: 0 1px 2px 0 rgba($color-black,0.4);\n$el-background: #f1f1f1;\n$el-background-hover: #eaeaea;\n\n$break-xsmall: 320px;\n$break-small: 641px;\n$break-medium: 768px;\n$break-large: 1024px;\n\n$radius-small: 6px;\n$radius-medium: 12px;\n"],"sourceRoot":"../../scss"}
\ No newline at end of file
diff --git a/assets/maps/css/builder.min.css.map b/assets/maps/css/builder.min.css.map
new file mode 100644
index 0000000000..69f20f4aa9
--- /dev/null
+++ b/assets/maps/css/builder.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["builder.css"],"names":[],"mappings":"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A,WACA,CAAA,cACA,CAAA,iBACA,CAAA,sCACA,CAAA,8BACA,CAAA,kBACA,CAAA,UACA,CAAA,oEAEF,eACE,CAAA,iBACA,CAAA,UACA,CAAA,aACA,CAAA,WACA,CAAA,QACA,CAAA,iBACA,CAAA,6CACA,CAAA,qCACA,CAAA,6BACA,CADA,yDACA,CAAA,wDACA,CAAA,OACA,CAAA,UACA,CAAA,2DAEF,aACE,CAAA,eACA,CAAA,cACA,CAAA,iBACA,CAAA,UACA,CAAA,iCACA,CAAA,yBACA,CAAA,aACA,CAAA,iEAEF,kBACE,CAAA,iEAEF,iBACE,CAAA,OACA,CAAA,WACA,CAAA,mBACA,CAAA,WACA,CAAA,mBACA,CAAA,mBACA,CAAA,YACA,CAAA,uBACA,CAAA,oBACI,CAAA,sBACI,CAAA,wBACR,CAAA,qBACI,CAAA,kBACI,CAAA,UACR,CAAA,UACA,CAAA,SACA,CAAA,iBACA,CAAA,6BACA,CAAA,eACA,CAAA,+DAEF,aACE,CAAA,UACA,CAAA,iBACA,CAAA,sCAGF,SACE,CAAA,UACA,CAAA,iBACA,CAAA,cACA,CAAA,kDAGF,cACE,CAAA,WACA","file":"../../css/builder.min.css","sourcesContent":["@charset \"UTF-8\";\nbody.admin_page_llms-course-builder {\n background: #fff;\n}\nbody.admin_page_llms-course-builder #adminmenumain {\n display: none;\n}\nbody.admin_page_llms-course-builder #wpbody-content {\n padding-bottom: 0;\n}\nbody.admin_page_llms-course-builder #wpfooter {\n display: none;\n}\nbody.admin_page_llms-course-builder #wpcontent, body.admin_page_llms-course-builder #wpfooter {\n margin-left: 0;\n}\nbody.admin_page_llms-course-builder .llms-button-secondary .fa {\n margin-right: 5px;\n}\nbody.admin_page_llms-course-builder .webui-popover .select2-container--default .select2-results__group {\n font-size: 16px;\n}\nbody.admin_page_llms-course-builder .webui-popover .select2-container--default .select2-results__option .select2-results__option {\n padding-left: 2em;\n}\n\n.wrap.lifterlms.llms-builder {\n margin: 0;\n padding: 0;\n position: relative;\n}\n.wrap.lifterlms.llms-builder.editor-active .llms-video-explainer {\n display: none;\n}\n.wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {\n padding: 10px;\n width: calc(100% - 200px);\n z-index: 3;\n}\n@media only screen and (min-width: 1200px) {\n .wrap.lifterlms.llms-builder.editor-active .llms-builder-main {\n width: 560px;\n }\n .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {\n width: calc(100% - 640px);\n }\n}\n@media only screen and (min-width: 1440px) {\n .wrap.lifterlms.llms-builder.editor-active .llms-builder-main {\n width: calc(100% - 780px);\n }\n .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {\n width: 720px;\n }\n}\n@media only screen and (min-width: 1680px) {\n .wrap.lifterlms.llms-builder.editor-active .llms-builder-main {\n width: calc(100% - 1000px);\n }\n .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {\n width: 940px;\n }\n}\n@media only screen and (max-width: 782px) {\n .wrap.lifterlms.llms-builder.editor-active .llms-builder-sidebar {\n position: absolute;\n top: 0;\n width: auto;\n }\n}\n.wrap.lifterlms.llms-builder .llms-headline {\n display: inline-block;\n font-weight: 400;\n margin: 0;\n padding: 0;\n -webkit-transition: width 0.3s ease-in-out;\n transition: width 0.3s ease-in-out;\n vertical-align: middle;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main {\n padding: 30px 30px 30px 0;\n position: relative;\n width: calc(100% - 450px);\n z-index: 2;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons {\n display: inline-block;\n position: relative;\n vertical-align: middle;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons button {\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n cursor: pointer;\n outline: inherit;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-action-icons-lesson-id {\n vertical-align: top;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-course-header {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n gap: 15px;\n position: relative;\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-course-header .llms-button-secondary {\n margin-right: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections {\n -webkit-box-shadow: 0 0 0 3px transparent;\n box-shadow: 0 0 0 3px transparent;\n min-height: 60px;\n padding: 10px 0;\n -webkit-transition: min-height 0.2s ease, -webkit-box-shadow 0.6s ease;\n transition: min-height 0.2s ease, -webkit-box-shadow 0.6s ease;\n transition: box-shadow 0.6s ease, min-height 0.2s ease;\n transition: box-shadow 0.6s ease, min-height 0.2s ease, -webkit-box-shadow 0.6s ease;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections.dragging {\n -webkit-box-shadow: 0 0 0 3px #466dd8;\n box-shadow: 0 0 0 3px #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section {\n background: #fff;\n border: 1px solid #efefef;\n border-radius: 6px;\n -webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.08);\n box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.08);\n position: relative;\n margin: 0 0 20px 0;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 15px;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 20px 10px 20px 30px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 15px;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-right {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 0px;\n margin-top: -5px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-right .llms-action-icon {\n padding: 5px 10px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-left {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 15px;\n}\n@media only screen and (min-width: 1200px) {\n .wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-right,\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-header .llms-action-icons .llms-action-icons-left {\n white-space: nowrap;\n }\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.expanded .llms-lessons {\n overflow: visible;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.selected .llms-drag-utility.drag-section {\n border-color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.selected > .llms-builder-header .llms-headline {\n font-weight: 400;\n color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section > .llms-builder-footer {\n border-top: 1px solid #efefef;\n padding: 20px 20px 20px 30px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section:first-child:before {\n top: 30px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section:last-child:before {\n bottom: 55px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.expanded:last-child:before {\n bottom: 86px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons {\n -webkit-box-shadow: 0 0 0 3px transparent;\n box-shadow: 0 0 0 3px transparent;\n height: 0;\n margin: 0;\n padding: 0;\n -webkit-transition: min-height 0.2s ease, -webkit-box-shadow 0.6s ease;\n transition: min-height 0.2s ease, -webkit-box-shadow 0.6s ease;\n transition: box-shadow 0.6s ease, min-height 0.2s ease;\n transition: box-shadow 0.6s ease, min-height 0.2s ease, -webkit-box-shadow 0.6s ease;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.dragging {\n -webkit-box-shadow: 0 0 0 3px #466dd8;\n box-shadow: 0 0 0 3px #466dd8;\n min-height: 60px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.expanded, .wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.drag-expanded {\n height: auto;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.expanded li.llms-lesson, .wrap.lifterlms.llms-builder .llms-builder-main ul.llms-lessons.drag-expanded li.llms-lesson {\n pointer-events: auto;\n visibility: visible;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson {\n background: #fff;\n border-top: 1px solid #efefef;\n margin: 0;\n padding: 20px 10px 20px 30px;\n position: relative;\n pointer-events: none;\n visibility: hidden;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.selected .llms-drag-utility.drag-lesson {\n border-color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.selected > .llms-builder-header .llms-headline {\n color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n gap: 15px;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-headline {\n font-weight: 700;\n margin-left: 10px;\n cursor: pointer;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n gap: 15px;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-left {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 15px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-right {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 0;\n margin-top: -5px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-right .llms-action-icon {\n padding: 5px 10px;\n}\n@media only screen and (min-width: 1200px) {\n .wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-right,\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header .llms-action-icons .llms-action-icons-left {\n white-space: nowrap;\n }\n}\n@media only screen and (min-width: 1200px) {\n .wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson > .llms-builder-header > .llms-builder-header {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section .llms-drag-utility {\n background: #fff;\n border: 2px solid #ccc;\n border-radius: 50%;\n height: 10px;\n left: 13px;\n position: absolute;\n top: 24px;\n width: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson .llms-drag-utility {\n height: 6px;\n left: 14px;\n top: 25px !important;\n width: 6px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover > .llms-drag-utility,\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover > .llms-drag-utility {\n border-color: #fff;\n cursor: move;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover > .llms-drag-utility:hover:after,\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover > .llms-drag-utility:hover:after {\n color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-section:hover > .llms-drag-utility:after,\n.wrap.lifterlms.llms-builder .llms-builder-main .llms-lesson:hover > .llms-drag-utility:after {\n background: #fff;\n content: \"··\\a··\\a··\";\n color: #ccc;\n display: block;\n font-size: 36px;\n height: 29px;\n letter-spacing: -1px;\n line-height: 8px;\n left: -7px;\n position: absolute;\n text-align: center;\n top: -12px;\n width: 23px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.ui-sortable-helper, .wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.ui-draggable-dragging,\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.ui-sortable-helper,\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.ui-draggable-dragging {\n border: 1px solid #ccc;\n background: #fff;\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n visibility: visible !important;\n z-index: 999;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.llms-sortable-placeholder,\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.llms-sortable-placeholder {\n border: 3px dashed #466dd8;\n background: rgba(70, 109, 216, 0.3);\n margin: 0 10px;\n padding: 5px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-section.llms-sortable-placeholder:before,\n.wrap.lifterlms.llms-builder .llms-builder-main li.llms-lesson.llms-sortable-placeholder:before {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections > li.llms-lesson.ui-draggable-dragging .llms-drag-utility {\n position: relative;\n}\n.wrap.lifterlms.llms-builder .llms-builder-main ul.llms-sections > li.llms-lesson.ui-draggable-dragging .llms-drag-utility:after {\n left: -35px;\n top: -28px;\n}\n.wrap.lifterlms.llms-builder .llms-input-wrapper {\n position: relative;\n}\n.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container {\n font-size: inherit;\n font-family: inherit;\n}\n.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-editor.ql-blank::before {\n color: #a0a0a0;\n left: 8px;\n right: 8px;\n}\n.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-editor p {\n font-size: inherit;\n line-height: 1;\n}\n.wrap.lifterlms.llms-builder .llms-input-formatting.ql-container .ql-tooltip {\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder .llms-input,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor {\n border: none;\n border-bottom: 2px dotted transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n cursor: text;\n display: inline-block;\n font-size: inherit;\n font-weight: 700;\n height: auto;\n line-height: 1;\n margin: 0 8px;\n min-width: 60px;\n padding: 0;\n -webkit-transition: border 0.2s ease, -webkit-box-shadow 0.2s ease;\n transition: border 0.2s ease, -webkit-box-shadow 0.2s ease;\n transition: border 0.2s ease, box-shadow 0.2s ease;\n transition: border 0.2s ease, box-shadow 0.2s ease, -webkit-box-shadow 0.2s ease;\n}\n.wrap.lifterlms.llms-builder .llms-input:empty:before,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:empty:before {\n color: #a0a0a0;\n content: attr(data-placeholder);\n}\n.wrap.lifterlms.llms-builder .llms-input:hover,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:hover {\n border-bottom-color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-input[disabled],\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor[disabled] {\n cursor: not-allowed;\n}\n.wrap.lifterlms.llms-builder .llms-input[disabled]:hover,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor[disabled]:hover {\n border-bottom-color: transparent;\n}\n.wrap.lifterlms.llms-builder .llms-input:focus,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor:focus {\n background: #fff;\n -webkit-box-shadow: 0 0 0 4px #fff, 0 0 0 6px #466dd8;\n box-shadow: 0 0 0 4px #fff, 0 0 0 6px #466dd8;\n border-bottom: none;\n outline: none;\n}\n.wrap.lifterlms.llms-builder .llms-input b, .wrap.lifterlms.llms-builder .llms-input strong,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor b,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor strong {\n font-weight: 700;\n}\n.wrap.lifterlms.llms-builder .llms-input.standard,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard {\n border: 1px solid #e6e6e6;\n margin: 2px;\n padding: 5px 3px;\n}\n.wrap.lifterlms.llms-builder .llms-input.standard:hover,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard:hover {\n border-color: #d6d6d6;\n}\n.wrap.lifterlms.llms-builder .llms-input.standard:focus,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.standard:focus {\n -webkit-box-shadow: 0 0 0 2px #466dd8;\n box-shadow: 0 0 0 2px #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-input.permalink,\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor.permalink {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-input-formatting .ql-editor {\n padding: 0 1px;\n}\n.wrap.lifterlms.llms-builder .llms-label {\n font-weight: 500;\n}\n.wrap.lifterlms.llms-builder .llms-label .fa {\n color: #aaa;\n padding-left: 6px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-editor .llms-label {\n float: left;\n margin-right: 10px;\n position: relative;\n top: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-editor textarea {\n border: none;\n padding: 10px;\n display: block;\n width: 100%;\n}\n.wrap.lifterlms.llms-builder .llms-editable-image button.llms-add-image {\n width: 130px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-image .llms-image {\n display: inline-block;\n position: relative;\n}\n.wrap.lifterlms.llms-builder .llms-editable-image .llms-image:hover .llms-action-icon {\n opacity: 1;\n}\n.wrap.lifterlms.llms-builder .llms-editable-image .llms-image .llms-action-icon {\n color: #fff;\n font-size: 24px;\n opacity: 0;\n padding: 0;\n position: absolute;\n -webkit-transition: opacity 0.2s ease;\n transition: opacity 0.2s ease;\n right: 3px;\n top: 1px;\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder .llms-editable-image .llms-image img {\n display: block;\n height: 100px;\n max-width: 100%;\n width: auto;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group {\n background: #f4f4f4;\n padding: 10px;\n position: relative;\n margin: 0 1px;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-label,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-label {\n min-width: 100%;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-editable-input,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-editable-input {\n -webkit-box-flex: 2;\n -ms-flex: 2;\n flex: 2;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field.has-label-after .llms-label--after,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group.has-label-after .llms-label--after {\n color: #888;\n min-width: auto;\n font-size: 85%;\n padding-left: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch {\n display: block;\n width: 100%;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:before, .wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:after,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:before,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:after {\n content: \" \";\n display: table;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch:after,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch:after {\n clear: both;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-switch .llms-label,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-switch .llms-label {\n width: calc(100% - 34px);\n}\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-image,\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-video,\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-editable-editor,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-image,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-video,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-editable-editor {\n margin-top: 2px;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard {\n display: block;\n width: 100%;\n}\n.wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.two-digits, .wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.three-digits, .wrap.lifterlms.llms-builder .llms-settings-field .llms-input.standard.four-digits,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.two-digits,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.three-digits,\n.wrap.lifterlms.llms-builder .llms-editable-toggle-group .llms-input.standard.four-digits {\n display: inline-block;\n}\n.wrap.lifterlms.llms-builder .llms-editable-number .llms-input {\n color: #888;\n min-width: 30px;\n text-align: right;\n}\n.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.two-digits {\n width: 30px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.three-digits {\n width: 40px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-number .llms-input.four-digits {\n width: 60px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-number small {\n color: #888;\n text-transform: uppercase;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings {\n background-color: #FFF;\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n}\n.wrap.lifterlms.llms-builder .llms-model-settings:before, .wrap.lifterlms.llms-builder .llms-model-settings:after {\n content: \" \";\n display: table;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings:after {\n clear: both;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header {\n border-bottom: 1px solid #efefef;\n padding: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header .fa-caret-up {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings .llms-settings-group-header .fa-caret-down {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-header .fa-caret-up {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-header .fa-caret-down {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings.hidden .llms-settings-group-body {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-settings-group-header:before, .wrap.lifterlms.llms-builder .llms-settings-group-header:after {\n content: \" \";\n display: table;\n}\n.wrap.lifterlms.llms-builder .llms-settings-group-header:after {\n clear: both;\n}\n.wrap.lifterlms.llms-builder .llms-settings-group-header .llms-settings-group-title {\n display: inline-block;\n font-size: 16px;\n font-weight: 700;\n line-height: 1.5;\n margin: 0 5px;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder .llms-settings-group-header .llms-settings-group-toggle {\n float: right;\n font-size: 18px;\n padding: 2px;\n}\n.wrap.lifterlms.llms-builder .llms-settings-group-body {\n padding: 16px;\n}\n.wrap.lifterlms.llms-builder .llms-settings-row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin: 2px 0;\n}\n.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field,\n.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field:first-child,\n.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group:first-child {\n margin-left: 0;\n}\n.wrap.lifterlms.llms-builder .llms-settings-row .llms-settings-field:last-child,\n.wrap.lifterlms.llms-builder .llms-settings-row .llms-editable-toggle-group:last-child {\n margin-right: 0;\n}\n.wrap.lifterlms.llms-builder .llms-settings-row .llms-breaker {\n margin: 2px 0;\n width: 100%;\n}\n.wrap.lifterlms.llms-builder .llms-editable-select {\n margin: 2px 0;\n}\n.wrap.lifterlms.llms-builder .llms-editable-select .select2-container--default.select2-container--focus .select2-selection--multiple {\n border-color: #aaa;\n}\n.wrap.lifterlms.llms-builder .llms-editable-radio label {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-editable-radio.has-images input {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-editable-radio.has-images label {\n display: inline-block;\n margin: 0 3px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-radio.has-images label > span {\n -webkit-transition: background 0.2s ease;\n transition: background 0.2s ease;\n display: inline-block;\n padding: 3px;\n}\n.wrap.lifterlms.llms-builder .llms-editable-radio.has-images img {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-editable-radio.has-images input:checked + span {\n background: #466dd8;\n}\n.wrap.lifterlms.llms-builder .settings-field--disabled {\n opacity: 0.5;\n}\n.wrap.lifterlms.llms-builder .llms-action-icon {\n color: #666;\n display: inline-block;\n font-size: 13px;\n text-decoration: none;\n}\n.wrap.lifterlms.llms-builder .llms-action-icon:hover {\n color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-action-icon:hover.danger {\n color: #bb231c;\n}\n.wrap.lifterlms.llms-builder .llms-action-icon.circle {\n border: 2px solid #aaa;\n border-radius: 50%;\n font-size: 9px;\n height: 8px;\n line-height: 1;\n padding: 5px;\n text-align: center;\n width: 8px;\n}\n.wrap.lifterlms.llms-builder .llms-action-icon.circle:hover {\n border-color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-action-icon.circle:hover.danger {\n border-color: #bb231c;\n}\n.wrap.lifterlms.llms-builder ul.llms-info-list {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n gap: 15px;\n margin: 10px 0 0 8px;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item {\n color: #666;\n font-size: 13px;\n margin: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active, .wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .llms-action-icon {\n color: #466dd8;\n}\n.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .fa, .wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item.active .llms-action-icon .fa {\n margin-right: 5px;\n}\n.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item button {\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n cursor: pointer;\n outline: inherit;\n}\n.wrap.lifterlms.llms-builder ul.llms-info-list li.llms-info-item button:hover {\n text-decoration: underline;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar {\n background: #e6e6e6;\n bottom: 0;\n overflow: hidden;\n padding: 30px;\n position: fixed;\n -webkit-transition: width 0.3s ease-in-out;\n transition: width 0.3s ease-in-out;\n top: 32px;\n right: 0;\n width: 360px;\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul, .wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities li {\n margin: 0;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 15px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul li {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities ul li:last-child {\n margin-right: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility {\n background: #efefef;\n border: 1px solid #ccc;\n border-radius: 8px;\n color: inherit;\n cursor: pointer;\n display: block;\n overflow: hidden;\n padding: 6px 12px;\n position: relative;\n text-align: center;\n width: 100%;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility:hover {\n background: #fefefe;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utilities .llms-utility .fa {\n background: #848484;\n position: absolute;\n left: 0;\n top: 0;\n padding: 7px;\n color: #fff;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-sidebar-headline {\n margin: 0 0 10px;\n font-size: 22px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-elements-list {\n margin-bottom: 30px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-elements-list li {\n margin-bottom: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-utility {\n color: #444;\n text-decoration: none;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button {\n background: #466dd8;\n border-radius: 8px;\n border: none;\n color: #fff;\n cursor: pointer;\n display: block;\n margin: 0;\n overflow: hidden;\n padding: 17px 20px;\n position: relative;\n -webkit-transition: background 0.2s ease, color 0.2s ease;\n transition: background 0.2s ease, color 0.2s ease;\n text-align: center;\n width: 100%;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button:hover {\n background: #2b55cb;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary {\n background: #efefef;\n color: #444;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary:hover {\n background: #fefefe;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.secondary .fa {\n background: #848484;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button .fa {\n background: #1c3987;\n border-radius: 4px 0 0 4px;\n color: #fff;\n display: block;\n font-size: 20px;\n padding: 15px 20px;\n position: absolute;\n top: 0;\n left: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button[disabled=disabled] {\n opacity: 0.4;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.small {\n padding: 8px 10px 8px 46px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.small .fa {\n font-size: 15px;\n padding: 9px 10px;\n width: 20px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.right.small {\n padding-left: 10px;\n padding-right: 46px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-element-button.right .fa {\n border-radius: 0 4px 4px 0;\n left: auto;\n right: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor {\n height: 100%;\n min-height: 100%;\n position: relative;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav {\n background-color: #1c3987;\n margin: 0;\n padding: 8px 0 0 8px;\n font-size: 0;\n margin: -10px -10px 10px -10px;\n position: relative;\n z-index: 2;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu {\n list-style-type: none;\n margin: 0;\n padding: 0;\n position: relative;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item {\n display: inline-block;\n margin: 0 6px 0 0;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu:before {\n border: 8px solid transparent;\n border-left-color: #cacaca;\n content: \"\";\n position: absolute;\n top: 11px;\n left: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu .llms-editor-menu-item:hover > a,\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item > .llms-editor-menu .llms-editor-menu-item.active > a {\n background: #dfdfdf;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item:hover > a {\n background-color: #466dd8;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active > a {\n background-color: #e6e6e6;\n color: #466dd8;\n font-weight: 700;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active > a:focus {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.active > .llms-editor-menu {\n display: inline-block;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item a {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n color: #FFF;\n display: inline-block;\n padding: 9px 18px;\n text-decoration: none;\n -webkit-transition: background 0.2s ease;\n transition: background 0.2s ease;\n font-size: 15px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right {\n float: right;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right a, .wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-nav .llms-editor-menu .llms-editor-menu-item.right:hover {\n background: transparent;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab {\n display: none;\n height: calc(100% - 90px);\n overflow: scroll;\n position: relative;\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz .llms-quiz-questions {\n -webkit-box-flex: 1;\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n overflow: scroll;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-editor-tab.active.tab--quiz .llms-quiz-questions .llms-quiz-questions {\n overflow: visible;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save {\n bottom: 10px;\n left: 10px;\n position: absolute;\n right: 10px;\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-builder-error {\n background: #bb231c;\n border-radius: 4px;\n color: #fff;\n display: inline-block;\n font-style: italic;\n padding: 5px 15px 7px 25px;\n margin: 0 0 10px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-builder-error li {\n margin: 0;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-save {\n width: 75%;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save .llms-exit {\n padding-left: 5px;\n padding-right: 5px;\n width: 23%;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button {\n position: relative;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button i {\n position: absolute;\n left: 10px;\n top: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button i .llms-spinner {\n border-color: #fff;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status] .llms-status-indicator {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=saved] .status--saved {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=unsaved] {\n background-color: #f8954f;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=unsaved] .status--unsaved {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=saving] .status--saving {\n display: block;\n}\n.wrap.lifterlms.llms-builder .llms-builder-sidebar .llms-builder-save button[data-status=error] .status--error {\n display: block;\n}\n@media only screen and (max-width: 782px) {\n .wrap.lifterlms.llms-builder .llms-builder-sidebar {\n margin-right: 10px;\n position: relative;\n top: 0;\n width: auto;\n }\n .wrap.lifterlms.llms-builder .llms-builder-main {\n padding-right: 10px;\n width: auto;\n }\n}\n.wrap.lifterlms.llms-builder .select2-container {\n z-index: 99999999;\n}\n.wrap.lifterlms.llms-builder .select2-results__option {\n padding: 0;\n}\n.wrap.lifterlms.llms-builder .select2-container--default .select2-results__option--highlighted[aria-selected] {\n background: #466dd8;\n}\n.wrap.lifterlms.llms-builder .select2-container--default .select2-results__option--highlighted[aria-selected] .llms-existing-action {\n color: #fff;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding: 5px 5px 5px 0;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info {\n -webkit-box-flex: 6;\n -ms-flex: 6;\n flex: 6;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h4, .wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h5 {\n margin: 0;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h4 {\n font-weight: 400;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-info h5 {\n font-weight: 300;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action {\n color: #466dd8;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n text-align: center;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action .fa {\n display: block;\n font-size: 30px;\n}\n.wrap.lifterlms.llms-builder .llms-existing-lesson-result .llms-existing-action small {\n text-transform: uppercase;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-empty {\n margin: 100px auto;\n text-align: center;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-empty p {\n font-size: 18px;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-empty button.llms-element-button {\n max-width: 320px;\n margin: 0 auto;\n}\n.wrap.lifterlms.llms-builder .llms-editor-tab.tab--quiz .llms-model-header .llms-model-title {\n width: calc(100% - 310px);\n}\n.wrap.lifterlms.llms-builder .llms-editor-tab.tab--quiz .llms-model-header .llms-quiz-points {\n float: left;\n margin-right: 10px;\n width: 100px;\n}\n.wrap.lifterlms.llms-builder .llms-model-header {\n background-color: #FFF;\n -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);\n padding: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-model-header:before, .wrap.lifterlms.llms-builder .llms-model-header:after {\n content: \" \";\n display: table;\n}\n.wrap.lifterlms.llms-builder .llms-model-header:after {\n clear: both;\n}\n.wrap.lifterlms.llms-builder .llms-model-header .llms-model-title {\n float: left;\n margin-right: 10px;\n width: calc(100% - 200px);\n}\n.wrap.lifterlms.llms-builder .llms-model-header .llms-model-title .llms-input {\n width: calc(100% - 65px);\n}\n.wrap.lifterlms.llms-builder .llms-model-header .llms-model-status.llms-switch {\n float: left;\n margin-right: 10px;\n position: relative;\n text-align: right;\n top: -2px;\n width: 100px;\n}\n.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons {\n float: left;\n position: relative;\n text-align: right;\n width: 80px;\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons .llms-action-icon {\n margin-left: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-model-header .llms-action-icons .fa {\n max-width: 15px;\n}\n.wrap.lifterlms.llms-builder .llms-model-header + .llms-model-settings.active {\n margin-top: -10px;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings {\n clear: both;\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-model-settings.active {\n display: block;\n margin-top: 10px;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-footer {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n margin: 0 5px;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button:first-child {\n margin-left: 0;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button:last-child {\n margin-right: 0;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-footer button.llms-element-button.llms-show-question-bank {\n -webkit-box-flex: 2;\n -ms-flex: 2;\n flex: 2;\n}\n.wrap.lifterlms.llms-builder .llms-quiz-tools {\n display: none;\n width: 100%;\n position: relative;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank:before, .wrap.lifterlms.llms-builder ul.llms-question-bank:after {\n content: \" \";\n display: table;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank:after {\n clear: both;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header {\n clear: both;\n padding-top: 20px;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header:first-child {\n padding-top: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-bank-header h4 {\n font-size: 20px;\n margin: 10px 5px;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n float: left;\n margin: 0;\n padding: 3px;\n width: 33.3333%;\n -webkit-transition: opacity 0.3s ease-in-out;\n transition: opacity 0.3s ease-in-out;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type.filtered {\n opacity: 0.3;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type .llms-type-unavailable {\n display: block;\n position: relative;\n text-decoration: none;\n}\n.wrap.lifterlms.llms-builder ul.llms-question-bank li.llms-question-type .llms-type-unavailable .llms-element-button {\n opacity: 0.5;\n pointer-events: none;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions {\n margin: 10px 3px;\n padding: 5px;\n -webkit-transition: -webkit-box-shadow 0.6s ease;\n transition: -webkit-box-shadow 0.6s ease;\n transition: box-shadow 0.6s ease;\n transition: box-shadow 0.6s ease, -webkit-box-shadow 0.6s ease;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions.dragging {\n -webkit-box-shadow: 0 0 0 3px #466dd8;\n box-shadow: 0 0 0 3px #466dd8;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions:empty:before {\n background: #fff;\n content: attr(data-empty-msg);\n display: block;\n font-size: 18px;\n margin: 0 auto;\n padding: 100px 0;\n text-align: center;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question {\n background: #fff;\n margin: 0 0 3px;\n padding: 15px 12px 10px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question:hover > .llms-builder-header .llms-action-icons {\n opacity: 1;\n pointer-events: auto;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions {\n margin-left: 12px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions .llms-question {\n border-bottom: 2px solid #e6e6e6;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions:empty:before {\n content: attr(data-empty-msg);\n display: block;\n font-size: 18px;\n text-align: center;\n margin: 20px auto;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question ul.llms-quiz-questions li.llms-question.llms-sortable-placeholder.qtype--group {\n display: none !important;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:before, .wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:after {\n content: \" \";\n display: table;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header:after {\n clear: both;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-builder-header > * {\n float: left;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-body {\n display: none;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-body.active {\n display: block;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp {\n background: #466dd8;\n border-radius: 4px;\n color: #fff;\n cursor: move;\n font-size: 90%;\n margin-top: -5px;\n padding: 4px 10px 6px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp small, .wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp .fa {\n line-height: 1.2;\n vertical-align: middle;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-data-stamp .fa {\n margin-right: 4px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-headline {\n width: calc(100% - 110px - 90px - 55px);\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-headline .ql-editor {\n width: calc(100% - 16px);\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-action-icons {\n width: 110px;\n opacity: 0;\n pointer-events: none;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-points {\n width: 90px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features {\n margin: 10px 0 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features:last-child {\n margin: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-question-features .llms-switch {\n margin-right: 15px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question .llms-editable-video {\n position: relative;\n z-index: 1;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-wrapper {\n background: #f4f4f4;\n margin: 2px 1px;\n padding: 10px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header {\n margin-bottom: 10px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:before, .wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:after {\n content: \" \";\n display: table;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header:after {\n clear: both;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions .llms-question-choices-list-header .llms-switch {\n float: right;\n text-align: right;\n width: 260px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices {\n border: 3px solid #f4f4f4;\n margin: -3px;\n padding: 0;\n -webkit-transition: -webkit-box-shadow 0.6s ease;\n transition: -webkit-box-shadow 0.6s ease;\n transition: box-shadow 0.6s ease;\n transition: box-shadow 0.6s ease, -webkit-box-shadow 0.6s ease;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices.dragging {\n -webkit-box-shadow: 0 0 0 3px #466dd8;\n box-shadow: 0 0 0 3px #466dd8;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions ul.llms-question-choices.multi-choices li.llms-question-choice .llms-choice-id span {\n border-radius: 4px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice {\n margin: 0 0 5px;\n padding: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice:last-child {\n margin-bottom: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id input[type=checkbox] {\n display: none;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id input[type=checkbox]:checked + .llms-marker {\n background: #4d8d3c;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker {\n border-radius: 50%;\n background: #d0d0d0;\n -webkit-box-shadow: inset 0 0 1px #848484;\n box-shadow: inset 0 0 1px #848484;\n color: #444;\n display: inline-block;\n font-size: 16px;\n height: 20px;\n line-height: 20px;\n padding: 5px;\n position: relative;\n text-align: center;\n -webkit-transition: background 0.1s ease;\n transition: background 0.1s ease;\n width: 20px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker .fa {\n left: 7px;\n opacity: 0;\n position: absolute;\n top: 7px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker.selectable:hover b {\n opacity: 0;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-choice-id .llms-marker.selectable:hover .fa {\n opacity: 1;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-input-wrapper,\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image {\n display: inline-block;\n width: calc(100% - 55px - 35px - 5px);\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-input {\n width: calc(100% - 16px);\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image .llms-image {\n vertical-align: middle;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-editable-image .llms-image img {\n height: 50px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice .llms-action-icons {\n display: inline-block;\n opacity: 1;\n pointer-events: auto;\n text-align: right;\n width: 55px;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice.llms-sortable-placeholder {\n border: 3px dashed #466dd8 !important;\n background: rgba(70, 109, 216, 0.3);\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question-choice.ui-sortable-helper {\n border: 1px solid #ccc;\n background: #fff;\n padding: 10px;\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n z-index: 999;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.ui-sortable-helper,\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.ui-draggable-dragging {\n border: 1px solid #ccc;\n background: #fff;\n -webkit-transform: rotate(2deg);\n transform: rotate(2deg);\n z-index: 999;\n}\n.wrap.lifterlms.llms-builder ul.llms-quiz-questions li.llms-question.llms-sortable-placeholder {\n border: 3px dashed #466dd8 !important;\n background: rgba(70, 109, 216, 0.3);\n}\n.wrap.lifterlms.llms-builder .llms-switch {\n display: inline-block;\n float: none;\n width: auto;\n}\n.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox] {\n display: none;\n}\n.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox]:checked + .llms-switch-slider {\n background: #4d8d3c;\n}\n.wrap.lifterlms.llms-builder .llms-switch input[type=checkbox]:checked + .llms-switch-slider:after {\n -webkit-transform: translateX(14px);\n transform: translateX(14px);\n}\n.wrap.lifterlms.llms-builder .llms-switch .llms-label {\n display: inline-block;\n vertical-align: top;\n}\n.wrap.lifterlms.llms-builder .llms-switch .llms-switch-slider {\n background: #e0e0e0;\n border-radius: 8px;\n display: inline-block;\n height: 16px;\n margin-top: 2px;\n position: relative;\n -webkit-transition: background 0.2s ease;\n transition: background 0.2s ease;\n vertical-align: top;\n width: 30px;\n}\n.wrap.lifterlms.llms-builder .llms-switch .llms-switch-slider:after {\n background: #fff;\n border-radius: 8px;\n content: \"\";\n display: block;\n height: 12px;\n left: 2px;\n position: relative;\n -webkit-transition: -webkit-transform 0.2s ease;\n transition: -webkit-transform 0.2s ease;\n transition: transform 0.2s ease;\n transition: transform 0.2s ease, -webkit-transform 0.2s ease;\n top: 2px;\n width: 12px;\n}\n.wrap.lifterlms.llms-builder .llms-video-explainer-trigger {\n display: block;\n margin: 40px 0 0;\n cursor: pointer;\n position: relative;\n width: 100%;\n -webkit-transition: color 0.2s ease;\n transition: color 0.2s ease;\n color: initial;\n}\n.wrap.lifterlms.llms-builder .llms-video-explainer-trigger:hover {\n color: currentColor;\n}\n.wrap.lifterlms.llms-builder .llms-video-explainer-trigger:after {\n position: absolute;\n inset: 0;\n margin: auto;\n pointer-events: none;\n content: \"▶\";\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n clear: both;\n height: 2em;\n width: 2em;\n border-radius: 4em;\n border: 4px solid currentColor;\n font-size: 2.5em;\n}\n.wrap.lifterlms.llms-builder .llms-video-explainer-trigger img {\n display: block;\n width: 100%;\n border-radius: 4px;\n}\n\n.llms-multi-input .llms-input-wrapper {\n width: 50%;\n float: left;\n margin-bottom: 6px;\n font-size: 12px;\n}\n\n.llms-multi-input .llms-input-wrapper .llms-input {\n font-size: 12px;\n padding: 5px;\n}\n/*# sourceMappingURL=../maps/css/builder.css.map */\n"],"sourceRoot":"../../css"}
\ No newline at end of file
diff --git a/assets/maps/css/certificates.css.map b/assets/maps/css/certificates.css.map
new file mode 100644
index 0000000000..a1725402d5
--- /dev/null
+++ b/assets/maps/css/certificates.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["certificates.scss","certificates.css"],"names":[],"mappings":"AAAA;;EAAA;AAGA;EACC,sBAAA;EACA,sBAAA;EACA,cAAA;ACCD;;ADEA;;;;EAIC,aAAA;ACCD;;ADEA;EACC,mBAAA;ACCD;;ADEA;;EAAA;AAGA;EAEC,UAAA;EACA,gBAAA;ACAD;ADEC;EACC,kBAAA;EACA,UAAA;EACA,WAAA;EACA,cAAA;ACAF;ADGC;;EAEC,YAAA;EACA,kBAAA;EACA,UAAA;ACDF;ADIC;EACC,kBAAA;ACFF;;ADOA;;EAAA;AAGA;EACC,cAAA;ACJD;;ADMA;EACC,WAAA;EACA,YAAA;EACA,qCAAA;EACA,8BAAA;UAAA,sBAAA;ACHD;ADKC;EACC,wBAAA;EACA,2BAAA;ACHF;;ADOA;;EAAA;AAGA;EACC,gBAAA;EACA,mBAAA;EACA,kBAAA;ACJD;ADMC;EACC,eAAA;ACJF;;ADUA;EAEC;IACC,4CAAA;YAAA,oCAAA;IACA,YAAA;IACA,gBAAA;ECRA;EDWD;IAAQ,UAAA;ECRP;EDUD;IACC,aAAA;ECRA;EDYD;IACC,6BAAA;IACA,qBAAA;ECVA;EDaD;IACC,iBAAA;ECXA;EDeD;IACC,wBAAA;ECbA;EDiBD;;IAEC,WAAA;ECfA;EDmBD;;IAEC,8BAAA;IACA,4BAAA;ECjBA;EDqBD;IACC,kBAAA;IACA,MAAA;IACA,OAAA;IACA,QAAA;IACA,cAAA;IACA,qBAAA;ECnBA;EDsBD;IACC,yBAAA;IACA,4CAAA;YAAA,oCAAA;IACA,8BAAA;YAAA,sBAAA;ECpBA;AACF","file":"../../css/certificates.css","sourcesContent":["/**\n * Reset.\n */\nbody {\n\tbackground-color: #fff;\n\tbackground-image: none;\n\tmargin: 0 auto;\n}\n\n.header, .footer,\n.wrap-header, .wrap-footer,\n.site-header, .site-footer,\n.nav-primary, .primary-nav {\n\tdisplay: none;\n}\n\n.llms-certificate-container {\n\tmargin: 40px auto 0;\n}\n\n/**\n * Legacy Template.\n */\n.llms-certificate-container:not(.cert-template-v2) {\n\n\tpadding: 0;\n\toverflow: hidden;\n\n\t.certificate-background {\n\t\tposition: relative;\n\t\tz-index: 1;\n\t\twidth: 100%;\n\t\tdisplay: block;\n\t}\n\n\t.llms_certificate,\n\t.llms_my_certificate {\n\t\tmargin: 80px;\n\t\tposition: relative;\n\t\tz-index: 2;\n\t}\n\n\th1:first-child {\n\t\ttext-align: center;\n\t}\n\n}\n\n/**\n * V2 Template\n */\n.llms-certificate-wrapper {\n\tmargin: 0 auto;\n}\n.llms-certificate-container.cert-template-v2 {\n\twidth: 100%;\n\theight: 100%;\n\tbackground-size: 100% 100% !important;\n\tbox-sizing: border-box; \n\n\t.wp-block-columns .wp-block-column > * {\n\t\tmargin-top: 0 !important;\n\t\tmargin-bottom: 0 !important;\n\t}\n}\n\n/**\n * Certificate Actions Footer.\n */\n.llms-print-certificate {\n\tmargin-top: 40px;\n\tmargin-bottom: 40px;\n\ttext-align: center;\n\n\tform {\n\t\tdisplay: inline;\n\t}\n}\n\n\n\n@media print {\n\n\thtml, body {\n\t\tprint-color-adjust: exact !important;\n\t\theight: 100%;\n\t\toverflow: hidden;\n\t}\n\n\t@page { size: auto; }\n\n\t.no-print {\n\t\tdisplay: none;\n\t}\n\n\t// Make everything on the page invisible.\n\tbody * {\n\t\tvisibility: hidden !important;\n\t\tbackground: #fff none;\n\t}\n\n\t.site, .site-content {\n\t\toverflow: visible;\n\t}\n\n\t// Remove all headers, menus and footers.\n\theader, aside, nav, footer {\n\t\tdisplay: none !important;\n\t}\n\n\t// Make sure a .container parent doesn't shift the certificate see: https://github.com/gocodebox/lifterlms/issues/1163.\n\t.single-llms_my_certificate .container,\n\t.single-llms_certificate .container {\n\t\twidth: 100%;\n\t}\n\n\t// Make only the certificate container and its children visible.\n\t.llms-certificate-container,\n\t.llms-certificate-container * {\n\t\tvisibility: visible !important;\n\t\tbackground: transparent none;\n\t}\n\n \t// Position certificate absolutely and center horizontally.\n\t.llms-certificate-container:not(.cert-template-v2) {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tmargin: 0 auto;\n\t\tbackground: #fff none;\n\t}\n\n\t.llms-certificate-container.cert-template-v2 {\n\t\tmargin: 0 auto !important;\n\t\tprint-color-adjust: exact !important;\n\t\ttransform: scale( 0.95 ); // Don't ram the edge of the paper.\n\t}\n\n}\n","/**\n * Reset.\n */\nbody {\n background-color: #fff;\n background-image: none;\n margin: 0 auto;\n}\n\n.header, .footer,\n.wrap-header, .wrap-footer,\n.site-header, .site-footer,\n.nav-primary, .primary-nav {\n display: none;\n}\n\n.llms-certificate-container {\n margin: 40px auto 0;\n}\n\n/**\n * Legacy Template.\n */\n.llms-certificate-container:not(.cert-template-v2) {\n padding: 0;\n overflow: hidden;\n}\n.llms-certificate-container:not(.cert-template-v2) .certificate-background {\n position: relative;\n z-index: 1;\n width: 100%;\n display: block;\n}\n.llms-certificate-container:not(.cert-template-v2) .llms_certificate,\n.llms-certificate-container:not(.cert-template-v2) .llms_my_certificate {\n margin: 80px;\n position: relative;\n z-index: 2;\n}\n.llms-certificate-container:not(.cert-template-v2) h1:first-child {\n text-align: center;\n}\n\n/**\n * V2 Template\n */\n.llms-certificate-wrapper {\n margin: 0 auto;\n}\n\n.llms-certificate-container.cert-template-v2 {\n width: 100%;\n height: 100%;\n background-size: 100% 100% !important;\n box-sizing: border-box;\n}\n.llms-certificate-container.cert-template-v2 .wp-block-columns .wp-block-column > * {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n/**\n * Certificate Actions Footer.\n */\n.llms-print-certificate {\n margin-top: 40px;\n margin-bottom: 40px;\n text-align: center;\n}\n.llms-print-certificate form {\n display: inline;\n}\n\n@media print {\n html, body {\n print-color-adjust: exact !important;\n height: 100%;\n overflow: hidden;\n }\n @page {\n size: auto;\n }\n .no-print {\n display: none;\n }\n body * {\n visibility: hidden !important;\n background: #fff none;\n }\n .site, .site-content {\n overflow: visible;\n }\n header, aside, nav, footer {\n display: none !important;\n }\n .single-llms_my_certificate .container,\n.single-llms_certificate .container {\n width: 100%;\n }\n .llms-certificate-container,\n.llms-certificate-container * {\n visibility: visible !important;\n background: transparent none;\n }\n .llms-certificate-container:not(.cert-template-v2) {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n margin: 0 auto;\n background: #fff none;\n }\n .llms-certificate-container.cert-template-v2 {\n margin: 0 auto !important;\n print-color-adjust: exact !important;\n transform: scale(0.95);\n }\n}"],"sourceRoot":"../../scss"}
\ No newline at end of file
diff --git a/assets/maps/css/certificates.min.css.map b/assets/maps/css/certificates.min.css.map
new file mode 100644
index 0000000000..d5799c7ce1
--- /dev/null
+++ b/assets/maps/css/certificates.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["certificates.css"],"names":[],"mappings":"AAGA,KACE,qBAAA,CACA,qBAAA,CACA,aAAA,CAGF,8FAIE,YAAA,CAGF,4BACE,kBAAA,CAMF,mDACE,SAAA,CACA,eAAA,CAEF,2EACE,iBAAA,CACA,SAAA,CACA,UAAA,CACA,aAAA,CAEF,6IAEE,WAAA,CACA,iBAAA,CACA,SAAA,CAEF,kEACE,iBAAA,CAMF,0BACE,aAAA,CAGF,6CACE,UAAA,CACA,WAAA,CACA,oCAAA,CACA,6BAAA,CACQ,qBAAA,CAEV,kFACE,uBAAA,CACA,0BAAA,CAMF,wBACE,eAAA,CACA,kBAAA,CACA,iBAAA,CAEF,6BACE,cAAA,CAGF,aACE,UACE,2CAAA,CACQ,mCAAA,CACR,WAAA,CACA,eAAA,CAEF,MACE,SAAA,CAEF,UACE,YAAA,CAEF,OACE,4BAAA,CACA,oBAAA,CAEF,oBACE,gBAAA,CAEF,wBACE,uBAAA,CAEF,2EAEE,UAAA,CAEF,0DAEE,6BAAA,CACA,6BAAA,CAEF,mDACE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,OAAA,CACA,aAAA,CACA,oBAAA,CAEF,6CACE,wBAAA,CACA,2CAAA,CACQ,mCAAA,CACR,6BAAA,CACQ,qBAAA,CAAA","file":"../../css/certificates.min.css","sourcesContent":["/**\n * Reset.\n */\nbody {\n background-color: #fff;\n background-image: none;\n margin: 0 auto;\n}\n\n.header, .footer,\n.wrap-header, .wrap-footer,\n.site-header, .site-footer,\n.nav-primary, .primary-nav {\n display: none;\n}\n\n.llms-certificate-container {\n margin: 40px auto 0;\n}\n\n/**\n * Legacy Template.\n */\n.llms-certificate-container:not(.cert-template-v2) {\n padding: 0;\n overflow: hidden;\n}\n.llms-certificate-container:not(.cert-template-v2) .certificate-background {\n position: relative;\n z-index: 1;\n width: 100%;\n display: block;\n}\n.llms-certificate-container:not(.cert-template-v2) .llms_certificate,\n.llms-certificate-container:not(.cert-template-v2) .llms_my_certificate {\n margin: 80px;\n position: relative;\n z-index: 2;\n}\n.llms-certificate-container:not(.cert-template-v2) h1:first-child {\n text-align: center;\n}\n\n/**\n * V2 Template\n */\n.llms-certificate-wrapper {\n margin: 0 auto;\n}\n\n.llms-certificate-container.cert-template-v2 {\n width: 100%;\n height: 100%;\n background-size: 100% 100% !important;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.llms-certificate-container.cert-template-v2 .wp-block-columns .wp-block-column > * {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n/**\n * Certificate Actions Footer.\n */\n.llms-print-certificate {\n margin-top: 40px;\n margin-bottom: 40px;\n text-align: center;\n}\n.llms-print-certificate form {\n display: inline;\n}\n\n@media print {\n html, body {\n -webkit-print-color-adjust: exact !important;\n print-color-adjust: exact !important;\n height: 100%;\n overflow: hidden;\n }\n @page {\n size: auto;\n }\n .no-print {\n display: none;\n }\n body * {\n visibility: hidden !important;\n background: #fff none;\n }\n .site, .site-content {\n overflow: visible;\n }\n header, aside, nav, footer {\n display: none !important;\n }\n .single-llms_my_certificate .container,\n.single-llms_certificate .container {\n width: 100%;\n }\n .llms-certificate-container,\n.llms-certificate-container * {\n visibility: visible !important;\n background: transparent none;\n }\n .llms-certificate-container:not(.cert-template-v2) {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n margin: 0 auto;\n background: #fff none;\n }\n .llms-certificate-container.cert-template-v2 {\n margin: 0 auto !important;\n -webkit-print-color-adjust: exact !important;\n print-color-adjust: exact !important;\n -webkit-transform: scale(0.95);\n transform: scale(0.95);\n }\n}\n/*# sourceMappingURL=../maps/css/certificates.css.map */\n"],"sourceRoot":"../../css"}
\ No newline at end of file
diff --git a/assets/maps/css/editor.css.map b/assets/maps/css/editor.css.map
new file mode 100644
index 0000000000..52b193e430
--- /dev/null
+++ b/assets/maps/css/editor.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["editor.scss","editor.css"],"names":[],"mappings":"AAAA;;EAEC,YAAA;EACA,yBAAA;EACA,eAAA;ACCD;;ADEA;EACC,kBAAA;ACCD;;ADEA;EACC,qBAAA;ACCD;;ADEA;EACC,WAAA;ACCD;;ADEA;EACC,8BAAA;UAAA,sBAAA;ACCD;;ADGC;EACC,kBAAA;EACA,kBAAA;ACAF;ADCE;EACC,WAAA;EACA,YAAA;EACA,kBAAA;EACA,OAAA;EACA,MAAA;EACA,oBAAA;KAAA,iBAAA;ACCH","file":"../../css/editor.css","sourcesContent":[".llms-block-empty,\n.llms-block-error {\n\tpadding: 1em;\n\tborder: 1px solid #e0e0e0;\n\tfont-size: 16px;\n}\n\n.llms-block-empty {\n\tfont-style: italic;\n}\n\n.wp-block .llms-button-primary {\n\ttext-decoration: none;\n}\n\n.llms-navigation-link-settings .components-panel__row > .components-base-control {\n\twidth: 100%;\n}\n\n.llms-block-icon {\n\ttransform: scale(0.75);\n}\n\n.llms-loop-item {\n\t.llms-video-wrapper {\n\t\taspect-ratio: 16/9;\n\t\tposition: relative;\n\t\tiframe {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tposition: absolute;\n\t\t\tleft: 0;\n\t\t\ttop: 0;\n\t\t\tobject-fit: cover;\n\t\t}\n\t}\n}\n",".llms-block-empty,\n.llms-block-error {\n padding: 1em;\n border: 1px solid #e0e0e0;\n font-size: 16px;\n}\n\n.llms-block-empty {\n font-style: italic;\n}\n\n.wp-block .llms-button-primary {\n text-decoration: none;\n}\n\n.llms-navigation-link-settings .components-panel__row > .components-base-control {\n width: 100%;\n}\n\n.llms-block-icon {\n transform: scale(0.75);\n}\n\n.llms-loop-item .llms-video-wrapper {\n aspect-ratio: 16/9;\n position: relative;\n}\n.llms-loop-item .llms-video-wrapper iframe {\n width: 100%;\n height: 100%;\n position: absolute;\n left: 0;\n top: 0;\n object-fit: cover;\n}"],"sourceRoot":"../../scss"}
\ No newline at end of file
diff --git a/assets/maps/css/editor.min.css.map b/assets/maps/css/editor.min.css.map
new file mode 100644
index 0000000000..2335fb6a2b
--- /dev/null
+++ b/assets/maps/css/editor.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["editor.css"],"names":[],"mappings":"AAAA,oCAEE,WAAA,CACA,wBAAA,CACA,cAAA,CAGF,kBACE,iBAAA,CAGF,+BACE,oBAAA,CAGF,+EACE,UAAA,CAGF,iBACE,6BAAA,CACQ,qBAAA,CAGV,oCACE,iBAAA,CACA,iBAAA,CAEF,2CACE,UAAA,CACA,WAAA,CACA,iBAAA,CACA,MAAA,CACA,KAAA,CACA,mBAAA,CACG,gBAAA","file":"../../css/editor.min.css","sourcesContent":[".llms-block-empty,\n.llms-block-error {\n padding: 1em;\n border: 1px solid #e0e0e0;\n font-size: 16px;\n}\n\n.llms-block-empty {\n font-style: italic;\n}\n\n.wp-block .llms-button-primary {\n text-decoration: none;\n}\n\n.llms-navigation-link-settings .components-panel__row > .components-base-control {\n width: 100%;\n}\n\n.llms-block-icon {\n -webkit-transform: scale(0.75);\n transform: scale(0.75);\n}\n\n.llms-loop-item .llms-video-wrapper {\n aspect-ratio: 16/9;\n position: relative;\n}\n.llms-loop-item .llms-video-wrapper iframe {\n width: 100%;\n height: 100%;\n position: absolute;\n left: 0;\n top: 0;\n -o-object-fit: cover;\n object-fit: cover;\n}\n/*# sourceMappingURL=../maps/css/editor.css.map */\n"],"sourceRoot":"../../css"}
\ No newline at end of file
diff --git a/assets/maps/css/lifterlms.css.map b/assets/maps/css/lifterlms.css.map
new file mode 100644
index 0000000000..552c28245a
--- /dev/null
+++ b/assets/maps/css/lifterlms.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["lifterlms.css","_includes/_extends.scss","_includes/_grid.scss","_includes/_buttons.scss","_includes/_vars.scss","_includes/_llms-donut.scss","_includes/_mixins.scss","_includes/_tooltip.scss","frontend/_main.scss","frontend/_loop.scss","frontend/_course.scss","frontend/_syllabus.scss","frontend/_llms-progress.scss","frontend/_llms-author.scss","frontend/_reviews.scss","frontend/_notices.scss","frontend/_llms-achievements-certs.scss","frontend/_llms-notifications.scss","frontend/_llms-pagination.scss","frontend/_tooltip.scss","_includes/_quiz-result-question-list.scss","frontend/_llms-quizzes.scss","frontend/_voucher.scss","frontend/_llms-access-plans.scss","frontend/_checkout.scss","_includes/_llms-form-field.scss","frontend/_llms-outline-collapse.scss","frontend/_student-dashboard.scss","frontend/_llms-table.scss","_includes/vendor/_font-awesome.scss"],"names":[],"mappings":"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AAA;A7BshHF;;A6BphHA;EACE,gBAAA;A7BuhHF;;A6BrhHA;EACE,gBAAA;A7BwhHF;;A6BthHA;EACE,gBAAA;A7ByhHF;;A6BvhHA;;;EAGE,gBAAA;A7B0hHF;;A6BxhHA;EACE,gBAAA;A7B2hHF;;A6BzhHA;EACE,gBAAA;A7B4hHF;;A6B1hHA;EACE,gBAAA;A7B6hHF;;A6B3hHA;EACE,gBAAA;A7B8hHF;;A6B5hHA;;EAEE,gBAAA;A7B+hHF;;A6B7hHA;EACE,gBAAA;A7BgiHF;;A6B9hHA;EACE,gBAAA;A7BiiHF;;A6B/hHA;EACE,gBAAA;A7BkiHF;;A6BhiHA;EACE,gBAAA;A7BmiHF;;A6BjiHA;EACE,gBAAA;A7BoiHF;;A6BliHA;EACE,gBAAA;A7BqiHF;;A6BniHA;EACE,gBAAA;A7BsiHF;;A6BpiHA;EACE,gBAAA;A7BuiHF;;A6BriHA;EACE,gBAAA;A7BwiHF;;A6BtiHA;EACE,gBAAA;A7ByiHF;;A6BviHA;;EAEE,gBAAA;A7B0iHF;;A6BxiHA;EACE,gBAAA;A7B2iHF;;A6BziHA;EACE,gBAAA;A7B4iHF;;A6B1iHA;EACE,gBAAA;A7B6iHF;;A6B3iHA;EACE,gBAAA;A7B8iHF;;A6B5iHA;EACE,gBAAA;A7B+iHF;;A6B7iHA;EACE,gBAAA;A7BgjHF;;A6B9iHA;EACE,gBAAA;A7BijHF;;A6B/iHA;EACE,gBAAA;A7BkjHF;;A6BhjHA;EACE,gBAAA;A7BmjHF;;A6BjjHA;EACE,gBAAA;A7BojHF;;A6BljHA;EACE,gBAAA;A7BqjHF;;A6BnjHA;EACE,gBAAA;A7BsjHF;;A6BpjHA;EACE,gBAAA;A7BujHF;;A6BrjHA;EACE,gBAAA;A7BwjHF;;A6BtjHA;EACE,gBAAA;A7ByjHF;;A6BvjHA;EACE,gBAAA;A7B0jHF;;A6BxjHA;EACE,gBAAA;A7B2jHF;;A6BzjHA;EACE,gBAAA;A7B4jHF;;A6B1jHA;EACE,gBAAA;A7B6jHF;;A6B3jHA;EACE,gBAAA;A7B8jHF;;A6B5jHA;EACE,gBAAA;A7B+jHF;;A6B7jHA;EACE,gBAAA;A7BgkHF;;A6B9jHA;EACE,gBAAA;A7BikHF;;A6B/jHA;EACE,gBAAA;A7BkkHF;;A6BhkHA;EACE,gBAAA;A7BmkHF;;A6BjkHA;EACE,gBAAA;A7BokHF;;A6BlkHA;;EAEE,gBAAA;A7BqkHF;;A6BnkHA;EACE,gBAAA;A7BskHF;;A6BpkHA;EACE,gBAAA;A7BukHF;;A6BrkHA;;;EAGE,gBAAA;A7BwkHF;;A6BtkHA;EACE,gBAAA;A7BykHF;;A6BvkHA;EACE,gBAAA;A7B0kHF;;A6BxkHA;EACE,gBAAA;A7B2kHF;;A6BzkHA;EACE,gBAAA;A7B4kHF;;A6B1kHA;;EAEE,gBAAA;A7B6kHF;;A6B3kHA;EACE,gBAAA;A7B8kHF;;A6B5kHA;EACE,gBAAA;A7B+kHF;;A6B7kHA;EACE,gBAAA;A7BglHF;;A6B9kHA;EACE,gBAAA;A7BilHF;;A6B/kHA;EACE,gBAAA;A7BklHF;;A6BhlHA;EACE,gBAAA;A7BmlHF;;A6BjlHA;EACE,gBAAA;A7BolHF;;A6BllHA;EACE,gBAAA;A7BqlHF;;A6BnlHA;EACE,gBAAA;A7BslHF;;A6BplHA;EACE,gBAAA;A7BulHF;;A6BrlHA;EACE,gBAAA;A7BwlHF;;A6BtlHA;EACE,gBAAA;A7BylHF;;A6BvlHA;EACE,gBAAA;A7B0lHF;;A6BxlHA;EACE,gBAAA;A7B2lHF;;A6BzlHA;EACE,gBAAA;A7B4lHF;;A6B1lHA;EACE,gBAAA;A7B6lHF;;A6B3lHA;EACE,gBAAA;A7B8lHF;;A6B5lHA;EACE,gBAAA;A7B+lHF;;A6B7lHA;EACE,gBAAA;A7BgmHF;;A6B9lHA;EACE,gBAAA;A7BimHF;;A6B/lHA;EACE,gBAAA;A7BkmHF;;A6BhmHA;EACE,gBAAA;A7BmmHF;;A6BjmHA;EACE,gBAAA;A7BomHF;;A6BlmHA;EACE,gBAAA;A7BqmHF;;A6BnmHA;EACE,gBAAA;A7BsmHF;;A6BpmHA;EACE,gBAAA;A7BumHF;;A6BrmHA;EACE,gBAAA;A7BwmHF;;A6BtmHA;EACE,gBAAA;A7BymHF;;A6BvmHA;EACE,gBAAA;A7B0mHF;;A6BxmHA;;EAEE,gBAAA;A7B2mHF;;A6BzmHA;EACE,gBAAA;A7B4mHF;;A6B1mHA;EACE,gBAAA;A7B6mHF;;A6B3mHA;EACE,gBAAA;A7B8mHF;;A6B5mHA;EACE,gBAAA;A7B+mHF;;A6B7mHA;EACE,gBAAA;A7BgnHF;;A6B9mHA;EACE,gBAAA;A7BinHF;;A6B/mHA;EACE,gBAAA;A7BknHF;;A6BhnHA;EACE,gBAAA;A7BmnHF;;A6BjnHA;EACE,gBAAA;A7BonHF;;A6BlnHA;EACE,gBAAA;A7BqnHF;;A6BnnHA;EACE,gBAAA;A7BsnHF;;A6BpnHA;;EAEE,gBAAA;A7BunHF;;A6BrnHA;EACE,gBAAA;A7BwnHF;;A6BtnHA;EACE,gBAAA;A7BynHF;;A6BvnHA;EACE,gBAAA;A7B0nHF;;A6BxnHA;EACE,gBAAA;A7B2nHF;;A6BznHA;EACE,gBAAA;A7B4nHF;;A6B1nHA;EACE,gBAAA;A7B6nHF;;A6B3nHA;EACE,gBAAA;A7B8nHF;;A6B5nHA;EACE,gBAAA;A7B+nHF;;A6B7nHA;EACE,gBAAA;A7BgoHF;;A6B9nHA;EACE,gBAAA;A7BioHF;;A6B/nHA;EACE,gBAAA;A7BkoHF;;A6BhoHA;EACE,gBAAA;A7BmoHF;;A6BjoHA;EACE,gBAAA;A7BooHF;;A6BloHA;;EAEE,gBAAA;A7BqoHF;;A6BnoHA;EACE,gBAAA;A7BsoHF;;A6BpoHA;EACE,gBAAA;A7BuoHF;;A6BroHA;EACE,gBAAA;A7BwoHF;;A6BtoHA;EACE,gBAAA;A7ByoHF;;A6BvoHA;;EAEE,gBAAA;A7B0oHF;;A6BxoHA;EACE,gBAAA;A7B2oHF;;A6BzoHA;EACE,gBAAA;A7B4oHF;;A6B1oHA;EACE,gBAAA;A7B6oHF;;A6B3oHA;EACE,gBAAA;A7B8oHF;;A6B5oHA;EACE,gBAAA;A7B+oHF;;A6B7oHA;EACE,gBAAA;A7BgpHF;;A6B9oHA;EACE,gBAAA;A7BipHF;;A6B/oHA;EACE,gBAAA;A7BkpHF;;A6BhpHA;EACE,gBAAA;A7BmpHF;;A6BjpHA;EACE,gBAAA;A7BopHF;;A6BlpHA;EACE,gBAAA;A7BqpHF;;A6BnpHA;EACE,gBAAA;A7BspHF;;A6BppHA;EACE,gBAAA;A7BupHF;;A6BrpHA;EACE,gBAAA;A7BwpHF;;A6BtpHA;EACE,gBAAA;A7BypHF;;A6BvpHA;EACE,gBAAA;A7B0pHF;;A6BxpHA;EACE,gBAAA;A7B2pHF;;A6BzpHA;EACE,gBAAA;A7B4pHF;;A6B1pHA;EACE,gBAAA;A7B6pHF;;A6B3pHA;;EAEE,gBAAA;A7B8pHF;;A6B5pHA;EACE,gBAAA;A7B+pHF;;A6B7pHA;EACE,gBAAA;A7BgqHF;;A6B9pHA;EACE,gBAAA;A7BiqHF;;A6B/pHA;;EAEE,gBAAA;A7BkqHF;;A6BhqHA;EACE,gBAAA;A7BmqHF;;A6BjqHA;EACE,gBAAA;A7BoqHF;;A6BlqHA;EACE,gBAAA;A7BqqHF;;A6BnqHA;EACE,gBAAA;A7BsqHF;;A6BpqHA;EACE,gBAAA;A7BuqHF;;A6BrqHA;EACE,gBAAA;A7BwqHF;;A6BtqHA;EACE,gBAAA;A7ByqHF;;A6BvqHA;EACE,gBAAA;A7B0qHF;;A6BxqHA;EACE,gBAAA;A7B2qHF;;A6BzqHA;EACE,gBAAA;A7B4qHF;;A6B1qHA;EACE,gBAAA;A7B6qHF;;A6B3qHA;EACE,gBAAA;A7B8qHF;;A6B5qHA;EACE,gBAAA;A7B+qHF;;A6B7qHA;EACE,gBAAA;A7BgrHF;;A6B9qHA;EACE,gBAAA;A7BirHF;;A6B/qHA;EACE,gBAAA;A7BkrHF;;A6BhrHA;EACE,gBAAA;A7BmrHF;;A6BjrHA;EACE,gBAAA;A7BorHF;;A6BlrHA;;EAEE,gBAAA;A7BqrHF;;A6BnrHA;;EAEE,gBAAA;A7BsrHF;;A6BprHA;EACE,gBAAA;A7BurHF;;A6BrrHA;EACE,gBAAA;A7BwrHF;;A6BtrHA;;EAEE,gBAAA;A7ByrHF;;A6BvrHA;;EAEE,gBAAA;A7B0rHF;;A6BxrHA;EACE,gBAAA;A7B2rHF;;A6BzrHA;;EAEE,gBAAA;A7B4rHF;;A6B1rHA;EACE,gBAAA;A7B6rHF;;A6B3rHA;;;EAGE,gBAAA;A7B8rHF;;A6B5rHA;EACE,gBAAA;A7B+rHF;;A6B7rHA;EACE,gBAAA;A7BgsHF;;A6B9rHA;EACE,gBAAA;A7BisHF;;A6B/rHA;EACE,gBAAA;A7BksHF;;A6BhsHA;EACE,gBAAA;A7BmsHF;;A6BjsHA;EACE,gBAAA;A7BosHF;;A6BlsHA;EACE,gBAAA;A7BqsHF;;A6BnsHA;EACE,gBAAA;A7BssHF;;A6BpsHA;EACE,gBAAA;A7BusHF;;A6BrsHA;EACE,gBAAA;A7BwsHF;;A6BtsHA;EACE,gBAAA;A7BysHF;;A6BvsHA;EACE,gBAAA;A7B0sHF;;A6BxsHA;EACE,gBAAA;A7B2sHF;;A6BzsHA;EACE,gBAAA;A7B4sHF;;A6B1sHA;EACE,gBAAA;A7B6sHF;;A6B3sHA;EACE,gBAAA;A7B8sHF;;A6B5sHA;EACE,gBAAA;A7B+sHF;;A6B7sHA;;EAEE,gBAAA;A7BgtHF;;A6B9sHA;;EAEE,gBAAA;A7BitHF;;A6B/sHA;;EAEE,gBAAA;A7BktHF;;A6BhtHA;EACE,gBAAA;A7BmtHF;;A6BjtHA;EACE,gBAAA;A7BotHF;;A6BltHA;;EAEE,gBAAA;A7BqtHF;;A6BntHA;;EAEE,gBAAA;A7BstHF;;A6BptHA;;EAEE,gBAAA;A7ButHF;;A6BrtHA;EACE,gBAAA;A7BwtHF;;A6BttHA;EACE,gBAAA;A7BytHF;;A6BvtHA;;EAEE,gBAAA;A7B0tHF;;A6BxtHA;EACE,gBAAA;A7B2tHF;;A6BztHA;EACE,gBAAA;A7B4tHF;;A6B1tHA;;EAEE,gBAAA;A7B6tHF;;A6B3tHA;EACE,gBAAA;A7B8tHF;;A6B5tHA;EACE,gBAAA;A7B+tHF;;A6B7tHA;EACE,gBAAA;A7BguHF;;A6B9tHA;EACE,gBAAA;A7BiuHF;;A6B/tHA;EACE,gBAAA;A7BkuHF;;A6BhuHA;EACE,gBAAA;A7BmuHF;;A6BjuHA;EACE,gBAAA;A7BouHF;;A6BluHA;EACE,gBAAA;A7BquHF;;A6BnuHA;EACE,gBAAA;A7BsuHF;;A6BpuHA;EACE,gBAAA;A7BuuHF;;A6BruHA;EACE,gBAAA;A7BwuHF;;A6BtuHA;EACE,gBAAA;A7ByuHF;;A6BvuHA;EACE,gBAAA;A7B0uHF;;A6BxuHA;EACE,gBAAA;A7B2uHF;;A6BzuHA;EACE,gBAAA;A7B4uHF;;A6B1uHA;EACE,gBAAA;A7B6uHF;;A6B3uHA;EACE,gBAAA;A7B8uHF;;A6B5uHA;EACE,gBAAA;A7B+uHF;;A6B7uHA;EACE,gBAAA;A7BgvHF;;A6B9uHA;EACE,gBAAA;A7BivHF;;A6B/uHA;EACE,gBAAA;A7BkvHF;;A6BhvHA;EACE,gBAAA;A7BmvHF;;A6BjvHA;EACE,gBAAA;A7BovHF;;A6BlvHA;EACE,gBAAA;A7BqvHF;;A6BnvHA;EACE,gBAAA;A7BsvHF;;A6BpvHA;EACE,gBAAA;A7BuvHF;;A6BrvHA;EACE,gBAAA;A7BwvHF;;A6BtvHA;EACE,gBAAA;A7ByvHF;;A6BvvHA;EACE,gBAAA;A7B0vHF;;A6BxvHA;EACE,gBAAA;A7B2vHF;;A6BzvHA;;EAEE,gBAAA;A7B4vHF;;A6B1vHA;EACE,gBAAA;A7B6vHF;;A6B3vHA;EACE,gBAAA;A7B8vHF;;A6B5vHA;EACE,gBAAA;A7B+vHF;;A6B7vHA;EACE,gBAAA;A7BgwHF;;A6B9vHA;EACE,gBAAA;A7BiwHF;;A6B/vHA;;EAEE,gBAAA;A7BkwHF;;A6BhwHA;EACE,gBAAA;A7BmwHF;;A6BjwHA;EACE,gBAAA;A7BowHF;;A6BlwHA;EACE,gBAAA;A7BqwHF;;A6BnwHA;EACE,gBAAA;A7BswHF;;A6BpwHA;EACE,gBAAA;A7BuwHF;;A6BrwHA;EACE,gBAAA;A7BwwHF;;A6BtwHA;EACE,gBAAA;A7BywHF;;A6BvwHA;EACE,gBAAA;A7B0wHF;;A6BxwHA;EACE,gBAAA;A7B2wHF;;A6BzwHA;EACE,gBAAA;A7B4wHF;;A6B1wHA;EACE,gBAAA;A7B6wHF;;A6B3wHA;EACE,gBAAA;A7B8wHF;;A6B5wHA;;EAEE,gBAAA;A7B+wHF;;A6B7wHA;;;EAGE,gBAAA;A7BgxHF;;A6B9wHA;EACE,gBAAA;A7BixHF;;A6B/wHA;EACE,gBAAA;A7BkxHF;;A6BhxHA;EACE,gBAAA;A7BmxHF;;A6BjxHA;;EAEE,gBAAA;A7BoxHF;;A6BlxHA;EACE,gBAAA;A7BqxHF;;A6BnxHA;EACE,gBAAA;A7BsxHF;;A6BpxHA;EACE,gBAAA;A7BuxHF;;A6BrxHA;EACE,gBAAA;A7BwxHF;;A6BtxHA;EACE,gBAAA;A7ByxHF;;A6BvxHA;EACE,gBAAA;A7B0xHF;;A6BxxHA;EACE,gBAAA;A7B2xHF;;A6BzxHA;EACE,gBAAA;A7B4xHF;;A6B1xHA;EACE,gBAAA;A7B6xHF;;A6B3xHA;EACE,gBAAA;A7B8xHF;;A6B5xHA;EACE,gBAAA;A7B+xHF;;A6B7xHA;EACE,gBAAA;A7BgyHF;;A6B9xHA;EACE,gBAAA;A7BiyHF;;A6B/xHA;EACE,gBAAA;A7BkyHF;;A6BhyHA;EACE,gBAAA;A7BmyHF;;A6BjyHA;EACE,gBAAA;A7BoyHF;;A6BlyHA;EACE,gBAAA;A7BqyHF;;A6BnyHA;EACE,gBAAA;A7BsyHF;;A6BpyHA;EACE,gBAAA;A7BuyHF;;A6BryHA;EACE,gBAAA;A7BwyHF;;A6BtyHA;EACE,gBAAA;A7ByyHF;;A6BvyHA;EACE,gBAAA;A7B0yHF;;A6BxyHA;EACE,gBAAA;A7B2yHF;;A6BzyHA;EACE,gBAAA;A7B4yHF;;A6B1yHA;EACE,gBAAA;A7B6yHF;;A6B3yHA;EACE,gBAAA;A7B8yHF;;A6B5yHA;EACE,gBAAA;A7B+yHF;;A6B7yHA;EACE,gBAAA;A7BgzHF;;A6B9yHA;EACE,gBAAA;A7BizHF;;A6B/yHA;EACE,gBAAA;A7BkzHF;;A6BhzHA;EACE,gBAAA;A7BmzHF;;A6BjzHA;EACE,gBAAA;A7BozHF;;A6BlzHA;EACE,gBAAA;A7BqzHF;;A6BnzHA;EACE,gBAAA;A7BszHF;;A6BpzHA;EACE,gBAAA;A7BuzHF;;A6BrzHA;EACE,gBAAA;A7BwzHF;;A6BtzHA;EACE,gBAAA;A7ByzHF;;A6BvzHA;;EAEE,gBAAA;A7B0zHF;;A6BxzHA;;EAEE,gBAAA;A7B2zHF;;A6BzzHA;;EAEE,gBAAA;A7B4zHF;;A6B1zHA;;EAEE,gBAAA;A7B6zHF;;A6B3zHA;EACE,gBAAA;A7B8zHF;;A6B5zHA;;EAEE,gBAAA;A7B+zHF;;A6B7zHA;;EAEE,gBAAA;A7Bg0HF;;A6B9zHA;;;;EAIE,gBAAA;A7Bi0HF;;A6B/zHA;;;EAGE,gBAAA;A7Bk0HF;;A6Bh0HA;;EAEE,gBAAA;A7Bm0HF;;A6Bj0HA;;EAEE,gBAAA;A7Bo0HF;;A6Bl0HA;EACE,gBAAA;A7Bq0HF;;A6Bn0HA;EACE,gBAAA;A7Bs0HF;;A6Bp0HA;EACE,gBAAA;A7Bu0HF;;A6Br0HA;EACE,gBAAA;A7Bw0HF;;A6Bt0HA;EACE,gBAAA;A7By0HF;;A6Bv0HA;EACE,gBAAA;A7B00HF;;A6Bx0HA;EACE,gBAAA;A7B20HF;;A6Bz0HA;EACE,gBAAA;A7B40HF;;A6B10HA;EACE,gBAAA;A7B60HF;;A6B30HA;EACE,gBAAA;A7B80HF;;A6B50HA;EACE,gBAAA;A7B+0HF;;A6B70HA;EACE,gBAAA;A7Bg1HF;;A6B90HA;EACE,gBAAA;A7Bi1HF;;A6B/0HA;EACE,gBAAA;A7Bk1HF;;A6Bh1HA;EACE,gBAAA;A7Bm1HF;;A6Bj1HA;EACE,gBAAA;A7Bo1HF;;A6Bl1HA;EACE,gBAAA;A7Bq1HF;;A6Bn1HA;EACE,gBAAA;A7Bs1HF;;A6Bp1HA;EACE,gBAAA;A7Bu1HF;;A6Br1HA;EACE,gBAAA;A7Bw1HF;;A6Bt1HA;EACE,gBAAA;A7By1HF;;A6Bv1HA;EACE,gBAAA;A7B01HF;;A6Bx1HA;EACE,gBAAA;A7B21HF;;A6Bz1HA;EACE,gBAAA;A7B41HF;;A6B11HA;EACE,gBAAA;A7B61HF;;A6B31HA;EACE,gBAAA;A7B81HF;;A6B51HA;EACE,gBAAA;A7B+1HF;;A6B71HA;EACE,gBAAA;A7Bg2HF;;A6B91HA;EACE,gBAAA;A7Bi2HF;;A6B/1HA;EACE,gBAAA;A7Bk2HF;;A6Bh2HA;EACE,gBAAA;A7Bm2HF;;A6Bj2HA;EACE,gBAAA;A7Bo2HF;;A6Bl2HA;EACE,gBAAA;A7Bq2HF;;A6Bn2HA;EACE,gBAAA;A7Bs2HF;;A6Bp2HA;EACE,gBAAA;A7Bu2HF;;A6Br2HA;EACE,gBAAA;A7Bw2HF;;A6Bt2HA;EACE,gBAAA;A7By2HF;;A6Bv2HA;EACE,gBAAA;A7B02HF;;A6Bx2HA;;EAEE,gBAAA;A7B22HF;;A6Bz2HA;EACE,gBAAA;A7B42HF;;A6B12HA;EACE,gBAAA;A7B62HF;;A6B32HA;EACE,gBAAA;A7B82HF;;A6B52HA;EACE,gBAAA;A7B+2HF;;A6B72HA;EACE,gBAAA;A7Bg3HF;;A6B92HA;EACE,gBAAA;A7Bi3HF;;A6B/2HA;EACE,gBAAA;A7Bk3HF;;A6Bh3HA;EACE,gBAAA;A7Bm3HF;;A6Bj3HA;EACE,gBAAA;A7Bo3HF;;A6Bl3HA;EACE,gBAAA;A7Bq3HF;;A6Bn3HA;EACE,gBAAA;A7Bs3HF;;A6Bp3HA;;EAEE,gBAAA;A7Bu3HF;;A6Br3HA;EACE,gBAAA;A7Bw3HF;;A6Bt3HA;EACE,gBAAA;A7By3HF;;A6Bv3HA;EACE,gBAAA;A7B03HF;;A6Bx3HA;;EAEE,gBAAA;A7B23HF;;A6Bz3HA;EACE,gBAAA;A7B43HF;;A6B13HA;EACE,gBAAA;A7B63HF;;A6B33HA;EACE,gBAAA;A7B83HF;;A6B53HA;EACE,gBAAA;A7B+3HF;;A6B73HA;EACE,gBAAA;A7Bg4HF;;A6B93HA;EACE,gBAAA;A7Bi4HF;;A6B/3HA;;;EAGE,gBAAA;A7Bk4HF;;A6Bh4HA;;EAEE,gBAAA;A7Bm4HF;;A6Bj4HA;EACE,gBAAA;A7Bo4HF;;A6Bl4HA;EACE,gBAAA;A7Bq4HF;;A6Bn4HA;EACE,gBAAA;A7Bs4HF;;A6Bp4HA;EACE,gBAAA;A7Bu4HF;;A6Br4HA;EACE,gBAAA;A7Bw4HF;;A6Bt4HA;EACE,gBAAA;A7By4HF;;A6Bv4HA;EACE,gBAAA;A7B04HF;;A6Bx4HA;EACE,gBAAA;A7B24HF;;A6Bz4HA;EACE,gBAAA;A7B44HF;;A6B14HA;EACE,gBAAA;A7B64HF;;A6B34HA;EACE,gBAAA;A7B84HF;;A6B54HA;EACE,gBAAA;A7B+4HF;;A6B74HA;EACE,gBAAA;A7Bg5HF;;A6B94HA;EACE,gBAAA;A7Bi5HF;;A6B/4HA;EACE,gBAAA;A7Bk5HF;;A6Bh5HA;EACE,gBAAA;A7Bm5HF;;A6Bj5HA;EACE,gBAAA;A7Bo5HF;;A6Bl5HA;EACE,gBAAA;A7Bq5HF;;A6Bn5HA;EACE,gBAAA;A7Bs5HF;;A6Bp5HA;EACE,gBAAA;A7Bu5HF;;A6Br5HA;EACE,gBAAA;A7Bw5HF;;A6Bt5HA;EACE,gBAAA;A7By5HF;;A6Bv5HA;EACE,gBAAA;A7B05HF;;A6Bx5HA;EACE,gBAAA;A7B25HF;;A6Bz5HA;EACE,gBAAA;A7B45HF;;A6B15HA;;EAEE,gBAAA;A7B65HF;;A6B35HA;;EAEE,gBAAA;A7B85HF;;A6B55HA;EACE,gBAAA;A7B+5HF;;A6B75HA;EACE,gBAAA;A7Bg6HF;;A6B95HA;EACE,gBAAA;A7Bi6HF;;A6B/5HA;EACE,gBAAA;A7Bk6HF;;A6Bh6HA;EACE,gBAAA;A7Bm6HF;;A6Bj6HA;EACE,gBAAA;A7Bo6HF;;A6Bl6HA;EACE,gBAAA;A7Bq6HF;;A6Bn6HA;EACE,gBAAA;A7Bs6HF;;A6Bp6HA;EACE,gBAAA;A7Bu6HF;;A6Br6HA;;;EAGE,gBAAA;A7Bw6HF;;A6Bt6HA;;EAEE,gBAAA;A7By6HF;;A6Bv6HA;;EAEE,gBAAA;A7B06HF;;A6Bx6HA;;EAEE,gBAAA;A7B26HF;;A6Bz6HA;EACE,gBAAA;A7B46HF;;A6B16HA;EACE,gBAAA;A7B66HF;;A6B36HA;EACE,gBAAA;A7B86HF;;A6B56HA;EACE,gBAAA;A7B+6HF;;A6B76HA;;;;;EAKE,gBAAA;A7Bg7HF;;A6B96HA;EACE,gBAAA;A7Bi7HF;;A6B/6HA;;;EAGE,gBAAA;A7Bk7HF;;A6Bh7HA;;EAEE,gBAAA;A7Bm7HF;;A6Bj7HA;EACE,gBAAA;A7Bo7HF;;A6Bl7HA;EACE,gBAAA;A7Bq7HF;;A6Bn7HA;;;EAGE,gBAAA;A7Bs7HF;;A6Bp7HA;EACE,gBAAA;A7Bu7HF;;A6Br7HA;EACE,gBAAA;A7Bw7HF;;A6Bt7HA;;EAEE,gBAAA;A7By7HF;;A6Bv7HA;;EAEE,gBAAA;A7B07HF;;A6Bx7HA;;EAEE,gBAAA;A7B27HF;;A6Bz7HA;EACE,gBAAA;A7B47HF;;A6B17HA;EACE,gBAAA;A7B67HF;;A6B37HA;EACE,gBAAA;A7B87HF;;A6B57HA;EACE,gBAAA;A7B+7HF;;A6B77HA;EACE,gBAAA;A7Bg8HF;;A6B97HA;EACE,gBAAA;A7Bi8HF;;A6B/7HA;EACE,gBAAA;A7Bk8HF;;A6Bh8HA;EACE,gBAAA;A7Bm8HF;;A6Bj8HA;;EAEE,gBAAA;A7Bo8HF;;A6Bl8HA;EACE,gBAAA;A7Bq8HF;;A6Bn8HA;EACE,gBAAA;A7Bs8HF;;A6Bp8HA;EACE,gBAAA;A7Bu8HF;;A6Br8HA;EACE,gBAAA;A7Bw8HF;;A6Bt8HA;EACE,gBAAA;A7By8HF;;A6Bv8HA;EACE,gBAAA;A7B08HF;;A6Bx8HA;EACE,gBAAA;A7B28HF;;A6Bz8HA;EACE,gBAAA;A7B48HF;;A6B18HA;EACE,gBAAA;A7B68HF;;A6B38HA;EACE,gBAAA;A7B88HF;;A6B58HA;EACE,gBAAA;A7B+8HF;;A6B78HA;EACE,gBAAA;A7Bg9HF;;A6B98HA;EACE,gBAAA;A7Bi9HF;;A6B/8HA;EACE,gBAAA;A7Bk9HF;;A6Bh9HA;EACE,gBAAA;A7Bm9HF;;A6Bj9HA;EACE,gBAAA;A7Bo9HF;;A6Bl9HA;EACE,gBAAA;A7Bq9HF;;A6Bn9HA;EACE,gBAAA;A7Bs9HF;;A6Bp9HA;EACE,gBAAA;A7Bu9HF;;A6Br9HA;EACE,gBAAA;A7Bw9HF;;A6Bt9HA;EACE,gBAAA;A7By9HF;;A6Bv9HA;EACE,gBAAA;A7B09HF;;A6Bx9HA;EACE,gBAAA;A7B29HF;;A6Bz9HA;EACE,gBAAA;A7B49HF;;A6B19HA;EACE,gBAAA;A7B69HF;;A6B39HA;EACE,gBAAA;A7B89HF;;A6B59HA;EACE,gBAAA;A7B+9HF;;A6B79HA;EACE,gBAAA;A7Bg+HF;;A6B99HA;EACE,gBAAA;A7Bi+HF;;A6B/9HA;EACE,gBAAA;A7Bk+HF;;A6Bh+HA;EACE,gBAAA;A7Bm+HF;;A6Bj+HA;EACE,gBAAA;A7Bo+HF;;A6Bl+HA;EACE,gBAAA;A7Bq+HF;;A6Bn+HA;EACE,gBAAA;A7Bs+HF;;A6Bp+HA;EACE,gBAAA;A7Bu+HF;;A6Br+HA;EACE,gBAAA;A7Bw+HF;;A6Bt+HA;EACE,gBAAA;A7By+HF;;A6Bv+HA;;;EAGE,gBAAA;A7B0+HF;;A6Bx+HA;EACE,gBAAA;A7B2+HF;;A6Bz+HA;EACE,gBAAA;A7B4+HF;;A6B1+HA;EACE,gBAAA;A7B6+HF;;A6B3+HA;EACE,gBAAA;A7B8+HF;;A6B5+HA;EACE,gBAAA;A7B++HF;;A6B7+HA;EACE,gBAAA;A7Bg/HF;;A6B9+HA;EACE,gBAAA;A7Bi/HF;;A6B/+HA;EACE,gBAAA;A7Bk/HF;;A6Bh/HA;EACE,gBAAA;A7Bm/HF;;A6Bj/HA;EACE,gBAAA;A7Bo/HF;;A6Bl/HA;EACE,gBAAA;A7Bq/HF;;A6Bn/HA;EACE,gBAAA;A7Bs/HF;;A6Bp/HA;EACE,gBAAA;A7Bu/HF;;A6Br/HA;EACE,gBAAA;A7Bw/HF;;A6Bt/HA;EACE,gBAAA;A7By/HF;;A6Bv/HA;EACE,gBAAA;A7B0/HF;;A6Bx/HA;EACE,gBAAA;A7B2/HF;;A6Bz/HA;EACE,gBAAA;A7B4/HF;;A6B1/HA;EACE,gBAAA;A7B6/HF;;A6B3/HA;EACE,gBAAA;A7B8/HF;;A6B5/HA;EACE,gBAAA;A7B+/HF;;A6B7/HA;;EAEE,gBAAA;A7BggIF;;A6B9/HA;EACE,gBAAA;A7BigIF;;A6B//HA;EACE,gBAAA;A7BkgIF;;A6BhgIA;EACE,gBAAA;A7BmgIF;;A6BjgIA;EACE,gBAAA;A7BogIF;;A6BlgIA;EACE,gBAAA;A7BqgIF;;A6BngIA;EACE,gBAAA;A7BsgIF;;A6BpgIA;EACE,gBAAA;A7BugIF;;A6BrgIA;EACE,gBAAA;A7BwgIF;;A6BtgIA;EACE,gBAAA;A7BygIF;;A6BvgIA;EACE,gBAAA;A7B0gIF;;A6BxgIA;EACE,gBAAA;A7B2gIF;;A6BzgIA;EACE,gBAAA;A7B4gIF;;A6B1gIA;EACE,gBAAA;A7B6gIF;;A6B3gIA;EACE,gBAAA;A7B8gIF;;A6B5gIA;EACE,gBAAA;A7B+gIF;;A6B7gIA;;EAEE,gBAAA;A7BghIF;;A6B9gIA;EACE,gBAAA;A7BihIF;;A6B/gIA;EACE,gBAAA;A7BkhIF;;A6BhhIA;EACE,gBAAA;A7BmhIF;;A6BjhIA;EACE,gBAAA;A7BohIF;;A6BlhIA;;EAEE,gBAAA;A7BqhIF;;A6BnhIA;EACE,gBAAA;A7BshIF;;A6BphIA;EACE,gBAAA;A7BuhIF;;A6BrhIA;EACE,gBAAA;A7BwhIF;;A6BthIA;;;EAGE,gBAAA;A7ByhIF;;A6BvhIA;;EAEE,gBAAA;A7B0hIF;;A6BxhIA;;EAEE,gBAAA;A7B2hIF;;A6BzhIA;;EAEE,gBAAA;A7B4hIF;;A6B1hIA;;EAEE,gBAAA;A7B6hIF;;A6B3hIA;EACE,gBAAA;A7B8hIF;;A6B5hIA;EACE,gBAAA;A7B+hIF;;A6B7hIA;EACE,gBAAA;A7BgiIF;;A6B9hIA;EACE,gBAAA;A7BiiIF;;A6B/hIA;EACE,gBAAA;A7BkiIF;;A6BhiIA;EACE,gBAAA;A7BmiIF;;A6BjiIA;EACE,gBAAA;A7BoiIF;;A6BliIA;EACE,gBAAA;A7BqiIF;;A6BniIA;EACE,gBAAA;A7BsiIF;;A6BpiIA;EACE,gBAAA;A7BuiIF;;A6BriIA;EACE,gBAAA;A7BwiIF;;A6BtiIA;;EAEE,gBAAA;A7ByiIF;;A6BviIA;;EAEE,gBAAA;A7B0iIF;;A6BxiIA;;EAEE,gBAAA;A7B2iIF;;A6BziIA;EACE,gBAAA;A7B4iIF;;A6B1iIA;;EAEE,gBAAA;A7B6iIF;;A6B3iIA;;EAEE,gBAAA;A7B8iIF;;A6B5iIA;EACE,gBAAA;A7B+iIF;;A6B7iIA;EACE,gBAAA;A7BgjIF;;A6B9iIA;EACE,gBAAA;A7BijIF;;A6B/iIA;EACE,gBAAA;A7BkjIF;;A6BhjIA;EACE,gBAAA;A7BmjIF;;A6BjjIA;EACE,gBAAA;A7BojIF;;A6BljIA;EACE,gBAAA;A7BqjIF;;A6BnjIA;EACE,gBAAA;A7BsjIF;;A6BpjIA;EACE,gBAAA;A7BujIF;;A6BrjIA;EACE,gBAAA;A7BwjIF;;A6BtjIA;EACE,gBAAA;A7ByjIF;;A6BvjIA;EACE,gBAAA;A7B0jIF;;A6BxjIA;EACE,gBAAA;A7B2jIF;;A6BzjIA;EACE,gBAAA;A7B4jIF;;A6B1jIA;EACE,gBAAA;A7B6jIF;;A6B3jIA;EACE,gBAAA;A7B8jIF;;A6B5jIA;EACE,gBAAA;A7B+jIF;;A6B7jIA;EACE,gBAAA;A7BgkIF;;A6B9jIA;EACE,gBAAA;A7BikIF;;A6B/jIA;EACE,gBAAA;A7BkkIF;;A6BhkIA;;EAEE,gBAAA;A7BmkIF;;A6BjkIA;EACE,gBAAA;A7BokIF;;A6BlkIA;EACE,gBAAA;A7BqkIF;;A6BnkIA;EACE,gBAAA;A7BskIF;;A6BpkIA;EACE,gBAAA;A7BukIF;;A6BrkIA;EACE,gBAAA;A7BwkIF;;A6BtkIA;EACE,gBAAA;A7BykIF;;A6BvkIA;EACE,gBAAA;A7B0kIF;;A6BxkIA;EACE,gBAAA;A7B2kIF;;A6BzkIA;EACE,gBAAA;A7B4kIF;;A6B1kIA;EACE,gBAAA;A7B6kIF;;A6B3kIA;EACE,gBAAA;A7B8kIF;;A6B5kIA;EACE,gBAAA;A7B+kIF;;A6B7kIA;EACE,gBAAA;A7BglIF;;A6B9kIA;EACE,gBAAA;A7BilIF;;A6B/kIA;EACE,gBAAA;A7BklIF;;A6BhlIA;EACE,gBAAA;A7BmlIF;;A6BjlIA;EACE,gBAAA;A7BolIF;;A6BllIA;EACE,gBAAA;A7BqlIF;;A6BnlIA;EACE,gBAAA;A7BslIF;;A6BplIA;EACE,gBAAA;A7BulIF;;A6BrlIA;EACE,gBAAA;A7BwlIF;;A6BtlIA;EACE,gBAAA;A7BylIF;;A6BvlIA;EACE,gBAAA;A7B0lIF;;A6BxlIA;EACE,gBAAA;A7B2lIF;;A6BzlIA;EACE,gBAAA;A7B4lIF;;A6B1lIA;EACE,gBAAA;A7B6lIF;;A6B3lIA;EACE,gBAAA;A7B8lIF;;A6B5lIA;EACE,gBAAA;A7B+lIF;;A6B7lIA;EACE,gBAAA;A7BgmIF;;A6B9lIA;EACE,gBAAA;A7BimIF;;A6B/lIA;EACE,gBAAA;A7BkmIF;;A6BhmIA;EACE,gBAAA;A7BmmIF;;A6BjmIA;EACE,gBAAA;A7BomIF;;A6BlmIA;EACE,gBAAA;A7BqmIF;;A6BnmIA;EACE,gBAAA;A7BsmIF;;A6BpmIA;EACE,gBAAA;A7BumIF;;A6BrmIA;EACE,gBAAA;A7BwmIF;;A6BtmIA;EACE,gBAAA;A7BymIF;;A6BvmIA;EACE,gBAAA;A7B0mIF;;A6BxmIA;EACE,gBAAA;A7B2mIF;;A6BzmIA;EACE,gBAAA;A7B4mIF;;A6B1mIA;EACE,gBAAA;A7B6mIF;;A6B3mIA;EACE,gBAAA;A7B8mIF;;A6B5mIA;EACE,gBAAA;A7B+mIF;;A6B7mIA;EACE,gBAAA;A7BgnIF;;A6B9mIA;EACE,gBAAA;A7BinIF;;A6B/mIA;EACE,gBAAA;A7BknIF;;A6BhnIA;EACE,gBAAA;A7BmnIF;;A6BjnIA;EACE,gBAAA;A7BonIF;;A6BlnIA;EACE,gBAAA;A7BqnIF;;A6BnnIA;;EAEE,gBAAA;A7BsnIF;;A6BpnIA;;;EAGE,gBAAA;A7BunIF;;A6BrnIA;EACE,gBAAA;A7BwnIF;;A6BtnIA;EACE,gBAAA;A7BynIF;;A6BvnIA;;EAEE,gBAAA;A7B0nIF;;A6BxnIA;EACE,gBAAA;A7B2nIF;;A6BznIA;EACE,gBAAA;A7B4nIF;;A6B1nIA;EACE,gBAAA;A7B6nIF;;A6B3nIA;EACE,gBAAA;A7B8nIF;;A6B5nIA;EACE,gBAAA;A7B+nIF;;A6B7nIA;EACE,gBAAA;A7BgoIF;;A6B9nIA;EACE,gBAAA;A7BioIF;;A6B/nIA;EACE,gBAAA;A7BkoIF;;A6BhoIA;EACE,gBAAA;A7BmoIF;;A6BjoIA;EACE,gBAAA;A7BooIF;;A6BloIA;;EAEE,gBAAA;A7BqoIF;;A6BnoIA;;EAEE,gBAAA;A7BsoIF;;A6BpoIA;EACE,gBAAA;A7BuoIF;;A6BroIA;EACE,gBAAA;A7BwoIF;;A6BtoIA;EACE,gBAAA;A7ByoIF;;A6BvoIA;EACE,gBAAA;A7B0oIF;;A6BxoIA;EACE,gBAAA;A7B2oIF;;A6BzoIA;EACE,gBAAA;A7B4oIF;;A6B1oIA;;EAEE,gBAAA;A7B6oIF;;A6B3oIA;;EAEE,gBAAA;A7B8oIF;;A6B5oIA;EACE,gBAAA;A7B+oIF;;A6B7oIA;EACE,gBAAA;A7BgpIF;;A6B9oIA;EACE,gBAAA;A7BipIF;;A6B/oIA;EACE,gBAAA;A7BkpIF;;A6BhpIA;;EAEE,gBAAA;A7BmpIF;;A6BjpIA;;EAEE,gBAAA;A7BopIF;;A6BlpIA;EACE,gBAAA;A7BqpIF;;A6BnpIA;EACE,gBAAA;A7BspIF;;A6BppIA;EACE,gBAAA;A7BupIF;;A6BrpIA;;;EAGE,gBAAA;A7BwpIF;;A6BtpIA;;EAEE,gBAAA;A7BypIF;;A6BvpIA;;EAEE,gBAAA;A7B0pIF;;A6BxpIA;;EAEE,gBAAA;A7B2pIF;;A6BzpIA;;EAEE,gBAAA;A7B4pIF;;A6B1pIA;EACE,gBAAA;A7B6pIF;;A6B3pIA;;;EAGE,gBAAA;A7B8pIF;;A6B5pIA;EACE,gBAAA;A7B+pIF;;A6B7pIA;EACE,gBAAA;A7BgqIF;;A6B9pIA;EACE,gBAAA;A7BiqIF;;A6B/pIA;EACE,gBAAA;A7BkqIF;;A6BhqIA;;EAEE,gBAAA;A7BmqIF;;A6BjqIA;;EAEE,gBAAA;A7BoqIF;;A6BlqIA;EACE,gBAAA;A7BqqIF;;A6BnqIA;EACE,gBAAA;A7BsqIF;;A6BpqIA;EACE,gBAAA;A7BuqIF;;A6BrqIA;EACE,gBAAA;A7BwqIF;;A6BtqIA;EACE,gBAAA;A7ByqIF;;A6BvqIA;EACE,gBAAA;A7B0qIF;;A6BxqIA;EACE,gBAAA;A7B2qIF;;A6BzqIA;EACE,gBAAA;A7B4qIF;;A6B1qIA;EACE,gBAAA;A7B6qIF;;A6B3qIA;EACE,gBAAA;A7B8qIF;;A6B5qIA;EACE,gBAAA;A7B+qIF;;A6B7qIA;EACE,kBAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;EACA,YAAA;EACA,gBAAA;EACA,sBAAA;EACA,SAAA;A7BgrIF;;A6B9qIA;;EAEE,gBAAA;EACA,WAAA;EACA,YAAA;EACA,SAAA;EACA,iBAAA;EACA,UAAA;A7BirIF","file":"../../css/lifterlms.css","sourcesContent":["@charset \"UTF-8\";\n.llms-pagination ul:before, .llms-pagination ul:after,\n.llms-form-fields:before,\n.llms-checkout-cols-2:before,\n.llms-access-plans:before,\n.llms-loop-list:before,\n.llms-cols:before,\n.llms-form-fields:after,\n.llms-checkout-cols-2:after,\n.llms-access-plans:after,\n.llms-loop-list:after,\n.llms-cols:after {\n content: \" \";\n display: table;\n}\n.llms-pagination ul:after,\n.llms-form-fields:after,\n.llms-checkout-cols-2:after,\n.llms-access-plans:after,\n.llms-loop-list:after,\n.llms-cols:after {\n clear: both;\n}\n\n.llms-cols .llms-col {\n width: 100%;\n}\n@media all and (min-width: 600px) {\n .llms-cols [class*=llms-col-] {\n float: left;\n }\n}\n\n.llms-flex-cols {\n display: flex;\n flex-flow: row wrap;\n}\n.llms-flex-cols [class*=llms-col] {\n flex: 0 1 auto;\n width: 100%;\n}\n\n@media all and (min-width: 600px) {\n .llms-cols .llms-col-1, .llms-flex-cols .llms-col-1 {\n width: 100%;\n }\n .llms-cols .llms-col-2, .llms-flex-cols .llms-col-2 {\n width: 50%;\n }\n .llms-cols .llms-col-3, .llms-flex-cols .llms-col-3 {\n width: 33.3333333333%;\n }\n .llms-cols .llms-col-4, .llms-flex-cols .llms-col-4 {\n width: 25%;\n }\n .llms-cols .llms-col-5, .llms-flex-cols .llms-col-5 {\n width: 20%;\n }\n .llms-cols .llms-col-6, .llms-flex-cols .llms-col-6 {\n width: 16.6666666667%;\n }\n .llms-cols .llms-col-7, .llms-flex-cols .llms-col-7 {\n width: 14.2857142857%;\n }\n .llms-cols .llms-col-8, .llms-flex-cols .llms-col-8 {\n width: 12.5%;\n }\n .llms-cols .llms-col-9, .llms-flex-cols .llms-col-9 {\n width: 11.1111111111%;\n }\n .llms-cols .llms-col-10, .llms-flex-cols .llms-col-10 {\n width: 10%;\n }\n .llms-cols .llms-col-11, .llms-flex-cols .llms-col-11 {\n width: 9.0909090909%;\n }\n .llms-cols .llms-col-12, .llms-flex-cols .llms-col-12 {\n width: 8.3333333333%;\n }\n}\n.llms-button-action,\n.llms-button-danger,\n.llms-button-primary,\n.llms-button-secondary {\n border: none;\n border-radius: 8px;\n color: #fefefe;\n cursor: pointer;\n display: inline-block;\n font-size: 18px;\n font-weight: 700;\n text-decoration: none;\n text-shadow: none;\n line-height: 1;\n margin: 0;\n max-width: 100%;\n padding: 12px 24px;\n position: relative;\n transition: all 0.5s ease;\n}\n.llms-button-action:disabled,\n.llms-button-danger:disabled,\n.llms-button-primary:disabled,\n.llms-button-secondary:disabled {\n opacity: 0.5;\n}\n.llms-button-action:hover, .llms-button-action:active,\n.llms-button-danger:hover,\n.llms-button-danger:active,\n.llms-button-primary:hover,\n.llms-button-primary:active,\n.llms-button-secondary:hover,\n.llms-button-secondary:active {\n color: #fefefe;\n}\n.llms-button-action:focus,\n.llms-button-danger:focus,\n.llms-button-primary:focus,\n.llms-button-secondary:focus {\n color: #fefefe;\n}\n.llms-button-action.auto,\n.llms-button-danger.auto,\n.llms-button-primary.auto,\n.llms-button-secondary.auto {\n width: auto;\n}\n.llms-button-action.full,\n.llms-button-danger.full,\n.llms-button-primary.full,\n.llms-button-secondary.full {\n display: block;\n text-align: center;\n width: 100%;\n}\n.llms-button-action.square,\n.llms-button-danger.square,\n.llms-button-primary.square,\n.llms-button-secondary.square {\n padding: 12px;\n}\n.llms-button-action.small,\n.llms-button-danger.small,\n.llms-button-primary.small,\n.llms-button-secondary.small {\n font-size: 13px;\n padding: 8px 14px;\n}\n.llms-button-action.small.square,\n.llms-button-danger.small.square,\n.llms-button-primary.small.square,\n.llms-button-secondary.small.square {\n padding: 8px;\n}\n.llms-button-action.large,\n.llms-button-danger.large,\n.llms-button-primary.large,\n.llms-button-secondary.large {\n font-size: 18px;\n line-height: 1.2;\n padding: 16px 32px;\n}\n.llms-button-action.large.square,\n.llms-button-danger.large.square,\n.llms-button-primary.large.square,\n.llms-button-secondary.large.square {\n padding: 16px;\n}\n.llms-button-action.large .fa,\n.llms-button-danger.large .fa,\n.llms-button-primary.large .fa,\n.llms-button-secondary.large .fa {\n left: -7px;\n position: relative;\n}\n\n/* Fix for cases where link color overrides the button color */\na.llms-button-action,\na.llms-button-danger,\na.llms-button-primary {\n color: #fefefe;\n}\n\n.llms-button-primary {\n background: #466dd8;\n}\n.llms-button-primary:hover, .llms-button-primary.clicked {\n background: #274eba;\n}\n.llms-button-primary:focus, .llms-button-primary:active {\n background: #6888df;\n}\n\n.llms-button-secondary {\n background: #e1e1e1;\n color: #444;\n}\n.llms-button-secondary:hover {\n color: #414141;\n background: #cdcdcd;\n}\n.llms-button-secondary:focus, .llms-button-secondary:active {\n color: #414141;\n background: #ebebeb;\n}\n\n/* Fix for cases where link color overrides the button color */\na.llms-button-secondary {\n color: #444;\n}\n\n.llms-button-action {\n background: #c05621;\n}\n.llms-button-action:hover, .llms-button-action.clicked {\n background: #f67d28;\n}\n.llms-button-action:focus, .llms-button-action:active {\n background: #faad76;\n}\n\n.llms-button-danger {\n background: #bb231c;\n}\n.llms-button-danger:hover {\n background: #981c17;\n}\n.llms-button-danger:focus, .llms-button-danger:active {\n background: #cd261f;\n}\n\n.llms-button-outline {\n background: transparent;\n border: 3px solid #1D2327;\n border-radius: 8px;\n color: #1D2327;\n cursor: pointer;\n font-size: 16px;\n font-weight: 700;\n text-decoration: none;\n text-shadow: none;\n line-height: 1;\n margin: 0;\n max-width: 100%;\n padding: 12px 24px;\n position: relative;\n transition: all 0.5s ease;\n}\n.llms-button-outline:disabled {\n opacity: 0.5;\n}\n.llms-button-outline:hover, .llms-button-outline:active {\n color: #1D2327;\n}\n.llms-button-outline:focus {\n color: #1D2327;\n}\n.llms-button-outline.auto {\n width: auto;\n}\n.llms-button-outline.full {\n display: block;\n text-align: center;\n width: 100%;\n}\n.llms-button-outline.square {\n padding: 12px;\n}\n\n.llms-course-continue-button {\n display: inline-block;\n}\n\n.llms-donut {\n background-color: #f1f1f1;\n background-image: none;\n border-radius: 50%;\n color: #466dd8;\n height: 200px;\n overflow: hidden;\n position: relative;\n width: 200px;\n}\n.llms-donut:before, .llms-donut:after {\n content: \" \";\n display: table;\n}\n.llms-donut:after {\n clear: both;\n}\n.llms-donut svg {\n overflow: visible !important;\n pointer-events: none;\n width: 100%;\n}\n.llms-donut svg path {\n fill: none;\n stroke-width: 35px;\n stroke: #466dd8;\n}\n.llms-donut.mini {\n height: 36px;\n width: 36px;\n}\n.llms-donut.mini .percentage {\n font-size: 10px;\n}\n.llms-donut.small {\n height: 100px;\n width: 100px;\n}\n.llms-donut.small .percentage {\n font-size: 18px;\n}\n.llms-donut.medium {\n height: 130px;\n width: 130px;\n}\n.llms-donut.medium .percentage {\n font-size: 26px;\n}\n.llms-donut.large {\n height: 260px;\n width: 260px;\n}\n.llms-donut.large .percentage {\n font-size: 48px;\n}\n.llms-donut .inside {\n align-items: center;\n background: #fff;\n border-radius: 50%;\n box-sizing: border-box;\n display: flex;\n flex-wrap: wrap;\n height: 80%;\n justify-content: center;\n left: 50%;\n position: absolute;\n text-align: center;\n transform: translate(-50%, -50%);\n width: 80%;\n top: 50%;\n z-index: 3;\n}\n.llms-donut .percentage {\n line-height: 1.2;\n font-size: 34px;\n}\n.llms-donut .caption {\n font-size: 75%;\n}\n\n.lifterlms [data-tip],\n.lifterlms [data-title-default],\n.lifterlms [data-title-active],\n.llms-metabox [data-tip],\n.llms-metabox [data-title-default],\n.llms-metabox [data-title-active],\n.llms-mb-container [data-tip],\n.llms-mb-container [data-title-default],\n.llms-mb-container [data-title-active],\n.llms-quiz-wrapper [data-tip],\n.llms-quiz-wrapper [data-title-default],\n.llms-quiz-wrapper [data-title-active] {\n position: relative;\n}\n.lifterlms [data-tip].tip--top-right:before,\n.lifterlms [data-title-default].tip--top-right:before,\n.lifterlms [data-title-active].tip--top-right:before,\n.llms-metabox [data-tip].tip--top-right:before,\n.llms-metabox [data-title-default].tip--top-right:before,\n.llms-metabox [data-title-active].tip--top-right:before,\n.llms-mb-container [data-tip].tip--top-right:before,\n.llms-mb-container [data-title-default].tip--top-right:before,\n.llms-mb-container [data-title-active].tip--top-right:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:before {\n bottom: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--top-right:hover:before,\n.lifterlms [data-title-default].tip--top-right:hover:before,\n.lifterlms [data-title-active].tip--top-right:hover:before,\n.llms-metabox [data-tip].tip--top-right:hover:before,\n.llms-metabox [data-title-default].tip--top-right:hover:before,\n.llms-metabox [data-title-active].tip--top-right:hover:before,\n.llms-mb-container [data-tip].tip--top-right:hover:before,\n.llms-mb-container [data-title-default].tip--top-right:hover:before,\n.llms-mb-container [data-title-active].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-right:after,\n.lifterlms [data-title-default].tip--top-right:after,\n.lifterlms [data-title-active].tip--top-right:after,\n.llms-metabox [data-tip].tip--top-right:after,\n.llms-metabox [data-title-default].tip--top-right:after,\n.llms-metabox [data-title-active].tip--top-right:after,\n.llms-mb-container [data-tip].tip--top-right:after,\n.llms-mb-container [data-title-default].tip--top-right:after,\n.llms-mb-container [data-title-active].tip--top-right:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:after {\n border-top-color: #444;\n left: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-right:hover:after,\n.lifterlms [data-title-default].tip--top-right:hover:after,\n.lifterlms [data-title-active].tip--top-right:hover:after,\n.llms-metabox [data-tip].tip--top-right:hover:after,\n.llms-metabox [data-title-default].tip--top-right:hover:after,\n.llms-metabox [data-title-active].tip--top-right:hover:after,\n.llms-mb-container [data-tip].tip--top-right:hover:after,\n.llms-mb-container [data-title-default].tip--top-right:hover:after,\n.llms-mb-container [data-title-active].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--top-left:before,\n.lifterlms [data-title-default].tip--top-left:before,\n.lifterlms [data-title-active].tip--top-left:before,\n.llms-metabox [data-tip].tip--top-left:before,\n.llms-metabox [data-title-default].tip--top-left:before,\n.llms-metabox [data-title-active].tip--top-left:before,\n.llms-mb-container [data-tip].tip--top-left:before,\n.llms-mb-container [data-title-default].tip--top-left:before,\n.llms-mb-container [data-title-active].tip--top-left:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:before {\n bottom: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--top-left:hover:before,\n.lifterlms [data-title-default].tip--top-left:hover:before,\n.lifterlms [data-title-active].tip--top-left:hover:before,\n.llms-metabox [data-tip].tip--top-left:hover:before,\n.llms-metabox [data-title-default].tip--top-left:hover:before,\n.llms-metabox [data-title-active].tip--top-left:hover:before,\n.llms-mb-container [data-tip].tip--top-left:hover:before,\n.llms-mb-container [data-title-default].tip--top-left:hover:before,\n.llms-mb-container [data-title-active].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-left:after,\n.lifterlms [data-title-default].tip--top-left:after,\n.lifterlms [data-title-active].tip--top-left:after,\n.llms-metabox [data-tip].tip--top-left:after,\n.llms-metabox [data-title-default].tip--top-left:after,\n.llms-metabox [data-title-active].tip--top-left:after,\n.llms-mb-container [data-tip].tip--top-left:after,\n.llms-mb-container [data-title-default].tip--top-left:after,\n.llms-mb-container [data-title-active].tip--top-left:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:after {\n border-top-color: #444;\n right: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-left:hover:after,\n.lifterlms [data-title-default].tip--top-left:hover:after,\n.lifterlms [data-title-active].tip--top-left:hover:after,\n.llms-metabox [data-tip].tip--top-left:hover:after,\n.llms-metabox [data-title-default].tip--top-left:hover:after,\n.llms-metabox [data-title-active].tip--top-left:hover:after,\n.llms-mb-container [data-tip].tip--top-left:hover:after,\n.llms-mb-container [data-title-default].tip--top-left:hover:after,\n.llms-mb-container [data-title-active].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--bottom-left:before,\n.lifterlms [data-title-default].tip--bottom-left:before,\n.lifterlms [data-title-active].tip--bottom-left:before,\n.llms-metabox [data-tip].tip--bottom-left:before,\n.llms-metabox [data-title-default].tip--bottom-left:before,\n.llms-metabox [data-title-active].tip--bottom-left:before,\n.llms-mb-container [data-tip].tip--bottom-left:before,\n.llms-mb-container [data-title-default].tip--bottom-left:before,\n.llms-mb-container [data-title-active].tip--bottom-left:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:before {\n top: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:before,\n.lifterlms [data-title-default].tip--bottom-left:hover:before,\n.lifterlms [data-title-active].tip--bottom-left:hover:before,\n.llms-metabox [data-tip].tip--bottom-left:hover:before,\n.llms-metabox [data-title-default].tip--bottom-left:hover:before,\n.llms-metabox [data-title-active].tip--bottom-left:hover:before,\n.llms-mb-container [data-tip].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-left:after,\n.lifterlms [data-title-default].tip--bottom-left:after,\n.lifterlms [data-title-active].tip--bottom-left:after,\n.llms-metabox [data-tip].tip--bottom-left:after,\n.llms-metabox [data-title-default].tip--bottom-left:after,\n.llms-metabox [data-title-active].tip--bottom-left:after,\n.llms-mb-container [data-tip].tip--bottom-left:after,\n.llms-mb-container [data-title-default].tip--bottom-left:after,\n.llms-mb-container [data-title-active].tip--bottom-left:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:after {\n border-bottom-color: #444;\n right: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:after,\n.lifterlms [data-title-default].tip--bottom-left:hover:after,\n.lifterlms [data-title-active].tip--bottom-left:hover:after,\n.llms-metabox [data-tip].tip--bottom-left:hover:after,\n.llms-metabox [data-title-default].tip--bottom-left:hover:after,\n.llms-metabox [data-title-active].tip--bottom-left:hover:after,\n.llms-mb-container [data-tip].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip].tip--bottom-right:before,\n.lifterlms [data-title-default].tip--bottom-right:before,\n.lifterlms [data-title-active].tip--bottom-right:before,\n.llms-metabox [data-tip].tip--bottom-right:before,\n.llms-metabox [data-title-default].tip--bottom-right:before,\n.llms-metabox [data-title-active].tip--bottom-right:before,\n.llms-mb-container [data-tip].tip--bottom-right:before,\n.llms-mb-container [data-title-default].tip--bottom-right:before,\n.llms-mb-container [data-title-active].tip--bottom-right:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:before {\n top: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:before,\n.lifterlms [data-title-default].tip--bottom-right:hover:before,\n.lifterlms [data-title-active].tip--bottom-right:hover:before,\n.llms-metabox [data-tip].tip--bottom-right:hover:before,\n.llms-metabox [data-title-default].tip--bottom-right:hover:before,\n.llms-metabox [data-title-active].tip--bottom-right:hover:before,\n.llms-mb-container [data-tip].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-right:after,\n.lifterlms [data-title-default].tip--bottom-right:after,\n.lifterlms [data-title-active].tip--bottom-right:after,\n.llms-metabox [data-tip].tip--bottom-right:after,\n.llms-metabox [data-title-default].tip--bottom-right:after,\n.llms-metabox [data-title-active].tip--bottom-right:after,\n.llms-mb-container [data-tip].tip--bottom-right:after,\n.llms-mb-container [data-title-default].tip--bottom-right:after,\n.llms-mb-container [data-title-active].tip--bottom-right:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:after {\n border-bottom-color: #444;\n left: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:after,\n.lifterlms [data-title-default].tip--bottom-right:hover:after,\n.lifterlms [data-title-active].tip--bottom-right:hover:after,\n.llms-metabox [data-tip].tip--bottom-right:hover:after,\n.llms-metabox [data-title-default].tip--bottom-right:hover:after,\n.llms-metabox [data-title-active].tip--bottom-right:hover:after,\n.llms-mb-container [data-tip].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip]:before,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-active]:before,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-active]:before,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-active]:before,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-active]:before {\n background: #444;\n border-radius: 4px;\n color: #fff;\n font-size: 13px;\n line-height: 1.2;\n padding: 8px;\n max-width: 300px;\n width: max-content;\n}\n.lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:after {\n content: \"\";\n border: 6px solid transparent;\n height: 0;\n width: 0;\n}\n.lifterlms [data-tip]:before, .lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:before,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:before,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:before,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:before,\n.llms-quiz-wrapper [data-title-active]:after {\n opacity: 0;\n transition: all 0.2s 0.1s ease;\n position: absolute;\n pointer-events: none;\n visibility: hidden;\n}\n.lifterlms [data-tip]:hover:before, .lifterlms [data-tip]:hover:after,\n.lifterlms [data-title-default]:hover:before,\n.lifterlms [data-title-default]:hover:after,\n.lifterlms [data-title-active]:hover:before,\n.lifterlms [data-title-active]:hover:after,\n.llms-metabox [data-tip]:hover:before,\n.llms-metabox [data-tip]:hover:after,\n.llms-metabox [data-title-default]:hover:before,\n.llms-metabox [data-title-default]:hover:after,\n.llms-metabox [data-title-active]:hover:before,\n.llms-metabox [data-title-active]:hover:after,\n.llms-mb-container [data-tip]:hover:before,\n.llms-mb-container [data-tip]:hover:after,\n.llms-mb-container [data-title-default]:hover:before,\n.llms-mb-container [data-title-default]:hover:after,\n.llms-mb-container [data-title-active]:hover:before,\n.llms-mb-container [data-title-active]:hover:after,\n.llms-quiz-wrapper [data-tip]:hover:before,\n.llms-quiz-wrapper [data-tip]:hover:after,\n.llms-quiz-wrapper [data-title-default]:hover:before,\n.llms-quiz-wrapper [data-title-default]:hover:after,\n.llms-quiz-wrapper [data-title-active]:hover:before,\n.llms-quiz-wrapper [data-title-active]:hover:after {\n opacity: 1;\n transition: all 0 0.1s ease;\n visibility: visible;\n z-index: 99999999;\n}\n.lifterlms [data-tip]:before,\n.llms-metabox [data-tip]:before,\n.llms-mb-container [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:before {\n content: attr(data-tip);\n}\n.lifterlms [data-tip].active:before,\n.llms-metabox [data-tip].active:before,\n.llms-mb-container [data-tip].active:before,\n.llms-quiz-wrapper [data-tip].active:before {\n content: attr(data-tip-active);\n}\n\n.llms-membership-image {\n display: block;\n margin: 0 auto;\n}\n\n.llms-course-image {\n display: block;\n margin: 0 auto;\n max-width: 100%;\n}\n\n.llms-featured-image {\n display: block;\n margin: 0 auto;\n}\n\n.llms-image-thumb {\n width: 150px;\n}\n\n.llms-video-wrapper .center-video {\n height: auto;\n max-width: 100%;\n overflow: hidden;\n position: relative;\n padding-top: 56.25%;\n text-align: center;\n}\n.llms-video-wrapper .center-video > .wp-video,\n.llms-video-wrapper .center-video .fluid-width-video-wrapper,\n.llms-video-wrapper .center-video iframe, .llms-video-wrapper .center-video object, .llms-video-wrapper .center-video embed {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.llms-video-wrapper .center-video > .wp-video {\n width: 100% !important;\n}\n.llms-video-wrapper .center-video .fluid-width-video-wrapper {\n padding-top: 0 !important;\n}\n\n.clear {\n clear: both;\n width: 100%;\n}\n\n.llms-featured-image {\n text-align: center;\n}\n\n#main-content .llms-payment-options p {\n margin: 0;\n font-size: 16px;\n}\n\n.llms-option {\n display: block;\n position: relative;\n margin: 20px 0;\n padding-left: 40px;\n font-size: 16px;\n}\n.llms-option label {\n cursor: pointer;\n position: static;\n}\n\n.llms-option:first-child {\n margin-top: 0;\n}\n\n.llms-option:last-child {\n margin-bottom: 0;\n}\n\n#main-content .llms-option:last-child {\n margin-bottom: 0;\n}\n\n.llms-option input[type=radio] {\n display: block;\n position: absolute;\n top: 3px;\n left: 0;\n z-index: 0;\n}\n\n.llms-option input[type=radio] {\n display: inline-block;\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n display: none;\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n appearance: none;\n z-index: 20;\n position: absolute;\n top: 0;\n left: -2px;\n display: inline-block;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n cursor: pointer;\n vertical-align: middle;\n box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.5) 0 0 0 1px;\n background: #efefef;\n background-image: radial-gradient(ellipse at center, #bb231c 0%, #bb231c 40%, #efefef 45%);\n background-repeat: no-repeat;\n transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n}\n\n.llms-option input[type=radio]:checked + label span.llms-radio {\n transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n background-position: -24px 0;\n}\n\n.llms-option input[type=radio]:checked + label span.llms-radio {\n background-position: 0 0;\n}\n\n.llms-option input[type=submit] {\n border: none;\n background: #bb231c;\n color: #fff;\n font-size: 20px;\n padding: 10px 0;\n border-radius: 3px;\n cursor: pointer;\n width: 100%;\n}\n\n.llms-styled-text {\n padding: 14px 0;\n}\n\n.llms-notice-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n border: 1px solid #ccc;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n.llms-notice-box input[type=text] {\n height: auto;\n}\n.llms-notice-box .col-1-1 {\n width: 100%;\n}\n.llms-notice-box .col-1-1 input[type=text] {\n width: 100%;\n}\n.llms-notice-box .col-1-2 {\n width: 50%;\n float: left;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .col-1-2 {\n width: 100%;\n }\n}\n.llms-notice-box .col-1-3 {\n width: 33%;\n float: left;\n margin-right: 10px;\n}\n.llms-notice-box .col-1-4 {\n width: 25%;\n float: left;\n margin-right: 10px;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .col-1-4 {\n width: 100%;\n }\n}\n.llms-notice-box .col-1-6 {\n width: 16.6%;\n float: left;\n margin-right: 10px;\n}\n.llms-notice-box .col-1-8 {\n width: 11%;\n float: right;\n}\n.llms-notice-box .llms-pad-right {\n padding-right: 10px;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .llms-pad-right {\n padding-right: 0;\n }\n}\n\ninput[type=text].cc_cvv,\n#cc_cvv {\n margin-right: 0;\n width: 23%;\n float: right;\n}\n\n.llms-clear-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n\n.llms-price-label {\n font-weight: normal;\n}\n\n.llms-final-price {\n font-weight: bold;\n float: right;\n}\n\n.llms-center-content {\n text-align: center;\n}\n\n.llms-input-text {\n background-color: #fff;\n border: 1px solid #ddd;\n color: #333;\n font-size: 18px;\n font-weight: 300;\n padding: 16px;\n width: 100%;\n}\n\n.llms-price {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n.llms-price-loop {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n.courses .entry {\n padding: 0;\n}\n\n.list-view .site-content .llms-course-list .hentry, .list-view .site-content .llms-membership-list .hentry {\n border-top: 0;\n padding-top: 0;\n}\n\n.llms-content {\n width: 100%;\n}\n\n.llms-lesson-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n.llms-template-wrapper {\n width: 100%;\n display: block;\n clear: both;\n}\n\n.llms-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n.llms-styled-select {\n border: 1px solid #ccc;\n box-sizing: border-box;\n border-radius: 3px;\n overflow: hidden;\n position: relative;\n}\n\n.llms-styled-select, .llms-styled-select select {\n width: 100%;\n}\n\nselect:focus {\n outline: none;\n}\n\n.llms-styled-select select {\n height: 34px;\n padding: 5px 0 5px 5px;\n background: transparent;\n border: none;\n -webkit-appearance: none;\n font-size: 16px;\n color: #444444;\n}\n\n@-moz-document url-prefix() {\n .--ms-styled-select select {\n width: 110%;\n }\n}\n.llms-styled-select .fa-sort-desc {\n position: absolute;\n top: 0;\n right: 12px;\n font-size: 24px;\n color: #ccc;\n}\n\nselect::-ms-expand {\n display: none;\n}\n\n_:-o-prefocus .llms-styled-select, .selector .llms-styled-select {\n background: none;\n}\n\n.llms-form-item-wrapper {\n margin-bottom: 1em;\n}\n\n/* Circle Graph */\n.llms-progress-circle {\n position: relative;\n width: 200px;\n height: 200px;\n float: left;\n}\n\n.llms-progress-circle-count {\n top: 27%;\n position: absolute;\n width: 94%;\n text-align: center;\n color: #666;\n font-size: 44px;\n}\n\n.llms-progress-circle svg {\n position: absolute;\n width: 200px;\n height: 200px;\n}\n\n.llms-progress-circle circle {\n fill: transparent;\n}\n\nsvg .llms-background-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #f1f2f1;\n stroke-dasharray: 430;\n}\n\nsvg .llms-animated-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #e5554e;\n stroke-dasharray: 430;\n stroke-dashoffset: 410;\n}\n\n.llms-widget-syllabus .llms-lesson.current-lesson .lesson-title {\n font-weight: 700;\n}\n.llms-widget-syllabus .section-header {\n display: flex;\n gap: 5px;\n}\n.llms-widget-syllabus .section-header .llms-collapse-caret {\n text-align: left;\n width: 14px;\n}\n.llms-widget-syllabus .llms-lesson-complete, .llms-widget-syllabus .lesson-complete-placeholder {\n font-size: 18px;\n margin-right: 5px;\n color: #ccc;\n}\n.llms-widget-syllabus .llms-lesson-complete.done, .llms-widget-syllabus .lesson-complete-placeholder.done {\n color: #466dd8;\n}\n.llms-widget-syllabus .section-title {\n font-weight: bold;\n}\n.llms-widget-syllabus .lesson-title a {\n text-decoration: underline;\n}\n.llms-widget-syllabus .lesson-title.done a {\n color: #666;\n text-decoration: line-through;\n}\n.llms-widget-syllabus ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-widget-syllabus ul li {\n list-style-type: none;\n margin: 0 0 10px 0;\n}\n.llms-widget-syllabus ul li ul {\n margin: 0 0 15px 0;\n}\n.llms-widget-syllabus ul li ul li {\n align-items: flex-start;\n display: flex;\n margin: 0 0 10px 0;\n padding: 0;\n}\n\n.llms-remove-coupon {\n float: right;\n}\n\n/*.llms-lesson-link-locked, .llms-lesson-link-locked:hover {\n background: #f1f1f1;\n display: block;\n color: #a6a6a6;\n min-height: 85px;\n padding: 15px;\n text-decoration: none;\n position: relative;\n}*/\n.llms-lesson-preview.is-complete .llms-lesson-link-locked {\n padding-left: 75px;\n}\n\n.llms-lesson-tooltip {\n display: none;\n position: absolute;\n color: #000000;\n background-color: #c0c0c0;\n padding: 0.25em;\n border-radius: 2px;\n z-index: 100;\n top: 0;\n left: 50%;\n text-align: center;\n -webkit-transform: translateX(-50%) translateY(-100%);\n transform: translateX(-50%) translateY(-100%);\n}\n\n/* arrows - :after */\n.llms-lesson-tooltip:after {\n content: \"\";\n width: 0;\n height: 0;\n border-top: 8px solid #c0c0c0;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n position: absolute;\n bottom: -8px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.llms-lesson-tooltip.active {\n display: inline-block;\n}\n\n.llms-favorite-wrapper {\n cursor: pointer;\n}\n.llms-favorite-wrapper .fa-heart {\n color: #EF476F;\n}\n\n.llms-has-favorite .llms-parent-course-link {\n display: inline-block;\n margin-bottom: 20px;\n}\n.llms-has-favorite .llms-parent-course-link + .llms-favorite-wrapper {\n float: right;\n margin: 0;\n}\n\n.llms-syllabus-wrapper .llms-has-favorite {\n text-align: left;\n}\n.llms-syllabus-wrapper .llms-has-favorite .llms-favorite-wrapper {\n display: inline-block;\n}\n\n.llms-loop-list {\n list-style: none;\n margin: 0 -10px;\n padding: 0;\n}\n@media all and (min-width: 600px) {\n .llms-loop-list.cols-1 .llms-loop-item {\n width: 100%;\n }\n .llms-loop-list.cols-2 .llms-loop-item {\n width: 50%;\n }\n .llms-loop-list.cols-3 .llms-loop-item {\n width: 33.3333333333%;\n }\n .llms-loop-list.cols-4 .llms-loop-item {\n width: 25%;\n }\n .llms-loop-list.cols-5 .llms-loop-item {\n width: 20%;\n }\n .llms-loop-list.cols-6 .llms-loop-item {\n width: 16.6666666667%;\n }\n}\n\n.llms-loop-item {\n float: left;\n list-style: none;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.llms-loop-item-content {\n background: #fefefe;\n border: 1px solid #dedede;\n border-radius: 6px;\n overflow: hidden;\n padding-bottom: 15px;\n margin: 10px;\n}\n.llms-loop-item-content .llms-loop-link {\n color: #010101;\n display: block;\n text-decoration: none;\n}\n.llms-loop-item-content .llms-loop-link:visited {\n color: #010101;\n}\n.llms-loop-item-content .llms-featured-image {\n display: block;\n max-width: 100%;\n}\n.llms-loop-item-content .llms-loop-title {\n color: #010101;\n margin: 15px 0;\n}\n.llms-loop-item-content .llms-loop-title:hover {\n color: #466dd8;\n}\n.llms-loop-item-content .llms-meta,\n.llms-loop-item-content .llms-author,\n.llms-loop-item-content .llms-loop-title {\n padding: 0 15px;\n}\n.llms-loop-item-content .llms-meta,\n.llms-loop-item-content .llms-author {\n color: #444;\n display: block;\n font-size: 14px;\n margin-bottom: 10px;\n}\n.llms-loop-item-content .llms-meta:last-child,\n.llms-loop-item-content .llms-author:last-child {\n margin-bottom: 0;\n}\n.llms-loop-item-content .llms-author {\n align-items: center;\n display: flex;\n gap: 5px;\n}\n.llms-loop-item-content .llms-featured-img-wrap {\n overflow: hidden;\n}\n.llms-loop-item-content p {\n margin-bottom: 0;\n}\n.llms-loop-item-content .llms-progress {\n margin: 0;\n height: 0.4em;\n}\n.llms-loop-item-content .llms-progress .progress__indicator {\n display: none;\n}\n.llms-loop-item-content .llms-progress .llms-progress-bar {\n background-color: #f6f6f6;\n right: 0;\n top: 0;\n}\n\n.llms-meta-info {\n margin: 40px 0;\n}\n.llms-meta-info .llms-meta-title {\n margin: 0;\n}\n.llms-meta-info .llms-meta p {\n margin-bottom: 0;\n}\n.llms-meta-info .llms-meta span {\n font-weight: 700;\n}\n\n.llms-course-progress {\n margin: 40px auto;\n max-width: 480px;\n text-align: center;\n}\n\n.llms-syllabus-wrapper {\n margin: 20px 0;\n text-align: left;\n}\n.llms-syllabus-wrapper .llms-section-title {\n margin: 40px 0 10px;\n}\n.llms-syllabus-wrapper .llms-section-title + .llms-lesson-preview {\n border-top: 1px solid #dedede;\n}\n\n.llms-lesson-preview {\n border-right: 1px solid #dedede;\n border-bottom: 1px solid #dedede;\n border-left: 1px solid #dedede;\n display: block;\n margin: 0;\n max-width: 100%;\n position: relative;\n}\n.llms-lesson-preview.current-lesson .llms-lesson-title {\n font-weight: 400;\n}\n.llms-lesson-preview .llms-lesson-link {\n background: #fefefe;\n color: #010101;\n display: block;\n padding: 15px;\n text-decoration: none;\n transition: background-color 0.3s ease;\n}\n.llms-lesson-preview .llms-lesson-link:hover {\n background: #eaeaea;\n}\n.llms-lesson-preview .llms-lesson-link:visited {\n color: #212121;\n}\n.llms-lesson-preview .llms-lesson-link.llms-lesson-link-locked {\n background: #EFEFEF;\n color: #666;\n}\n.llms-lesson-preview .llms-lesson-link.llms-lesson-link-locked:hover {\n background: #dedede;\n}\n.llms-lesson-preview .llms-lesson-link .llms-lesson-preview-row {\n display: flex;\n flex-direction: row-reverse;\n}\n.llms-lesson-preview .llms-lesson-thumbnail {\n margin-bottom: 15px;\n}\n.llms-lesson-preview .llms-lesson-thumbnail img {\n display: block;\n height: auto;\n width: 100%;\n}\n.llms-lesson-preview .llms-lesson-title {\n font-weight: 700;\n margin: 0 auto 5px;\n}\n.llms-lesson-preview .llms-lesson-title:last-child {\n margin-bottom: 0;\n}\n.llms-lesson-preview .llms-lesson-excerpt {\n margin-top: 5px;\n}\n.llms-lesson-preview .llms-lesson-excerpt p {\n margin: 0 0 10px 0;\n padding: 0;\n}\n.llms-lesson-preview .llms-lesson-excerpt p:last-of-type {\n margin: 0;\n}\n.llms-lesson-preview .llms-main {\n flex-grow: 1;\n}\n.llms-lesson-preview .llms-extra {\n min-width: 50px;\n text-align: right;\n}\n.llms-lesson-preview .llms-lesson-counter,\n.llms-lesson-preview .llms-free-lesson-svg,\n.llms-lesson-preview .llms-lesson-complete,\n.llms-lesson-preview .llms-lesson-complete-placeholder {\n display: block;\n}\n.llms-lesson-preview.is-free .llms-lesson-complete, .llms-lesson-preview.is-complete .llms-lesson-complete {\n color: #466dd8;\n}\n.llms-lesson-preview.is-complete .llms-lesson-title:not(.llms-student-dashboard .llms-lesson-title):not(.llms-course-navigation .llms-lesson-title) {\n text-decoration: line-through;\n}\n.llms-lesson-preview .llms-icon-free {\n background: #466dd8;\n border-radius: 6px;\n color: #fefefe;\n display: inline-block;\n font-size: 14px;\n font-weight: bold;\n line-height: 1;\n padding: 5px 8px 4px;\n white-space: nowrap;\n}\n.llms-lesson-preview.is-incomplete .llms-lesson-complete {\n color: #cacaca;\n}\n.llms-lesson-preview .llms-lesson-counter {\n font-size: 16px;\n margin-bottom: 5px;\n}\n.llms-lesson-preview .llms-free-lesson-svg {\n fill: currentColor;\n height: 23px;\n width: 50px;\n}\n\n.llms-course-navigation {\n display: flex;\n gap: 20px;\n}\n.llms-course-navigation .llms-prev-lesson,\n.llms-course-navigation .llms-next-lesson,\n.llms-course-navigation .llms-back-to-course {\n flex: 1;\n}\n.llms-course-navigation .llms-prev-lesson + .llms-back-to-course {\n text-align: right;\n}\n.llms-course-navigation .llms-next-lesson .llms-lesson-preview .llms-lesson-link {\n text-align: right;\n}\n.llms-course-navigation .llms-lesson-preview {\n border: 1px solid #dedede;\n}\n.llms-course-navigation .llms-lesson-link {\n display: block;\n}\n\n/* progress bar */\n.llms-progress {\n clear: both;\n display: flex;\n flex-direction: row-reverse;\n position: relative;\n height: 1em;\n width: 100%;\n margin: 15px 0;\n}\n\n.llms-progress .llms-progress-bar {\n background-color: #dedede;\n position: relative;\n height: 0.4em;\n top: 0.3em;\n width: 100%;\n}\n\n.llms-progress .progress-bar-complete {\n background-color: #ef476f;\n height: 100%;\n}\n\n.progress__indicator {\n float: right;\n text-align: right;\n height: 1em;\n line-height: 1em;\n margin-left: 5px;\n white-space: nowrap;\n}\n\n.llms-author .name {\n margin-left: 5px;\n}\n.llms-author .label {\n margin-left: 5px;\n}\n.llms-author .avatar {\n border-radius: 50%;\n}\n.llms-author .bio {\n margin-top: 5px;\n}\n\n.llms-instructor-info {\n margin: 40px 0;\n}\n.llms-instructor-info .llms-meta-title {\n margin: 0;\n}\n.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author {\n margin-left: 0;\n}\n.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author {\n margin-right: 0;\n}\n.llms-instructor-info .llms-instructors .llms-author {\n background: #fefefe;\n border: 1px solid #dedede;\n border-top: 4px solid #466dd8;\n border-bottom-right-radius: 6px;\n border-bottom-left-radius: 6px;\n color: #010101;\n text-align: center;\n margin: 45px 0 0;\n padding: 0 20px 20px;\n}\n.llms-instructor-info .llms-instructors .llms-author .avatar {\n background: #466dd8;\n border: 4px solid #466dd8;\n display: block;\n margin: -35px auto 10px;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info {\n display: block;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name {\n font-weight: 700;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label {\n font-size: 85%;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio {\n font-size: 90%;\n margin-bottom: 0;\n}\n\n.llms_review {\n margin: 20px 0px;\n padding: 10px;\n}\n.llms_review h5 {\n font-size: 17px;\n margin: 3px 0px;\n}\n.llms_review h6 {\n font-size: 13px;\n}\n.llms_review p {\n font-size: 15px;\n}\n\n.review_box [type=text] {\n margin: 10px 0px;\n}\n.review_box h5 {\n color: red;\n display: none;\n}\n.review_box + .thank_you_box {\n display: none;\n}\n\n.llms-notice {\n background: rgba(70, 109, 216, 0.3);\n border-color: #466dd8;\n border-style: solid;\n border-width: 1px;\n border-radius: 6px;\n padding: 15px;\n margin-bottom: 40px;\n}\n.llms-notice a {\n color: inherit;\n}\n.llms-notice p:last-child, .llms-notice ul:last-child {\n margin-bottom: 0;\n}\n.llms-notice li {\n list-style-type: none;\n}\n.llms-notice.llms-debug {\n background: rgba(202, 202, 202, 0.3);\n border-color: #cacaca;\n}\n.llms-notice.llms-error {\n background: rgba(187, 35, 28, 0.15);\n border-color: #bb231c;\n}\n.llms-notice.llms-success {\n background: rgba(77, 141, 60, 0.15);\n border-color: #4d8d3c;\n}\n\n.entry-content .llms-notice {\n margin: 0 0 40px;\n}\n.entry-content .llms-notice li {\n list-style-type: none;\n}\n\nul.llms-achievements-loop,\n.lifterlms ul.llms-achievements-loop,\nul.llms-certificates-loop,\n.lifterlms ul.llms-certificates-loop {\n list-style-type: none;\n margin: 0 -10px;\n padding: 0;\n}\nul.llms-achievements-loop:before, ul.llms-achievements-loop:after,\n.lifterlms ul.llms-achievements-loop:before,\n.lifterlms ul.llms-achievements-loop:after,\nul.llms-certificates-loop:before,\nul.llms-certificates-loop:after,\n.lifterlms ul.llms-certificates-loop:before,\n.lifterlms ul.llms-certificates-loop:after {\n content: \" \";\n display: table;\n}\nul.llms-achievements-loop:after,\n.lifterlms ul.llms-achievements-loop:after,\nul.llms-certificates-loop:after,\n.lifterlms ul.llms-certificates-loop:after {\n clear: both;\n}\nul.llms-achievements-loop li.llms-achievement-loop-item,\nul.llms-achievements-loop li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop li.llms-certificate-loop-item,\nul.llms-certificates-loop li.llms-achievement-loop-item,\nul.llms-certificates-loop li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop li.llms-certificate-loop-item {\n box-sizing: border-box;\n display: block;\n float: left;\n list-style-type: none;\n margin: 0;\n padding: 10px;\n width: 100%;\n}\n@media all and (min-width: 600px) {\n ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item {\n width: 100%;\n }\n ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item {\n width: 50%;\n }\n ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item {\n width: 33.3333333333%;\n }\n ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item {\n width: 25%;\n }\n ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item {\n width: 20%;\n }\n}\n\n.llms-achievement,\n.llms-certificate {\n background: #fefefe;\n border: none;\n border-radius: 12px;\n color: #010101;\n display: block;\n padding: 20px 0;\n text-decoration: none;\n width: 100%;\n}\n.llms-achievement:hover,\n.llms-certificate:hover {\n background: #eaeaea;\n}\n.llms-achievement .llms-achievement-img,\n.llms-certificate .llms-achievement-img {\n display: block;\n margin: 0 auto;\n max-width: 80%;\n}\n.llms-achievement .llms-achievement-title,\n.llms-certificate .llms-achievement-title {\n color: #010101;\n font-size: 16px;\n margin: 0;\n padding: 10px;\n text-align: center;\n}\n.llms-achievement .llms-certificate-title,\n.llms-certificate .llms-certificate-title {\n color: #010101;\n font-size: 16px;\n margin: 0;\n padding: 0 0 10px;\n}\n.llms-achievement .llms-achievement-info,\n.llms-achievement .llms-achievement-date,\n.llms-certificate .llms-achievement-info,\n.llms-certificate .llms-achievement-date {\n display: none;\n}\n.llms-achievement .llms-achievement-content,\n.llms-certificate .llms-achievement-content {\n padding: 20px;\n}\n.llms-achievement .llms-achievement-content:empty,\n.llms-certificate .llms-achievement-content:empty {\n padding: 0;\n}\n.llms-achievement .llms-achievement-content *:last-child,\n.llms-certificate .llms-achievement-content *:last-child {\n margin-bottom: 0;\n}\n\n.llms-certificate {\n border: 4px double #dedede;\n padding: 20px 10px;\n background: #fefefe;\n text-align: center;\n}\n.llms-certificate:hover {\n background: #fefefe;\n border-color: #eaeaea;\n}\n\n.llms-achievement-modal .llms-achievement {\n background: #fff;\n}\n.llms-achievement-modal .llms-achievement-info {\n display: block;\n}\n.llms-achievement-modal .llms-achievement-title {\n display: none;\n}\n\n.llms-notification {\n background: #fefefe;\n box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;\n border-top: 4px solid #466dd8;\n color: #010101;\n opacity: 0;\n padding: 12px;\n position: fixed;\n right: -800px;\n top: 24px;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out;\n visibility: hidden;\n width: auto;\n z-index: 9999999;\n}\n.llms-notification:before, .llms-notification:after {\n content: \" \";\n display: table;\n}\n.llms-notification:after {\n clear: both;\n}\n.llms-notification.visible {\n left: 12px;\n opacity: 1;\n right: 12px;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, transform 0.2s ease-in-out;\n visibility: visible;\n}\n.llms-notification.visible:hover .llms-notification-dismiss {\n opacity: 1;\n}\n.llms-notification .llms-notification-content {\n align-items: center;\n display: flex;\n}\n.llms-notification .llms-notification-main {\n align-self: flex-start;\n flex: 4;\n order: 2;\n}\n.llms-notification .llms-notification-title {\n color: #010101;\n font-size: 18px;\n margin: 0;\n}\n.llms-notification .llms-notification-body {\n font-size: 14px;\n line-height: 1.4;\n}\n.llms-notification .llms-notification-body p, .llms-notification .llms-notification-body li {\n font-size: inherit;\n}\n.llms-notification .llms-notification-body p {\n margin-bottom: 8px;\n}\n.llms-notification .llms-notification-body p img {\n max-width: 100%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert {\n background: #f6f6f6;\n border: 1px solid #d0d0d0;\n box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;\n padding: 16px 16px 24px;\n margin-top: 12px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert-title {\n font-size: 16px;\n font-weight: 700;\n margin: 12px auto;\n text-align: center;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body {\n width: 100%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(1) {\n width: 65%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(2) {\n width: 35%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(3) {\n width: 85%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(4) {\n width: 75%;\n margin-top: 18px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(5) {\n width: 70%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(6) {\n margin-left: 12px;\n margin-bottom: -24px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(7) {\n width: 65%;\n margin-right: 12px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-line {\n border-radius: 2px;\n height: 8px;\n background: #b0b0b0;\n background-image: linear-gradient(to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100%);\n background-repeat: no-repeat;\n margin: 4px auto;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-dot {\n background: #b0b0b0;\n border-radius: 50%;\n display: inline-block;\n content: \"\";\n height: 24px;\n width: 24px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert p {\n margin-bottom: 0;\n}\n.llms-notification .llms-notification-aside {\n align-self: flex-start;\n flex: 1;\n margin-right: 12px;\n order: 1;\n}\n.llms-notification .llms-notification-icon {\n display: block;\n max-width: 64px;\n}\n.llms-notification .llms-notification-footer {\n border-top: 1px solid #e5e5e5;\n font-size: 12px;\n margin-top: 12px;\n padding: 6px 6px 0;\n text-align: right;\n}\n.llms-notification .llms-notification-footer a {\n color: #010101;\n}\n.llms-notification .llms-notification-dismiss {\n color: #bb231c;\n cursor: pointer;\n font-size: 22px;\n position: absolute;\n right: 10px;\n top: 8px;\n transition: opacity 0.4s ease-in-out;\n}\n\n.llms-sd-notification-center .llms-notification-list,\n.llms-sd-notification-center .llms-notification-list-item {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-sd-notification-center .llms-notification-list-item:hover .llms-notification {\n background: #fcfcfc;\n}\n.llms-sd-notification-center .llms-notification {\n opacity: 1;\n border-top: 1px solid #e5e5e5;\n left: auto;\n padding: 24px;\n position: relative;\n right: auto;\n top: auto;\n visibility: visible;\n width: auto;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-aside {\n max-width: 64px;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-footer {\n border: none;\n padding: 0;\n text-align: left;\n}\n.llms-sd-notification-center .llms-notification .llms-progress {\n display: none !important;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-date {\n color: #515151;\n float: left;\n margin-right: 6px;\n}\n.llms-sd-notification-center .llms-notification .llms-mini-cert {\n margin: 0 auto;\n max-width: 380px;\n}\n\n@media all and (min-width: 480px) {\n .llms-notification {\n right: -800px;\n width: 360px;\n }\n .llms-notification.visible {\n left: auto;\n right: 24px;\n }\n .llms-notification .llms-notification-dismiss {\n opacity: 0;\n }\n}\n.llms-pagination ul {\n list-style-type: none;\n margin: 40px 0;\n padding: 0;\n}\n.llms-pagination ul li {\n float: left;\n}\n.llms-pagination ul li a {\n border-bottom: 0;\n text-decoration: none;\n}\n.llms-pagination ul li .page-numbers {\n padding: 0.5em;\n text-decoration: underline;\n}\n.llms-pagination ul li .page-numbers.current {\n text-decoration: none;\n}\n\n.llms-tooltip {\n background: #2a2a2a;\n border-radius: 4px;\n color: #fff;\n font-size: 14px;\n line-height: 1.2;\n opacity: 0;\n top: -20px;\n padding: 8px 12px;\n left: 50%;\n position: absolute;\n pointer-events: none;\n transform: translateX(-50%);\n transition: opacity 0.2s ease, top 0.2s ease;\n max-width: 320px;\n}\n.llms-tooltip.show {\n top: -28px;\n opacity: 1;\n}\n.llms-tooltip:after {\n bottom: -8px;\n border-top: 8px solid #2a2a2a;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n content: \"\";\n height: 0;\n left: 50%;\n position: absolute;\n transform: translateX(-50%);\n width: 0;\n}\n\n.webui-popover-title {\n font-size: initial;\n font-weight: initial;\n line-height: initial;\n}\n\n.webui-popover-inverse .webui-popover-inner .close {\n color: #fff;\n opacity: 0.6;\n text-shadow: none;\n}\n.webui-popover-inverse .webui-popover-inner .close:hover {\n opacity: 0.8;\n}\n.webui-popover-inverse .webui-popover-content a {\n color: #fff;\n text-decoration: underline;\n}\n.webui-popover-inverse .webui-popover-content a:hover {\n text-decoration: none;\n}\n\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results {\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question {\n background: #efefef;\n border-radius: 6px;\n margin: 0 0 15px;\n position: relative;\n list-style-type: none;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer {\n color: inherit;\n display: flex;\n gap: 10px;\n justify-content: space-between;\n padding: 15px 35px 15px 15px;\n text-decoration: none;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect {\n background: rgba(192, 86, 33, 0.2);\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon {\n background-color: #c05621;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct {\n background: rgba(77, 141, 60, 0.15);\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon {\n background-color: #4d8d3c;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect {\n background: rgba(187, 35, 28, 0.15);\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon {\n background-color: #bb231c;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question pre {\n overflow: auto;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title {\n font-size: 22px;\n margin: 0;\n line-height: 1.4;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points {\n line-height: 1.4;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip {\n position: absolute;\n right: -12px;\n top: -2px;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon {\n color: rgba(255, 255, 255, 0.65);\n border-radius: 50%;\n font-size: 30px;\n height: 40px;\n line-height: 40px;\n text-align: center;\n width: 40px;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main {\n display: none;\n padding: 0 15px 15px;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label {\n font-weight: 700;\n margin: 0 0 10px;\n padding: 0;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers {\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n padding: 0;\n margin: 0 0 0 30px;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child {\n list-style-type: none;\n margin-left: 0;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img {\n height: auto;\n max-width: 200px;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section {\n border-top: 2px solid rgba(255, 255, 255, 0.5);\n margin-top: 20px;\n padding-top: 20px;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child {\n border-top: none;\n margin-top: 0;\n padding-top: 0;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n display: inline-block;\n list-style-type: none;\n margin: 0;\n padding: 5px;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed {\n opacity: 0.5;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title {\n font-style: italic;\n font-weight: normal;\n}\n.single-llms_quiz .llms-return {\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-results:before, .single-llms_quiz .llms-quiz-results:after {\n content: \" \";\n display: table;\n}\n.single-llms_quiz .llms-quiz-results:after {\n clear: both;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.passing {\n color: #4d8d3c;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.passing svg path {\n stroke: #4d8d3c;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.pending {\n color: #555;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.pending svg path {\n stroke: #555;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.failing {\n color: #bb231c;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.failing svg path {\n stroke: #bb231c;\n}\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-history {\n margin-bottom: 20px;\n}\n@media all and (min-width: 600px) {\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside {\n float: left;\n width: 220px;\n }\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside + .llms-quiz-results-main {\n float: right;\n width: calc(100% - 300px);\n }\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside + .llms-quiz-results-main + .llms-quiz-results-history {\n float: right;\n width: calc(100% - 300px);\n }\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-history {\n clear: right;\n }\n}\n.single-llms_quiz ul.llms-quiz-meta-info {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz ul.llms-quiz-meta-info li {\n list-style-type: none;\n margin: 10px 0 0;\n padding: 0;\n}\n.single-llms_quiz ul.llms-quiz-meta-info {\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-buttons {\n margin-top: 10px;\n text-align: left;\n}\n.single-llms_quiz .llms-quiz-buttons form {\n display: inline-block;\n}\n\n.llms-quiz-question-wrapper {\n min-height: 140px;\n position: relative;\n}\n.llms-quiz-question-wrapper .llms-quiz-loading {\n bottom: 20px;\n left: 0;\n position: absolute;\n right: 0;\n text-align: center;\n z-index: 1;\n}\n.llms-quiz-question-wrapper .llms-question-image img {\n height: auto;\n max-width: 100%;\n}\n\n.llms-quiz-ui {\n position: relative;\n}\n.llms-quiz-ui .llms-quiz-header {\n align-items: center;\n display: flex;\n margin: 0 0 40px;\n}\n.llms-quiz-ui .llms-progress {\n background-color: #dedede;\n flex-direction: row;\n height: 8px;\n margin: 0;\n overflow: hidden;\n}\n.llms-quiz-ui .llms-progress .progress-bar-complete {\n transition: width 0.3s ease-in;\n width: 0;\n}\n.llms-quiz-ui .llms-error {\n background: rgba(187, 35, 28, 0.15);\n border: 1px solid #bb231c;\n border-radius: 6px;\n margin: 20px 0;\n padding: 15px;\n}\n.llms-quiz-ui .llms-error:before, .llms-quiz-ui .llms-error:after {\n content: \" \";\n display: table;\n}\n.llms-quiz-ui .llms-error:after {\n clear: both;\n}\n.llms-quiz-ui .llms-error a {\n color: #bb231c;\n float: right;\n font-size: 22px;\n line-height: 1;\n text-decoration: none;\n}\n.llms-quiz-ui .llms-quiz-counter {\n display: none;\n color: #6a6a6a;\n float: right;\n font-size: 18px;\n}\n.llms-quiz-ui .llms-quiz-counter .llms-sep {\n margin: 0 5px;\n}\n.llms-quiz-ui .llms-quiz-nav {\n margin-top: 20px;\n}\n.llms-quiz-ui .llms-quiz-nav button {\n margin: 0 10px 0 0;\n}\n\n.llms-question-wrapper .llms-question-text {\n font-size: 30px;\n font-weight: 400;\n margin-bottom: 15px;\n}\n.llms-question-wrapper ol.llms-question-choices {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice {\n border-bottom: 1px solid #e8e8e8;\n margin: 0;\n padding: 0;\n position: relative;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice:last-child {\n border-bottom: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture {\n border-bottom: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture label {\n display: inline-block;\n padding: 0;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-marker {\n bottom: 10px;\n margin: 0;\n position: absolute;\n right: 10px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image {\n margin: 2px;\n padding: 20px;\n transition: background 0.4s ease;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image img {\n display: block;\n height: auto;\n width: 100%;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture input:checked ~ .llms-choice-image {\n background: #efefef;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input {\n display: none;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n visibility: hidden;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label {\n display: block;\n margin: 0;\n padding: 10px 20px;\n position: relative;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .iterator {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .fa {\n display: inline;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker {\n background: #fefefe;\n color: #010101;\n display: inline-block;\n font-size: 20px;\n height: 40px;\n line-height: 40px;\n margin-right: 10px;\n text-align: center;\n transition: all 0.2s ease;\n vertical-align: middle;\n width: 40px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker .fa {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--lister, .llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--checkbox {\n border-radius: 4px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--radio {\n border-radius: 50%;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker {\n background: #ef476f;\n color: #fff;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .iterator {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .fa {\n display: inline;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text {\n display: inline-block;\n font-size: 18px;\n font-weight: 400;\n line-height: 1.6;\n margin: 0;\n padding: 0;\n vertical-align: middle;\n width: calc(100% - 60px);\n}\n\n.llms-quiz-timer {\n background: #fff;\n border: 1px solid #4d8d3c;\n border-radius: 4px;\n color: #4d8d3c;\n float: right;\n font-size: 18px;\n line-height: 1;\n margin-left: 20px;\n padding: 8px 12px;\n position: relative;\n white-space: nowrap;\n z-index: 1;\n}\n.llms-quiz-timer.color-half {\n border-color: #c05621;\n color: #c05621;\n}\n.llms-quiz-timer.color-empty {\n border-color: #bb231c;\n color: #bb231c;\n}\n.llms-quiz-timer .llms-tiles {\n display: inline-block;\n margin-left: 5px;\n}\n\n.voucher-expand {\n display: none;\n}\n\n@media all and (min-width: 600px) {\n .llms-access-plans.cols-1 .llms-access-plan {\n width: 100%;\n }\n .llms-access-plans.cols-2 .llms-access-plan {\n width: 50%;\n }\n .llms-access-plans.cols-3 .llms-access-plan {\n width: 33.3333333333%;\n }\n .llms-access-plans.cols-4 .llms-access-plan {\n width: 25%;\n }\n .llms-access-plans.cols-5 .llms-access-plan {\n width: 20%;\n }\n}\n\n.llms-free-enroll-form {\n margin-bottom: 0;\n}\n\n.llms-access-plan {\n box-sizing: border-box;\n float: left;\n text-align: center;\n width: 100%;\n}\n.llms-access-plan .llms-access-plan-content,\n.llms-access-plan .llms-access-plan-footer {\n background: #f1f1f1;\n}\n.llms-access-plan.featured .llms-access-plan-featured {\n background: #466dd8;\n border-top-left-radius: 6px;\n border-top-right-radius: 6px;\n}\n.llms-access-plan.featured .llms-access-plan-content {\n border-radius: 0;\n}\n.llms-access-plan.featured .llms-access-plan-title {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.llms-access-plan.featured .llms-access-plan-footer,\n.llms-access-plan.featured .llms-access-plan-content {\n border-left: 3px solid #466dd8;\n border-right: 3px solid #466dd8;\n}\n.llms-access-plan.featured .llms-access-plan-footer {\n border-bottom-color: #466dd8;\n}\n.llms-access-plan.on-sale .price-regular {\n text-decoration: line-through;\n}\n.llms-access-plan.on-sale .price-regular .lifterlms-price {\n font-weight: 400;\n}\n.llms-access-plan .stamp {\n background: #466dd8;\n border-radius: 6px;\n color: #fefefe;\n display: inline-block;\n font-size: 14px;\n font-style: normal;\n font-weight: bold;\n line-height: 1;\n padding: 5px 8px 4px;\n}\n\n.llms-access-plan-featured {\n color: #fff;\n font-size: 14px;\n font-weight: 700;\n letter-spacing: 1px;\n margin: 0 2px 0 2px;\n padding: 5px 0 0;\n}\n\n.llms-access-plan-content {\n border-top-right-radius: 6px;\n border-top-left-radius: 6px;\n margin: 0 2px 0;\n overflow: hidden;\n}\n.llms-access-plan-content .llms-access-plan-pricing {\n color: #010101;\n padding: 20px 0 0;\n}\n.llms-access-plan-content .llms-form-fields {\n padding: 10px;\n}\n\n.llms-access-plan-title {\n background: #466dd8;\n color: #fefefe;\n margin: 0;\n padding: 10px 15px;\n}\n\n.llms-access-plan-pricing .llms-price-currency-symbol {\n font-size: 14px;\n vertical-align: top;\n}\n\n.llms-access-plan-price .lifterlms-price {\n font-weight: 700;\n}\n.llms-access-plan-price.sale {\n padding: 5px 0;\n border-top: 1px solid #d0d0d0;\n border-bottom: 1px solid #d0d0d0;\n}\n\n.llms-access-plan-trial,\n.llms-access-plan-schedule,\n.llms-access-plan-sale-end,\n.llms-access-plan-expiration {\n font-size: 16px;\n}\n\n.llms-access-plan-description {\n color: #010101;\n font-size: 16px;\n padding: 10px 10px 0;\n}\n.llms-access-plan-description ul {\n margin: 0;\n}\n.llms-access-plan-description ul li {\n border-bottom: 1px solid #d0d0d0;\n list-style-type: none;\n}\n.llms-access-plan-description ul li:last-child {\n border-bottom: none;\n}\n.llms-access-plan-description div:last-child, .llms-access-plan-description img:last-child, .llms-access-plan-description p:last-child, .llms-access-plan-description ul:last-child, .llms-access-plan-description li:last-child {\n margin-bottom: 0;\n}\n\n.llms-access-plan-restrictions {\n margin-top: 20px;\n}\n.llms-access-plan-restrictions .stamp {\n vertical-align: baseline;\n}\n.llms-access-plan-restrictions ul {\n margin: 5px 0 0 0;\n padding: 0;\n}\n.llms-access-plan-restrictions ul li {\n font-size: 14px;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-access-plan-restrictions a {\n color: #c05621;\n}\n.llms-access-plan-restrictions a:hover {\n color: #f67d28;\n}\n\n.llms-access-plan-footer {\n border-bottom: 3px solid #f1f1f1;\n border-bottom-left-radius: 6px;\n border-bottom-right-radius: 6px;\n padding: 15px;\n margin: 0 2px 2px 2px;\n}\n.llms-access-plan-footer .button {\n display: inline-block;\n}\n.llms-access-plan-footer .llms-access-plan-pricing {\n padding: 0 0 10px;\n}\n\n.webui-popover-content .llms-members-only-restrictions {\n text-align: center;\n}\n.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li, .webui-popover-content .llms-members-only-restrictions p {\n margin: 0;\n padding: 0;\n}\n.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li {\n list-style-type: none;\n}\n.webui-popover-content .llms-members-only-restrictions li {\n padding: 8px 0;\n border-top: 1px solid #3b3b3b;\n}\n.webui-popover-content .llms-members-only-restrictions li:first-child {\n border-top: none;\n}\n.webui-popover-content .llms-members-only-restrictions li a {\n display: block;\n}\n\n.llms-checkout-wrapper .llms-person-login-form-wrapper {\n margin-bottom: 40px;\n}\n.llms-checkout-wrapper form.llms-login {\n display: none;\n}\n.llms-checkout-wrapper .llms-form-heading {\n margin: 0 0 20px;\n}\n\n.llms-checkout {\n position: relative;\n}\n\n.llms-checkout-cols-2.llms-col-2 section {\n background-color: #fefefe;\n border: 1px solid #ccc;\n border-radius: 12px;\n padding: 20px;\n}\n.llms-checkout-cols-2.llms-col-2 section .llms-form-heading {\n padding: 0;\n}\n@media all and (min-width: 800px) {\n .llms-checkout-cols-2 .llms-checkout-col {\n float: left;\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-1 {\n margin-right: 20px;\n width: calc(58% - 20px);\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 {\n margin-left: 20px;\n width: calc(42% - 20px);\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 button {\n width: 100%;\n }\n}\n\n.llms-checkout-section {\n margin-bottom: 40px;\n position: relative;\n}\n\n.llms-checkout-section-content.llms-form-fields {\n margin: 0px;\n}\n.llms-checkout-section-content .llms-label {\n font-weight: 400;\n}\n.llms-checkout-section-content .llms-order-summary {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-checkout-section-content .llms-order-summary li {\n list-style-type: none;\n margin: 0 0 15px 0;\n}\n.llms-checkout-section-content .llms-order-summary :not(.llms-label) {\n font-weight: 700;\n}\n.llms-checkout-section-content .llms-order-summary li.llms-pricing.on-sale .price-regular, .llms-checkout-section-content .llms-order-summary li.llms-pricing.has-coupon .price-regular {\n text-decoration: line-through;\n}\n.llms-checkout-section-content .llms-coupon-wrapper {\n border-top: 1px solid #dedede;\n margin-top: 20px;\n padding-top: 20px;\n}\n.llms-checkout-section-content .llms-coupon-wrapper .llms-coupon-entry {\n display: none;\n margin-top: 20px;\n}\n\n.llms-form-field.llms-payment-gateway-option {\n align-items: center;\n display: flex;\n gap: 8px;\n}\n.llms-form-field.llms-payment-gateway-option label + span.llms-description {\n display: inline-block;\n margin-left: 5px;\n}\n.llms-form-field.llms-payment-gateway-option .llms-description a {\n border: none;\n box-shadow: none;\n text-decoration: none;\n}\n.llms-form-field.llms-payment-gateway-option .llms-description img {\n display: inline;\n max-height: 22px;\n vertical-align: middle;\n}\n\n.llms-checkout-wrapper ul.llms-payment-gateways {\n margin: 5px 0 0;\n padding: 0;\n}\n\nul.llms-payment-gateways {\n list-style-type: none;\n}\nul.llms-payment-gateways li:last-child:after {\n border-bottom: 1px solid #dedede;\n content: \"\";\n display: block;\n margin: 20px 0;\n}\nul.llms-payment-gateways .llms-payment-gateway {\n margin-bottom: 30px;\n list-style-type: none;\n}\nul.llms-payment-gateways .llms-payment-gateway:last-child {\n margin-bottom: none;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-payment-gateway-option label {\n font-weight: 700;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields {\n display: block;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields .llms-notice {\n margin-left: 10px;\n margin-right: 10px;\n}\nul.llms-payment-gateways .llms-payment-gateway .llms-form-field {\n padding-bottom: 0;\n}\nul.llms-payment-gateways .llms-gateway-description {\n margin-left: 40px;\n}\nul.llms-payment-gateways .llms-gateway-fields {\n display: none;\n margin: 5px 0 20px;\n}\nul.llms-payment-gateways .llms-payment-gateway-error {\n padding: 0 10px;\n}\n\n.llms-checkout-confirm {\n margin: 0;\n}\n\n.llms-payment-method {\n margin: 10px 10px 0;\n}\n\n.llms-gateway-description p {\n font-size: 14px;\n font-style: italic;\n margin: 0;\n}\n\n.llms-form-fields {\n box-sizing: border-box;\n}\n.llms-form-fields * {\n box-sizing: border-box;\n}\n.llms-form-fields.flush .llms-form-field {\n padding: 0 0 20px;\n}\n.llms-form-fields label:not(.llms-field-html label) {\n font-weight: 700;\n}\n.llms-form-fields .wp-block-columns, .llms-form-fields .wp-block-column {\n margin-bottom: 0;\n}\n\n.llms-form-heading {\n padding: 0 10px 10px;\n}\n\n.llms-form-field {\n float: left;\n padding: 0 10px 20px;\n position: relative;\n width: 100%;\n}\n.llms-form-field label:empty:after {\n content: \" \";\n}\n.llms-form-field [type=text],\n.llms-form-field [type=password],\n.llms-form-field [type=email],\n.llms-form-field [type=url],\n.llms-form-field [type=tel],\n.llms-form-field [type=number] {\n background-color: #fefefe;\n background-clip: padding-box;\n border: 1px solid #999;\n border-radius: 6px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1;\n padding: 8px 12px;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n width: 100%;\n}\n.llms-form-field input:focus,\n.llms-form-field input:focus-visible {\n border-color: #6888df;\n outline: thin solid;\n}\n.llms-form-field select {\n -webkit-appearance: none;\n -moz-appearance: none;\n -ms-appearance: none;\n appearance: none;\n background-color: #fefefe;\n border: 1px solid #999;\n border-radius: 6px;\n box-sizing: border-box;\n color: #010101;\n padding: 8px 12px;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 16px;\n cursor: inherit;\n line-height: 1.6;\n z-index: 1;\n outline: none;\n background-repeat: no-repeat;\n background-image: linear-gradient(45deg, transparent 50%, currentcolor 50%), linear-gradient(135deg, currentcolor 50%, transparent 50%);\n background-position: right 15px top 1.3rem, right 10px top 1.3rem;\n background-size: 5px 5px, 5px 5px;\n}\n.llms-form-field select::-ms-expand {\n display: none;\n}\n.llms-form-field select:focus {\n border: 1px solid #6888df;\n outline: thin solid;\n}\n.llms-form-field.valid input[type=date], .llms-form-field.valid input[type=time], .llms-form-field.valid input[type=datetime-local], .llms-form-field.valid input[type=week], .llms-form-field.valid input[type=month], .llms-form-field.valid input[type=text], .llms-form-field.valid input[type=email], .llms-form-field.valid input[type=url], .llms-form-field.valid input[type=password], .llms-form-field.valid input[type=search], .llms-form-field.valid input[type=tel], .llms-form-field.valid input[type=number], .llms-form-field.valid textarea, .llms-form-field.valid select {\n background: rgba(131, 195, 115, 0.3);\n border-color: #83c373;\n}\n.llms-form-field.error input[type=date], .llms-form-field.error input[type=time], .llms-form-field.error input[type=datetime-local], .llms-form-field.error input[type=week], .llms-form-field.error input[type=month], .llms-form-field.error input[type=text], .llms-form-field.error input[type=email], .llms-form-field.error input[type=url], .llms-form-field.error input[type=password], .llms-form-field.error input[type=search], .llms-form-field.error input[type=tel], .llms-form-field.error input[type=number], .llms-form-field.error textarea, .llms-form-field.error select, .llms-form-field.invalid input[type=date], .llms-form-field.invalid input[type=time], .llms-form-field.invalid input[type=datetime-local], .llms-form-field.invalid input[type=week], .llms-form-field.invalid input[type=month], .llms-form-field.invalid input[type=text], .llms-form-field.invalid input[type=email], .llms-form-field.invalid input[type=url], .llms-form-field.invalid input[type=password], .llms-form-field.invalid input[type=search], .llms-form-field.invalid input[type=tel], .llms-form-field.invalid input[type=number], .llms-form-field.invalid textarea, .llms-form-field.invalid select {\n background: rgba(187, 35, 28, 0.3);\n border-color: #bb231c;\n}\n.llms-form-field.llms-visually-hidden-field {\n display: none;\n}\n.llms-form-field.align-right {\n text-align: right;\n}\n@media screen and (min-width: 600px) {\n .llms-form-field.llms-cols-1 {\n width: 8.3333333333%;\n }\n .llms-form-field.llms-cols-2 {\n width: 16.6666666667%;\n }\n .llms-form-field.llms-cols-3 {\n width: 25%;\n }\n .llms-form-field.llms-cols-4 {\n width: 33.3333333333%;\n }\n .llms-form-field.llms-cols-5 {\n width: 41.6666666667%;\n }\n .llms-form-field.llms-cols-6 {\n width: 50%;\n }\n .llms-form-field.llms-cols-7 {\n width: 58.3333333333%;\n }\n .llms-form-field.llms-cols-8 {\n width: 66.6666666667%;\n }\n .llms-form-field.llms-cols-9 {\n width: 75%;\n }\n .llms-form-field.llms-cols-10 {\n width: 83.3333333333%;\n }\n .llms-form-field.llms-cols-11 {\n width: 91.6666666667%;\n }\n .llms-form-field.llms-cols-12 {\n width: 100%;\n }\n}\n.llms-form-field.type-hidden {\n padding: 0;\n}\n.llms-form-field.type-radio input,\n.llms-form-field.type-radio label, .llms-form-field.type-checkbox input,\n.llms-form-field.type-checkbox label {\n display: inline-block;\n width: auto;\n}\n.llms-form-field.type-radio input, .llms-form-field.type-checkbox input {\n margin-right: 10px;\n}\n.llms-form-field.type-radio label + .llms-description, .llms-form-field.type-checkbox label + .llms-description {\n display: block;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio] {\n position: absolute;\n opacity: 0;\n visibility: none;\n}\n.llms-form-field.type-radio:not(.is-group) label:before {\n background: #fafafa;\n background-position: -24px 0;\n background-repeat: no-repeat;\n border-radius: 50%;\n box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.35) 0 0 0 1px;\n content: \"\";\n cursor: pointer;\n display: inline-block;\n height: 22px;\n margin-right: 5px;\n position: relative;\n transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n top: -3px;\n vertical-align: middle;\n width: 22px;\n z-index: 2;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked + label:before {\n transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n background-position: 0 0;\n background-image: radial-gradient(ellipse at center, #466dd8 0%, #466dd8 40%, #fafafa 45%);\n}\n.llms-form-field .llms-input-group {\n margin-top: 5px;\n}\n.llms-form-field .llms-input-group .llms-form-field {\n padding: 0 0 5px 5px;\n}\n.llms-form-field.type-reset button:not(.auto), .llms-form-field.type-button button:not(.auto), .llms-form-field.type-submit button:not(.auto) {\n width: 100%;\n}\n.llms-form-field .llms-description {\n font-size: 14px;\n font-style: italic;\n line-height: 18px;\n}\n.llms-form-field .llms-required {\n color: #bb231c;\n margin-left: 4px;\n}\n.llms-form-field input, .llms-form-field textarea, .llms-form-field select {\n width: 100%;\n margin-bottom: 5px;\n}\n.llms-form-field .select2-container .select2-selection--single {\n height: auto;\n padding: 4px 6px;\n}\n.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow {\n height: 100%;\n}\n\n.llms-password-strength-meter {\n border: 1px solid #dadada;\n display: none;\n font-size: 10px;\n margin-top: -10px;\n padding: 1px;\n position: relative;\n text-align: center;\n}\n.llms-password-strength-meter:before {\n bottom: 0;\n content: \"\";\n left: 0;\n position: absolute;\n top: 0;\n transition: width 0.4s ease;\n}\n.llms-password-strength-meter.mismatch, .llms-password-strength-meter.too-short, .llms-password-strength-meter.very-weak {\n border-color: #e35b5b;\n}\n.llms-password-strength-meter.mismatch:before, .llms-password-strength-meter.too-short:before, .llms-password-strength-meter.very-weak:before {\n background: rgba(227, 91, 91, 0.25);\n width: 25%;\n}\n.llms-password-strength-meter.too-short:before {\n width: 0;\n}\n.llms-password-strength-meter.weak {\n border-color: #f78b53;\n}\n.llms-password-strength-meter.weak:before {\n background: rgba(247, 139, 83, 0.25);\n width: 50%;\n}\n.llms-password-strength-meter.medium {\n border-color: #ffc733;\n}\n.llms-password-strength-meter.medium:before {\n background: rgba(255, 199, 51, 0.25);\n width: 75%;\n}\n.llms-password-strength-meter.strong {\n border-color: #83c373;\n}\n.llms-password-strength-meter.strong:before {\n background: rgba(131, 195, 115, 0.25);\n width: 100%;\n}\n.llms-password-strength-meter + .llms-description {\n display: block;\n}\n\n.llms-widget-syllabus--collapsible .llms-section .section-header {\n cursor: pointer;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--opened .llms-collapse-caret .fa-caret-right {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-collapse-caret .fa-caret-down {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-lesson {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-syllabus-footer {\n text-align: left;\n}\n\n.llms-student-dashboard {\n /**\n * Dashboard Home\n */\n}\n.llms-student-dashboard .llms-sd-title {\n align-items: center;\n display: flex;\n gap: 15px;\n margin: 40px 0 20px 0;\n}\n.llms-student-dashboard .llms-sd-title small {\n font-size: 18px;\n}\n.llms-student-dashboard .llms-sd-title small + a {\n text-decoration: none;\n}\n.llms-student-dashboard .llms-sd-items {\n list-style-type: none;\n margin: 0 0 25px 0;\n padding: 0;\n}\n.llms-student-dashboard .llms-sd-item {\n display: inline-block;\n list-style-type: none;\n margin: 5px 0;\n padding: 0;\n}\n.llms-student-dashboard .llms-sd-item:last-child .llms-sep {\n display: none;\n}\n.llms-student-dashboard .llms-sd-item .llms-sep {\n color: #666;\n margin: 0 5px;\n}\n.llms-student-dashboard .llms-sd-section {\n margin-bottom: 40px;\n}\n.llms-student-dashboard .llms-sd-section h2 {\n margin: 0 0 15px 0;\n}\n.llms-student-dashboard .llms-sd-section .llms-sd-section-title {\n margin: 0;\n padding: 0;\n}\n.llms-student-dashboard .llms-sd-section .llms-sd-section-title:first-child {\n margin: 0 0 10px 0;\n}\n.llms-student-dashboard .llms-sd-section .llms-sd-section-footer {\n margin-top: 10px;\n}\n.llms-student-dashboard .llms-sd-section .llms-sd-section-footer a.llms-button-secondary {\n display: inline-block;\n}\n.llms-student-dashboard .llms-sd-section .llms-certificates-loop {\n margin: 0 0 0 -10px;\n}\n.llms-student-dashboard .llms-sd-section .llms-certificate {\n padding: 20px 0;\n}\n.llms-student-dashboard .orders-table {\n border: 1px solid #dedede;\n border-spacing: 0;\n width: 100%;\n}\n.llms-student-dashboard .orders-table thead {\n display: none;\n}\n.llms-student-dashboard .orders-table thead th, .llms-student-dashboard .orders-table thead td {\n font-weight: 700;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table thead {\n display: table-header-group;\n }\n}\n.llms-student-dashboard .orders-table tbody tr:nth-child(odd) td, .llms-student-dashboard .orders-table tbody tr:nth-child(odd) th {\n background: #f9f9f9;\n}\n.llms-student-dashboard .orders-table tbody tr:last-child {\n border-bottom-width: 0;\n}\n.llms-student-dashboard .orders-table tfoot tr {\n background: #f9f9f9;\n}\n.llms-student-dashboard .orders-table tfoot th, .llms-student-dashboard .orders-table tfoot td {\n padding: 10px;\n text-align: right;\n}\n.llms-student-dashboard .orders-table tfoot th:last-child, .llms-student-dashboard .orders-table tfoot td:last-child {\n border-bottom-width: 0;\n}\n.llms-student-dashboard .orders-table th {\n font-weight: 700;\n}\n.llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {\n border-color: #dedede;\n border-style: solid;\n border-width: 0;\n display: block;\n padding: 15px 20px;\n text-align: center;\n}\n.llms-student-dashboard .orders-table th .llms-button-primary, .llms-student-dashboard .orders-table td .llms-button-primary {\n display: inline-block;\n}\n.llms-student-dashboard .orders-table th:last-child, .llms-student-dashboard .orders-table td:last-child {\n border-bottom-width: 1px;\n}\n.llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {\n content: attr(data-label);\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {\n border-bottom-width: 1px;\n display: table-cell;\n text-align: left;\n }\n .llms-student-dashboard .orders-table th:first-child, .llms-student-dashboard .orders-table td:first-child {\n width: 220px;\n }\n .llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {\n display: none;\n }\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table.transactions th:first-child {\n width: auto;\n }\n}\n.llms-student-dashboard .llms-status {\n border-radius: 6px;\n display: inline-block;\n font-size: 13px;\n font-weight: 700;\n line-height: 1.4;\n padding: 2px 6px;\n vertical-align: middle;\n}\n.llms-student-dashboard .llms-status.llms-size--large {\n font-size: 105%;\n padding: 6px 12px;\n}\n.llms-student-dashboard .llms-status.llms-active, .llms-student-dashboard .llms-status.llms-completed, .llms-student-dashboard .llms-status.llms-pass, .llms-student-dashboard .llms-status.llms-txn-succeeded {\n color: #4d8d3c;\n background-color: rgba(77, 141, 60, 0.15);\n}\n.llms-student-dashboard .llms-status.llms-fail, .llms-student-dashboard .llms-status.llms-failed, .llms-student-dashboard .llms-status.llms-expired, .llms-student-dashboard .llms-status.llms-cancelled, .llms-student-dashboard .llms-status.llms-txn-failed {\n color: #bb231c;\n background-color: rgba(187, 35, 28, 0.15);\n}\n.llms-student-dashboard .llms-status.llms-incomplete, .llms-student-dashboard .llms-status.llms-on-hold, .llms-student-dashboard .llms-status.llms-pending, .llms-student-dashboard .llms-status.llms-pending-cancel, .llms-student-dashboard .llms-status.llms-refunded, .llms-student-dashboard .llms-status.llms-txn-pending, .llms-student-dashboard .llms-status.llms-txn-refunded {\n color: #c05621;\n background-color: rgba(192, 86, 33, 0.15);\n}\n.llms-student-dashboard .order-title .llms-status {\n font-size: 18px;\n}\n.llms-student-dashboard .llms-person-form-wrapper .llms-change-password {\n display: none;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .order-primary {\n float: left;\n width: 68%;\n }\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .order-secondary {\n float: left;\n width: 32%;\n }\n}\n.llms-student-dashboard .order-secondary form {\n margin-bottom: 0;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .llms-view-order.llms-stack-cols .order-primary,\n.llms-student-dashboard .llms-view-order.llms-stack-cols .order-secondary {\n float: none;\n width: 100%;\n }\n}\n.llms-student-dashboard .llms-switch-payment-source .llms-notice,\n.llms-student-dashboard .llms-switch-payment-source .entry-content .llms-notice {\n margin-left: 10px;\n margin-right: 10px;\n}\n.llms-student-dashboard .llms-switch-payment-source-main {\n border: none;\n display: none;\n margin: 0;\n}\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-payment-gateways {\n padding: 10px 15px 0;\n margin: 0;\n}\n.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method,\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary {\n padding: 0 25px 10px;\n margin: 0;\n list-style-type: none;\n}\n.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method li,\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary li {\n list-style-type: none;\n}\n.llms-student-dashboard.dashboard .llms-sd-section {\n border: 1px solid #dedede;\n border-radius: 6px;\n padding: 20px;\n margin-bottom: 40px;\n}\n.llms-student-dashboard .llms-loop-list {\n margin: 0 -10px;\n}\n\n.logged-in .llms-sd-layout-columns {\n align-items: start;\n}\n@media all and (min-width: 600px) {\n .logged-in .llms-sd-layout-columns {\n display: grid;\n grid-gap: 25px;\n grid-template-areas: \"nav header\" \"nav tab\";\n grid-template-columns: 200px 1fr;\n grid-template-rows: auto 1fr;\n }\n}\n.logged-in .llms-sd-layout-columns .llms-sd-nav {\n grid-area: nav;\n}\n@media all and (min-width: 600px) {\n .logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item {\n display: block;\n float: none;\n }\n .logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item a {\n display: block;\n padding: 10px 0;\n }\n .logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item .llms-sep {\n display: none;\n }\n}\n.logged-in .llms-sd-layout-columns .llms-sd-header {\n grid-area: header;\n}\n.logged-in .llms-sd-layout-columns .llms-sd-tab {\n grid-area: tab;\n}\n\n.llms-sd-grades .llms-table .llms-progress {\n display: block;\n margin: 0;\n}\n.llms-sd-grades .llms-table .llms-progress .llms-progress-bar {\n top: 0;\n height: 1.4em;\n}\n.llms-sd-grades .llms-table .llms-progress .progress__indicator {\n font-size: 1em;\n position: relative;\n right: 0.4em;\n top: 0.2em;\n z-index: 1;\n}\n\n.llms-table.llms-single-course-grades tbody tr:first-child td, .llms-table.llms-single-course-grades tbody tr:first-child th {\n background-color: #eaeaea;\n}\n.llms-table.llms-single-course-grades th {\n font-weight: 400;\n text-align: left;\n}\n.llms-table.llms-single-course-grades td .llms-donut {\n display: inline-block;\n vertical-align: middle;\n}\n.llms-table.llms-single-course-grades td .llms-status {\n margin-right: 4px;\n}\n.llms-table.llms-single-course-grades td .llms-donut + .llms-status {\n margin-left: 4px;\n}\n.llms-table.llms-single-course-grades th.llms-section_title {\n font-size: 110%;\n font-weight: 700;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title {\n max-width: 40%;\n}\n.llms-table.llms-single-course-grades td.llms-associated_quiz .llms-donut {\n display: inline-block;\n margin-right: 5px;\n vertical-align: middle;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href=\"#\"] {\n pointer-events: none;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] {\n color: inherit;\n position: relative;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] .llms-tooltip {\n max-width: 380px;\n width: 380px;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] .llms-tooltip.show {\n top: -54px;\n}\n\n.llms-sd-widgets {\n display: flex;\n}\n.llms-sd-widgets .llms-sd-widget {\n background: #fefefe;\n border: 1px solid #dedede;\n border-bottom-right-radius: 6px;\n border-bottom-left-radius: 6px;\n flex: 1;\n margin: 10px 10px 20px;\n padding: 0 0 20px;\n}\n.llms-sd-widgets .llms-sd-widget:first-child {\n margin-left: 0;\n}\n.llms-sd-widgets .llms-sd-widget:last-child {\n margin-right: 0;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-widget-title {\n background: #466dd8;\n color: #fff;\n font-size: 18px;\n line-height: 1;\n margin: 0 0 20px;\n padding: 10px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-widget-empty {\n font-size: 14px;\n font-style: italic;\n opacity: 0.5;\n text-align: center;\n}\n.llms-sd-widgets .llms-sd-widget .llms-donut {\n margin: 0 auto;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date {\n opacity: 0.8;\n text-align: center;\n font-size: 22px;\n line-height: 1.1;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span {\n display: block;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span.day {\n font-size: 52px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span.diff {\n font-size: 12px;\n font-style: italic;\n margin-top: 8px;\n opacity: 0.75;\n}\n.llms-sd-widgets .llms-sd-widget .llms-achievement {\n background: transparent;\n margin: 0 auto;\n max-width: 120px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-achievement .llms-achievement-title {\n display: none;\n}\n\n.redeem-voucher .form-row label {\n display: block;\n font-weight: 700;\n}\n.redeem-voucher .form-row input[type=text] {\n background-color: #fefefe;\n background-clip: padding-box;\n border: 1px solid #999;\n border-radius: 6px;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1;\n padding: 8px 12px;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.llms-sd-pagination {\n margin-top: 24px;\n}\n.llms-sd-pagination:before, .llms-sd-pagination:after {\n content: \" \";\n display: table;\n}\n.llms-sd-pagination:after {\n clear: both;\n}\n.llms-sd-pagination .llms-button-secondary {\n display: inline-block;\n}\n.llms-sd-pagination .llms-button-secondary.prev {\n float: left;\n}\n.llms-sd-pagination .llms-button-secondary.next {\n float: right;\n}\n\n.llms-sd-notification-center {\n background: #fefefe;\n border: 1px solid #dedede;\n border-radius: 6px;\n padding: 20px;\n}\n.llms-sd-notification-center .llms-notification-list-item .llms-notification {\n z-index: 1;\n}\n.llms-sd-notification-center .llms-notification-list-item .llms-notification:hover {\n background-color: inherit;\n}\n\n.llms-table {\n border: 1px solid #dedede;\n border-spacing: 0;\n width: 100%;\n}\n.llms-table thead th, .llms-table thead td {\n font-weight: 700;\n}\n.llms-table tbody tr:nth-child(odd) td, .llms-table tbody tr:nth-child(odd) th {\n background: #f9f9f9;\n}\n.llms-table tbody tr:last-child {\n border-bottom-width: 0;\n}\n.llms-table tfoot tr {\n background: #f9f9f9;\n}\n.llms-table tfoot tr .llms-pagination .page-numbers {\n margin: 0;\n}\n.llms-table tfoot tr .llms-table-sort {\n text-align: right;\n}\n.llms-table tfoot tr .llms-table-sort form, .llms-table tfoot tr .llms-table-sort select, .llms-table tfoot tr .llms-table-sort input, .llms-table tfoot tr .llms-table-sort button {\n margin: 0;\n}\n.llms-table th {\n font-weight: 700;\n}\n.llms-table th, .llms-table td {\n border-bottom: 1px solid #dedede;\n padding: 15px 20px;\n}\n.llms-table th:first-child, .llms-table td:first-child {\n padding-left: 12px;\n}\n.llms-table th:last-child, .llms-table td:last-child {\n padding-right: 12px;\n}\n\n#page .llms-table tfoot label {\n display: inline;\n}\n\n#page .llms-table tfoot select {\n height: auto;\n}\n\n/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: \"FontAwesome\";\n src: url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");\n src: url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"), url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"), url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"), url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"), url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n\n.fa-border {\n padding: 0.2em 0.25em 0.15em;\n border: solid 0.08em #eeeeee;\n border-radius: 0.1em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left {\n margin-right: 0.3em;\n}\n\n.fa.fa-pull-right {\n margin-left: 0.3em;\n}\n\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n\n.pull-left {\n float: left;\n}\n\n.fa.pull-left {\n margin-right: 0.3em;\n}\n\n.fa.pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n\n.fa-stack-1x {\n line-height: inherit;\n}\n\n.fa-stack-2x {\n font-size: 2em;\n}\n\n.fa-inverse {\n color: #ffffff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n\n.fa-music:before {\n content: \"\\f001\";\n}\n\n.fa-search:before {\n content: \"\\f002\";\n}\n\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n\n.fa-heart:before {\n content: \"\\f004\";\n}\n\n.fa-star:before {\n content: \"\\f005\";\n}\n\n.fa-star-o:before {\n content: \"\\f006\";\n}\n\n.fa-user:before {\n content: \"\\f007\";\n}\n\n.fa-film:before {\n content: \"\\f008\";\n}\n\n.fa-th-large:before {\n content: \"\\f009\";\n}\n\n.fa-th:before {\n content: \"\\f00a\";\n}\n\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n\n.fa-check:before {\n content: \"\\f00c\";\n}\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n\n.fa-power-off:before {\n content: \"\\f011\";\n}\n\n.fa-signal:before {\n content: \"\\f012\";\n}\n\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n\n.fa-home:before {\n content: \"\\f015\";\n}\n\n.fa-file-o:before {\n content: \"\\f016\";\n}\n\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n\n.fa-road:before {\n content: \"\\f018\";\n}\n\n.fa-download:before {\n content: \"\\f019\";\n}\n\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n\n.fa-refresh:before {\n content: \"\\f021\";\n}\n\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n\n.fa-lock:before {\n content: \"\\f023\";\n}\n\n.fa-flag:before {\n content: \"\\f024\";\n}\n\n.fa-headphones:before {\n content: \"\\f025\";\n}\n\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n\n.fa-tag:before {\n content: \"\\f02b\";\n}\n\n.fa-tags:before {\n content: \"\\f02c\";\n}\n\n.fa-book:before {\n content: \"\\f02d\";\n}\n\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n\n.fa-print:before {\n content: \"\\f02f\";\n}\n\n.fa-camera:before {\n content: \"\\f030\";\n}\n\n.fa-font:before {\n content: \"\\f031\";\n}\n\n.fa-bold:before {\n content: \"\\f032\";\n}\n\n.fa-italic:before {\n content: \"\\f033\";\n}\n\n.fa-text-height:before {\n content: \"\\f034\";\n}\n\n.fa-text-width:before {\n content: \"\\f035\";\n}\n\n.fa-align-left:before {\n content: \"\\f036\";\n}\n\n.fa-align-center:before {\n content: \"\\f037\";\n}\n\n.fa-align-right:before {\n content: \"\\f038\";\n}\n\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n\n.fa-list:before {\n content: \"\\f03a\";\n}\n\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n\n.fa-indent:before {\n content: \"\\f03c\";\n}\n\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n\n.fa-pencil:before {\n content: \"\\f040\";\n}\n\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n\n.fa-adjust:before {\n content: \"\\f042\";\n}\n\n.fa-tint:before {\n content: \"\\f043\";\n}\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n\n.fa-arrows:before {\n content: \"\\f047\";\n}\n\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n\n.fa-backward:before {\n content: \"\\f04a\";\n}\n\n.fa-play:before {\n content: \"\\f04b\";\n}\n\n.fa-pause:before {\n content: \"\\f04c\";\n}\n\n.fa-stop:before {\n content: \"\\f04d\";\n}\n\n.fa-forward:before {\n content: \"\\f04e\";\n}\n\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n\n.fa-eject:before {\n content: \"\\f052\";\n}\n\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n\n.fa-ban:before {\n content: \"\\f05e\";\n}\n\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n\n.fa-expand:before {\n content: \"\\f065\";\n}\n\n.fa-compress:before {\n content: \"\\f066\";\n}\n\n.fa-plus:before {\n content: \"\\f067\";\n}\n\n.fa-minus:before {\n content: \"\\f068\";\n}\n\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n\n.fa-gift:before {\n content: \"\\f06b\";\n}\n\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n\n.fa-fire:before {\n content: \"\\f06d\";\n}\n\n.fa-eye:before {\n content: \"\\f06e\";\n}\n\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n\n.fa-plane:before {\n content: \"\\f072\";\n}\n\n.fa-calendar:before {\n content: \"\\f073\";\n}\n\n.fa-random:before {\n content: \"\\f074\";\n}\n\n.fa-comment:before {\n content: \"\\f075\";\n}\n\n.fa-magnet:before {\n content: \"\\f076\";\n}\n\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n\n.fa-retweet:before {\n content: \"\\f079\";\n}\n\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n\n.fa-folder:before {\n content: \"\\f07b\";\n}\n\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n\n.fa-key:before {\n content: \"\\f084\";\n}\n\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n\n.fa-comments:before {\n content: \"\\f086\";\n}\n\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n\n.fa-star-half:before {\n content: \"\\f089\";\n}\n\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n\n.fa-trophy:before {\n content: \"\\f091\";\n}\n\n.fa-github-square:before {\n content: \"\\f092\";\n}\n\n.fa-upload:before {\n content: \"\\f093\";\n}\n\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n\n.fa-phone:before {\n content: \"\\f095\";\n}\n\n.fa-square-o:before {\n content: \"\\f096\";\n}\n\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n\n.fa-twitter:before {\n content: \"\\f099\";\n}\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n\n.fa-github:before {\n content: \"\\f09b\";\n}\n\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n\n.fa-square:before {\n content: \"\\f0c8\";\n}\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n\n.fa-table:before {\n content: \"\\f0ce\";\n}\n\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n\n.fa-money:before {\n content: \"\\f0d6\";\n}\n\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n\n.fa-columns:before {\n content: \"\\f0db\";\n}\n\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n\n.fa-desktop:before {\n content: \"\\f108\";\n}\n\n.fa-laptop:before {\n content: \"\\f109\";\n}\n\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n\n.fa-spinner:before {\n content: \"\\f110\";\n}\n\n.fa-circle:before {\n content: \"\\f111\";\n}\n\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n\n.fa-terminal:before {\n content: \"\\f120\";\n}\n\n.fa-code:before {\n content: \"\\f121\";\n}\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n\n.fa-crop:before {\n content: \"\\f125\";\n}\n\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n\n.fa-question:before {\n content: \"\\f128\";\n}\n\n.fa-info:before {\n content: \"\\f129\";\n}\n\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n\n.fa-microphone:before {\n content: \"\\f130\";\n}\n\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n\n.fa-shield:before {\n content: \"\\f132\";\n}\n\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n\n.fa-rocket:before {\n content: \"\\f135\";\n}\n\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n\n.fa-html5:before {\n content: \"\\f13b\";\n}\n\n.fa-css3:before {\n content: \"\\f13c\";\n}\n\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n\n.fa-ticket:before {\n content: \"\\f145\";\n}\n\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n\n.fa-level-up:before {\n content: \"\\f148\";\n}\n\n.fa-level-down:before {\n content: \"\\f149\";\n}\n\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n\n.fa-compass:before {\n content: \"\\f14e\";\n}\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n\n.fa-gbp:before {\n content: \"\\f154\";\n}\n\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n\n.fa-file:before {\n content: \"\\f15b\";\n}\n\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n\n.fa-youtube:before {\n content: \"\\f167\";\n}\n\n.fa-xing:before {\n content: \"\\f168\";\n}\n\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n\n.fa-adn:before {\n content: \"\\f170\";\n}\n\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n\n.fa-apple:before {\n content: \"\\f179\";\n}\n\n.fa-windows:before {\n content: \"\\f17a\";\n}\n\n.fa-android:before {\n content: \"\\f17b\";\n}\n\n.fa-linux:before {\n content: \"\\f17c\";\n}\n\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n\n.fa-skype:before {\n content: \"\\f17e\";\n}\n\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n\n.fa-trello:before {\n content: \"\\f181\";\n}\n\n.fa-female:before {\n content: \"\\f182\";\n}\n\n.fa-male:before {\n content: \"\\f183\";\n}\n\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n\n.fa-archive:before {\n content: \"\\f187\";\n}\n\n.fa-bug:before {\n content: \"\\f188\";\n}\n\n.fa-vk:before {\n content: \"\\f189\";\n}\n\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n\n.fa-renren:before {\n content: \"\\f18b\";\n}\n\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n\n.fa-slack:before {\n content: \"\\f198\";\n}\n\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n\n.fa-openid:before {\n content: \"\\f19b\";\n}\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n\n.fa-google:before {\n content: \"\\f1a0\";\n}\n\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n\n.fa-language:before {\n content: \"\\f1ab\";\n}\n\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n\n.fa-building:before {\n content: \"\\f1ad\";\n}\n\n.fa-child:before {\n content: \"\\f1ae\";\n}\n\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n\n.fa-database:before {\n content: \"\\f1c0\";\n}\n\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n\n.fa-git:before {\n content: \"\\f1d3\";\n}\n\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n\n.fa-history:before {\n content: \"\\f1da\";\n}\n\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n\n.fa-header:before {\n content: \"\\f1dc\";\n}\n\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n\n.fa-at:before {\n content: \"\\f1fa\";\n}\n\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n\n.fa-bus:before {\n content: \"\\f207\";\n}\n\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n\n.fa-angellist:before {\n content: \"\\f209\";\n}\n\n.fa-cc:before {\n content: \"\\f20a\";\n}\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n\n.fa-diamond:before {\n content: \"\\f219\";\n}\n\n.fa-ship:before {\n content: \"\\f21a\";\n}\n\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n\n.fa-venus:before {\n content: \"\\f221\";\n}\n\n.fa-mars:before {\n content: \"\\f222\";\n}\n\n.fa-mercury:before {\n content: \"\\f223\";\n}\n\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n\n.fa-server:before {\n content: \"\\f233\";\n}\n\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n\n.fa-user-times:before {\n content: \"\\f235\";\n}\n\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n\n.fa-train:before {\n content: \"\\f238\";\n}\n\n.fa-subway:before {\n content: \"\\f239\";\n}\n\n.fa-medium:before {\n content: \"\\f23a\";\n}\n\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n\n.fa-object-group:before {\n content: \"\\f247\";\n}\n\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n\n.fa-clone:before {\n content: \"\\f24d\";\n}\n\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n\n.fa-registered:before {\n content: \"\\f25d\";\n}\n\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n\n.fa-gg:before {\n content: \"\\f260\";\n}\n\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n\n.fa-safari:before {\n content: \"\\f267\";\n}\n\n.fa-chrome:before {\n content: \"\\f268\";\n}\n\n.fa-firefox:before {\n content: \"\\f269\";\n}\n\n.fa-opera:before {\n content: \"\\f26a\";\n}\n\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n\n.fa-contao:before {\n content: \"\\f26d\";\n}\n\n.fa-500px:before {\n content: \"\\f26e\";\n}\n\n.fa-amazon:before {\n content: \"\\f270\";\n}\n\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n\n.fa-industry:before {\n content: \"\\f275\";\n}\n\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n\n.fa-map-o:before {\n content: \"\\f278\";\n}\n\n.fa-map:before {\n content: \"\\f279\";\n}\n\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n\n.fa-edge:before {\n content: \"\\f282\";\n}\n\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n\n.fa-modx:before {\n content: \"\\f285\";\n}\n\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n\n.fa-usb:before {\n content: \"\\f287\";\n}\n\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n\n.fa-percent:before {\n content: \"\\f295\";\n}\n\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n\n.fa-envira:before {\n content: \"\\f299\";\n}\n\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n\n.fa-blind:before {\n content: \"\\f29d\";\n}\n\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}","%cf,\n%clearfix {\n\t&:before,\n\t&:after {\n\t content: \" \";\n\t display: table;\n\t}\n\n\t&:after {\n \tclear: both;\n\t}\n}\n\n\n\n%llms-element {\n\tbackground: $el-background;\n\tbox-shadow: $el-box-shadow;\n\tdisplay: block;\n\tcolor: #212121;\n\tmin-height: 85px;\n\tpadding: 15px;\n\ttext-decoration: none;\n\tposition: relative;\n\ttransition: background .4s ease;\n\n\t&:hover {\n\t\tbackground: $el-background-hover;\n\t}\n}\n","//\n// Floated columns.\n//\n// Utilized prior to the introduction of `.llms-flex-cols`. Prefer\n// usage of flex cols for new code where possible.\n//\n.llms-cols {\n\t@extend %clearfix;\n\n\t.llms-col { width: 100%; }\n\n\t@media all and (min-width: 600px) {\n\t\t[class*=\"llms-col-\"] {\n\t\t\tfloat: left;\n\t\t}\n\t}\n\n}\n\n//\n// Flex-box columns.\n//\n// Preferred over floated `.llms-cols` wherever possible.\n//\n.llms-flex-cols {\n\tdisplay: flex;\n\tflex-flow: row wrap;\n\n\t[class*=\"llms-col\"] {\n\t\tflex: 0 1 auto;\n\t\twidth: 100%;\n\t}\n}\n\n@media all and (min-width: 600px) {\n\t.llms-cols, .llms-flex-cols {\n\t\t$cols: 1;\n\t\t@while $cols <= 12 {\n\t\t\t.llms-col-#{$cols} {\n\t\t\t\twidth: calc( 100% / $cols );\n\t\t\t}\n\t\t\t$cols: $cols + 1;\n\t\t}\n\t}\n}\n\n",".llms-button-action,\n.llms-button-danger,\n.llms-button-primary,\n.llms-button-secondary {\n\tborder:none;\n\tborder-radius: 8px;\n\tcolor: $color-white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n\tfont-size: 18px;\n\tfont-weight: 700;\n\ttext-decoration: none;\n\ttext-shadow: none;\n\tline-height: 1;\n\tmargin: 0;\n\tmax-width: 100%;\n\tpadding: 12px 24px;\n\tposition: relative;\n\ttransition: all .5s ease;\n\n\t&:disabled {\n\t\topacity: 0.5;\n\t}\n\t&:hover, &:active {\n\t\tcolor: $color-white;\n\t}\n\t&:focus {\n\t\tcolor: $color-white;\n\t}\n\n\t&.auto {\n\t\twidth: auto;\n\t}\n\n\t&.full {\n\t\tdisplay: block;\n\t\ttext-align: center;\n\t\twidth: 100%;\n\t}\n\n\t&.square {\n\t\tpadding: 12px;\n\t}\n\n\t&.small {\n\t\tfont-size: 13px;\n\t\tpadding: 8px 14px;\n\t\t&.square { padding: 8px; }\n\t}\n\n\t&.large {\n\t\tfont-size: 18px;\n\t\tline-height: 1.2;\n\t\tpadding: 16px 32px;\n\t\t&.square { padding: 16px; }\n\t\t.fa {\n\t\t\tleft: -7px;\n\t\t\tposition: relative;\n\t\t}\n\t}\n\n}\n\n/* Fix for cases where link color overrides the button color */\na.llms-button-action,\na.llms-button-danger,\na.llms-button-primary {\n\tcolor: $color-white;\n}\n\n.llms-button-primary {\n\tbackground: $color-brand-blue;\n\t&:hover,\n\t&.clicked {\n\t\tbackground: $color-brand-blue-dark;\n\t}\n\t&:focus,\n\t&:active {\n\t\tbackground: $color-brand-blue-light;\n\t}\n}\n\n.llms-button-secondary {\n\tbackground: #e1e1e1;\n\tcolor: $color-cinder;\n\t&:hover {\n\t\tcolor: #414141;\n\t\tbackground: darken( #e1e1e1, 8 );\n\t}\n\t&:focus,\n\t&:active {\n\t\tcolor: #414141;\n\t\tbackground: lighten( #e1e1e1, 4 );\n\t}\n}\n/* Fix for cases where link color overrides the button color */\na.llms-button-secondary {\n\tcolor: $color-cinder;\n}\n\n.llms-button-action {\n\tbackground: $color-orange;\n\t&:hover,\n\t&.clicked {\n\t\tbackground: $color-brand-orange-dark;\n\t}\n\t&:focus,\n\t&:active {\n\t\tbackground: $color-brand-orange-light;\n\t}\n}\n\n.llms-button-danger {\n\tbackground: $color-danger;\n\t&:hover {\n\t\tbackground: darken( $color-danger, 8 );\n\t}\n\t&:focus,\n\t&:active {\n\t\tbackground: lighten( $color-danger, 4 );\n\t}\n}\n\n.llms-button-outline {\n\tbackground: transparent;\n\tborder: 3px solid #1D2327;\n\tborder-radius: 8px;\n\tcolor: #1D2327;\n\tcursor: pointer;\n\tfont-size: 16px;\n\tfont-weight: 700;\n\ttext-decoration: none;\n\ttext-shadow: none;\n\tline-height: 1;\n\tmargin: 0;\n\tmax-width: 100%;\n\tpadding: 12px 24px;\n\tposition: relative;\n\ttransition: all .5s ease;\n\n\t&:disabled {\n\t\topacity: 0.5;\n\t}\n\t&:hover, &:active {\n\t\tcolor: #1D2327;\n\t}\n\t&:focus {\n\t\tcolor: #1D2327;\n\t}\n\n\t&.auto {\n\t\twidth: auto;\n\t}\n\n\t&.full {\n\t\tdisplay: block;\n\t\ttext-align: center;\n\t\twidth: 100%;\n\t}\n\n\t&.square {\n\t\tpadding: 12px;\n\t}\n\n}\n\n.llms-course-continue-button {\n\tdisplay: inline-block;\n}\n","// ----- LifterLMS Brand Colors ----- \\\\\n$color-brand-dark-blue: #243c56;\n\n$color-brand-blue: #466dd8;\n$color-brand-blue-dark: darken( $color-brand-blue, 12 ); // #0077e4\n$color-brand-blue-light: lighten( $color-brand-blue, 8 );\n\n$color-brand-orange: #f8954f;\n$color-brand-orange-dark: #f67d28;\n$color-brand-orange-light: lighten( $color-brand-orange, 8 );\n\n$color-brand-aqua: #17bebb;\n\n$color-brand-pink: #ef476f;\n\n\n\n// ----- name our versions of common colors ----- \\\\\n$color-black: #010101;\n$color-green: #4d8d3c;\n$color-blue: $color-brand-blue;\n$color-red: #bb231c;\n$color-white: #fefefe;\n$color-aqua: #35bbaa;\n$color-purple: #845ef7;\n$color-orange: #c05621;\n\n$color-red-hover: darken($color-red,5);\n\n\n// ----- state / action names ----- \\\\\n$color-success: $color-green;\n$color-danger: $color-red;\n\n\n\n\n\n\n\n\n$color-lightgrey:\t\t#ccc;\n$color-grey: \t\t\t#999;\n$color-darkgrey:\t\t#666;\n$color-cinder:\t\t\t#444;\n$color-lightblue:\t\t#33b1cb;\n$color-darkblue:\t\t#0185a3;\n\n\n\n\n\n\n\n\n\n\n\n\n$color-border: #dedede;\n\n$el-box-shadow: 0 1px 2px 0 rgba($color-black,0.4);\n$el-background: #f1f1f1;\n$el-background-hover: #eaeaea;\n\n$break-xsmall: 320px;\n$break-small: 641px;\n$break-medium: 768px;\n$break-large: 1024px;\n\n$radius-small: 6px;\n$radius-medium: 12px;\n",".llms-donut {\n\n\t@include clearfix;\n\n\tbackground-color: #f1f1f1;\n\tbackground-image: none;\n\tborder-radius: 50%;\n\tcolor: $color-brand-blue;\n\theight: 200px;\n\toverflow: hidden;\n\tposition: relative;\n\twidth: 200px;\n\n\tsvg {\n\t\toverflow: visible !important;\n\t\tpointer-events: none;\n\t\twidth: 100%;\n\t}\n\n\tsvg path {\n\t\tfill: none;\n\t\tstroke-width: 35px;\n\t\tstroke: $color-brand-blue;\n\t}\n\n\t&.mini {\n\t\theight: 36px;\n\t\twidth: 36px;\n\t\t.percentage {\n\t\t\tfont-size: 10px;\n\t\t}\n\t}\n\t&.small {\n\t\theight: 100px;\n\t\twidth: 100px;\n\t\t.percentage {\n\t\t\tfont-size: 18px;\n\t\t}\n\t}\n\t&.medium {\n\t\theight: 130px;\n\t\twidth: 130px;\n\t\t.percentage {\n\t\t\tfont-size: 26px;\n\t\t}\n\t}\n\t&.large {\n\t\theight: 260px;\n\t\twidth: 260px;\n\t\t.percentage {\n\t\t\tfont-size: 48px;\n\t\t}\n\t}\n\n\t.inside {\n\t\talign-items: center;\n\t\tbackground: #fff;\n\t\tborder-radius: 50%;\n\t\tbox-sizing: border-box;\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\theight: 80%;\n\t\tjustify-content: center;\n\t\tleft: 50%;\n\t\tposition: absolute;\n\t\ttext-align: center;\n\t\ttransform: translate(-50%, -50%);\n\t\twidth: 80%;\n\t\ttop: 50%;\n\t\tz-index: 3;\n\t}\n\n\t.percentage {\n\t\tline-height: 1.2;\n\t\tfont-size: 34px;\n\t}\n\n\t.caption {\n\t\tfont-size: 75%;\n\t}\n\n}\n","\n@mixin clearfix() {\n\t&:before,\n\t&:after {\n\t content: \" \";\n\t display: table;\n\t}\n\t&:after {\n\t clear: both;\n\t}\n}\n\n//\n// Positioning mixin\n//\n// @param [string] $position: position\n// @param [list] $args (()): offsets list\n//\n// @source http://hugogiraudel.com/2013/08/05/offsets-sass-mixin/\n//\n@mixin position($position, $args: ()) {\n\t$offsets: top right bottom left;\n\tposition: $position;\n\n\t@each $offset in $offsets {\n\t\t$index: index($args, $offset);\n\n\t\t@if $index {\n\t\t\t@if $index == length($args) {\n\t\t\t\t#{$offset}: 0;\n\t\t\t}\n\t\t\t@else {\n\t\t\t\t$next: nth($args, $index + 1);\n\t\t\t\t@if is-valid-length($next) {\n\t\t\t\t\t#{$offset}: $next;\n\t\t\t\t}\n\t\t\t\t@else if index($offsets, $next) {\n\t\t\t\t\t#{$offset}: 0;\n\t\t\t\t}\n\t\t\t\t@else {\n\t\t\t\t\t@warn \"Invalid value `#{$next}` for offset `#{$offset}`.\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n//\n// Function checking if $value is a valid length\n// @param [literal] $value: value to test\n// @return [bool]\n//\n@function is-valid-length($value) {\n\t$r: (type-of($value) == \"number\" and not unitless($value)) or (index(auto initial inherit 0, $value) != null);\n\t@return $r;\n}\n\n//\n// Shorthands\n//\n@mixin absolute($args: ()) {\n\t@include position(absolute, $args);\n}\n\n@mixin fixed($args: ()) {\n\t@include position(fixed, $args);\n}\n\n@mixin relative($args: ()) {\n\t@include position(relative, $args);\n}\n\n\n\n@mixin order_status_badges() {\n\n\t.llms-status {\n\t\tborder-radius: $radius-small;\n\t\tdisplay: inline-block;\n\t\tfont-size: 13px;\n\t\tfont-weight: 700;\n\t\tline-height: 1.4;\n\t\tpadding: 2px 6px;\n\t\tvertical-align: middle;\n\n\t\t&.llms-size--large {\n\t\t\tfont-size: 105%;\n\t\t\tpadding: 6px 12px;\n\t\t}\n\n\t\t&.llms-active,\n\t\t&.llms-completed,\n\t\t&.llms-pass, // quiz\n\t\t&.llms-txn-succeeded {\n\t\t\tcolor: $color-green;\n\t\t\tbackground-color: rgba( $color-green, .15 );\n\t\t}\n\n\t\t&.llms-fail, // quiz\n\t\t&.llms-failed,\n\t\t&.llms-expired,\n\t\t&.llms-cancelled,\n\t\t&.llms-txn-failed {\n\t\t\tcolor: $color-red;\n\t\t\tbackground-color: rgba( $color-red, .15 );\n\t\t}\n\n\t\t&.llms-incomplete, // assignment\n\t\t&.llms-on-hold,\n\t\t&.llms-pending,\n\t\t&.llms-pending-cancel,\n\t\t&.llms-refunded,\n\t\t&.llms-txn-pending,\n\t\t&.llms-txn-refunded {\n\t\t\tcolor: $color-orange;\n\t\t\tbackground-color: rgba( $color-orange, .15 );\n\t\t}\n\n\t}\n\n}\n",".lifterlms, // Settings & Course Builder.\n.llms-metabox, // Some Metaboxes.\n.llms-mb-container, // Other Metaboxes.\n.llms-quiz-wrapper { // Quiz results.\n\n\t[data-tip],\n\t[data-title-default],\n\t[data-title-active] {\n\n\t\t$bgcolor: #444;\n\n\t\tposition: relative;\n\n\t\t&.tip--top-right {\n\t\t\t&:before {\n\t\t\t\tbottom: 100%;\n\t\t\t\tleft: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\tbottom: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-top-color: $bgcolor;\n\t\t\t\tleft: 6px;\n\t\t\t\ttop: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\ttop: -6px;\n\t\t\t}\n\t\t}\n\n\n\t\t&.tip--top-left {\n\t\t\t&:before {\n\t\t\t\tbottom: 100%;\n\t\t\t\tright: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\tbottom: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-top-color: $bgcolor;\n\t\t\t\tright: 6px;\n\t\t\t\ttop: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\ttop: -6px;\n\t\t\t}\n\t\t}\n\n\n\n\t\t&.tip--bottom-left {\n\t\t\t&:before {\n\t\t\t\ttop: 100%;\n\t\t\t\tright: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\ttop: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-bottom-color: $bgcolor;\n\t\t\t\tright: 6px;\n\t\t\t\tbottom: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\tbottom: -6px;\n\t\t\t}\n\t\t}\n\n\t\t&.tip--bottom-right {\n\t\t\t&:before {\n\t\t\t\ttop: 100%;\n\t\t\t\tleft: -10px;\n\t\t\t}\n\t\t\t&:hover:before {\n\t\t\t\ttop: calc( 100% + 6px );\n\t\t\t}\n\t\t\t&:after {\n\t\t\t\tborder-bottom-color: $bgcolor;\n\t\t\t\tleft: 6px;\n\t\t\t\tbottom: 0;\n\t\t\t}\n\t\t\t&:hover:after {\n\t\t\t\tbottom: -6px;\n\t\t\t}\n\t\t}\n\n\t\t&:before {\n\t\t\tbackground: $bgcolor;\n\t\t\tborder-radius: 4px;\n\t\t\tcolor: #fff;\n\t\t\tfont-size: 13px;\n\t\t\tline-height: 1.2;\n\t\t\tpadding: 8px;\n\t\t\tmax-width: 300px;\n\t\t\twidth: max-content;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tborder: 6px solid transparent;\n\t\t\theight: 0;\n\t\t\twidth: 0;\n\t\t}\n\n\t\t&:before,\n\t\t&:after {\n\t\t\topacity: 0;\n\t\t\ttransition: all 0.2s 0.1s ease;\n\t\t\tposition: absolute;\n\t\t\tpointer-events: none;\n\t\t\tvisibility: hidden;\n\t\t}\n\t\t&:hover:before,\n\t\t&:hover:after {\n\t\t\topacity: 1;\n\t\t\ttransition: all 0 0.1s ease;\n\t\t\tvisibility: visible;\n\t\t\tz-index: 99999999;\n\t\t}\n\n\t}\n\n\t[data-tip] {\n\t\t&:before {\n\t\t\tcontent: attr(data-tip);\n\t\t}\n\t}\n\t[data-tip].active {\n\t\t&:before {\n\t\t\tcontent: attr(data-tip-active);\n\t\t}\n\t}\n\n}\n","\n\n\n\n.llms-membership-image {\n display: block;\n margin: 0 auto;\n}\n\n\n\n.llms-course-image {\n display: block;\n margin: 0 auto;\n max-width: 100%;\n}\n.llms-featured-image {\n display: block;\n margin: 0 auto;\n}\n.llms-image-thumb {\n width: 150px;\n}\n\n// Responsive Videos.\n.llms-video-wrapper {\n\n\t.center-video {\n\t\theight: auto;\n\t\tmax-width: 100%;\n\t\toverflow: hidden;\n\t\tposition: relative;\n\t\tpadding-top: 56.25%;\n\t\ttext-align: center;\n\n\t\t& > .wp-video,\n\t\t.fluid-width-video-wrapper,\n\t\tiframe, object, embed {\n\t\t\theight: 100%;\n\t\t\tleft: 0;\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t& > .wp-video {\n\t\t\twidth: 100% !important;\n\t\t}\n\t\t.fluid-width-video-wrapper {\n\t\t\tpadding-top: 0 !important;\n\t\t}\n\t}\n\n}\n\n\n\n\n\n\n\n\n\n\n\n.clear {\n clear: both;\n width: 100%;\n}\n.llms-featured-image {\n text-align: center;\n}\n\n#main-content .llms-payment-options p {\n margin: 0;\n font-size: 16px;\n}\n\n.llms-option {\n display: block;\n position: relative;\n margin: 20px 0;\n padding-left:40px;\n font-size: 16px;\n\n label {\n cursor: pointer;\n position: static;\n }\n}\n.llms-option:first-child {\n margin-top:0;\n}\n.llms-option:last-child {\n margin-bottom:0;\n}\n#main-content .llms-option:last-child {\n margin-bottom:0;\n}\n\n.llms-option input[type=\"radio\"] {\n display: block;\n position: absolute;\n top:3px;\n left:0;\n z-index: 0;\n}\n\n.llms-option input[type=\"radio\"] {\n display: inline-block;\n}\n.llms-option input[type=\"radio\"] + label span.llms-radio {\n display: none;\n}\n\n.llms-option input[type=\"radio\"] + label span.llms-radio {\n appearance: none;\n\n z-index: 20;\n position: absolute;\n top: 0;\n left: -2px;\n display: inline-block;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n cursor: pointer;\n vertical-align: middle;\n box-shadow: hsla(0,0%,100%,.15) 0 1px 1px, inset hsla(0,0%,0%,.5) 0 0 0 1px;\n\n background: #efefef;\n background-image: radial-gradient(ellipse at center, $color-red 0%,$color-red 40%,#efefef 45%);\n background-repeat: no-repeat;\n\n transition: background-position .15s cubic-bezier(.8, 0, 1, 1);\n}\n.llms-option input[type=\"radio\"]:checked + label span.llms-radio {\n transition: background-position .2s .15s cubic-bezier(0, 0, .2, 1);\n}\n\n.llms-option input[type=\"radio\"] + label span.llms-radio {\n background-position: -24px 0;\n}\n.llms-option input[type=\"radio\"]:checked + label span.llms-radio {\n background-position: 0 0;\n}\n\n.llms-option input[type=\"submit\"] {\n border:none;\n background:$color-red;\n color:#fff;\n font-size:20px;\n padding:10px 0;\n border-radius:3px;\n cursor:pointer;\n width:100%;\n}\n.llms-styled-text {\n padding: 14px 0;\n}\n.llms-notice-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n //background: #fffef4;\n border: 1px solid #ccc;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n input[type=\"text\"] {\n height: auto;\n }\n .col-1-1 {\n width: 100%;\n input[type=text] {\n width: 100%;\n }\n }\n .col-1-2 {\n width: 50%;\n float: left;\n @media screen and (max-width: $break-medium) {\n width: 100%;\n }\n }\n .col-1-3 {\n width: 33%;\n float: left;\n margin-right: 10px;\n }\n .col-1-4 {\n width: 25%;\n float: left;\n margin-right: 10px;\n @media screen and (max-width: $break-medium) {\n width: 100%;\n }\n }\n .col-1-6 {\n width: 16.6%;\n float: left;\n margin-right: 10px;\n }\n .col-1-8 {\n width: 11%;\n float: right;\n }\n .llms-pad-right {\n padding-right: 10px;\n @media screen and (max-width: $break-medium) {\n padding-right: 0;\n }\n }\n}\ninput[type=\"text\"].cc_cvv,\n#cc_cvv {\n margin-right: 0;\n width: 23%;\n float: right;\n}\n.llms-clear-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n.llms-price-label {\n font-weight: normal;\n}\n.llms-final-price {\n font-weight: bold;\n float: right;\n}\n.llms-center-content {\n text-align: center;\n}\n.llms-input-text {\n background-color: #fff;\n border: 1px solid #ddd;\n color: #333;\n font-size: 18px;\n font-weight: 300;\n padding: 16px;\n width: 100%;\n}\n.llms-price {\n margin-bottom: 0;\n font-weight: bold;\n}\n.llms-price-loop {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n// hentry overrides\n.courses .entry {\n padding: 0\n}\n.list-view .site-content .llms-course-list .hentry, .list-view .site-content .llms-membership-list .hentry {\n border-top: 0;\n padding-top: 0;\n}\n.llms-content {\n width: 100%;\n}\n\n.llms-lesson-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n.llms-template-wrapper {\n width: 100%;\n display: block;\n clear: both;\n}\n.llms-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n\n//custom select box\n.llms-styled-select {\n border: 1px solid #ccc;\n box-sizing: border-box;\n border-radius: 3px;\n overflow: hidden;\n position: relative;\n}\n.llms-styled-select, .llms-styled-select select {\n width: 100%;\n}\nselect:focus { outline: none; }\n.llms-styled-select select {\n height: 34px;\n padding: 5px 0 5px 5px;\n background: transparent;\n border: none;\n -webkit-appearance: none;\n font-size: 16px;\n color: #444444;\n}\n\n@-moz-document url-prefix(){\n .--ms-styled-select select { width: 110%; }\n}\n\n.llms-styled-select .fa-sort-desc {\n position: absolute;\n top: 0;\n right: 12px;\n font-size: 24px;\n color: #ccc;\n}\n\nselect::-ms-expand { display: none; }\n\n_:-o-prefocus, .selector {\n .llms-styled-select { background: none; }\n}\n\n.llms-form-item-wrapper {\n margin-bottom: 1em;\n}\n\n/* Circle Graph */\n.llms-progress-circle {\n position: relative;\n width: 200px;\n height: 200px;\n float: left;\n}\n\n.llms-progress-circle-count {\n top: 27%;\n position: absolute;\n width: 94%;\n text-align: center;\n color: #666;\n font-size:44px;\n}\n.llms-progress-circle svg {\n position: absolute;\n width: 200px;\n height: 200px;\n}\n.llms-progress-circle circle {\n fill: transparent;\n}\nsvg .llms-background-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #f1f2f1;\n stroke-dasharray: 430;\n}\n\nsvg .llms-animated-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #e5554e;\n stroke-dasharray: 430;\n stroke-dashoffset: 430 - 20\n}\n\n\n\n\n\n\n\n.llms-widget-syllabus {\n\n .llms-lesson.current-lesson .lesson-title {\n \tfont-weight: 700;\n }\n\n .section-header {\n display: flex;\n gap: 5px;\n\n .llms-collapse-caret {\n text-align: left;\n width: 14px;\n }\n }\n\n .llms-lesson-complete, .lesson-complete-placeholder {\n font-size: 18px;\n margin-right: 5px;\n color: #ccc;\n &.done {\n color: $color-brand-blue;\n }\n }.section-title {\n font-weight: bold;\n }.lesson-title {\n a {\n text-decoration: underline;\n }\n &.done {\n a {\n color: $color-darkgrey;\n text-decoration: line-through;\n }\n }\n }\n ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n li {\n list-style-type: none;\n margin: 0 0 10px 0;\n ul {\n margin: 0 0 15px 0;\n li {\n align-items: flex-start;\n display: flex;\n margin: 0 0 10px 0;\n padding: 0;\n }\n }\n }\n }\n}\n\n\n\n.llms-remove-coupon {\n float: right;\n}\n\n\n\n\n\n/*.llms-lesson-link-locked, .llms-lesson-link-locked:hover {\n background: #f1f1f1;\n display: block;\n color: #a6a6a6;\n min-height: 85px;\n padding: 15px;\n text-decoration: none;\n position: relative;\n}*/\n\n.llms-lesson-preview.is-complete .llms-lesson-link-locked {\n padding-left: 75px;\n}\n\n.llms-lesson-tooltip { \tdisplay: none;\n\t\t\t\tposition:absolute;\n\t\t\t\tcolor: #000000;\n\t\t\t\tbackground-color: #c0c0c0;\n\t\t\t\tpadding:.25em;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tz-index: 100;\n \t\t\t\ttop:0;\n \t\t\tleft:50%;\n \t\t\ttext-align: center;\n \t\t\t-webkit-transform: translateX(-50%) translateY(-100%);\n \t\t\t transform: translateX(-50%) translateY(-100%);\n\t\t\t}\n\n/* arrows - :after */\n.llms-lesson-tooltip:after {\n content: \"\";\n width: 0;\n height: 0;\n border-top: 8px solid #c0c0c0;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n position:absolute;\n bottom:-8px;\n left:50%;\n transform: translateX(-50%);\n}\n\n.llms-lesson-tooltip.active {\n display: inline-block;\n}\n\n// Favorites.\n.llms-favorite-wrapper {\n cursor: pointer;\n\n .fa-heart {\n color: #EF476F;\n }\n}\n\n.llms-has-favorite .llms-parent-course-link {\n display: inline-block;\n margin-bottom: 20px;\n\n + .llms-favorite-wrapper {\n float: right;\n margin: 0;\n }\n}\n\n.llms-syllabus-wrapper .llms-has-favorite {\n text-align: left;\n\n .llms-favorite-wrapper {\n display: inline-block;\n }\n}\n",".llms-loop-list {\n\t@extend %clearfix;\n\n\tlist-style: none;\n\tmargin: 0 -10px;\n\tpadding: 0;\n\n\t@media all and (min-width: 600px) {\n\t\t$cols: 1;\n\t\t@while $cols <= 6 {\n\t\t\t&.cols-#{$cols} .llms-loop-item {\n\t\t\t\twidth: calc( 100% / $cols );\n\t\t\t}\n\t\t\t$cols: $cols + 1;\n\t\t}\n\t}\n\n\n}\n\n.llms-loop-item {\n\tfloat: left;\n\tlist-style: none;\n\tmargin: 0;\n\tpadding: 0;\n\twidth: 100%;\n}\n\n\n\t.llms-loop-item-content {\n\t\tbackground: $color-white;\n\t\tborder: 1px solid $color-border;\n\t\tborder-radius: $radius-small;\n\t\toverflow: hidden;\n\t\tpadding-bottom: 15px;\n\t\tmargin: 10px;\n\n\t\t.llms-loop-link {\n\t\t\tcolor: $color-black;\n\t\t\tdisplay: block;\n\t\t\ttext-decoration: none;\n\t\t\t&:visited {\n\t\t\t\tcolor: $color-black;\n\t\t\t}\n\t\t}\n\n\t\t.llms-featured-image {\n\t\t\tdisplay: block;\n\t\t\tmax-width: 100%;\n\t\t}\n\n\t\t.llms-loop-title {\n\t\t\tcolor: $color-black;\n\t\t\tmargin: 15px 0;\n\t\t\t&:hover {\n\t\t\t\tcolor: $color-brand-blue;\n\t\t\t}\n\t\t}\n\n\t\t.llms-meta,\n\t\t.llms-author,\n\t\t.llms-loop-title {\n\t\t\tpadding: 0 15px;\n\t\t}\n\n\t\t.llms-meta,\n\t\t.llms-author {\n\t\t\tcolor: $color-cinder;\n\t\t\tdisplay: block;\n\t\t\tfont-size: 14px;\n\t\t\tmargin-bottom: 10px;\n\t\t\t&:last-child {\n\t\t\t\tmargin-bottom: 0;\n\t\t\t}\n\t\t}\n\n\t\t.llms-author {\n\t\t\talign-items: center;\n\t\t\tdisplay: flex;\n\t\t\tgap: 5px;\n\t\t}\n\n\t\t.llms-featured-img-wrap {\n\t\t\toverflow: hidden;\n\t\t}\n\n\t\tp {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t\t.llms-progress {\n\t\t\tmargin: 0;\n\t\t\theight: .4em;\n\n\t\t\t.progress__indicator {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.llms-progress-bar {\n\t\t\t\tbackground-color: #f6f6f6;\n\t\t\t\tright: 0;\n\t\t\t\ttop: 0;\n\t\t\t}\n\t\t}\n\n\t}\n\n\n\n// .llms-membership-list .memberships {\n// border-top: 1px solid #f6f6f6;\n// width: 100%;\n// display: inline-block;\n// text-align: center;\n// list-style: none;\n// clear: both;\n// margin: 0;\n// padding: 0;\n// }\n\n\n\n// .llms-course-list {\n\n// .llms-membership-link {\n// @extend %llms-element;\n\n// display: block\n// }\n\n// .llms-membership-footer {\n// border-top: 3px solid $color-white;\n// margin: 15px -15px 0;\n// padding: 15px 15px 0;\n// text-align: center;\n// }\n\n// }\n\n\n\n\n// .llms-membership-list .memberships li {\n// width: 300px;\n// margin: 15px;\n// list-style: none;\n// vertical-align: top;\n// display: inline-block;\n// text-align: left;\n// }\n\n// .llms-membership-list .memberships li.first {\n// margin-left: 0;\n// }\n\n// .llms-membership-list .memberships li.last {\n// margin-right: 15px;\n// }\n\n// .llms-membership-list .memberships li .llms-title {\n// display: block;\n// font-weight: 700;\n// margin-bottom: .5em;\n// font-size: 18px;\n// text-decoration: none;\n// line-height: 30px;\n// }\n\n// .llms-membership-list .memberships li .llms-price {\n// display: block;\n// font-weight: 700;\n// // margin-bottom: .5em;\n// // font-size: 24px;\n// text-decoration: none;\n// line-height: 30px;\n// }\n\n// .llms-course-list {\n// //margin: 30px 0;\n// padding: 30px;\n// //background: #FFF;\n// // border-radius: 2px;\n// display: inline-block;\n// width: 100%;\n// box-sizing: border-box;\n\n// .llms-course-link {\n// @extend %llms-element;\n\n// display: block\n// }\n\n// .llms-course-footer {\n// border-top: 3px solid $color-white;\n// margin: 15px -15px 0;\n// padding: 15px 15px 0;\n// text-align: center;\n// }\n\n// .llms-progress {\n// margin-top: 0;\n// // .progress-bar {\n// // background-color: $color-white;\n// // }\n// }\n\n// }\n\n// .llms-course-list .courses {\n// //border-top: 1px solid #f6f6f6;\n// width: 100%;\n// display: inline-block;\n// text-align: center;\n// list-style: none;\n// clear: both;\n// margin: 0;\n// padding: 0;\n// }\n\n// .llms-course-list .courses li {\n// width: 300px;\n// padding-top: 0; // twentyfifteen compat\n// margin: 15px;\n// list-style: none;\n// vertical-align: top;\n// display: inline-block;\n// text-align: left;\n// }\n// @media screen and (max-width: $break-small) {\n// .llms-course-list {\n// padding: 30px 10px;\n\n// .courses li {\n// width: auto;\n// }\n// }\n// }\n\n// // .llms-course-list .courses li.first {\n// // \tmargin-left: 0;\n// // }\n\n// .llms-course-list .courses li.last {\n// margin-right: 15px;\n// }\n\n// .llms-course-list .courses li .llms-title {\n// display: block;\n// font-weight: 700;\n// margin-bottom: .5em;\n// font-size: 18px;\n// text-decoration: none;\n// line-height: 30px;\n// }\n\n// .llms-course-list .courses li .llms-price {\n// display: block;\n// font-weight: 700;\n// // margin-bottom: .5em;\n// // font-size: 24px;\n// text-decoration: none;\n// line-height: 30px;\n// }\n\n\n\n\n// .courses a.llms-course-link:hover {\n// text-decoration: none;\n// }\n",".llms-meta-info {\n\tmargin: 40px 0;\n\t.llms-meta-title {\n\t\tmargin: 0;\n\t}\n\t.llms-meta {\n\t\tp {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t\tspan {\n\t\t\tfont-weight: 700;\n\t\t}\n\t}\n}\n.llms-course-progress {\n\tmargin: 40px auto;\n\tmax-width: 480px;\n\ttext-align: center;\n}\n",".llms-syllabus-wrapper {\n\n\tmargin: 20px 0;\n\ttext-align: left;\n\n\t.llms-section-title {\n\t\tmargin: 40px 0 10px;\n\n\t\t+ .llms-lesson-preview {\n\t\t\tborder-top: 1px solid $color-border;\n\t\t}\n\t}\n\n}\n\n.llms-lesson-preview {\n\tborder-right: 1px solid $color-border;\n\tborder-bottom: 1px solid $color-border;\n\tborder-left: 1px solid $color-border;\n\tdisplay: block;\n\tmargin: 0;\n\tmax-width: 100%;\n\tposition: relative;\n\n\t&.current-lesson {\n\t\t.llms-lesson-title {\n\t\t\tfont-weight: 400;\n\t\t}\n\t}\n\n\t.llms-lesson-link {\n\t\tbackground: $color-white;\n\t\tcolor: $color-black;\n\t\tdisplay: block;\n\t\tpadding: 15px;\n\t\ttext-decoration: none;\n\t\ttransition: background-color 0.3s ease;\n\n\t\t&:hover {\n\t\t\tbackground: $el-background-hover;\n\t\t}\n\n\t\t&:visited {\n\t\t\tcolor: #212121;\n\t\t}\n\n\t\t&.llms-lesson-link-locked {\n\t\t\tbackground: #EFEFEF;\n\t\t\tcolor: $color-darkgrey;\n\n\t\t\t&:hover {\n\t\t\t\tbackground: $color-border;\n\t\t\t}\n\n\t\t}\n\n\t\t.llms-lesson-preview-row {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row-reverse;\n\t\t}\n\t}\n\n\t.llms-lesson-thumbnail {\n\t\tmargin-bottom: 15px;\n\t\timg {\n\t\t\tdisplay: block;\n\t\t\theight: auto;\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\t.llms-lesson-title {\n\t\tfont-weight: 700;\n\t\tmargin: 0 auto 5px;\n\t\t&:last-child {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t}\n\n\t.llms-lesson-excerpt {\n\t\tmargin-top: 05px;\n\n\t\tp {\n\t\t\tmargin: 0 0 10px 0;\n\t\t\tpadding: 0;\n\t\t\t&:last-of-type {\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t.llms-main {\n\t flex-grow: 1;\n\t}\n\t.llms-extra {\n\t\tmin-width: 50px;\n\t\ttext-align: right;\n\t}\n\n\t.llms-lesson-counter,\n\t.llms-free-lesson-svg,\n\t.llms-lesson-complete,\n\t.llms-lesson-complete-placeholder {\n\t\tdisplay: block;\n\t}\n\n\t&.is-free,\n\t&.is-complete {\n\t\t.llms-lesson-complete {\n\t\t\tcolor: $color-brand-blue;\n\t\t}\n\t}\n\n\t&.is-complete {\n\t\t.llms-lesson-title:not(.llms-student-dashboard .llms-lesson-title):not(.llms-course-navigation .llms-lesson-title) {\n\t\t\ttext-decoration: line-through;\n\t\t}\n\t}\n\n\t.llms-icon-free {\n\t\tbackground: $color-brand-blue;\n\t\tborder-radius: $radius-small;\n\t\tcolor: $color-white;\n\t\tdisplay: inline-block;\n\t\tfont-size: 14px;\n\t\tfont-weight: bold;\n\t\tline-height: 1;\n\t\tpadding: 5px 8px 4px;\n\t\twhite-space: nowrap;\n\t}\n\n\t&.is-incomplete {\n\t\t.llms-lesson-complete {\n\t\t\tcolor: #cacaca;\n\t\t}\n\t}\n\n\t.llms-lesson-counter {\n\t\tfont-size: 16px;\n\t\tmargin-bottom: 5px;\n\t}\n\n\t.llms-free-lesson-svg {\n\t\tfill: currentColor;\n\t\theight: 23px;\n\t\twidth: 50px;\n\t}\n\n}\n\n.llms-course-navigation {\n\tdisplay: flex;\n\tgap: 20px;\n\t.llms-prev-lesson,\n\t.llms-next-lesson,\n\t.llms-back-to-course {\n\t\tflex: 1;\n\t}\n\n\t.llms-prev-lesson {\n\t\t& + .llms-back-to-course {\n\t\t\ttext-align: right;\n\t\t}\n\t}\n\n\t.llms-next-lesson {\n\t\t.llms-lesson-preview {\n\t\t\t.llms-lesson-link {\n\t\t\t\ttext-align: right;\n\t\t\t}\n\t\t}\n\t}\n\n\t.llms-lesson-preview {\n\t\tborder: 1px solid $color-border;\n\t}\n\n\t.llms-lesson-link {\n\t\tdisplay: block;\n\t}\n}\n","/* progress bar */\n.llms-progress {\n\tclear: both;\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\tposition: relative;\n\theight: 1em;\n\twidth: 100%;\n\tmargin: 15px 0;\n}\n\n.llms-progress .llms-progress-bar {\n\tbackground-color: $color-border;\n\tposition: relative;\n\theight: .4em;\n\ttop: .3em;\n\twidth: 100%;\n}\n\n.llms-progress .progress-bar-complete {\n\tbackground-color: $color-brand-pink;\n\theight: 100%;\n}\n\n.progress__indicator {\n\tfloat: right;\n\ttext-align: right;\n\theight: 1em;\n\tline-height: 1em;\n\tmargin-left: 5px;\n\twhite-space: nowrap;\n}\n",".llms-author {\n\t.name {\n\t\tmargin-left: 5px;\n\t}\n\t.label {\n\t\tmargin-left: 5px;\n\t}\n\t.avatar {\n\t\tborder-radius: 50%;\n\t}\n\t.bio {\n\t\tmargin-top: 5px;\n\t}\n}\n\n\n.llms-instructor-info {\n\tmargin: 40px 0;\n\t.llms-meta-title {\n\t\tmargin: 0;\n\t}\n\t.llms-instructors {\n\n\t\t.llms-col {\n\t\t\t&:first-child .llms-author {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t&:last-child .llms-author {\n\t\t\t\tmargin-right: 0;\n\t\t\t}\n\t\t}\n\n\t\t.llms-author {\n\t\t\tbackground: $color-white;\n\t\t\tborder: 1px solid $color-border;\n\t\t\tborder-top: 4px solid $color-blue;\n\t\t\tborder-bottom-right-radius: $radius-small;\n\t\t\tborder-bottom-left-radius: $radius-small;\n\t\t\tcolor: $color-black;\n\t\t\ttext-align: center;\n\t\t\tmargin: 45px 0 0;\n\t\t\tpadding: 0 20px 20px;\n\n\t\t\t.avatar {\n\t\t\t\tbackground: $color-brand-blue;\n\t\t\t\tborder: 4px solid $color-blue;\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin: -35px auto 10px;\n\t\t\t}\n\n\t\t\t.llms-author-info {\n\t\t\t\tdisplay: block;\n\t\t\t\t// margin: 0 0 5px;\n\t\t\t\t&.name {\n\t\t\t\t\tfont-weight: 700;\n\t\t\t\t}\n\t\t\t\t&.label {\n\t\t\t\t\tfont-size: 85%;\n\t\t\t\t}\n\t\t\t\t&.bio {\n\t\t\t\t\tfont-size: 90%;\n\t\t\t\t\tmargin-bottom: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n}\n",".llms_review {\n\tmargin: 20px 0px;\n\tpadding: 10px;\n\n\th5 {\n\t\tfont-size: 17px;\n\t\tmargin: 3px 0px;\n\t}\n\n\th6 {\n\t\tfont-size: 13px;\n\t}\n\n\tp {\n\t\tfont-size: 15px;\n\t}\n}\n\n.review_box {\n\n\t[type=text] {\n\t\tmargin: 10px 0px\n\t}\n\n\th5 {\n\t\tcolor: red;\n\t\tdisplay: none;\n\t}\n\n\t+ .thank_you_box {\n\t\tdisplay: none;\n\t}\n}\n",".llms-notice {\n\tbackground: rgba( $color-brand-blue, .3 );\n\tborder-color: $color-brand-blue;\n\tborder-style: solid;\n\tborder-width: 1px;\n\tborder-radius: $radius-small;\n\tpadding: 15px;\n\tmargin-bottom: 40px;\n\n\ta {\n\t\tcolor: inherit;\n\t}\n\n\tp, ul {\n\t\t&:last-child { margin-bottom: 0; }\n\t}\n\n\tli {\n\t\tlist-style-type: none;\n\t}\n\n\t&.llms-debug {\n\t\tbackground: rgba( #cacaca, .3 );\n\t\tborder-color: #cacaca;\n\t}\n\n\t&.llms-error {\n\t\tbackground: rgba( $color-red, .15 );\n\t\tborder-color: $color-red;\n\t}\n\n\t&.llms-success {\n\t\tbackground: rgba( $color-green, .15 );\n\t\tborder-color: $color-green;\n\t}\n\n}\n\n// this helps genesis and numerous other themes out a bit\n// by being slightly more specific\n.entry-content .llms-notice {\n\tmargin: 0 0 40px;\n\tli {\n\t\tlist-style-type: none;\n\t}\n}\n","ul.llms-achievements-loop,\n.lifterlms ul.llms-achievements-loop,\nul.llms-certificates-loop,\n.lifterlms ul.llms-certificates-loop {\n\n\t@include clearfix();\n\tlist-style-type: none;\n\tmargin: 0 -10px;\n\tpadding: 0;\n\n\tli.llms-achievement-loop-item,\n\tli.llms-certificate-loop-item {\n\t\tbox-sizing: border-box;\n\t\tdisplay: block;\n\t\tfloat: left;\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 10px;\n\t\twidth: 100%;\n\t}\n\n\t@media all and (min-width: 600px) {\n\t\t$cols: 1;\n\t\t@while $cols <= 5 {\n\t\t\t&.loop-cols-#{$cols} li.llms-achievement-loop-item,\n\t\t\t&.loop-cols-#{$cols} li.llms-certificate-loop-item {\n\t\t\t\twidth: calc( 100% / $cols );\n\t\t\t}\n\t\t\t$cols: $cols + 1;\n\t\t}\n\t}\n\n}\n\n.llms-achievement,\n.llms-certificate {\n\n\tbackground: $color-white;\n\tborder: none;\n\tborder-radius: $radius-medium;\n\tcolor: $color-black;\n\tdisplay: block;\n\tpadding: 20px 0;\n\ttext-decoration: none;\n\twidth: 100%;\n\n\t&:hover {\n\t\tbackground: #eaeaea;\n\t}\n\n\t.llms-achievement-img {\n\t\tdisplay: block;\n\t\tmargin: 0 auto;\n\t\tmax-width: 80%;\n\t}\n\n\t.llms-achievement-title {\n\t\tcolor: $color-black;\n\t\tfont-size: 16px;\n\t\tmargin: 0;\n\t\tpadding: 10px;\n\t\ttext-align: center;\n\t}\n\n\t.llms-certificate-title {\n\t\tcolor: $color-black;\n\t\tfont-size: 16px;\n\t\tmargin: 0;\n\t\tpadding: 0 0 10px;\n\t}\n\n\t.llms-achievement-info,\n\t.llms-achievement-date {\n\t\tdisplay: none;\n\t}\n\n\t.llms-achievement-content {\n\t\tpadding: 20px;\n\t\t&:empty {\n\t\t\tpadding: 0;\n\t\t}\n\t\t*:last-child {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t}\n\n}\n\n.llms-certificate {\n\tborder: 4px double $color-border;\n\tpadding: 20px 10px;\n\tbackground: $color-white;\n\ttext-align: center;\n\t&:hover {\n\t\tbackground: $color-white;\n\t\tborder-color: #eaeaea;\n\t}\n}\n\n.llms-achievement-modal {\n\t.llms-achievement {\n\t\tbackground: #fff;\n\t}\n\t.llms-achievement-info {\n\t\tdisplay: block;\n\t}\n\t.llms-achievement-title {\n\t\tdisplay: none;\n\t}\n}\n",".llms-notification {\n\n\t@include clearfix();\n\n\tbackground: $color-white;\n\tbox-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;\n\tborder-top: 4px solid $color-blue;\n\tcolor: $color-black;\n\topacity: 0;\n\tpadding: 12px;\n\tposition: fixed;\n\tright: -800px;\n\ttop: 24px;\n\ttransition:\n\t\topacity 0.4s ease-in-out,\n\t\tright 0.4s ease-in-out,\n\t;\n\tvisibility: hidden;\n\twidth: auto;\n\tz-index: 9999999;\n\n\t&.visible {\n\t\tleft: 12px;\n\t\topacity: 1;\n\t\tright: 12px;\n\t\ttransition:\n\t\t\topacity 0.4s ease-in-out,\n\t\t\tright 0.4s ease-in-out,\n\t\t\ttop 0.1s ease-in-out,\n\t\t\tbackground 0.2s ease-in-out,\n\t\t\ttransform 0.2s ease-in-out\n\t\t;\n\t\tvisibility: visible;\n\n\t\t&:hover {\n\t\t\t.llms-notification-dismiss {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t.llms-notification-content {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\n\t}\n\n\t\t.llms-notification-main {\n\t\t\talign-self: flex-start;\n\t\t\tflex: 4;\n\t\t\torder: 2;\n\t\t}\n\n\t\t\t.llms-notification-title {\n\t\t\t\tcolor: $color-black;\n\t\t\t\tfont-size: 18px;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.llms-notification-body {\n\t\t\t\tfont-size: 14px;\n\t\t\t\tline-height: 1.4;\n\t\t\t\tp, li {\n\t\t\t\t\tfont-size: inherit;\n\t\t\t\t}\n\t\t\t\tp {\n\t\t\t\t\tmargin-bottom: 8px;\n\t\t\t\t\timg {\n\t\t\t\t\t\tmax-width: 100%;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t.llms-mini-cert {\n\t\t\t\t\tbackground: #f6f6f6;\n\t\t\t\t\tborder: 1px solid #d0d0d0;\n\t\t\t\t\tbox-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;\n\t\t\t\t\tpadding: 16px 16px 24px;\n\t\t\t\t\tmargin-top: 12px;\n\t\t\t\t\t.llms-mini-cert-title {\n\t\t\t\t\t\tfont-size: 16px;\n\t\t\t\t\t\tfont-weight: 700;\n\t\t\t\t\t\tmargin: 12px auto;\n\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t}\n\t\t\t\t\t.llms-mini-cert--body {\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\t> div {\n\t\t\t\t\t\t\t&:nth-child(1) { width:65%; }\n\t\t\t\t\t\t\t&:nth-child(2) { width:35%; }\n\t\t\t\t\t\t\t&:nth-child(3) { width:85%; }\n\t\t\t\t\t\t\t&:nth-child(4) { width:75%; margin-top: 18px; }\n\t\t\t\t\t\t\t&:nth-child(5) { width:70%; }\n\t\t\t\t\t\t\t&:nth-child(6) { margin-left: 12px; margin-bottom:-24px; } // Dot.\n\t\t\t\t\t\t\t&:nth-child(7) { width:65%; margin-right: 12px; }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t.llms-mini-cert--mock-line {\n\t\t\t\t\t\tborder-radius: 2px;\n\t\t\t\t\t\theight: 8px;\n\t\t\t\t\t\tbackground: #b0b0b0;\n\t\t\t\t\t\tbackground-image: linear-gradient( to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100% );\n\t\t\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\t\t\tmargin: 4px auto;\n\t\t\t\t\t}\n\t\t\t\t\t.llms-mini-cert--mock-dot {\n\t\t\t\t\t\tbackground: #b0b0b0;\n\t\t\t\t\t\tborder-radius: 50%;\n\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\tcontent: '';\n\t\t\t\t\t\theight: 24px;\n\t\t\t\t\t\twidth: 24px;\n\t\t\t\t\t}\n\t\t\t\t\tp { margin-bottom: 0; }\n\t\t\t\t}\n\t\t\t}\n\n\t\t.llms-notification-aside {\n\t\t\talign-self: flex-start;\n\t\t\tflex: 1;\n\t\t\tmargin-right: 12px;\n\t\t\torder: 1;\n\t\t}\n\n\t\t\t.llms-notification-icon {\n\t\t\t\tdisplay: block;\n\t\t\t\tmax-width: 64px;\n\t\t\t}\n\n\t.llms-notification-footer {\n\t\tborder-top: 1px solid #e5e5e5;\n\t\tfont-size: 12px;\n\t\tmargin-top: 12px;\n\t\tpadding: 6px 6px 0;\n\t\ttext-align: right;\n\n\t\ta {\n\t\t\tcolor: $color-black;\n\t\t}\n\t}\n\n\t.llms-notification-dismiss {\n\t\tcolor: $color-danger;\n\t\tcursor: pointer;\n\t\tfont-size: 22px;\n\t\tposition: absolute;\n\t\tright: 10px;\n\t\ttop: 8px;\n\t\ttransition: opacity 0.4s ease-in-out;\n\t}\n\n}\n\n.llms-sd-notification-center {\n\n\t.llms-notification-list,\n\t.llms-notification-list-item {\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.llms-notification-list-item {\n\t\t&:hover .llms-notification {\n\t\t\tbackground: #fcfcfc;\n\t\t}\n\t}\n\n\t.llms-notification {\n\t\topacity: 1;\n\t\tborder-top: 1px solid #e5e5e5;\n\t\tleft: auto;\n\t\tpadding: 24px;\n\t\tposition: relative;\n\t\tright: auto;\n\t\ttop: auto;\n\t\tvisibility: visible;\n\t\twidth: auto;\n\t\t.llms-notification-aside {\n\t\t\tmax-width: 64px;\n\t\t}\n\t\t.llms-notification-footer {\n\t\t\tborder: none;\n\t\t\tpadding: 0;\n\t\t\ttext-align: left;\n\t\t}\n\t\t.llms-progress {\n\t\t\tdisplay: none !important;\n\t\t}\n\t\t.llms-notification-date {\n\t\t\tcolor: #515151;\n\t\t\tfloat: left;\n\t\t\tmargin-right: 6px;\n\t\t}\n\t\t.llms-mini-cert {\n\t\t\tmargin: 0 auto;\n\t\t\tmax-width: 380px;\n\t\t}\n\t}\n}\n\n@media all and (min-width: 480px) {\n\t.llms-notification {\n\t\tright: -800px;\n\t\twidth: 360px;\n\t\t&.visible {\n\t\t\tleft: auto;\n\t\t\tright: 24px;\n\t\t}\n\t\t.llms-notification-dismiss {\n\t\t\topacity: 0;\n\t\t}\n\t}\n}\n",".llms-pagination {\n\n\tul {\n\t\tlist-style-type: none;\n\t\tmargin: 40px 0;\n\t\tpadding: 0;\n\t\t@extend %cf;\n\n\t\tli {\n\n\t\t\tfloat: left;\n\n\t\t\ta {\n\t\t\t\tborder-bottom: 0;\n\t\t\t\ttext-decoration: none;\n\t\t\t}\n\n\t\t\t.page-numbers {\n\t\t\t\tpadding: 0.5em;\n\t\t\t\ttext-decoration: underline;\n\n\t\t\t\t&.current {\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}",".llms-tooltip {\n\n\tbackground: #2a2a2a;\n\tborder-radius: 4px;\n\tcolor: #fff;\n\tfont-size: 14px;\n\tline-height: 1.2;\n\topacity: 0;\n\ttop: -20px;\n\tpadding: 8px 12px;\n\tleft: 50%;\n\tposition: absolute;\n\tpointer-events: none;\n\ttransform: translateX( -50% );\n\ttransition: opacity .2s ease, top .2s ease;\n\tmax-width: 320px;\n\n\t&.show {\n\t\ttop: -28px;\n\t\topacity: 1;\n\t}\n\n\t&:after {\n\n\t\tbottom: -8px;\n\t\tborder-top: 8px solid #2a2a2a;\n\t\tborder-left: 8px solid transparent;\n\t\tborder-right: 8px solid transparent;\n\t\tcontent: '';\n\t\theight: 0;\n\t\tleft: 50%;\n\t\tposition: absolute;\n\t\ttransform: translateX( -50% );\n\t\twidth: 0;\n\n\t}\n\n}\n\n\n\n.webui-popover-title {\n\tfont-size: initial;\n\tfont-weight: initial;\n\tline-height: initial;\n}\n.webui-popover-inverse {\n\t.webui-popover-inner .close {\n\t\tcolor: #fff;\n\t\topacity: 0.6;\n\t\ttext-shadow: none;\n\t\t&:hover {\n\t\t\topacity: 0.8;\n\t\t}\n\t}\n\t.webui-popover-content a {\n\t\tcolor: #fff;\n\t\ttext-decoration: underline;\n\t\t&:hover {\n\t\t\ttext-decoration: none;\n\t\t}\n\t}\n}\n",".llms-quiz-attempt-results {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style-type: none;\n\n\t.llms-quiz-attempt-question {\n\t\tbackground: #efefef;\n\t\tborder-radius: $radius-small;\n\t\tmargin: 0 0 15px;\n\t\tposition: relative;\n\t\tlist-style-type: none;\n\t\t.toggle-answer {\n\t\t\tcolor: inherit;\n\t\t\tdisplay: flex;\n\t\t\tgap: 10px;\n\t\t\tjustify-content: space-between;\n\t\t\tpadding: 15px 35px 15px 15px;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t\t&.status--waiting.correct,\n\t\t&.status--waiting.incorrect {\n\t\t\tbackground: rgba( $color-orange, 0.2 );\n\t\t\t.llms-status-icon {\n\t\t\t\tbackground-color: $color-orange;\n\t\t\t}\n\t\t}\n\n\t\t&.status--graded.correct {\n\t\t\tbackground: rgba( $color-green, 0.15 );\n\t\t\t.llms-status-icon {\n\t\t\t\tbackground-color: $color-green;\n\t\t\t}\n\t\t}\n\t\t&.status--graded.incorrect {\n\t\t\tbackground: rgba( $color-red, 0.15 );\n\t\t\t.llms-status-icon {\n\t\t\t\tbackground-color: $color-red;\n\t\t\t}\n\t\t}\n\t\tpre {\n\t\t\toverflow: auto;\n\t\t}\n\t\t.llms-question-title {\n\t\t\tfont-size: 22px;\n\t\t\tmargin: 0;\n\t\t\tline-height: 1.4;\n\t\t}\n\n\t\t.llms-points {\n\t\t\tline-height: 1.4;\n\t\t}\n\n\t\t.llms-status-icon-tip {\n\t\t\tposition: absolute;\n\t\t\tright: -12px;\n\t\t\ttop: -2px;\n\t\t}\n\n\t\t.llms-status-icon {\n\t\t\tcolor: rgba( 255, 255, 255, 0.65 );\n\t\t\tborder-radius: 50%;\n\t\t\tfont-size: 30px;\n\t\t\theight: 40px;\n\t\t\tline-height: 40px;\n\t\t\ttext-align: center;\n\t\t\twidth: 40px;\n\t\t}\n\n\t\t.llms-quiz-attempt-question-main {\n\t\t\tdisplay: none;\n\t\t\tpadding: 0 15px 15px;\n\n\t\t\t.llms-quiz-results-label {\n\t\t\t\tfont-weight: 700;\n\t\t\t\tmargin: 0 0 10px;\n\t\t\t\tpadding: 0;\n\t\t\t}\n\n\t\t\tul.llms-quiz-attempt-answers {\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\tli.llms-quiz-attempt-answer {\n\t\t\t\t\tpadding: 0;\n\t\t\t\t\tmargin: 0 0 0 30px;\n\t\t\t\t\t&:only-child {\n\t\t\t\t\t\tlist-style-type: none;\n\t\t\t\t\t\tmargin-left: 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\timg {\n\t\t\t\theight: auto;\n\t\t\t\tmax-width: 200px;\n\t\t\t}\n\n\t\t\t.llms-quiz-attempt-answer-section {\n\t\t\t\tborder-top: 2px solid rgba( #fff, 0.5 );\n\t\t\t\tmargin-top: 20px;\n\t\t\t\tpadding-top: 20px;\n\t\t\t\t&:first-child {\n\t\t\t\t\tborder-top: none;\n\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\tpadding-top: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t&.type--picture_choice,\n\t\t&.type--picture_reorder {\n\t\t\tul.llms-quiz-attempt-answers {\n\t\t\t\tlist-style-type: none;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\n\t\t\t\tli.llms-quiz-attempt-answer {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tlist-style-type: none;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: 5px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.type--removed {\n\t\t\t.llms-question-title {\n\t\t\t\tfont-style: italic;\n\t\t\t\tfont-weight: normal;\n\t\t\t}\n\t\t\topacity: .5;\n\t\t}\n\n\t}\n}\n",".single-llms_quiz {\n\t#llms-quiz-wrapper {\n\t\t@import \"../_includes/quiz-result-question-list\";\n\t}\n\t.llms-return {\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.llms-quiz-results {\n\t\t@include clearfix();\n\n\t\t.llms-donut {\n\t\t\t&.passing {\n\t\t\t\tcolor: $color-success;\n\t\t\t\tsvg path {\n\t\t\t\t\tstroke: $color-success;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&.pending {\n\t\t\t\tcolor: #555;\n\t\t\t\tsvg path {\n\t\t\t\t\tstroke: #555;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&.failing {\n\t\t\t\tcolor: $color-danger;\n\t\t\t\tsvg path {\n\t\t\t\t\tstroke: $color-danger;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.llms-quiz-results-aside,\n\t\t.llms-quiz-results-main,\n\t\t.llms-quiz-results-history {\n\t\t\tmargin-bottom: 20px;\n\t\t}\n\n\n\t\t@media all and (min-width: 600px) {\n\t\t\t.llms-quiz-results-aside {\n\t\t\t\tfloat: left;\n\t\t\t\twidth: 220px;\n\n\t\t\t\t+ .llms-quiz-results-main {\n\t\t\t\t\tfloat: right;\n\t\t\t\t\twidth: calc( 100% - 300px );\n\t\t\t\t\t+ .llms-quiz-results-history {\n\t\t\t\t\t\tfloat: right;\n\t\t\t\t\t\twidth: calc( 100% - 300px );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t.llms-quiz-results-history {\n\t\t\t\tclear: right;\n\t\t\t}\n\t\t}\n\n\t}\n\n\tul.llms-quiz-meta-info {\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\n\t\tli {\n\t\t\tlist-style-type: none;\n\t\t\tmargin: 10px 0 0;\n\t\t\tpadding: 0\n\t\t}\n\t}\n\n\tul.llms-quiz-meta-info {\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.llms-quiz-buttons {\n\t\tmargin-top: 10px;\n\t\ttext-align: left;\n\n\t\tform { display: inline-block; }\n\t}\n\n}\n\n.llms-quiz-question-wrapper {\n\tmin-height: 140px;\n\tposition: relative;\n\n\t.llms-quiz-loading {\n\t\tbottom: 20px;\n\t\tleft: 0;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttext-align: center;\n\t\tz-index: 1;\n\t}\n\n\t.llms-question-image {\n\n\t\timg {\n\t\t\theight: auto;\n\t\t\tmax-width: 100%;\n\t\t}\n\n\t}\n}\n\n.llms-quiz-ui {\n\tposition: relative;\n\n\t.llms-quiz-header {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tmargin: 0 0 40px;\n\t}\n\n\t.llms-progress {\n\t\tbackground-color: $color-border;\n\t\tflex-direction: row;\n\t\theight: 8px;\n\t\tmargin: 0;\n\t\toverflow: hidden;\n\t\t.progress-bar-complete {\n\t\t\ttransition: width 0.3s ease-in;\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t.llms-error {\n\t\t@include clearfix();\n\t\tbackground: rgba( $color-red, .15 );\n\t\tborder: 1px solid $color-red;\n\t\tborder-radius: $radius-small;\n\t\tmargin: 20px 0;\n\t\tpadding: 15px;\n\n\t\ta {\n\t\t\tcolor: $color-red;\n\t\t\tfloat: right;\n\t\t\tfont-size: 22px;\n\t\t\tline-height: 1;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t}\n\n\t.llms-quiz-counter {\n\t\tdisplay: none;\n\n\t\tcolor: #6a6a6a;\n\t\tfloat: right;\n\t\tfont-size: 18px;\n\n\t\t.llms-sep {\n\t\t\tmargin: 0 5px;\n\t\t}\n\t}\n\n\t.llms-quiz-nav {\n\t\tmargin-top: 20px;\n\t\tbutton {\n\t\t\tmargin: 0 10px 0 0;\n\t\t}\n\t}\n\n}\n\n// single question wrapper\n.llms-question-wrapper {\n\n\t.llms-question-text {\n\t\tfont-size: 30px;\n\t\tfont-weight: 400;\n\t\tmargin-bottom: 15px;\n\t}\n\n\tol.llms-question-choices {\n\t\tlist-style-type: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\n\t\tli.llms-choice {\n\t\t\tborder-bottom: 1px solid #e8e8e8;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tposition: relative;\n\n\t\t\t&:last-child {\n\t\t\t\tborder-bottom: none;\n\t\t\t}\n\n\t\t\t&.type--picture {\n\t\t\t\tborder-bottom: none;\n\t\t\t\tlabel {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tpadding: 0;\n\t\t\t\t}\n\t\t\t\t.llms-marker {\n\t\t\t\t\tbottom: 10px;\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tright: 10px;\n\t\t\t\t}\n\t\t\t\t.llms-choice-image {\n\t\t\t\t\tmargin: 2px;\n\t\t\t\t\tpadding: 20px;\n\t\t\t\t\ttransition: background 0.4s ease;\n\t\t\t\t\timg {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\theight: auto;\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinput:checked ~ .llms-choice-image {\n\t\t\t\t\tbackground: #efefef\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tinput {\n\t\t\t\tdisplay: none;\n\t\t\t\tleft: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tvisibility: hidden;\n\t\t\t}\n\n\t\t\tlabel {\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 10px 20px;\n\t\t\t\tposition: relative;\n\t\t\t\t// &:hover {\n\t\t\t\t&.hovered {\n\t\t\t\t\t.llms-marker:not(.type--lister) {\n\t\t\t\t\t\t.iterator {\n\t\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.fa {\n\t\t\t\t\t\t\tdisplay: inline;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-marker {\n\n\t\t\t\tbackground: $color-white;\n\t\t\t\tcolor: $color-black;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tfont-size: 20px;\n\t\t\t\theight: 40px;\n\t\t\t\tline-height: 40px;\n\t\t\t\tmargin-right: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\ttransition: all 0.2s ease;\n\t\t\t\tvertical-align: middle;\n\t\t\t\twidth: 40px;\n\n\t\t\t\t.fa {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t&.type--lister,\n\t\t\t\t&.type--checkbox { border-radius: 4px; }\n\t\t\t\t&.type--radio { border-radius: 50%; }\n\n\t\t\t}\n\n\t\t\tinput:checked + .llms-marker {\n\t\t\t\tbackground: $color-brand-pink;\n\t\t\t\tcolor: #fff;\n\t\t\t\t.iterator {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t\t.fa {\n\t\t\t\t\tdisplay: inline;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.llms-choice-text {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tfont-size: 18px;\n\t\t\t\tfont-weight: 400;\n\t\t\t\tline-height: 1.6;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\t\t\t\tvertical-align: middle;\n\t\t\t\twidth: calc( 100% - 60px );\n\t\t\t}\n\n\t\t}\n\t}\n\n}\n\n.llms-quiz-timer {\n\tbackground: #fff;\n\tborder: 1px solid $color-green;\n\tborder-radius: 4px;\n\tcolor: $color-green;\n\tfloat: right;\n\tfont-size: 18px;\n\tline-height: 1;\n\tmargin-left: 20px;\n\tpadding: 8px 12px;\n\tposition: relative;\n\twhite-space: nowrap;\n\tz-index: 1;\n\n\t&.color-half {\n\t\tborder-color: $color-orange;\n\t\tcolor: $color-orange\n\t}\n\n\t&.color-empty {\n\t\tborder-color: $color-danger;\n\t\tcolor: $color-danger\n\t}\n\n\t.llms-tiles {\n\t\tdisplay: inline-block;\n\t\tmargin-left: 5px;\n\t}\n}\n\n\n// /* My Quizzes */\n// .llms-quiz-results {\n// @extend %cf;\n// font-family: \"Open Sans\",Verdana,Geneva,sans-serif,sans-serif;\n// position: relative;\n// }\n// .llms-quiz-results > h3 {\n// background-color: #f5f5f5;\n// padding: 4px;\n// }\n\n// .llms-quiz-result-details {\n// float: left;\n// ul {\n// list-style-type: none;\n// float: left;\n// li {\n// list-style-type: none;\n// font-size: 20px;\n// }\n// }\n// }\n// .llms-attempts {\n// font-weight: bold;\n// }\n\n// .llms-pass-perc {\n// font-weight: bold;\n// }\n// .llms-content-block {\n// margin: 6px 0;\n// }\n// .llms-question-wrapper {\n// margin: 40px 0 20px 0;\n// }\n// .llms-question-count {\n// margin-bottom: 20px;\n// }\n\n\n",".voucher-expand {\n\tdisplay: none;\n}",".llms-access-plans {\n\t@extend %clearfix;\n\n\t@media all and (min-width: 600px) {\n\t\t$cols: 1;\n\t\t@while $cols <= 5 {\n\t\t\t&.cols-#{$cols} .llms-access-plan {\n\t\t\t\twidth: calc( 100% / $cols );\n\t\t\t}\n\t\t\t$cols: $cols + 1;\n\t\t}\n\t}\n\n}\n\n.llms-free-enroll-form {\n\tmargin-bottom: 0;\n}\n\n.llms-access-plan {\n\tbox-sizing: border-box;\n\tfloat: left;\n\ttext-align: center;\n\twidth: 100%;\n\n\t.llms-access-plan-content,\n\t.llms-access-plan-footer {\n\t\tbackground: #f1f1f1;\n\t}\n\n\t&.featured {\n\n\t\t.llms-access-plan-featured {\n\t\t\tbackground: $color-brand-blue;\n\t\t\tborder-top-left-radius: $radius-small;\n\t\t\tborder-top-right-radius: $radius-small;\n\t\t}\n\n\t\t.llms-access-plan-content {\n\t\t\tborder-radius: 0;\n\t\t}\n\n\t\t.llms-access-plan-title {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-top-right-radius: 0;\n\t\t}\n\n\t\t.llms-access-plan-footer,\n\t\t.llms-access-plan-content {\n\t\t\tborder-left: 3px solid $color-brand-blue;\n\t\t\tborder-right: 3px solid $color-brand-blue;\n\t\t}\n\n\t\t.llms-access-plan-footer {\n\t\t\tborder-bottom-color: $color-brand-blue;\n\t\t}\n\n\t}\n\n\t&.on-sale {\n\t\t.price-regular {\n\t\t\ttext-decoration: line-through;\n\t\t\t.lifterlms-price {\n\t\t\t\tfont-weight: 400;\n\t\t\t}\n\t\t}\n\t}\n\n\t.stamp {\n\t\tbackground: $color-brand-blue;\n\t\tborder-radius: $radius-small;\n\t\tcolor: $color-white;\n\t\tdisplay: inline-block;\n\t\tfont-size: 14px;\n\t\tfont-style: normal;\n\t\tfont-weight: bold;\n\t\tline-height: 1;\n\t\tpadding: 5px 8px 4px;\n\t}\n}\n\n.llms-access-plan-featured {\n\tcolor: #fff;\n\tfont-size: 14px;\n\tfont-weight: 700;\n\tletter-spacing: 1px;\n\tmargin: 0 2px 0 2px;\n\tpadding: 5px 0 0;\n}\n\n.llms-access-plan-content {\n\tborder-top-right-radius: $radius-small;\n\tborder-top-left-radius: $radius-small;\n\tmargin: 0 2px 0;\n\toverflow: hidden;\n\n\t.llms-access-plan-pricing {\n\t\tcolor: $color-black;\n\t\tpadding: 20px 0 0;\n\t}\n\n\t.llms-form-fields {\n\t\tpadding: 10px;\n\t}\n}\n\n.llms-access-plan-title {\n\tbackground: $color-brand-blue;\n\tcolor: $color-white;\n\tmargin: 0;\n\tpadding: 10px 15px;\n}\n\n.llms-access-plan-pricing {\n\n\t.llms-price-currency-symbol {\n\t\tfont-size: 14px;\n\t\tvertical-align: top;\n\t}\n\n}\n\n.llms-access-plan-price {\n\n\t.lifterlms-price {\n\t\tfont-weight: 700;\n\t}\n\n\t&.sale {\n\t\tpadding: 5px 0;\n\t\tborder-top: 1px solid #d0d0d0;\n\t\tborder-bottom: 1px solid #d0d0d0;\n\t}\n}\n\n.llms-access-plan-trial,\n.llms-access-plan-schedule,\n.llms-access-plan-sale-end,\n.llms-access-plan-expiration {\n\tfont-size: 16px;\n}\n\n.llms-access-plan-description {\n\tcolor: $color-black;\n\tfont-size: 16px;\n\tpadding: 10px 10px 0;\n\n\tul {\n\t\tmargin: 0;\n\t\tli {\n\t\t\tborder-bottom: 1px solid #d0d0d0;\n\t\t\tlist-style-type: none;\n\t\t\t&:last-child {\n\t\t\t\tborder-bottom: none;\n\t\t\t}\n\t\t}\n\t}\n\n\tdiv, img, p, ul, li {\n\t\t&:last-child { margin-bottom: 0; }\n\t}\n}\n\n.llms-access-plan-restrictions {\n\tmargin-top: 20px;\n\n\t.stamp {\n\t\tvertical-align: baseline;\n\t}\n\n\tul {\n\t\tmargin: 5px 0 0 0;\n\t\tpadding: 0;\n\n\t\tli {\n\t\t\tfont-size: 14px;\n\t\t\tlist-style-type: none;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n\n\ta {\n\t\tcolor: $color-orange;\n\t\t&:hover {\n\t\t\tcolor: $color-brand-orange-dark;\n\t\t}\n\t}\n}\n\n.llms-access-plan-footer {\n\tborder-bottom: 3px solid #f1f1f1;\n\tborder-bottom-left-radius: $radius-small;\n\tborder-bottom-right-radius: $radius-small;\n\tpadding: 15px;\n\tmargin: 0 2px 2px 2px;\n\n\t.button {\n\t\tdisplay: inline-block;\n\t}\n\n\t.llms-access-plan-pricing {\n\t\tpadding: 0 0 10px;\n\t}\n}\n\n.webui-popover-content .llms-members-only-restrictions {\n\ttext-align: center;\n\tul,ol,li,p {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\tul,ol,li {\n\t\tlist-style-type: none;\n\t}\n\tli {\n\t\tpadding: 8px 0;\n\t\tborder-top: 1px solid #3b3b3b;\n\t\t&:first-child {\n\t\t\tborder-top: none;\n\t\t}\n\t\ta {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n",".llms-checkout-wrapper {\n\t.llms-person-login-form-wrapper {\n\t\tmargin-bottom: 40px;\n\t}\t\n\tform.llms-login {\n\t\tdisplay: none;\n\t}\n\t.llms-form-heading {\n\t\tmargin: 0 0 20px;\n\t}\n}\n\n.llms-checkout {\n\tposition: relative;\n}\n\n.llms-checkout-cols-2 {\n\t@extend %clearfix;\n\n\t&.llms-col-2 {\n\n\t\tsection {\n\t\t\tbackground-color: $color-white;\n\t\t\tborder: 1px solid $color-lightgrey;\n\t\t\tborder-radius: $radius-medium;\n\t\t\tpadding: 20px;\n\n\t\t\t.llms-form-heading {\n\t\t\t\tpadding: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t@media all and (min-width: 800px) {\n\n\t\t.llms-checkout-col {\n\t\t\tfloat: left;\n\n\t\t\t&.llms-col-1 {\n\t\t\t\tmargin-right: 20px;\n\t\t\t\twidth: calc( 58% - 20px );\n\t\t\t}\n\t\t\t&.llms-col-2 {\n\t\t\t\tmargin-left: 20px;\n\t\t\t\twidth: calc( 42% - 20px );\n\n\t\t\t\tbutton {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n}\n\n\t.llms-checkout-section {\n\t\tmargin-bottom: 40px;\n\t\tposition: relative;\n\t}\n\n\t\t.llms-checkout-section-content {\n\t\t\t&.llms-form-fields {\n\t\t\t\tmargin: 0px;\n\t\t\t}\n\n\t\t\t.llms-label {\n\t\t\t\tfont-weight: 400;\n\t\t\t}\n\n\t\t\t.llms-order-summary {\n\t\t\t\tlist-style-type: none;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\n\t\t\t\tli {\n\t\t\t\t\tlist-style-type: none;\n\t\t\t\t\tmargin: 0 0 15px 0;\n\n\t\t\t\t}\n\n\t\t\t\t:not(.llms-label) {\n\t\t\t\t\tfont-weight: 700;\n\t\t\t\t}\n\n\t\t\t\tli.llms-pricing {\n\t\t\t\t\t&.on-sale,\n\t\t\t\t\t&.has-coupon {\n\t\t\t\t\t\t.price-regular { text-decoration: line-through; }\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\t\t\t}\n\n\t\t\t.llms-coupon-wrapper {\n\t\t\t\tborder-top: 1px solid $color-border;\n\t\t\t\tmargin-top: 20px;\n\t\t\t\tpadding-top: 20px;\n\n\t\t\t\t.llms-coupon-entry {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t\tmargin-top: 20px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t.llms-form-field.llms-payment-gateway-option {\n\t\t\talign-items: center;\n\t\t\tdisplay: flex;\n\t\t\tgap: 8px;\n\n\t\t\tlabel + span.llms-description {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\n\t\t\t.llms-description {\n\t\t\t\ta {\n\t\t\t\t\tborder: none;\n\t\t\t\t\tbox-shadow: none;\n\t\t\t\t\ttext-decoration: none;\n\t\t\t\t}\n\t\t\t\timg {\n\t\t\t\t\tdisplay: inline;\n\t\t\t\t\tmax-height: 22px;\n\t\t\t\t\tvertical-align: middle;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t.llms-checkout-wrapper ul.llms-payment-gateways {\n\t\t\tmargin: 5px 0 0;\n\t\t\tpadding: 0;\n\t\t}\n\t\tul.llms-payment-gateways {\n\t\t\tlist-style-type: none;\n\n\t\t\tli:last-child:after {\n\t\t\t\tborder-bottom: 1px solid $color-border;\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: block;\n\t\t\t\tmargin: 20px 0;\n\t\t\t}\n\n\t\t\t.llms-payment-gateway {\n\t\t\t\tmargin-bottom: 30px;\n\t\t\t\tlist-style-type: none;\n\t\t\t\t&:last-child {\n\t\t\t\t\tmargin-bottom: none;\n\t\t\t\t}\n\n\t\t\t\t&.is-selected {\n\t\t\t\t\t.llms-payment-gateway-option label {\n\t\t\t\t\t\tfont-weight: 700;\n\t\t\t\t\t}\n\t\t\t\t\t.llms-gateway-fields {\n\t\t\t\t\t\tdisplay: block;\n\n\t\t\t\t\t\t.llms-notice {\n\t\t\t\t\t\t\tmargin-left: 10px;\n\t\t\t\t\t\t\tmargin-right: 10px;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t.llms-form-field {\n\t\t\t\t\tpadding-bottom: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t\t.llms-gateway-description {\n\t\t\t\t\tmargin-left: 40px;\n\t\t\t\t}\n\n\t\t\t\t.llms-gateway-fields {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t\tmargin: 5px 0 20px;\n\t\t\t\t}\n\n\t\t\t.llms-payment-gateway-error {\n\t\t\t\tpadding: 0 10px;\n\t\t\t}\n\t\t}\n\n\t\t.llms-checkout-confirm {\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t.llms-payment-method {\n\t\t\tmargin: 10px 10px 0;\n\t\t}\n\n\t\t.llms-gateway-description {\n\t\t\tp {\n\t\t\t\tfont-size: 14px;\n\t\t\t\tfont-style: italic;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t}\n",".llms-form-fields {\n\t@extend %clearfix;\n\tbox-sizing: border-box;\n\t& * {\n\t\tbox-sizing: border-box;\n\t}\n\t&.flush {\n\t\t.llms-form-field {\n\t\t\tpadding: 0 0 20px;\n\t\t}\n\t}\n\n\tlabel:not(.llms-field-html label) {\n\t\tfont-weight: 700;\n\t}\n\n\t.wp-block-columns, .wp-block-column {\n\t\tmargin-bottom: 0;\n\t}\n}\n\n\t.llms-form-heading {\n\t\tpadding: 0 10px 10px;\n\t}\n\n\t.llms-form-field {\n\t\tfloat: left;\n\t\tpadding: 0 10px 20px;\n\t\tposition: relative;\n\t\twidth: 100%;\n\n\t\t// Ensure \"empty\" labels don't break the layout.\n\t\t// See the billing_address_2 field which has no label.\n\t\tlabel:empty:after {\n\t\t\tcontent: '\\00a0';\n\t\t}\n\n\t\t[type=\"text\"],\n\t\t[type=\"password\"],\n\t\t[type=\"email\"],\n\t\t[type=\"url\"],\n\t\t[type=\"tel\"],\n\t\t[type=\"number\"] {\n\t\t\tbackground-color: $color-white;\n\t\t\tbackground-clip: padding-box;\n\t\t\tborder: 1px solid $color-grey;\n\t\t\tborder-radius: $radius-small;\n\t\t\tbox-sizing: border-box;\n\t\t\tfont-size: 16px;\n\t\t\tline-height: 1;\n\t\t\tpadding: 8px 12px;\n\t\t\ttransition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\tinput:focus,\n\t\tinput:focus-visible {\n\t\t\tborder-color: $color-brand-blue-light;\n\t\t\toutline: thin solid;\n\t\t}\n\n\t\tselect {\n\t\t\t-webkit-appearance: none;\n\t\t\t-moz-appearance: none;\n\t\t\t-ms-appearance: none;\n\t\t\tappearance: none;\n\t\t\tbackground-color: $color-white;\n\t\t\tborder: 1px solid $color-grey;\n\t\t\tborder-radius: $radius-small;\n\t\t\tbox-sizing: border-box;\n\t\t\tcolor: $color-black;\n\t\t\tpadding: 8px 12px;\n\t\t\tmargin: 0;\n\t\t\twidth: 100%;\n\t\t\tfont-family: inherit;\n\t\t\tfont-size: 16px;\n\t\t\tcursor: inherit;\n\t\t\tline-height: 1.6;\n\t\t\tz-index: 1;\n\t\t\toutline: none;\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-image: linear-gradient(45deg, transparent 50%, currentcolor 50%), linear-gradient(135deg, currentcolor 50%, transparent 50%);\n\t\t\tbackground-position: right 15px top 1.3rem, right 10px top 1.3rem;\n\t\t\tbackground-size: 5px 5px, 5px 5px;\n\t\t}\n\n\t\tselect::-ms-expand {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\tselect:focus {\n\t\t\tborder: 1px solid $color-brand-blue-light;\n\t\t\toutline: thin solid;\n\t\t}\n\n\t\t&.valid {\n\t\t\tinput[type=\"date\"], input[type=\"time\"], input[type=\"datetime-local\"], input[type=\"week\"], input[type=\"month\"], input[type=\"text\"], input[type=\"email\"], input[type=\"url\"], input[type=\"password\"], input[type=\"search\"], input[type=\"tel\"], input[type=\"number\"], textarea, select {\n\t\t\t\tbackground: rgba( #83c373, .3 );\n\t\t\t\tborder-color: #83c373;\n\t\t\t}\n\t\t}\n\n\t\t&.error,\n\t\t&.invalid {\n\t\t\tinput[type=\"date\"], input[type=\"time\"], input[type=\"datetime-local\"], input[type=\"week\"], input[type=\"month\"], input[type=\"text\"], input[type=\"email\"], input[type=\"url\"], input[type=\"password\"], input[type=\"search\"], input[type=\"tel\"], input[type=\"number\"], textarea, select {\n\t\t\t\tbackground: rgba( $color-red, .3 );\n\t\t\t\tborder-color: $color-red;\n\t\t\t}\n\t\t}\n\n\t\t&.llms-visually-hidden-field {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&.align-right {\n\t\t\ttext-align: right;\n\t\t}\n\n\t\t@media screen and ( min-width: 600px ) {\n\t\t\t$i: 1;\n\t\t\t@while $i <= 12 {\n\t\t\t\t&.llms-cols-#{$i} {\n\t\t\t\t\twidth: calc( $i / 12 ) * 100%;\n\t\t\t\t\t$i: $i + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.type-hidden { padding: 0; }\n\n\t\t&.type-radio,\n\t\t&.type-checkbox {\n\t\t\tinput,\n\t\t\tlabel {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: auto;\n\t\t\t}\n\t\t\tinput {\n\t\t\t\tmargin-right: 10px;\n\t\t\t}\n\t\t\tlabel + .llms-description {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\n\t\t&.type-radio:not(.is-group) {\n\n\t\t\tinput[type=\"radio\"] {\n\t\t\t\tposition: absolute;\n\t\t\t\topacity: 0;\n\t\t\t\tvisibility: none;\n\t\t\t}\n\n\t\t\tlabel:before {\n\t\t\t\tbackground: #fafafa;\n\t\t\t\tbackground-position: -24px 0;\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tbox-shadow: hsla( 0,0%,100%,.15) 0 1px 1px, inset hsla(0,0%,0%,.35) 0 0 0 1px;\n\t\t\t\tcontent: '';\n\t\t\t\tcursor: pointer;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\theight: 22px;\n\t\t\t\tmargin-right: 5px;\n\t\t\t\tposition: relative;\n\t\t\t\ttransition: background-position .15s cubic-bezier(.8, 0, 1, 1);\n\t\t\t\ttop: -3px;\n\t\t\t\tvertical-align: middle;\n\t\t\t\twidth: 22px;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\tinput[type=\"radio\"]:checked + label:before {\n\t\t\t\ttransition: background-position .2s .15s cubic-bezier(0, 0, .2, 1);\n\t\t\t\tbackground-position: 0 0;\n\t\t\t\tbackground-image: radial-gradient(ellipse at center, $color-brand-blue 0%,$color-brand-blue 40%, #fafafa 45%);\n\t\t\t}\n\n\t\t}\n\n\t\t.llms-input-group {\n\t\t\tmargin-top: 5px;\n\t\t\t.llms-form-field {\n\t\t\t\tpadding: 0 0 5px 5px;\n\t\t\t}\n\t\t}\n\n\t\t&.type-reset,\n\t\t&.type-button,\n\t\t&.type-submit {\n\t\t\tbutton:not(.auto) { width: 100%; }\n\t\t}\n\n\t\t.llms-description {\n\t\t\tfont-size: 14px;\n\t\t\tfont-style: italic;\n\t\t\tline-height: 18px;\n\t\t}\n\n\t\t.llms-required {\n\t\t\tcolor: $color-red;\n\t\t\tmargin-left: 4px;\n\t\t}\n\n\t\tinput, textarea, select {\n\t\t\twidth: 100%;\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\n\t\t.select2-container .select2-selection--single {\n\t\t\theight: auto;\n\t\t\tpadding: 4px 6px;\n\t\t}\n\t\t.select2-container--default .select2-selection--single .select2-selection__arrow {\n\t\t\theight: 100%;\n\t\t}\n\n\t}\n\n\n\t.llms-password-strength-meter {\n\t\tborder: 1px solid #dadada;\n\t\tdisplay: none;\n\t\tfont-size: 10px;\n\t\tmargin-top: -10px;\n\t\tpadding: 1px;\n\t\tposition: relative;\n\t\ttext-align: center;\n\n\t\t&:before {\n\t\t\tbottom: 0;\n\t\t\tcontent: '';\n\t\t\tleft: 0;\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\ttransition: width .4s ease;\n\t\t}\n\n\t\t&.mismatch,\n\t\t&.too-short,\n\t\t&.very-weak {\n\t\t\tborder-color: #e35b5b;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #e35b5b, 0.25 );\n\t\t\t\twidth: 25%;\n\t\t\t}\n\t\t}\n\n\t\t&.too-short:before {\n\t\t\twidth: 0;\n\t\t}\n\n\t\t&.weak {\n\t\t\tborder-color: #f78b53;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #f78b53, 0.25 );\n\t\t\t\twidth: 50%;\n\t\t\t}\n\t\t}\n\n\t\t&.medium {\n\t\t\tborder-color: #ffc733;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #ffc733, 0.25 );\n\t\t\t\twidth: 75%;\n\t\t\t}\n\t\t}\n\n\t\t&.strong {\n\t\t\tborder-color: #83c373;\n\t\t\t&:before {\n\t\t\t\tbackground: rgba( #83c373, 0.25 );\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\n\t\t+ .llms-description {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n",".llms-widget-syllabus--collapsible {\n\n\t.llms-section {\n\n\t\t.section-header {\n\n\t\t\tcursor: pointer;\n\n\t\t}\n\n\t\t&.llms-section--opened {\n\n\t\t\t.llms-collapse-caret {\n\t\t\t\t.fa-caret-right { display: none; }\n\t\t\t}\n\n\t\t}\n\n\t\t&.llms-section--closed {\n\n\t\t\t.llms-collapse-caret {\n\t\t\t\t.fa-caret-down { display: none; }\n\t\t\t}\n\n\t\t\t.llms-lesson {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t.llms-syllabus-footer {\n\n\t\ttext-align: left;\n\n\t}\n\n}\n",".llms-student-dashboard {\n\n\t.llms-sd-title {\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tgap: 15px;\n\t\tmargin: 40px 0 20px 0;\n\n\t\tsmall {\n\t\t\tfont-size: 18px;\n\n\t\t\t+ a {\n\t\t\ttext-decoration: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t.llms-sd-items { // ul\n\t\tlist-style-type: none;\n\t\tmargin: 0 0 25px 0;\n\t\tpadding: 0;\n\t}\n\t\t.llms-sd-item { // li\n\t\t\tdisplay: inline-block;\n\t\t\tlist-style-type: none;\n\t\t\tmargin: 5px 0;\n\t\t\tpadding: 0;\n\n\t\t&:last-child {\n\t\t\t.llms-sep {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\n\t\t\t.llms-sep {\n\t\t\t\tcolor: $color-darkgrey;\n\t\t\t\tmargin: 0 5px;\n\t\t\t}\n\t\t}\n\n\t.llms-sd-section {\n\t\th2 {\n\t\t\tmargin: 0 0 15px 0;\n\t\t}\n\n\t\t.llms-sd-section-title {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t}\n\n\t\tmargin-bottom: 40px;\n\n\t\t.llms-sd-section-title:first-child {\n\t\t\tmargin: 0 0 10px 0;\n\t\t}\n\n\t\t.llms-sd-section-footer {\n\t\t\tmargin-top: 10px;\n\n\t\t\ta.llms-button-secondary {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\t\t}\n\n\t\t.llms-certificates-loop {\n\t\t\tmargin: 0 0 0 -10px;\n\t\t}\n\n\t\t.llms-certificate {\n\t\t\tpadding: 20px 0;\n\t\t}\n\t}\n\n\t.orders-table {\n\t\tborder: 1px solid $color-border;\n\t\tborder-spacing: 0;\n\t\twidth: 100%;\n\n\t\tthead {\n\t\t\tdisplay: none;\n\t\t\tth,td {\n\t\t\t\tfont-weight: 700;\n\t\t\t}\n\t\t\t@media all and ( min-width: 600px ) {\n\t\t\t\tdisplay: table-header-group;\n\t\t\t}\n\t\t}\n\n\t\ttbody {\n\t\t\ttr:nth-child( odd ) {\n\t\t\t\ttd, th {\n\t\t\t\t\tbackground: #f9f9f9;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttr:last-child {\n\t\t\t\tborder-bottom-width: 0;\n\t\t\t}\n\t\t}\n\n\t\ttfoot {\n\t\t\ttr {\n\t\t\t\tbackground: #f9f9f9;\n\t\t\t}\n\t\t\tth, td {\n\t\t\t\tpadding: 10px;\n\t\t\t\ttext-align: right;\n\t\t\t\t&:last-child { border-bottom-width: 0; }\n\t\t\t}\n\t\t}\n\n\t\tth {\n\t\t\tfont-weight: 700;\n\t\t}\n\n\t\tth, td {\n\t\t\tborder-color: $color-border;\n\t\t\tborder-style: solid;\n\t\t\tborder-width: 0;\n\t\t\tdisplay: block;\n\t\t\tpadding: 15px 20px;\n\t\t\ttext-align: center;\n\n\t\t\t.llms-button-primary {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\n\t\t\t&:last-child {\n\t\t\t\tborder-bottom-width: 1px;\n\t\t\t}\n\n\t\t\t&:before {\n\t\t\t\tcontent: attr( data-label );\n\t\t\t}\n\n\t\t\t@media all and ( min-width: 600px ) {\n\t\t\t\tborder-bottom-width: 1px;\n\t\t\t\tdisplay: table-cell;\n\t\t\t\ttext-align: left;\n\t\t\t\t&:first-child { width: 220px; }\n\t\t\t\t&:before { display: none; }\n\t\t\t}\n\n\t\t}\n\n\t\t@media all and ( min-width: 600px ) {\n\t\t\t&.transactions th:first-child {width: auto; }\n\t\t}\n\n\t}\n\n\t@include order_status_badges();\n\n\t.order-title {\n\t\t.llms-status {\n\t\t\tfont-size: 18px;\n\t\t}\n\t}\n\n\t.llms-person-form-wrapper {\n\t\t.llms-change-password { display: none; }\n\t}\n\n\t.order-primary {\n\n\t\t@media all and ( min-width: 600px ) {\n\t\t\tfloat: left;\n\t\t\twidth: 68%;\n\t\t}\n\n\t}\n\t.order-secondary {\n\n\t\t@media all and ( min-width: 600px ) {\n\t\t\tfloat: left;\n\t\t\twidth: 32%;\n\t\t}\n\n\t\tform {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t}\n\n\t// stack columns when alternate layout declared via filter\n\t@media all and ( min-width: 600px ) {\n\t\t.llms-view-order.llms-stack-cols {\n\t\t\t.order-primary,\n\t\t\t.order-secondary {\n\t\t\t\tfloat: none;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n\n\t.llms-switch-payment-source {\n\t\t.llms-notice,\n\t\t.entry-content .llms-notice {\n\t\t\tmargin-left: 10px;\n\t\t\tmargin-right: 10px;\n\t\t}\n\t}\n\n\t.llms-switch-payment-source-main {\n\t\tborder: none;\n\t\tdisplay: none;\n\t\tmargin: 0;\n\t\tul.llms-payment-gateways {\n\t\t\tpadding: 10px 15px 0;\n\t\t\tmargin: 0;\n\t\t}\n\t\t.llms-payment-method,\n\t\tul.llms-order-summary {\n\t\t\tpadding: 0 25px 10px;\n\t\t\tmargin: 0;\n\t\t\tlist-style-type: none;\n\t\t\tli { list-style-type: none; }\n\t\t}\n\t}\n\n\t/**\n\t * Dashboard Home\n\t */\n\t&.dashboard {\n\t\t.llms-sd-section {\n\t\t\tborder: 1px solid $color-border;\n\t\t\tborder-radius: $radius-small;\n\t\t\tpadding: 20px;\n\t\t\tmargin-bottom: 40px;\n\t\t}\n\t}\n\t.llms-loop-list {\n\t\tmargin: 0 -10px;\n\t}\n\n}\n\n.logged-in {\n\t.llms-sd-layout-columns {\n\t\talign-items: start;\n\n\t\t@media all and ( min-width: 600px ) {\n\t\t\tdisplay: grid;\n\t\t\tgrid-gap: 25px;\n\t\t\tgrid-template-areas: \"nav header\" \"nav tab\";\n\t\t\tgrid-template-columns: 200px 1fr;\n\t\t\tgrid-template-rows: auto 1fr;\n\t\t}\n\n\t\t.llms-sd-nav {\n\t\t\tgrid-area: nav;\n\n\t\t\t.llms-sd-items {\n\n\t\t\t\t@media all and ( min-width: 600px ) {\n\t\t\t\t\t.llms-sd-item {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tfloat: none;\n\n\t\t\t\t\t\ta {\n\t\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\t\tpadding: 10px 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.llms-sep {\n\t\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t.llms-sd-header {\n\t\t\tgrid-area: header;\n\t\t}\n\n\t\t.llms-sd-tab {\n\t\t\tgrid-area: tab;\n\t\t}\n\n\t}\n\n}\n\n// My Grades course list\n.llms-sd-grades {\n\t.llms-table {\n\t\t.llms-progress {\n\t\t\tdisplay: block;\n\t\t\tmargin: 0;\n\t\t\t.llms-progress-bar {\n\t\t\t\ttop: 0;\n\t\t\t\theight: 1.4em;\n\t\t\t}\n\t\t\t.progress__indicator {\n\t\t\t\tfont-size: 1em;\n\t\t\t\tposition: relative;\n\t\t\t\tright: 0.4em;\n\t\t\t\ttop: 0.2em;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n// grades table for a single course\n.llms-table.llms-single-course-grades {\n\n\ttbody {\n\t\ttr:first-child td, tr:first-child th {\n\t\t\tbackground-color: #eaeaea;\n\t\t}\n\t}\n\n\tth {\n\t\tfont-weight: 400;\n\t\ttext-align: left;\n\t}\n\n\ttd {\n\t\t.llms-donut {\n\t\t\tdisplay: inline-block;\n\t\t\tvertical-align: middle;\n\t\t}\n\t\t.llms-status {\n\t\t\tmargin-right: 4px;\n\t\t}\n\t\t.llms-donut + .llms-status {\n\t\t\tmargin-left: 4px;\n\t\t}\n\t}\n\n\tth.llms-section_title {\n\t\tfont-size: 110%;\n\t\tfont-weight: 700;\n\t}\n\n\ttd.llms-lesson_title {\n\t\tmax-width: 40%;\n\t}\n\ttd.llms-associated_quiz {\n\t\t.llms-donut {\n\t\t\tdisplay: inline-block;\n\t\t\tmargin-right: 5px;\n\t\t\tvertical-align: middle;\n\t\t}\n\t}\n\ttd.llms-lesson_title {\n\t\ta[href=\"#\"] {\n\t\t\tpointer-events: none;\n\t\t}\n\t\ta[href^=\"#\"] {\n\t\t\tcolor: inherit;\n\t\t\tposition: relative;\n\t\t\t.llms-tooltip {\n\t\t\t\tmax-width: 380px;\n\t\t\t\twidth: 380px;\n\t\t\t\t&.show {\n\t\t\t\t\ttop: -54px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n.llms-sd-widgets {\n\tdisplay: flex;\n\n\t.llms-sd-widget {\n\t\tbackground: $color-white;\n\t\tborder: 1px solid $color-border;\n\t\tborder-bottom-right-radius: $radius-small;\n\t\tborder-bottom-left-radius: $radius-small;\n\t\tflex: 1;\n\t\tmargin: 10px 10px 20px;\n\t\tpadding: 0 0 20px;\n\t\t&:first-child {\n\t\t\tmargin-left: 0;\n\t\t}\n\t\t&:last-child {\n\t\t\tmargin-right: 0;\n\t\t}\n\n\t\t.llms-sd-widget-title {\n\t\t\tbackground: $color-brand-blue;\n\t\t\tcolor: #fff;\n\t\t\tfont-size: 18px;\n\t\t\tline-height: 1;\n\t\t\tmargin: 0 0 20px;\n\t\t\tpadding: 10px;\n\t\t}\n\n\t\t.llms-sd-widget-empty {\n\t\t\tfont-size: 14px;\n\t\t\tfont-style: italic;\n\t\t\topacity: 0.5;\n\t\t\ttext-align: center;\n\t\t}\n\n\t\t.llms-donut {\n\t\t\tmargin: 0 auto;\n\t\t}\n\n\t\t.llms-sd-date {\n\t\t\topacity: 0.8;\n\t\t\ttext-align: center;\n\t\t\tfont-size: 22px;\n\t\t\tline-height: 1.1;\n\t\t\tspan {\n\t\t\t\tdisplay: block;\n\t\t\t\t&.day {\n\t\t\t\t\tfont-size: 52px;\n\t\t\t\t}\n\t\t\t\t&.diff {\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\tfont-style: italic;\n\t\t\t\t\tmargin-top: 8px;\n\t\t\t\t\topacity: 0.75;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.llms-achievement {\n\t\t\tbackground: transparent;\n\t\t\tmargin: 0 auto;\n\t\t\tmax-width: 120px;\n\t\t\t.llms-achievement-title {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\n\t}\n\n\n}\n\n.redeem-voucher {\n\t.form-row {\n\t\tlabel {\n\t\t\tdisplay: block;\n\t\t\tfont-weight: 700;\n\t\t}\n\t\tinput[type=\"text\"] {\n\t\t\tbackground-color: $color-white;\n\t\t\tbackground-clip: padding-box;\n\t\t\tborder: 1px solid $color-grey;\n\t\t\tborder-radius: $radius-small;\n\t\t\tbox-sizing: border-box;\n\t\t\tfont-size: 16px;\n\t\t\tline-height: 1;\n\t\t\tpadding: 8px 12px;\n\t\t\ttransition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n\t\t}\n\t}\n}\n\n\n.llms-sd-pagination {\n\tmargin-top: 24px;\n\t@include clearfix;\n\t.llms-button-secondary {\n\t\tdisplay: inline-block;\n\t\t&.prev { float: left; }\n\t\t&.next { float: right; }\n\t}\n}\n\n\n.llms-sd-notification-center {\n\tbackground: $color-white;\n\tborder: 1px solid $color-border;\n\tborder-radius: $radius-small;\n\tpadding: 20px;\n\n\t.llms-notification-list-item {\n\t\t.llms-notification {\n\t\t\tz-index: 1;\n\t\t\t&:hover {\n\t\t\t\tbackground-color: inherit;\n\t\t\t}\n\t\t}\n\t}\n}\n",".llms-table {\n\tborder: 1px solid $color-border;\n\tborder-spacing: 0;\n\twidth: 100%;\n\n\tthead {\n\t\tth,td {\n\t\t\tfont-weight: 700;\n\t\t}\n\t}\n\n\ttbody {\n\t\ttr:nth-child( odd ) {\n\t\t\ttd, th {\n\t\t\t\tbackground: #f9f9f9;\n\t\t\t}\n\t\t}\n\t\ttr:last-child {\n\t\t\tborder-bottom-width: 0;\n\t\t}\n\t}\n\n\ttfoot {\n\t\ttr {\n\t\t\tbackground: #f9f9f9;\n\t\t\t.llms-pagination .page-numbers {\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t\t.llms-table-sort {\n\t\t\t\ttext-align: right;\n\t\t\t\tform, select, input, button {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tth {\n\t\tfont-weight: 700;\n\t}\n\n\tth, td {\n\t\tborder-bottom: 1px solid $color-border;\n\t\tpadding: 15px 20px;\n\n\t\t// launchpad compat...\n\t\t&:first-child { padding-left: 12px; }\n\t\t&:last-child { padding-right: 12px; }\n\n\t}\n\n}\n\n// launchpad compat...\n#page .llms-table tfoot label {\n\tdisplay: inline;\n}\n#page .llms-table tfoot select {\n\theight: auto;\n}\n","/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left {\n margin-right: .3em;\n}\n.fa.fa-pull-right {\n margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n.pull-left {\n float: left;\n}\n.fa.pull-left {\n margin-right: .3em;\n}\n.fa.pull-right {\n margin-left: .3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n.fa-music:before {\n content: \"\\f001\";\n}\n.fa-search:before {\n content: \"\\f002\";\n}\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n.fa-heart:before {\n content: \"\\f004\";\n}\n.fa-star:before {\n content: \"\\f005\";\n}\n.fa-star-o:before {\n content: \"\\f006\";\n}\n.fa-user:before {\n content: \"\\f007\";\n}\n.fa-film:before {\n content: \"\\f008\";\n}\n.fa-th-large:before {\n content: \"\\f009\";\n}\n.fa-th:before {\n content: \"\\f00a\";\n}\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n.fa-check:before {\n content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n.fa-power-off:before {\n content: \"\\f011\";\n}\n.fa-signal:before {\n content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n.fa-home:before {\n content: \"\\f015\";\n}\n.fa-file-o:before {\n content: \"\\f016\";\n}\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n.fa-road:before {\n content: \"\\f018\";\n}\n.fa-download:before {\n content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n.fa-refresh:before {\n content: \"\\f021\";\n}\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n.fa-lock:before {\n content: \"\\f023\";\n}\n.fa-flag:before {\n content: \"\\f024\";\n}\n.fa-headphones:before {\n content: \"\\f025\";\n}\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n.fa-tag:before {\n content: \"\\f02b\";\n}\n.fa-tags:before {\n content: \"\\f02c\";\n}\n.fa-book:before {\n content: \"\\f02d\";\n}\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n.fa-print:before {\n content: \"\\f02f\";\n}\n.fa-camera:before {\n content: \"\\f030\";\n}\n.fa-font:before {\n content: \"\\f031\";\n}\n.fa-bold:before {\n content: \"\\f032\";\n}\n.fa-italic:before {\n content: \"\\f033\";\n}\n.fa-text-height:before {\n content: \"\\f034\";\n}\n.fa-text-width:before {\n content: \"\\f035\";\n}\n.fa-align-left:before {\n content: \"\\f036\";\n}\n.fa-align-center:before {\n content: \"\\f037\";\n}\n.fa-align-right:before {\n content: \"\\f038\";\n}\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n.fa-list:before {\n content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n.fa-indent:before {\n content: \"\\f03c\";\n}\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n.fa-pencil:before {\n content: \"\\f040\";\n}\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n.fa-adjust:before {\n content: \"\\f042\";\n}\n.fa-tint:before {\n content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n.fa-arrows:before {\n content: \"\\f047\";\n}\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n.fa-backward:before {\n content: \"\\f04a\";\n}\n.fa-play:before {\n content: \"\\f04b\";\n}\n.fa-pause:before {\n content: \"\\f04c\";\n}\n.fa-stop:before {\n content: \"\\f04d\";\n}\n.fa-forward:before {\n content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n.fa-eject:before {\n content: \"\\f052\";\n}\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n.fa-ban:before {\n content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n.fa-expand:before {\n content: \"\\f065\";\n}\n.fa-compress:before {\n content: \"\\f066\";\n}\n.fa-plus:before {\n content: \"\\f067\";\n}\n.fa-minus:before {\n content: \"\\f068\";\n}\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n.fa-gift:before {\n content: \"\\f06b\";\n}\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n.fa-fire:before {\n content: \"\\f06d\";\n}\n.fa-eye:before {\n content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n.fa-plane:before {\n content: \"\\f072\";\n}\n.fa-calendar:before {\n content: \"\\f073\";\n}\n.fa-random:before {\n content: \"\\f074\";\n}\n.fa-comment:before {\n content: \"\\f075\";\n}\n.fa-magnet:before {\n content: \"\\f076\";\n}\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n.fa-retweet:before {\n content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n.fa-folder:before {\n content: \"\\f07b\";\n}\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n.fa-key:before {\n content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n.fa-comments:before {\n content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n.fa-star-half:before {\n content: \"\\f089\";\n}\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n.fa-trophy:before {\n content: \"\\f091\";\n}\n.fa-github-square:before {\n content: \"\\f092\";\n}\n.fa-upload:before {\n content: \"\\f093\";\n}\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n.fa-phone:before {\n content: \"\\f095\";\n}\n.fa-square-o:before {\n content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n.fa-twitter:before {\n content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n.fa-github:before {\n content: \"\\f09b\";\n}\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n.fa-square:before {\n content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n.fa-table:before {\n content: \"\\f0ce\";\n}\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n.fa-money:before {\n content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n.fa-columns:before {\n content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n.fa-desktop:before {\n content: \"\\f108\";\n}\n.fa-laptop:before {\n content: \"\\f109\";\n}\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n.fa-spinner:before {\n content: \"\\f110\";\n}\n.fa-circle:before {\n content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n.fa-terminal:before {\n content: \"\\f120\";\n}\n.fa-code:before {\n content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n.fa-crop:before {\n content: \"\\f125\";\n}\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n.fa-question:before {\n content: \"\\f128\";\n}\n.fa-info:before {\n content: \"\\f129\";\n}\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n.fa-microphone:before {\n content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n.fa-shield:before {\n content: \"\\f132\";\n}\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n.fa-rocket:before {\n content: \"\\f135\";\n}\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n.fa-html5:before {\n content: \"\\f13b\";\n}\n.fa-css3:before {\n content: \"\\f13c\";\n}\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n.fa-ticket:before {\n content: \"\\f145\";\n}\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n.fa-level-up:before {\n content: \"\\f148\";\n}\n.fa-level-down:before {\n content: \"\\f149\";\n}\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n.fa-compass:before {\n content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n.fa-gbp:before {\n content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n.fa-file:before {\n content: \"\\f15b\";\n}\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n.fa-youtube:before {\n content: \"\\f167\";\n}\n.fa-xing:before {\n content: \"\\f168\";\n}\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n.fa-adn:before {\n content: \"\\f170\";\n}\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n.fa-apple:before {\n content: \"\\f179\";\n}\n.fa-windows:before {\n content: \"\\f17a\";\n}\n.fa-android:before {\n content: \"\\f17b\";\n}\n.fa-linux:before {\n content: \"\\f17c\";\n}\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n.fa-skype:before {\n content: \"\\f17e\";\n}\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n.fa-trello:before {\n content: \"\\f181\";\n}\n.fa-female:before {\n content: \"\\f182\";\n}\n.fa-male:before {\n content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n.fa-archive:before {\n content: \"\\f187\";\n}\n.fa-bug:before {\n content: \"\\f188\";\n}\n.fa-vk:before {\n content: \"\\f189\";\n}\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n.fa-renren:before {\n content: \"\\f18b\";\n}\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n.fa-slack:before {\n content: \"\\f198\";\n}\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n.fa-openid:before {\n content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n.fa-google:before {\n content: \"\\f1a0\";\n}\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n.fa-language:before {\n content: \"\\f1ab\";\n}\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n.fa-building:before {\n content: \"\\f1ad\";\n}\n.fa-child:before {\n content: \"\\f1ae\";\n}\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n.fa-database:before {\n content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n.fa-git:before {\n content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n.fa-history:before {\n content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n.fa-header:before {\n content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n.fa-at:before {\n content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n.fa-bus:before {\n content: \"\\f207\";\n}\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n.fa-angellist:before {\n content: \"\\f209\";\n}\n.fa-cc:before {\n content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n.fa-diamond:before {\n content: \"\\f219\";\n}\n.fa-ship:before {\n content: \"\\f21a\";\n}\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n.fa-venus:before {\n content: \"\\f221\";\n}\n.fa-mars:before {\n content: \"\\f222\";\n}\n.fa-mercury:before {\n content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n.fa-server:before {\n content: \"\\f233\";\n}\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n.fa-user-times:before {\n content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n.fa-train:before {\n content: \"\\f238\";\n}\n.fa-subway:before {\n content: \"\\f239\";\n}\n.fa-medium:before {\n content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n.fa-object-group:before {\n content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n.fa-clone:before {\n content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n.fa-registered:before {\n content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n.fa-gg:before {\n content: \"\\f260\";\n}\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n.fa-safari:before {\n content: \"\\f267\";\n}\n.fa-chrome:before {\n content: \"\\f268\";\n}\n.fa-firefox:before {\n content: \"\\f269\";\n}\n.fa-opera:before {\n content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n.fa-contao:before {\n content: \"\\f26d\";\n}\n.fa-500px:before {\n content: \"\\f26e\";\n}\n.fa-amazon:before {\n content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n.fa-industry:before {\n content: \"\\f275\";\n}\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n.fa-map-o:before {\n content: \"\\f278\";\n}\n.fa-map:before {\n content: \"\\f279\";\n}\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n.fa-edge:before {\n content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n.fa-modx:before {\n content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n.fa-usb:before {\n content: \"\\f287\";\n}\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n.fa-percent:before {\n content: \"\\f295\";\n}\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n.fa-envira:before {\n content: \"\\f299\";\n}\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n.fa-blind:before {\n content: \"\\f29d\";\n}\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n"],"sourceRoot":"../../scss"}
\ No newline at end of file
diff --git a/assets/maps/css/lifterlms.min.css.map b/assets/maps/css/lifterlms.min.css.map
new file mode 100644
index 0000000000..59fb34b29c
--- /dev/null
+++ b/assets/maps/css/lifterlms.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["lifterlms.css"],"names":[],"mappings":"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","file":"../../css/lifterlms.min.css","sourcesContent":["@charset \"UTF-8\";\n.llms-pagination ul:before, .llms-pagination ul:after,\n.llms-form-fields:before,\n.llms-checkout-cols-2:before,\n.llms-access-plans:before,\n.llms-loop-list:before,\n.llms-cols:before,\n.llms-form-fields:after,\n.llms-checkout-cols-2:after,\n.llms-access-plans:after,\n.llms-loop-list:after,\n.llms-cols:after {\n content: \" \";\n display: table;\n}\n.llms-pagination ul:after,\n.llms-form-fields:after,\n.llms-checkout-cols-2:after,\n.llms-access-plans:after,\n.llms-loop-list:after,\n.llms-cols:after {\n clear: both;\n}\n\n.llms-cols .llms-col {\n width: 100%;\n}\n@media all and (min-width: 600px) {\n .llms-cols [class*=llms-col-] {\n float: left;\n }\n}\n\n.llms-flex-cols {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n}\n.llms-flex-cols [class*=llms-col] {\n -webkit-box-flex: 0;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n width: 100%;\n}\n\n@media all and (min-width: 600px) {\n .llms-cols .llms-col-1, .llms-flex-cols .llms-col-1 {\n width: 100%;\n }\n .llms-cols .llms-col-2, .llms-flex-cols .llms-col-2 {\n width: 50%;\n }\n .llms-cols .llms-col-3, .llms-flex-cols .llms-col-3 {\n width: 33.3333333333%;\n }\n .llms-cols .llms-col-4, .llms-flex-cols .llms-col-4 {\n width: 25%;\n }\n .llms-cols .llms-col-5, .llms-flex-cols .llms-col-5 {\n width: 20%;\n }\n .llms-cols .llms-col-6, .llms-flex-cols .llms-col-6 {\n width: 16.6666666667%;\n }\n .llms-cols .llms-col-7, .llms-flex-cols .llms-col-7 {\n width: 14.2857142857%;\n }\n .llms-cols .llms-col-8, .llms-flex-cols .llms-col-8 {\n width: 12.5%;\n }\n .llms-cols .llms-col-9, .llms-flex-cols .llms-col-9 {\n width: 11.1111111111%;\n }\n .llms-cols .llms-col-10, .llms-flex-cols .llms-col-10 {\n width: 10%;\n }\n .llms-cols .llms-col-11, .llms-flex-cols .llms-col-11 {\n width: 9.0909090909%;\n }\n .llms-cols .llms-col-12, .llms-flex-cols .llms-col-12 {\n width: 8.3333333333%;\n }\n}\n.llms-button-action,\n.llms-button-danger,\n.llms-button-primary,\n.llms-button-secondary {\n border: none;\n border-radius: 8px;\n color: #fefefe;\n cursor: pointer;\n display: inline-block;\n font-size: 18px;\n font-weight: 700;\n text-decoration: none;\n text-shadow: none;\n line-height: 1;\n margin: 0;\n max-width: 100%;\n padding: 12px 24px;\n position: relative;\n -webkit-transition: all 0.5s ease;\n transition: all 0.5s ease;\n}\n.llms-button-action:disabled,\n.llms-button-danger:disabled,\n.llms-button-primary:disabled,\n.llms-button-secondary:disabled {\n opacity: 0.5;\n}\n.llms-button-action:hover, .llms-button-action:active,\n.llms-button-danger:hover,\n.llms-button-danger:active,\n.llms-button-primary:hover,\n.llms-button-primary:active,\n.llms-button-secondary:hover,\n.llms-button-secondary:active {\n color: #fefefe;\n}\n.llms-button-action:focus,\n.llms-button-danger:focus,\n.llms-button-primary:focus,\n.llms-button-secondary:focus {\n color: #fefefe;\n}\n.llms-button-action.auto,\n.llms-button-danger.auto,\n.llms-button-primary.auto,\n.llms-button-secondary.auto {\n width: auto;\n}\n.llms-button-action.full,\n.llms-button-danger.full,\n.llms-button-primary.full,\n.llms-button-secondary.full {\n display: block;\n text-align: center;\n width: 100%;\n}\n.llms-button-action.square,\n.llms-button-danger.square,\n.llms-button-primary.square,\n.llms-button-secondary.square {\n padding: 12px;\n}\n.llms-button-action.small,\n.llms-button-danger.small,\n.llms-button-primary.small,\n.llms-button-secondary.small {\n font-size: 13px;\n padding: 8px 14px;\n}\n.llms-button-action.small.square,\n.llms-button-danger.small.square,\n.llms-button-primary.small.square,\n.llms-button-secondary.small.square {\n padding: 8px;\n}\n.llms-button-action.large,\n.llms-button-danger.large,\n.llms-button-primary.large,\n.llms-button-secondary.large {\n font-size: 18px;\n line-height: 1.2;\n padding: 16px 32px;\n}\n.llms-button-action.large.square,\n.llms-button-danger.large.square,\n.llms-button-primary.large.square,\n.llms-button-secondary.large.square {\n padding: 16px;\n}\n.llms-button-action.large .fa,\n.llms-button-danger.large .fa,\n.llms-button-primary.large .fa,\n.llms-button-secondary.large .fa {\n left: -7px;\n position: relative;\n}\n\n/* Fix for cases where link color overrides the button color */\na.llms-button-action,\na.llms-button-danger,\na.llms-button-primary {\n color: #fefefe;\n}\n\n.llms-button-primary {\n background: #466dd8;\n}\n.llms-button-primary:hover, .llms-button-primary.clicked {\n background: #274eba;\n}\n.llms-button-primary:focus, .llms-button-primary:active {\n background: #6888df;\n}\n\n.llms-button-secondary {\n background: #e1e1e1;\n color: #444;\n}\n.llms-button-secondary:hover {\n color: #414141;\n background: #cdcdcd;\n}\n.llms-button-secondary:focus, .llms-button-secondary:active {\n color: #414141;\n background: #ebebeb;\n}\n\n/* Fix for cases where link color overrides the button color */\na.llms-button-secondary {\n color: #444;\n}\n\n.llms-button-action {\n background: #c05621;\n}\n.llms-button-action:hover, .llms-button-action.clicked {\n background: #f67d28;\n}\n.llms-button-action:focus, .llms-button-action:active {\n background: #faad76;\n}\n\n.llms-button-danger {\n background: #bb231c;\n}\n.llms-button-danger:hover {\n background: #981c17;\n}\n.llms-button-danger:focus, .llms-button-danger:active {\n background: #cd261f;\n}\n\n.llms-button-outline {\n background: transparent;\n border: 3px solid #1D2327;\n border-radius: 8px;\n color: #1D2327;\n cursor: pointer;\n font-size: 16px;\n font-weight: 700;\n text-decoration: none;\n text-shadow: none;\n line-height: 1;\n margin: 0;\n max-width: 100%;\n padding: 12px 24px;\n position: relative;\n -webkit-transition: all 0.5s ease;\n transition: all 0.5s ease;\n}\n.llms-button-outline:disabled {\n opacity: 0.5;\n}\n.llms-button-outline:hover, .llms-button-outline:active {\n color: #1D2327;\n}\n.llms-button-outline:focus {\n color: #1D2327;\n}\n.llms-button-outline.auto {\n width: auto;\n}\n.llms-button-outline.full {\n display: block;\n text-align: center;\n width: 100%;\n}\n.llms-button-outline.square {\n padding: 12px;\n}\n\n.llms-course-continue-button {\n display: inline-block;\n}\n\n.llms-donut {\n background-color: #f1f1f1;\n background-image: none;\n border-radius: 50%;\n color: #466dd8;\n height: 200px;\n overflow: hidden;\n position: relative;\n width: 200px;\n}\n.llms-donut:before, .llms-donut:after {\n content: \" \";\n display: table;\n}\n.llms-donut:after {\n clear: both;\n}\n.llms-donut svg {\n overflow: visible !important;\n pointer-events: none;\n width: 100%;\n}\n.llms-donut svg path {\n fill: none;\n stroke-width: 35px;\n stroke: #466dd8;\n}\n.llms-donut.mini {\n height: 36px;\n width: 36px;\n}\n.llms-donut.mini .percentage {\n font-size: 10px;\n}\n.llms-donut.small {\n height: 100px;\n width: 100px;\n}\n.llms-donut.small .percentage {\n font-size: 18px;\n}\n.llms-donut.medium {\n height: 130px;\n width: 130px;\n}\n.llms-donut.medium .percentage {\n font-size: 26px;\n}\n.llms-donut.large {\n height: 260px;\n width: 260px;\n}\n.llms-donut.large .percentage {\n font-size: 48px;\n}\n.llms-donut .inside {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n background: #fff;\n border-radius: 50%;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n height: 80%;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n left: 50%;\n position: absolute;\n text-align: center;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n width: 80%;\n top: 50%;\n z-index: 3;\n}\n.llms-donut .percentage {\n line-height: 1.2;\n font-size: 34px;\n}\n.llms-donut .caption {\n font-size: 75%;\n}\n\n.lifterlms [data-tip],\n.lifterlms [data-title-default],\n.lifterlms [data-title-active],\n.llms-metabox [data-tip],\n.llms-metabox [data-title-default],\n.llms-metabox [data-title-active],\n.llms-mb-container [data-tip],\n.llms-mb-container [data-title-default],\n.llms-mb-container [data-title-active],\n.llms-quiz-wrapper [data-tip],\n.llms-quiz-wrapper [data-title-default],\n.llms-quiz-wrapper [data-title-active] {\n position: relative;\n}\n.lifterlms [data-tip].tip--top-right:before,\n.lifterlms [data-title-default].tip--top-right:before,\n.lifterlms [data-title-active].tip--top-right:before,\n.llms-metabox [data-tip].tip--top-right:before,\n.llms-metabox [data-title-default].tip--top-right:before,\n.llms-metabox [data-title-active].tip--top-right:before,\n.llms-mb-container [data-tip].tip--top-right:before,\n.llms-mb-container [data-title-default].tip--top-right:before,\n.llms-mb-container [data-title-active].tip--top-right:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:before {\n bottom: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--top-right:hover:before,\n.lifterlms [data-title-default].tip--top-right:hover:before,\n.lifterlms [data-title-active].tip--top-right:hover:before,\n.llms-metabox [data-tip].tip--top-right:hover:before,\n.llms-metabox [data-title-default].tip--top-right:hover:before,\n.llms-metabox [data-title-active].tip--top-right:hover:before,\n.llms-mb-container [data-tip].tip--top-right:hover:before,\n.llms-mb-container [data-title-default].tip--top-right:hover:before,\n.llms-mb-container [data-title-active].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-right:after,\n.lifterlms [data-title-default].tip--top-right:after,\n.lifterlms [data-title-active].tip--top-right:after,\n.llms-metabox [data-tip].tip--top-right:after,\n.llms-metabox [data-title-default].tip--top-right:after,\n.llms-metabox [data-title-active].tip--top-right:after,\n.llms-mb-container [data-tip].tip--top-right:after,\n.llms-mb-container [data-title-default].tip--top-right:after,\n.llms-mb-container [data-title-active].tip--top-right:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:after {\n border-top-color: #444;\n left: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-right:hover:after,\n.lifterlms [data-title-default].tip--top-right:hover:after,\n.lifterlms [data-title-active].tip--top-right:hover:after,\n.llms-metabox [data-tip].tip--top-right:hover:after,\n.llms-metabox [data-title-default].tip--top-right:hover:after,\n.llms-metabox [data-title-active].tip--top-right:hover:after,\n.llms-mb-container [data-tip].tip--top-right:hover:after,\n.llms-mb-container [data-title-default].tip--top-right:hover:after,\n.llms-mb-container [data-title-active].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-right:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--top-left:before,\n.lifterlms [data-title-default].tip--top-left:before,\n.lifterlms [data-title-active].tip--top-left:before,\n.llms-metabox [data-tip].tip--top-left:before,\n.llms-metabox [data-title-default].tip--top-left:before,\n.llms-metabox [data-title-active].tip--top-left:before,\n.llms-mb-container [data-tip].tip--top-left:before,\n.llms-mb-container [data-title-default].tip--top-left:before,\n.llms-mb-container [data-title-active].tip--top-left:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:before {\n bottom: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--top-left:hover:before,\n.lifterlms [data-title-default].tip--top-left:hover:before,\n.lifterlms [data-title-active].tip--top-left:hover:before,\n.llms-metabox [data-tip].tip--top-left:hover:before,\n.llms-metabox [data-title-default].tip--top-left:hover:before,\n.llms-metabox [data-title-active].tip--top-left:hover:before,\n.llms-mb-container [data-tip].tip--top-left:hover:before,\n.llms-mb-container [data-title-default].tip--top-left:hover:before,\n.llms-mb-container [data-title-active].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:before {\n bottom: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--top-left:after,\n.lifterlms [data-title-default].tip--top-left:after,\n.lifterlms [data-title-active].tip--top-left:after,\n.llms-metabox [data-tip].tip--top-left:after,\n.llms-metabox [data-title-default].tip--top-left:after,\n.llms-metabox [data-title-active].tip--top-left:after,\n.llms-mb-container [data-tip].tip--top-left:after,\n.llms-mb-container [data-title-default].tip--top-left:after,\n.llms-mb-container [data-title-active].tip--top-left:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:after {\n border-top-color: #444;\n right: 6px;\n top: 0;\n}\n.lifterlms [data-tip].tip--top-left:hover:after,\n.lifterlms [data-title-default].tip--top-left:hover:after,\n.lifterlms [data-title-active].tip--top-left:hover:after,\n.llms-metabox [data-tip].tip--top-left:hover:after,\n.llms-metabox [data-title-default].tip--top-left:hover:after,\n.llms-metabox [data-title-active].tip--top-left:hover:after,\n.llms-mb-container [data-tip].tip--top-left:hover:after,\n.llms-mb-container [data-title-default].tip--top-left:hover:after,\n.llms-mb-container [data-title-active].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--top-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--top-left:hover:after {\n top: -6px;\n}\n.lifterlms [data-tip].tip--bottom-left:before,\n.lifterlms [data-title-default].tip--bottom-left:before,\n.lifterlms [data-title-active].tip--bottom-left:before,\n.llms-metabox [data-tip].tip--bottom-left:before,\n.llms-metabox [data-title-default].tip--bottom-left:before,\n.llms-metabox [data-title-active].tip--bottom-left:before,\n.llms-mb-container [data-tip].tip--bottom-left:before,\n.llms-mb-container [data-title-default].tip--bottom-left:before,\n.llms-mb-container [data-title-active].tip--bottom-left:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:before {\n top: 100%;\n right: -10px;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:before,\n.lifterlms [data-title-default].tip--bottom-left:hover:before,\n.lifterlms [data-title-active].tip--bottom-left:hover:before,\n.llms-metabox [data-tip].tip--bottom-left:hover:before,\n.llms-metabox [data-title-default].tip--bottom-left:hover:before,\n.llms-metabox [data-title-active].tip--bottom-left:hover:before,\n.llms-mb-container [data-tip].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-left:after,\n.lifterlms [data-title-default].tip--bottom-left:after,\n.lifterlms [data-title-active].tip--bottom-left:after,\n.llms-metabox [data-tip].tip--bottom-left:after,\n.llms-metabox [data-title-default].tip--bottom-left:after,\n.llms-metabox [data-title-active].tip--bottom-left:after,\n.llms-mb-container [data-tip].tip--bottom-left:after,\n.llms-mb-container [data-title-default].tip--bottom-left:after,\n.llms-mb-container [data-title-active].tip--bottom-left:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:after {\n border-bottom-color: #444;\n right: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-left:hover:after,\n.lifterlms [data-title-default].tip--bottom-left:hover:after,\n.lifterlms [data-title-active].tip--bottom-left:hover:after,\n.llms-metabox [data-tip].tip--bottom-left:hover:after,\n.llms-metabox [data-title-default].tip--bottom-left:hover:after,\n.llms-metabox [data-title-active].tip--bottom-left:hover:after,\n.llms-mb-container [data-tip].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-left:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-left:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-left:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip].tip--bottom-right:before,\n.lifterlms [data-title-default].tip--bottom-right:before,\n.lifterlms [data-title-active].tip--bottom-right:before,\n.llms-metabox [data-tip].tip--bottom-right:before,\n.llms-metabox [data-title-default].tip--bottom-right:before,\n.llms-metabox [data-title-active].tip--bottom-right:before,\n.llms-mb-container [data-tip].tip--bottom-right:before,\n.llms-mb-container [data-title-default].tip--bottom-right:before,\n.llms-mb-container [data-title-active].tip--bottom-right:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:before {\n top: 100%;\n left: -10px;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:before,\n.lifterlms [data-title-default].tip--bottom-right:hover:before,\n.lifterlms [data-title-active].tip--bottom-right:hover:before,\n.llms-metabox [data-tip].tip--bottom-right:hover:before,\n.llms-metabox [data-title-default].tip--bottom-right:hover:before,\n.llms-metabox [data-title-active].tip--bottom-right:hover:before,\n.llms-mb-container [data-tip].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:before,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:before,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:before {\n top: calc(100% + 6px);\n}\n.lifterlms [data-tip].tip--bottom-right:after,\n.lifterlms [data-title-default].tip--bottom-right:after,\n.lifterlms [data-title-active].tip--bottom-right:after,\n.llms-metabox [data-tip].tip--bottom-right:after,\n.llms-metabox [data-title-default].tip--bottom-right:after,\n.llms-metabox [data-title-active].tip--bottom-right:after,\n.llms-mb-container [data-tip].tip--bottom-right:after,\n.llms-mb-container [data-title-default].tip--bottom-right:after,\n.llms-mb-container [data-title-active].tip--bottom-right:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:after {\n border-bottom-color: #444;\n left: 6px;\n bottom: 0;\n}\n.lifterlms [data-tip].tip--bottom-right:hover:after,\n.lifterlms [data-title-default].tip--bottom-right:hover:after,\n.lifterlms [data-title-active].tip--bottom-right:hover:after,\n.llms-metabox [data-tip].tip--bottom-right:hover:after,\n.llms-metabox [data-title-default].tip--bottom-right:hover:after,\n.llms-metabox [data-title-active].tip--bottom-right:hover:after,\n.llms-mb-container [data-tip].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-default].tip--bottom-right:hover:after,\n.llms-mb-container [data-title-active].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-tip].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-default].tip--bottom-right:hover:after,\n.llms-quiz-wrapper [data-title-active].tip--bottom-right:hover:after {\n bottom: -6px;\n}\n.lifterlms [data-tip]:before,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-active]:before,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-active]:before,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-active]:before,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-active]:before {\n background: #444;\n border-radius: 4px;\n color: #fff;\n font-size: 13px;\n line-height: 1.2;\n padding: 8px;\n max-width: 300px;\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n}\n.lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:after {\n content: \"\";\n border: 6px solid transparent;\n height: 0;\n width: 0;\n}\n.lifterlms [data-tip]:before, .lifterlms [data-tip]:after,\n.lifterlms [data-title-default]:before,\n.lifterlms [data-title-default]:after,\n.lifterlms [data-title-active]:before,\n.lifterlms [data-title-active]:after,\n.llms-metabox [data-tip]:before,\n.llms-metabox [data-tip]:after,\n.llms-metabox [data-title-default]:before,\n.llms-metabox [data-title-default]:after,\n.llms-metabox [data-title-active]:before,\n.llms-metabox [data-title-active]:after,\n.llms-mb-container [data-tip]:before,\n.llms-mb-container [data-tip]:after,\n.llms-mb-container [data-title-default]:before,\n.llms-mb-container [data-title-default]:after,\n.llms-mb-container [data-title-active]:before,\n.llms-mb-container [data-title-active]:after,\n.llms-quiz-wrapper [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:after,\n.llms-quiz-wrapper [data-title-default]:before,\n.llms-quiz-wrapper [data-title-default]:after,\n.llms-quiz-wrapper [data-title-active]:before,\n.llms-quiz-wrapper [data-title-active]:after {\n opacity: 0;\n -webkit-transition: all 0.2s 0.1s ease;\n transition: all 0.2s 0.1s ease;\n position: absolute;\n pointer-events: none;\n visibility: hidden;\n}\n.lifterlms [data-tip]:hover:before, .lifterlms [data-tip]:hover:after,\n.lifterlms [data-title-default]:hover:before,\n.lifterlms [data-title-default]:hover:after,\n.lifterlms [data-title-active]:hover:before,\n.lifterlms [data-title-active]:hover:after,\n.llms-metabox [data-tip]:hover:before,\n.llms-metabox [data-tip]:hover:after,\n.llms-metabox [data-title-default]:hover:before,\n.llms-metabox [data-title-default]:hover:after,\n.llms-metabox [data-title-active]:hover:before,\n.llms-metabox [data-title-active]:hover:after,\n.llms-mb-container [data-tip]:hover:before,\n.llms-mb-container [data-tip]:hover:after,\n.llms-mb-container [data-title-default]:hover:before,\n.llms-mb-container [data-title-default]:hover:after,\n.llms-mb-container [data-title-active]:hover:before,\n.llms-mb-container [data-title-active]:hover:after,\n.llms-quiz-wrapper [data-tip]:hover:before,\n.llms-quiz-wrapper [data-tip]:hover:after,\n.llms-quiz-wrapper [data-title-default]:hover:before,\n.llms-quiz-wrapper [data-title-default]:hover:after,\n.llms-quiz-wrapper [data-title-active]:hover:before,\n.llms-quiz-wrapper [data-title-active]:hover:after {\n opacity: 1;\n -webkit-transition: all 0 0.1s ease;\n transition: all 0 0.1s ease;\n visibility: visible;\n z-index: 99999999;\n}\n.lifterlms [data-tip]:before,\n.llms-metabox [data-tip]:before,\n.llms-mb-container [data-tip]:before,\n.llms-quiz-wrapper [data-tip]:before {\n content: attr(data-tip);\n}\n.lifterlms [data-tip].active:before,\n.llms-metabox [data-tip].active:before,\n.llms-mb-container [data-tip].active:before,\n.llms-quiz-wrapper [data-tip].active:before {\n content: attr(data-tip-active);\n}\n\n.llms-membership-image {\n display: block;\n margin: 0 auto;\n}\n\n.llms-course-image {\n display: block;\n margin: 0 auto;\n max-width: 100%;\n}\n\n.llms-featured-image {\n display: block;\n margin: 0 auto;\n}\n\n.llms-image-thumb {\n width: 150px;\n}\n\n.llms-video-wrapper .center-video {\n height: auto;\n max-width: 100%;\n overflow: hidden;\n position: relative;\n padding-top: 56.25%;\n text-align: center;\n}\n.llms-video-wrapper .center-video > .wp-video,\n.llms-video-wrapper .center-video .fluid-width-video-wrapper,\n.llms-video-wrapper .center-video iframe, .llms-video-wrapper .center-video object, .llms-video-wrapper .center-video embed {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.llms-video-wrapper .center-video > .wp-video {\n width: 100% !important;\n}\n.llms-video-wrapper .center-video .fluid-width-video-wrapper {\n padding-top: 0 !important;\n}\n\n.clear {\n clear: both;\n width: 100%;\n}\n\n.llms-featured-image {\n text-align: center;\n}\n\n#main-content .llms-payment-options p {\n margin: 0;\n font-size: 16px;\n}\n\n.llms-option {\n display: block;\n position: relative;\n margin: 20px 0;\n padding-left: 40px;\n font-size: 16px;\n}\n.llms-option label {\n cursor: pointer;\n position: static;\n}\n\n.llms-option:first-child {\n margin-top: 0;\n}\n\n.llms-option:last-child {\n margin-bottom: 0;\n}\n\n#main-content .llms-option:last-child {\n margin-bottom: 0;\n}\n\n.llms-option input[type=radio] {\n display: block;\n position: absolute;\n top: 3px;\n left: 0;\n z-index: 0;\n}\n\n.llms-option input[type=radio] {\n display: inline-block;\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n display: none;\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n z-index: 20;\n position: absolute;\n top: 0;\n left: -2px;\n display: inline-block;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n cursor: pointer;\n vertical-align: middle;\n -webkit-box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.5) 0 0 0 1px;\n box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.5) 0 0 0 1px;\n background: #efefef;\n background-image: radial-gradient(ellipse at center, #bb231c 0%, #bb231c 40%, #efefef 45%);\n background-repeat: no-repeat;\n -webkit-transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n}\n\n.llms-option input[type=radio]:checked + label span.llms-radio {\n -webkit-transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n}\n\n.llms-option input[type=radio] + label span.llms-radio {\n background-position: -24px 0;\n}\n\n.llms-option input[type=radio]:checked + label span.llms-radio {\n background-position: 0 0;\n}\n\n.llms-option input[type=submit] {\n border: none;\n background: #bb231c;\n color: #fff;\n font-size: 20px;\n padding: 10px 0;\n border-radius: 3px;\n cursor: pointer;\n width: 100%;\n}\n\n.llms-styled-text {\n padding: 14px 0;\n}\n\n.llms-notice-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n border: 1px solid #ccc;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n.llms-notice-box input[type=text] {\n height: auto;\n}\n.llms-notice-box .col-1-1 {\n width: 100%;\n}\n.llms-notice-box .col-1-1 input[type=text] {\n width: 100%;\n}\n.llms-notice-box .col-1-2 {\n width: 50%;\n float: left;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .col-1-2 {\n width: 100%;\n }\n}\n.llms-notice-box .col-1-3 {\n width: 33%;\n float: left;\n margin-right: 10px;\n}\n.llms-notice-box .col-1-4 {\n width: 25%;\n float: left;\n margin-right: 10px;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .col-1-4 {\n width: 100%;\n }\n}\n.llms-notice-box .col-1-6 {\n width: 16.6%;\n float: left;\n margin-right: 10px;\n}\n.llms-notice-box .col-1-8 {\n width: 11%;\n float: right;\n}\n.llms-notice-box .llms-pad-right {\n padding-right: 10px;\n}\n@media screen and (max-width: 768px) {\n .llms-notice-box .llms-pad-right {\n padding-right: 0;\n }\n}\n\ninput[type=text].cc_cvv,\n#cc_cvv {\n margin-right: 0;\n width: 23%;\n float: right;\n}\n\n.llms-clear-box {\n border-radius: 3px;\n z-index: 10;\n margin: 10px 0;\n padding: 15px 20px;\n list-style-type: none;\n width: 100%;\n overflow: auto;\n}\n\n.llms-price-label {\n font-weight: normal;\n}\n\n.llms-final-price {\n font-weight: bold;\n float: right;\n}\n\n.llms-center-content {\n text-align: center;\n}\n\n.llms-input-text {\n background-color: #fff;\n border: 1px solid #ddd;\n color: #333;\n font-size: 18px;\n font-weight: 300;\n padding: 16px;\n width: 100%;\n}\n\n.llms-price {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n.llms-price-loop {\n margin-bottom: 0;\n font-weight: bold;\n}\n\n.courses .entry {\n padding: 0;\n}\n\n.list-view .site-content .llms-course-list .hentry, .list-view .site-content .llms-membership-list .hentry {\n border-top: 0;\n padding-top: 0;\n}\n\n.llms-content {\n width: 100%;\n}\n\n.llms-lesson-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n.llms-template-wrapper {\n width: 100%;\n display: block;\n clear: both;\n}\n\n.llms-button-wrapper {\n width: 100%;\n display: block;\n clear: both;\n text-align: center;\n}\n\n.llms-styled-select {\n border: 1px solid #ccc;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n border-radius: 3px;\n overflow: hidden;\n position: relative;\n}\n\n.llms-styled-select, .llms-styled-select select {\n width: 100%;\n}\n\nselect:focus {\n outline: none;\n}\n\n.llms-styled-select select {\n height: 34px;\n padding: 5px 0 5px 5px;\n background: transparent;\n border: none;\n -webkit-appearance: none;\n font-size: 16px;\n color: #444444;\n}\n\n@-moz-document url-prefix() {\n .--ms-styled-select select {\n width: 110%;\n }\n}\n.llms-styled-select .fa-sort-desc {\n position: absolute;\n top: 0;\n right: 12px;\n font-size: 24px;\n color: #ccc;\n}\n\nselect::-ms-expand {\n display: none;\n}\n\n_:-o-prefocus .llms-styled-select, .selector .llms-styled-select {\n background: none;\n}\n\n.llms-form-item-wrapper {\n margin-bottom: 1em;\n}\n\n/* Circle Graph */\n.llms-progress-circle {\n position: relative;\n width: 200px;\n height: 200px;\n float: left;\n}\n\n.llms-progress-circle-count {\n top: 27%;\n position: absolute;\n width: 94%;\n text-align: center;\n color: #666;\n font-size: 44px;\n}\n\n.llms-progress-circle svg {\n position: absolute;\n width: 200px;\n height: 200px;\n}\n\n.llms-progress-circle circle {\n fill: transparent;\n}\n\nsvg .llms-background-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #f1f2f1;\n stroke-dasharray: 430;\n}\n\nsvg .llms-animated-circle {\n fill: transparent;\n stroke-width: 10px;\n stroke: #e5554e;\n stroke-dasharray: 430;\n stroke-dashoffset: 410;\n}\n\n.llms-widget-syllabus .llms-lesson.current-lesson .lesson-title {\n font-weight: 700;\n}\n.llms-widget-syllabus .section-header {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 5px;\n}\n.llms-widget-syllabus .section-header .llms-collapse-caret {\n text-align: left;\n width: 14px;\n}\n.llms-widget-syllabus .llms-lesson-complete, .llms-widget-syllabus .lesson-complete-placeholder {\n font-size: 18px;\n margin-right: 5px;\n color: #ccc;\n}\n.llms-widget-syllabus .llms-lesson-complete.done, .llms-widget-syllabus .lesson-complete-placeholder.done {\n color: #466dd8;\n}\n.llms-widget-syllabus .section-title {\n font-weight: bold;\n}\n.llms-widget-syllabus .lesson-title a {\n text-decoration: underline;\n}\n.llms-widget-syllabus .lesson-title.done a {\n color: #666;\n text-decoration: line-through;\n}\n.llms-widget-syllabus ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-widget-syllabus ul li {\n list-style-type: none;\n margin: 0 0 10px 0;\n}\n.llms-widget-syllabus ul li ul {\n margin: 0 0 15px 0;\n}\n.llms-widget-syllabus ul li ul li {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n margin: 0 0 10px 0;\n padding: 0;\n}\n\n.llms-remove-coupon {\n float: right;\n}\n\n/*.llms-lesson-link-locked, .llms-lesson-link-locked:hover {\n background: #f1f1f1;\n display: block;\n color: #a6a6a6;\n min-height: 85px;\n padding: 15px;\n text-decoration: none;\n position: relative;\n}*/\n.llms-lesson-preview.is-complete .llms-lesson-link-locked {\n padding-left: 75px;\n}\n\n.llms-lesson-tooltip {\n display: none;\n position: absolute;\n color: #000000;\n background-color: #c0c0c0;\n padding: 0.25em;\n border-radius: 2px;\n z-index: 100;\n top: 0;\n left: 50%;\n text-align: center;\n -webkit-transform: translateX(-50%) translateY(-100%);\n transform: translateX(-50%) translateY(-100%);\n}\n\n/* arrows - :after */\n.llms-lesson-tooltip:after {\n content: \"\";\n width: 0;\n height: 0;\n border-top: 8px solid #c0c0c0;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n position: absolute;\n bottom: -8px;\n left: 50%;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n}\n\n.llms-lesson-tooltip.active {\n display: inline-block;\n}\n\n.llms-favorite-wrapper {\n cursor: pointer;\n}\n.llms-favorite-wrapper .fa-heart {\n color: #EF476F;\n}\n\n.llms-has-favorite .llms-parent-course-link {\n display: inline-block;\n margin-bottom: 20px;\n}\n.llms-has-favorite .llms-parent-course-link + .llms-favorite-wrapper {\n float: right;\n margin: 0;\n}\n\n.llms-syllabus-wrapper .llms-has-favorite {\n text-align: left;\n}\n.llms-syllabus-wrapper .llms-has-favorite .llms-favorite-wrapper {\n display: inline-block;\n}\n\n.llms-loop-list {\n list-style: none;\n margin: 0 -10px;\n padding: 0;\n}\n@media all and (min-width: 600px) {\n .llms-loop-list.cols-1 .llms-loop-item {\n width: 100%;\n }\n .llms-loop-list.cols-2 .llms-loop-item {\n width: 50%;\n }\n .llms-loop-list.cols-3 .llms-loop-item {\n width: 33.3333333333%;\n }\n .llms-loop-list.cols-4 .llms-loop-item {\n width: 25%;\n }\n .llms-loop-list.cols-5 .llms-loop-item {\n width: 20%;\n }\n .llms-loop-list.cols-6 .llms-loop-item {\n width: 16.6666666667%;\n }\n}\n\n.llms-loop-item {\n float: left;\n list-style: none;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.llms-loop-item-content {\n background: #fefefe;\n border: 1px solid #dedede;\n border-radius: 6px;\n overflow: hidden;\n padding-bottom: 15px;\n margin: 10px;\n}\n.llms-loop-item-content .llms-loop-link {\n color: #010101;\n display: block;\n text-decoration: none;\n}\n.llms-loop-item-content .llms-loop-link:visited {\n color: #010101;\n}\n.llms-loop-item-content .llms-featured-image {\n display: block;\n max-width: 100%;\n}\n.llms-loop-item-content .llms-loop-title {\n color: #010101;\n margin: 15px 0;\n}\n.llms-loop-item-content .llms-loop-title:hover {\n color: #466dd8;\n}\n.llms-loop-item-content .llms-meta,\n.llms-loop-item-content .llms-author,\n.llms-loop-item-content .llms-loop-title {\n padding: 0 15px;\n}\n.llms-loop-item-content .llms-meta,\n.llms-loop-item-content .llms-author {\n color: #444;\n display: block;\n font-size: 14px;\n margin-bottom: 10px;\n}\n.llms-loop-item-content .llms-meta:last-child,\n.llms-loop-item-content .llms-author:last-child {\n margin-bottom: 0;\n}\n.llms-loop-item-content .llms-author {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 5px;\n}\n.llms-loop-item-content .llms-featured-img-wrap {\n overflow: hidden;\n}\n.llms-loop-item-content p {\n margin-bottom: 0;\n}\n.llms-loop-item-content .llms-progress {\n margin: 0;\n height: 0.4em;\n}\n.llms-loop-item-content .llms-progress .progress__indicator {\n display: none;\n}\n.llms-loop-item-content .llms-progress .llms-progress-bar {\n background-color: #f6f6f6;\n right: 0;\n top: 0;\n}\n\n.llms-meta-info {\n margin: 40px 0;\n}\n.llms-meta-info .llms-meta-title {\n margin: 0;\n}\n.llms-meta-info .llms-meta p {\n margin-bottom: 0;\n}\n.llms-meta-info .llms-meta span {\n font-weight: 700;\n}\n\n.llms-course-progress {\n margin: 40px auto;\n max-width: 480px;\n text-align: center;\n}\n\n.llms-syllabus-wrapper {\n margin: 20px 0;\n text-align: left;\n}\n.llms-syllabus-wrapper .llms-section-title {\n margin: 40px 0 10px;\n}\n.llms-syllabus-wrapper .llms-section-title + .llms-lesson-preview {\n border-top: 1px solid #dedede;\n}\n\n.llms-lesson-preview {\n border-right: 1px solid #dedede;\n border-bottom: 1px solid #dedede;\n border-left: 1px solid #dedede;\n display: block;\n margin: 0;\n max-width: 100%;\n position: relative;\n}\n.llms-lesson-preview.current-lesson .llms-lesson-title {\n font-weight: 400;\n}\n.llms-lesson-preview .llms-lesson-link {\n background: #fefefe;\n color: #010101;\n display: block;\n padding: 15px;\n text-decoration: none;\n -webkit-transition: background-color 0.3s ease;\n transition: background-color 0.3s ease;\n}\n.llms-lesson-preview .llms-lesson-link:hover {\n background: #eaeaea;\n}\n.llms-lesson-preview .llms-lesson-link:visited {\n color: #212121;\n}\n.llms-lesson-preview .llms-lesson-link.llms-lesson-link-locked {\n background: #EFEFEF;\n color: #666;\n}\n.llms-lesson-preview .llms-lesson-link.llms-lesson-link-locked:hover {\n background: #dedede;\n}\n.llms-lesson-preview .llms-lesson-link .llms-lesson-preview-row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: reverse;\n -ms-flex-direction: row-reverse;\n flex-direction: row-reverse;\n}\n.llms-lesson-preview .llms-lesson-thumbnail {\n margin-bottom: 15px;\n}\n.llms-lesson-preview .llms-lesson-thumbnail img {\n display: block;\n height: auto;\n width: 100%;\n}\n.llms-lesson-preview .llms-lesson-title {\n font-weight: 700;\n margin: 0 auto 5px;\n}\n.llms-lesson-preview .llms-lesson-title:last-child {\n margin-bottom: 0;\n}\n.llms-lesson-preview .llms-lesson-excerpt {\n margin-top: 5px;\n}\n.llms-lesson-preview .llms-lesson-excerpt p {\n margin: 0 0 10px 0;\n padding: 0;\n}\n.llms-lesson-preview .llms-lesson-excerpt p:last-of-type {\n margin: 0;\n}\n.llms-lesson-preview .llms-main {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.llms-lesson-preview .llms-extra {\n min-width: 50px;\n text-align: right;\n}\n.llms-lesson-preview .llms-lesson-counter,\n.llms-lesson-preview .llms-free-lesson-svg,\n.llms-lesson-preview .llms-lesson-complete,\n.llms-lesson-preview .llms-lesson-complete-placeholder {\n display: block;\n}\n.llms-lesson-preview.is-free .llms-lesson-complete, .llms-lesson-preview.is-complete .llms-lesson-complete {\n color: #466dd8;\n}\n.llms-lesson-preview.is-complete .llms-lesson-title:not(.llms-student-dashboard .llms-lesson-title):not(.llms-course-navigation .llms-lesson-title) {\n text-decoration: line-through;\n}\n.llms-lesson-preview .llms-icon-free {\n background: #466dd8;\n border-radius: 6px;\n color: #fefefe;\n display: inline-block;\n font-size: 14px;\n font-weight: bold;\n line-height: 1;\n padding: 5px 8px 4px;\n white-space: nowrap;\n}\n.llms-lesson-preview.is-incomplete .llms-lesson-complete {\n color: #cacaca;\n}\n.llms-lesson-preview .llms-lesson-counter {\n font-size: 16px;\n margin-bottom: 5px;\n}\n.llms-lesson-preview .llms-free-lesson-svg {\n fill: currentColor;\n height: 23px;\n width: 50px;\n}\n\n.llms-course-navigation {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 20px;\n}\n.llms-course-navigation .llms-prev-lesson,\n.llms-course-navigation .llms-next-lesson,\n.llms-course-navigation .llms-back-to-course {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n.llms-course-navigation .llms-prev-lesson + .llms-back-to-course {\n text-align: right;\n}\n.llms-course-navigation .llms-next-lesson .llms-lesson-preview .llms-lesson-link {\n text-align: right;\n}\n.llms-course-navigation .llms-lesson-preview {\n border: 1px solid #dedede;\n}\n.llms-course-navigation .llms-lesson-link {\n display: block;\n}\n\n/* progress bar */\n.llms-progress {\n clear: both;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: reverse;\n -ms-flex-direction: row-reverse;\n flex-direction: row-reverse;\n position: relative;\n height: 1em;\n width: 100%;\n margin: 15px 0;\n}\n\n.llms-progress .llms-progress-bar {\n background-color: #dedede;\n position: relative;\n height: 0.4em;\n top: 0.3em;\n width: 100%;\n}\n\n.llms-progress .progress-bar-complete {\n background-color: #ef476f;\n height: 100%;\n}\n\n.progress__indicator {\n float: right;\n text-align: right;\n height: 1em;\n line-height: 1em;\n margin-left: 5px;\n white-space: nowrap;\n}\n\n.llms-author .name {\n margin-left: 5px;\n}\n.llms-author .label {\n margin-left: 5px;\n}\n.llms-author .avatar {\n border-radius: 50%;\n}\n.llms-author .bio {\n margin-top: 5px;\n}\n\n.llms-instructor-info {\n margin: 40px 0;\n}\n.llms-instructor-info .llms-meta-title {\n margin: 0;\n}\n.llms-instructor-info .llms-instructors .llms-col:first-child .llms-author {\n margin-left: 0;\n}\n.llms-instructor-info .llms-instructors .llms-col:last-child .llms-author {\n margin-right: 0;\n}\n.llms-instructor-info .llms-instructors .llms-author {\n background: #fefefe;\n border: 1px solid #dedede;\n border-top: 4px solid #466dd8;\n border-bottom-right-radius: 6px;\n border-bottom-left-radius: 6px;\n color: #010101;\n text-align: center;\n margin: 45px 0 0;\n padding: 0 20px 20px;\n}\n.llms-instructor-info .llms-instructors .llms-author .avatar {\n background: #466dd8;\n border: 4px solid #466dd8;\n display: block;\n margin: -35px auto 10px;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info {\n display: block;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.name {\n font-weight: 700;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.label {\n font-size: 85%;\n}\n.llms-instructor-info .llms-instructors .llms-author .llms-author-info.bio {\n font-size: 90%;\n margin-bottom: 0;\n}\n\n.llms_review {\n margin: 20px 0px;\n padding: 10px;\n}\n.llms_review h5 {\n font-size: 17px;\n margin: 3px 0px;\n}\n.llms_review h6 {\n font-size: 13px;\n}\n.llms_review p {\n font-size: 15px;\n}\n\n.review_box [type=text] {\n margin: 10px 0px;\n}\n.review_box h5 {\n color: red;\n display: none;\n}\n.review_box + .thank_you_box {\n display: none;\n}\n\n.llms-notice {\n background: rgba(70, 109, 216, 0.3);\n border-color: #466dd8;\n border-style: solid;\n border-width: 1px;\n border-radius: 6px;\n padding: 15px;\n margin-bottom: 40px;\n}\n.llms-notice a {\n color: inherit;\n}\n.llms-notice p:last-child, .llms-notice ul:last-child {\n margin-bottom: 0;\n}\n.llms-notice li {\n list-style-type: none;\n}\n.llms-notice.llms-debug {\n background: rgba(202, 202, 202, 0.3);\n border-color: #cacaca;\n}\n.llms-notice.llms-error {\n background: rgba(187, 35, 28, 0.15);\n border-color: #bb231c;\n}\n.llms-notice.llms-success {\n background: rgba(77, 141, 60, 0.15);\n border-color: #4d8d3c;\n}\n\n.entry-content .llms-notice {\n margin: 0 0 40px;\n}\n.entry-content .llms-notice li {\n list-style-type: none;\n}\n\nul.llms-achievements-loop,\n.lifterlms ul.llms-achievements-loop,\nul.llms-certificates-loop,\n.lifterlms ul.llms-certificates-loop {\n list-style-type: none;\n margin: 0 -10px;\n padding: 0;\n}\nul.llms-achievements-loop:before, ul.llms-achievements-loop:after,\n.lifterlms ul.llms-achievements-loop:before,\n.lifterlms ul.llms-achievements-loop:after,\nul.llms-certificates-loop:before,\nul.llms-certificates-loop:after,\n.lifterlms ul.llms-certificates-loop:before,\n.lifterlms ul.llms-certificates-loop:after {\n content: \" \";\n display: table;\n}\nul.llms-achievements-loop:after,\n.lifterlms ul.llms-achievements-loop:after,\nul.llms-certificates-loop:after,\n.lifterlms ul.llms-certificates-loop:after {\n clear: both;\n}\nul.llms-achievements-loop li.llms-achievement-loop-item,\nul.llms-achievements-loop li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop li.llms-certificate-loop-item,\nul.llms-certificates-loop li.llms-achievement-loop-item,\nul.llms-certificates-loop li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop li.llms-certificate-loop-item {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n display: block;\n float: left;\n list-style-type: none;\n margin: 0;\n padding: 10px;\n width: 100%;\n}\n@media all and (min-width: 600px) {\n ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-1 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-1 li.llms-certificate-loop-item {\n width: 100%;\n }\n ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-2 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-2 li.llms-certificate-loop-item {\n width: 50%;\n }\n ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-3 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-3 li.llms-certificate-loop-item {\n width: 33.3333333333%;\n }\n ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-4 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-4 li.llms-certificate-loop-item {\n width: 25%;\n }\n ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item, ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-achievement-loop-item,\n.lifterlms ul.llms-achievements-loop.loop-cols-5 li.llms-certificate-loop-item,\nul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,\nul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-achievement-loop-item,\n.lifterlms ul.llms-certificates-loop.loop-cols-5 li.llms-certificate-loop-item {\n width: 20%;\n }\n}\n\n.llms-achievement,\n.llms-certificate {\n background: #fefefe;\n border: none;\n border-radius: 12px;\n color: #010101;\n display: block;\n padding: 20px 0;\n text-decoration: none;\n width: 100%;\n}\n.llms-achievement:hover,\n.llms-certificate:hover {\n background: #eaeaea;\n}\n.llms-achievement .llms-achievement-img,\n.llms-certificate .llms-achievement-img {\n display: block;\n margin: 0 auto;\n max-width: 80%;\n}\n.llms-achievement .llms-achievement-title,\n.llms-certificate .llms-achievement-title {\n color: #010101;\n font-size: 16px;\n margin: 0;\n padding: 10px;\n text-align: center;\n}\n.llms-achievement .llms-certificate-title,\n.llms-certificate .llms-certificate-title {\n color: #010101;\n font-size: 16px;\n margin: 0;\n padding: 0 0 10px;\n}\n.llms-achievement .llms-achievement-info,\n.llms-achievement .llms-achievement-date,\n.llms-certificate .llms-achievement-info,\n.llms-certificate .llms-achievement-date {\n display: none;\n}\n.llms-achievement .llms-achievement-content,\n.llms-certificate .llms-achievement-content {\n padding: 20px;\n}\n.llms-achievement .llms-achievement-content:empty,\n.llms-certificate .llms-achievement-content:empty {\n padding: 0;\n}\n.llms-achievement .llms-achievement-content *:last-child,\n.llms-certificate .llms-achievement-content *:last-child {\n margin-bottom: 0;\n}\n\n.llms-certificate {\n border: 4px double #dedede;\n padding: 20px 10px;\n background: #fefefe;\n text-align: center;\n}\n.llms-certificate:hover {\n background: #fefefe;\n border-color: #eaeaea;\n}\n\n.llms-achievement-modal .llms-achievement {\n background: #fff;\n}\n.llms-achievement-modal .llms-achievement-info {\n display: block;\n}\n.llms-achievement-modal .llms-achievement-title {\n display: none;\n}\n\n.llms-notification {\n background: #fefefe;\n -webkit-box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;\n box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;\n border-top: 4px solid #466dd8;\n color: #010101;\n opacity: 0;\n padding: 12px;\n position: fixed;\n right: -800px;\n top: 24px;\n -webkit-transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out;\n visibility: hidden;\n width: auto;\n z-index: 9999999;\n}\n.llms-notification:before, .llms-notification:after {\n content: \" \";\n display: table;\n}\n.llms-notification:after {\n clear: both;\n}\n.llms-notification.visible {\n left: 12px;\n opacity: 1;\n right: 12px;\n -webkit-transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, transform 0.2s ease-in-out;\n transition: opacity 0.4s ease-in-out, right 0.4s ease-in-out, top 0.1s ease-in-out, background 0.2s ease-in-out, transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;\n visibility: visible;\n}\n.llms-notification.visible:hover .llms-notification-dismiss {\n opacity: 1;\n}\n.llms-notification .llms-notification-content {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.llms-notification .llms-notification-main {\n -ms-flex-item-align: start;\n align-self: flex-start;\n -webkit-box-flex: 4;\n -ms-flex: 4;\n flex: 4;\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n}\n.llms-notification .llms-notification-title {\n color: #010101;\n font-size: 18px;\n margin: 0;\n}\n.llms-notification .llms-notification-body {\n font-size: 14px;\n line-height: 1.4;\n}\n.llms-notification .llms-notification-body p, .llms-notification .llms-notification-body li {\n font-size: inherit;\n}\n.llms-notification .llms-notification-body p {\n margin-bottom: 8px;\n}\n.llms-notification .llms-notification-body p img {\n max-width: 100%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert {\n background: #f6f6f6;\n border: 1px solid #d0d0d0;\n -webkit-box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;\n box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;\n padding: 16px 16px 24px;\n margin-top: 12px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert-title {\n font-size: 16px;\n font-weight: 700;\n margin: 12px auto;\n text-align: center;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body {\n width: 100%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(1) {\n width: 65%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(2) {\n width: 35%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(3) {\n width: 85%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(4) {\n width: 75%;\n margin-top: 18px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(5) {\n width: 70%;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(6) {\n margin-left: 12px;\n margin-bottom: -24px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--body > div:nth-child(7) {\n width: 65%;\n margin-right: 12px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-line {\n border-radius: 2px;\n height: 8px;\n background: #b0b0b0;\n background-image: -webkit-gradient(linear, left top, right top, from(#b0b0b0), color-stop(20%, #a0a0a0), color-stop(40%, #b0b0b0), to(#b0b0b0));\n background-image: linear-gradient(to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100%);\n background-repeat: no-repeat;\n margin: 4px auto;\n}\n.llms-notification .llms-notification-body .llms-mini-cert .llms-mini-cert--mock-dot {\n background: #b0b0b0;\n border-radius: 50%;\n display: inline-block;\n content: \"\";\n height: 24px;\n width: 24px;\n}\n.llms-notification .llms-notification-body .llms-mini-cert p {\n margin-bottom: 0;\n}\n.llms-notification .llms-notification-aside {\n -ms-flex-item-align: start;\n align-self: flex-start;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n margin-right: 12px;\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n}\n.llms-notification .llms-notification-icon {\n display: block;\n max-width: 64px;\n}\n.llms-notification .llms-notification-footer {\n border-top: 1px solid #e5e5e5;\n font-size: 12px;\n margin-top: 12px;\n padding: 6px 6px 0;\n text-align: right;\n}\n.llms-notification .llms-notification-footer a {\n color: #010101;\n}\n.llms-notification .llms-notification-dismiss {\n color: #bb231c;\n cursor: pointer;\n font-size: 22px;\n position: absolute;\n right: 10px;\n top: 8px;\n -webkit-transition: opacity 0.4s ease-in-out;\n transition: opacity 0.4s ease-in-out;\n}\n\n.llms-sd-notification-center .llms-notification-list,\n.llms-sd-notification-center .llms-notification-list-item {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-sd-notification-center .llms-notification-list-item:hover .llms-notification {\n background: #fcfcfc;\n}\n.llms-sd-notification-center .llms-notification {\n opacity: 1;\n border-top: 1px solid #e5e5e5;\n left: auto;\n padding: 24px;\n position: relative;\n right: auto;\n top: auto;\n visibility: visible;\n width: auto;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-aside {\n max-width: 64px;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-footer {\n border: none;\n padding: 0;\n text-align: left;\n}\n.llms-sd-notification-center .llms-notification .llms-progress {\n display: none !important;\n}\n.llms-sd-notification-center .llms-notification .llms-notification-date {\n color: #515151;\n float: left;\n margin-right: 6px;\n}\n.llms-sd-notification-center .llms-notification .llms-mini-cert {\n margin: 0 auto;\n max-width: 380px;\n}\n\n@media all and (min-width: 480px) {\n .llms-notification {\n right: -800px;\n width: 360px;\n }\n .llms-notification.visible {\n left: auto;\n right: 24px;\n }\n .llms-notification .llms-notification-dismiss {\n opacity: 0;\n }\n}\n.llms-pagination ul {\n list-style-type: none;\n margin: 40px 0;\n padding: 0;\n}\n.llms-pagination ul li {\n float: left;\n}\n.llms-pagination ul li a {\n border-bottom: 0;\n text-decoration: none;\n}\n.llms-pagination ul li .page-numbers {\n padding: 0.5em;\n text-decoration: underline;\n}\n.llms-pagination ul li .page-numbers.current {\n text-decoration: none;\n}\n\n.llms-tooltip {\n background: #2a2a2a;\n border-radius: 4px;\n color: #fff;\n font-size: 14px;\n line-height: 1.2;\n opacity: 0;\n top: -20px;\n padding: 8px 12px;\n left: 50%;\n position: absolute;\n pointer-events: none;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n -webkit-transition: opacity 0.2s ease, top 0.2s ease;\n transition: opacity 0.2s ease, top 0.2s ease;\n max-width: 320px;\n}\n.llms-tooltip.show {\n top: -28px;\n opacity: 1;\n}\n.llms-tooltip:after {\n bottom: -8px;\n border-top: 8px solid #2a2a2a;\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n content: \"\";\n height: 0;\n left: 50%;\n position: absolute;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n width: 0;\n}\n\n.webui-popover-title {\n font-size: initial;\n font-weight: initial;\n line-height: initial;\n}\n\n.webui-popover-inverse .webui-popover-inner .close {\n color: #fff;\n opacity: 0.6;\n text-shadow: none;\n}\n.webui-popover-inverse .webui-popover-inner .close:hover {\n opacity: 0.8;\n}\n.webui-popover-inverse .webui-popover-content a {\n color: #fff;\n text-decoration: underline;\n}\n.webui-popover-inverse .webui-popover-content a:hover {\n text-decoration: none;\n}\n\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results {\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question {\n background: #efefef;\n border-radius: 6px;\n margin: 0 0 15px;\n position: relative;\n list-style-type: none;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .toggle-answer {\n color: inherit;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 10px;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 15px 35px 15px 15px;\n text-decoration: none;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect {\n background: rgba(192, 86, 33, 0.2);\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.correct .llms-status-icon, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--waiting.incorrect .llms-status-icon {\n background-color: #c05621;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct {\n background: rgba(77, 141, 60, 0.15);\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.correct .llms-status-icon {\n background-color: #4d8d3c;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect {\n background: rgba(187, 35, 28, 0.15);\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.status--graded.incorrect .llms-status-icon {\n background-color: #bb231c;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question pre {\n overflow: auto;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-question-title {\n font-size: 22px;\n margin: 0;\n line-height: 1.4;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-points {\n line-height: 1.4;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon-tip {\n position: absolute;\n right: -12px;\n top: -2px;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-status-icon {\n color: rgba(255, 255, 255, 0.65);\n border-radius: 50%;\n font-size: 30px;\n height: 40px;\n line-height: 40px;\n text-align: center;\n width: 40px;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main {\n display: none;\n padding: 0 15px 15px;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-results-label {\n font-weight: 700;\n margin: 0 0 10px;\n padding: 0;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers {\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n padding: 0;\n margin: 0 0 0 30px;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer:only-child {\n list-style-type: none;\n margin-left: 0;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main img {\n height: auto;\n max-width: 200px;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section {\n border-top: 2px solid rgba(255, 255, 255, 0.5);\n margin-top: 20px;\n padding-top: 20px;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question .llms-quiz-attempt-question-main .llms-quiz-attempt-answer-section:first-child {\n border-top: none;\n margin-top: 0;\n padding-top: 0;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_choice ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer, .single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--picture_reorder ul.llms-quiz-attempt-answers li.llms-quiz-attempt-answer {\n display: inline-block;\n list-style-type: none;\n margin: 0;\n padding: 5px;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed {\n opacity: 0.5;\n}\n.single-llms_quiz #llms-quiz-wrapper .llms-quiz-attempt-results .llms-quiz-attempt-question.type--removed .llms-question-title {\n font-style: italic;\n font-weight: normal;\n}\n.single-llms_quiz .llms-return {\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-results:before, .single-llms_quiz .llms-quiz-results:after {\n content: \" \";\n display: table;\n}\n.single-llms_quiz .llms-quiz-results:after {\n clear: both;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.passing {\n color: #4d8d3c;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.passing svg path {\n stroke: #4d8d3c;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.pending {\n color: #555;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.pending svg path {\n stroke: #555;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.failing {\n color: #bb231c;\n}\n.single-llms_quiz .llms-quiz-results .llms-donut.failing svg path {\n stroke: #bb231c;\n}\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-aside,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-main,\n.single-llms_quiz .llms-quiz-results .llms-quiz-results-history {\n margin-bottom: 20px;\n}\n@media all and (min-width: 600px) {\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside {\n float: left;\n width: 220px;\n }\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside + .llms-quiz-results-main {\n float: right;\n width: calc(100% - 300px);\n }\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-aside + .llms-quiz-results-main + .llms-quiz-results-history {\n float: right;\n width: calc(100% - 300px);\n }\n .single-llms_quiz .llms-quiz-results .llms-quiz-results-history {\n clear: right;\n }\n}\n.single-llms_quiz ul.llms-quiz-meta-info {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.single-llms_quiz ul.llms-quiz-meta-info li {\n list-style-type: none;\n margin: 10px 0 0;\n padding: 0;\n}\n.single-llms_quiz ul.llms-quiz-meta-info {\n margin-bottom: 10px;\n}\n.single-llms_quiz .llms-quiz-buttons {\n margin-top: 10px;\n text-align: left;\n}\n.single-llms_quiz .llms-quiz-buttons form {\n display: inline-block;\n}\n\n.llms-quiz-question-wrapper {\n min-height: 140px;\n position: relative;\n}\n.llms-quiz-question-wrapper .llms-quiz-loading {\n bottom: 20px;\n left: 0;\n position: absolute;\n right: 0;\n text-align: center;\n z-index: 1;\n}\n.llms-quiz-question-wrapper .llms-question-image img {\n height: auto;\n max-width: 100%;\n}\n\n.llms-quiz-ui {\n position: relative;\n}\n.llms-quiz-ui .llms-quiz-header {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n margin: 0 0 40px;\n}\n.llms-quiz-ui .llms-progress {\n background-color: #dedede;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n height: 8px;\n margin: 0;\n overflow: hidden;\n}\n.llms-quiz-ui .llms-progress .progress-bar-complete {\n -webkit-transition: width 0.3s ease-in;\n transition: width 0.3s ease-in;\n width: 0;\n}\n.llms-quiz-ui .llms-error {\n background: rgba(187, 35, 28, 0.15);\n border: 1px solid #bb231c;\n border-radius: 6px;\n margin: 20px 0;\n padding: 15px;\n}\n.llms-quiz-ui .llms-error:before, .llms-quiz-ui .llms-error:after {\n content: \" \";\n display: table;\n}\n.llms-quiz-ui .llms-error:after {\n clear: both;\n}\n.llms-quiz-ui .llms-error a {\n color: #bb231c;\n float: right;\n font-size: 22px;\n line-height: 1;\n text-decoration: none;\n}\n.llms-quiz-ui .llms-quiz-counter {\n display: none;\n color: #6a6a6a;\n float: right;\n font-size: 18px;\n}\n.llms-quiz-ui .llms-quiz-counter .llms-sep {\n margin: 0 5px;\n}\n.llms-quiz-ui .llms-quiz-nav {\n margin-top: 20px;\n}\n.llms-quiz-ui .llms-quiz-nav button {\n margin: 0 10px 0 0;\n}\n\n.llms-question-wrapper .llms-question-text {\n font-size: 30px;\n font-weight: 400;\n margin-bottom: 15px;\n}\n.llms-question-wrapper ol.llms-question-choices {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice {\n border-bottom: 1px solid #e8e8e8;\n margin: 0;\n padding: 0;\n position: relative;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice:last-child {\n border-bottom: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture {\n border-bottom: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture label {\n display: inline-block;\n padding: 0;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-marker {\n bottom: 10px;\n margin: 0;\n position: absolute;\n right: 10px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image {\n margin: 2px;\n padding: 20px;\n -webkit-transition: background 0.4s ease;\n transition: background 0.4s ease;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture .llms-choice-image img {\n display: block;\n height: auto;\n width: 100%;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice.type--picture input:checked ~ .llms-choice-image {\n background: #efefef;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input {\n display: none;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n visibility: hidden;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label {\n display: block;\n margin: 0;\n padding: 10px 20px;\n position: relative;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .iterator {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice label.hovered .llms-marker:not(.type--lister) .fa {\n display: inline;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker {\n background: #fefefe;\n color: #010101;\n display: inline-block;\n font-size: 20px;\n height: 40px;\n line-height: 40px;\n margin-right: 10px;\n text-align: center;\n -webkit-transition: all 0.2s ease;\n transition: all 0.2s ease;\n vertical-align: middle;\n width: 40px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker .fa {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--lister, .llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--checkbox {\n border-radius: 4px;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-marker.type--radio {\n border-radius: 50%;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker {\n background: #ef476f;\n color: #fff;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .iterator {\n display: none;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice input:checked + .llms-marker .fa {\n display: inline;\n}\n.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text {\n display: inline-block;\n font-size: 18px;\n font-weight: 400;\n line-height: 1.6;\n margin: 0;\n padding: 0;\n vertical-align: middle;\n width: calc(100% - 60px);\n}\n\n.llms-quiz-timer {\n background: #fff;\n border: 1px solid #4d8d3c;\n border-radius: 4px;\n color: #4d8d3c;\n float: right;\n font-size: 18px;\n line-height: 1;\n margin-left: 20px;\n padding: 8px 12px;\n position: relative;\n white-space: nowrap;\n z-index: 1;\n}\n.llms-quiz-timer.color-half {\n border-color: #c05621;\n color: #c05621;\n}\n.llms-quiz-timer.color-empty {\n border-color: #bb231c;\n color: #bb231c;\n}\n.llms-quiz-timer .llms-tiles {\n display: inline-block;\n margin-left: 5px;\n}\n\n.voucher-expand {\n display: none;\n}\n\n@media all and (min-width: 600px) {\n .llms-access-plans.cols-1 .llms-access-plan {\n width: 100%;\n }\n .llms-access-plans.cols-2 .llms-access-plan {\n width: 50%;\n }\n .llms-access-plans.cols-3 .llms-access-plan {\n width: 33.3333333333%;\n }\n .llms-access-plans.cols-4 .llms-access-plan {\n width: 25%;\n }\n .llms-access-plans.cols-5 .llms-access-plan {\n width: 20%;\n }\n}\n\n.llms-free-enroll-form {\n margin-bottom: 0;\n}\n\n.llms-access-plan {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n float: left;\n text-align: center;\n width: 100%;\n}\n.llms-access-plan .llms-access-plan-content,\n.llms-access-plan .llms-access-plan-footer {\n background: #f1f1f1;\n}\n.llms-access-plan.featured .llms-access-plan-featured {\n background: #466dd8;\n border-top-left-radius: 6px;\n border-top-right-radius: 6px;\n}\n.llms-access-plan.featured .llms-access-plan-content {\n border-radius: 0;\n}\n.llms-access-plan.featured .llms-access-plan-title {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.llms-access-plan.featured .llms-access-plan-footer,\n.llms-access-plan.featured .llms-access-plan-content {\n border-left: 3px solid #466dd8;\n border-right: 3px solid #466dd8;\n}\n.llms-access-plan.featured .llms-access-plan-footer {\n border-bottom-color: #466dd8;\n}\n.llms-access-plan.on-sale .price-regular {\n text-decoration: line-through;\n}\n.llms-access-plan.on-sale .price-regular .lifterlms-price {\n font-weight: 400;\n}\n.llms-access-plan .stamp {\n background: #466dd8;\n border-radius: 6px;\n color: #fefefe;\n display: inline-block;\n font-size: 14px;\n font-style: normal;\n font-weight: bold;\n line-height: 1;\n padding: 5px 8px 4px;\n}\n\n.llms-access-plan-featured {\n color: #fff;\n font-size: 14px;\n font-weight: 700;\n letter-spacing: 1px;\n margin: 0 2px 0 2px;\n padding: 5px 0 0;\n}\n\n.llms-access-plan-content {\n border-top-right-radius: 6px;\n border-top-left-radius: 6px;\n margin: 0 2px 0;\n overflow: hidden;\n}\n.llms-access-plan-content .llms-access-plan-pricing {\n color: #010101;\n padding: 20px 0 0;\n}\n.llms-access-plan-content .llms-form-fields {\n padding: 10px;\n}\n\n.llms-access-plan-title {\n background: #466dd8;\n color: #fefefe;\n margin: 0;\n padding: 10px 15px;\n}\n\n.llms-access-plan-pricing .llms-price-currency-symbol {\n font-size: 14px;\n vertical-align: top;\n}\n\n.llms-access-plan-price .lifterlms-price {\n font-weight: 700;\n}\n.llms-access-plan-price.sale {\n padding: 5px 0;\n border-top: 1px solid #d0d0d0;\n border-bottom: 1px solid #d0d0d0;\n}\n\n.llms-access-plan-trial,\n.llms-access-plan-schedule,\n.llms-access-plan-sale-end,\n.llms-access-plan-expiration {\n font-size: 16px;\n}\n\n.llms-access-plan-description {\n color: #010101;\n font-size: 16px;\n padding: 10px 10px 0;\n}\n.llms-access-plan-description ul {\n margin: 0;\n}\n.llms-access-plan-description ul li {\n border-bottom: 1px solid #d0d0d0;\n list-style-type: none;\n}\n.llms-access-plan-description ul li:last-child {\n border-bottom: none;\n}\n.llms-access-plan-description div:last-child, .llms-access-plan-description img:last-child, .llms-access-plan-description p:last-child, .llms-access-plan-description ul:last-child, .llms-access-plan-description li:last-child {\n margin-bottom: 0;\n}\n\n.llms-access-plan-restrictions {\n margin-top: 20px;\n}\n.llms-access-plan-restrictions .stamp {\n vertical-align: baseline;\n}\n.llms-access-plan-restrictions ul {\n margin: 5px 0 0 0;\n padding: 0;\n}\n.llms-access-plan-restrictions ul li {\n font-size: 14px;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-access-plan-restrictions a {\n color: #c05621;\n}\n.llms-access-plan-restrictions a:hover {\n color: #f67d28;\n}\n\n.llms-access-plan-footer {\n border-bottom: 3px solid #f1f1f1;\n border-bottom-left-radius: 6px;\n border-bottom-right-radius: 6px;\n padding: 15px;\n margin: 0 2px 2px 2px;\n}\n.llms-access-plan-footer .button {\n display: inline-block;\n}\n.llms-access-plan-footer .llms-access-plan-pricing {\n padding: 0 0 10px;\n}\n\n.webui-popover-content .llms-members-only-restrictions {\n text-align: center;\n}\n.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li, .webui-popover-content .llms-members-only-restrictions p {\n margin: 0;\n padding: 0;\n}\n.webui-popover-content .llms-members-only-restrictions ul, .webui-popover-content .llms-members-only-restrictions ol, .webui-popover-content .llms-members-only-restrictions li {\n list-style-type: none;\n}\n.webui-popover-content .llms-members-only-restrictions li {\n padding: 8px 0;\n border-top: 1px solid #3b3b3b;\n}\n.webui-popover-content .llms-members-only-restrictions li:first-child {\n border-top: none;\n}\n.webui-popover-content .llms-members-only-restrictions li a {\n display: block;\n}\n\n.llms-checkout-wrapper .llms-person-login-form-wrapper {\n margin-bottom: 40px;\n}\n.llms-checkout-wrapper form.llms-login {\n display: none;\n}\n.llms-checkout-wrapper .llms-form-heading {\n margin: 0 0 20px;\n}\n\n.llms-checkout {\n position: relative;\n}\n\n.llms-checkout-cols-2.llms-col-2 section {\n background-color: #fefefe;\n border: 1px solid #ccc;\n border-radius: 12px;\n padding: 20px;\n}\n.llms-checkout-cols-2.llms-col-2 section .llms-form-heading {\n padding: 0;\n}\n@media all and (min-width: 800px) {\n .llms-checkout-cols-2 .llms-checkout-col {\n float: left;\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-1 {\n margin-right: 20px;\n width: calc(58% - 20px);\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 {\n margin-left: 20px;\n width: calc(42% - 20px);\n }\n .llms-checkout-cols-2 .llms-checkout-col.llms-col-2 button {\n width: 100%;\n }\n}\n\n.llms-checkout-section {\n margin-bottom: 40px;\n position: relative;\n}\n\n.llms-checkout-section-content.llms-form-fields {\n margin: 0px;\n}\n.llms-checkout-section-content .llms-label {\n font-weight: 400;\n}\n.llms-checkout-section-content .llms-order-summary {\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.llms-checkout-section-content .llms-order-summary li {\n list-style-type: none;\n margin: 0 0 15px 0;\n}\n.llms-checkout-section-content .llms-order-summary :not(.llms-label) {\n font-weight: 700;\n}\n.llms-checkout-section-content .llms-order-summary li.llms-pricing.on-sale .price-regular, .llms-checkout-section-content .llms-order-summary li.llms-pricing.has-coupon .price-regular {\n text-decoration: line-through;\n}\n.llms-checkout-section-content .llms-coupon-wrapper {\n border-top: 1px solid #dedede;\n margin-top: 20px;\n padding-top: 20px;\n}\n.llms-checkout-section-content .llms-coupon-wrapper .llms-coupon-entry {\n display: none;\n margin-top: 20px;\n}\n\n.llms-form-field.llms-payment-gateway-option {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 8px;\n}\n.llms-form-field.llms-payment-gateway-option label + span.llms-description {\n display: inline-block;\n margin-left: 5px;\n}\n.llms-form-field.llms-payment-gateway-option .llms-description a {\n border: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n text-decoration: none;\n}\n.llms-form-field.llms-payment-gateway-option .llms-description img {\n display: inline;\n max-height: 22px;\n vertical-align: middle;\n}\n\n.llms-checkout-wrapper ul.llms-payment-gateways {\n margin: 5px 0 0;\n padding: 0;\n}\n\nul.llms-payment-gateways {\n list-style-type: none;\n}\nul.llms-payment-gateways li:last-child:after {\n border-bottom: 1px solid #dedede;\n content: \"\";\n display: block;\n margin: 20px 0;\n}\nul.llms-payment-gateways .llms-payment-gateway {\n margin-bottom: 30px;\n list-style-type: none;\n}\nul.llms-payment-gateways .llms-payment-gateway:last-child {\n margin-bottom: none;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-payment-gateway-option label {\n font-weight: 700;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields {\n display: block;\n}\nul.llms-payment-gateways .llms-payment-gateway.is-selected .llms-gateway-fields .llms-notice {\n margin-left: 10px;\n margin-right: 10px;\n}\nul.llms-payment-gateways .llms-payment-gateway .llms-form-field {\n padding-bottom: 0;\n}\nul.llms-payment-gateways .llms-gateway-description {\n margin-left: 40px;\n}\nul.llms-payment-gateways .llms-gateway-fields {\n display: none;\n margin: 5px 0 20px;\n}\nul.llms-payment-gateways .llms-payment-gateway-error {\n padding: 0 10px;\n}\n\n.llms-checkout-confirm {\n margin: 0;\n}\n\n.llms-payment-method {\n margin: 10px 10px 0;\n}\n\n.llms-gateway-description p {\n font-size: 14px;\n font-style: italic;\n margin: 0;\n}\n\n.llms-form-fields {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.llms-form-fields * {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.llms-form-fields.flush .llms-form-field {\n padding: 0 0 20px;\n}\n.llms-form-fields label:not(.llms-field-html label) {\n font-weight: 700;\n}\n.llms-form-fields .wp-block-columns, .llms-form-fields .wp-block-column {\n margin-bottom: 0;\n}\n\n.llms-form-heading {\n padding: 0 10px 10px;\n}\n\n.llms-form-field {\n float: left;\n padding: 0 10px 20px;\n position: relative;\n width: 100%;\n}\n.llms-form-field label:empty:after {\n content: \" \";\n}\n.llms-form-field [type=text],\n.llms-form-field [type=password],\n.llms-form-field [type=email],\n.llms-form-field [type=url],\n.llms-form-field [type=tel],\n.llms-form-field [type=number] {\n background-color: #fefefe;\n background-clip: padding-box;\n border: 1px solid #999;\n border-radius: 6px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1;\n padding: 8px 12px;\n -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\n transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\n width: 100%;\n}\n.llms-form-field input:focus,\n.llms-form-field input:focus-visible {\n border-color: #6888df;\n outline: thin solid;\n}\n.llms-form-field select {\n -webkit-appearance: none;\n -moz-appearance: none;\n -ms-appearance: none;\n appearance: none;\n background-color: #fefefe;\n border: 1px solid #999;\n border-radius: 6px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #010101;\n padding: 8px 12px;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 16px;\n cursor: inherit;\n line-height: 1.6;\n z-index: 1;\n outline: none;\n background-repeat: no-repeat;\n background-image: linear-gradient(45deg, transparent 50%, currentcolor 50%), linear-gradient(135deg, currentcolor 50%, transparent 50%);\n background-position: right 15px top 1.3rem, right 10px top 1.3rem;\n background-size: 5px 5px, 5px 5px;\n}\n.llms-form-field select::-ms-expand {\n display: none;\n}\n.llms-form-field select:focus {\n border: 1px solid #6888df;\n outline: thin solid;\n}\n.llms-form-field.valid input[type=date], .llms-form-field.valid input[type=time], .llms-form-field.valid input[type=datetime-local], .llms-form-field.valid input[type=week], .llms-form-field.valid input[type=month], .llms-form-field.valid input[type=text], .llms-form-field.valid input[type=email], .llms-form-field.valid input[type=url], .llms-form-field.valid input[type=password], .llms-form-field.valid input[type=search], .llms-form-field.valid input[type=tel], .llms-form-field.valid input[type=number], .llms-form-field.valid textarea, .llms-form-field.valid select {\n background: rgba(131, 195, 115, 0.3);\n border-color: #83c373;\n}\n.llms-form-field.error input[type=date], .llms-form-field.error input[type=time], .llms-form-field.error input[type=datetime-local], .llms-form-field.error input[type=week], .llms-form-field.error input[type=month], .llms-form-field.error input[type=text], .llms-form-field.error input[type=email], .llms-form-field.error input[type=url], .llms-form-field.error input[type=password], .llms-form-field.error input[type=search], .llms-form-field.error input[type=tel], .llms-form-field.error input[type=number], .llms-form-field.error textarea, .llms-form-field.error select, .llms-form-field.invalid input[type=date], .llms-form-field.invalid input[type=time], .llms-form-field.invalid input[type=datetime-local], .llms-form-field.invalid input[type=week], .llms-form-field.invalid input[type=month], .llms-form-field.invalid input[type=text], .llms-form-field.invalid input[type=email], .llms-form-field.invalid input[type=url], .llms-form-field.invalid input[type=password], .llms-form-field.invalid input[type=search], .llms-form-field.invalid input[type=tel], .llms-form-field.invalid input[type=number], .llms-form-field.invalid textarea, .llms-form-field.invalid select {\n background: rgba(187, 35, 28, 0.3);\n border-color: #bb231c;\n}\n.llms-form-field.llms-visually-hidden-field {\n display: none;\n}\n.llms-form-field.align-right {\n text-align: right;\n}\n@media screen and (min-width: 600px) {\n .llms-form-field.llms-cols-1 {\n width: 8.3333333333%;\n }\n .llms-form-field.llms-cols-2 {\n width: 16.6666666667%;\n }\n .llms-form-field.llms-cols-3 {\n width: 25%;\n }\n .llms-form-field.llms-cols-4 {\n width: 33.3333333333%;\n }\n .llms-form-field.llms-cols-5 {\n width: 41.6666666667%;\n }\n .llms-form-field.llms-cols-6 {\n width: 50%;\n }\n .llms-form-field.llms-cols-7 {\n width: 58.3333333333%;\n }\n .llms-form-field.llms-cols-8 {\n width: 66.6666666667%;\n }\n .llms-form-field.llms-cols-9 {\n width: 75%;\n }\n .llms-form-field.llms-cols-10 {\n width: 83.3333333333%;\n }\n .llms-form-field.llms-cols-11 {\n width: 91.6666666667%;\n }\n .llms-form-field.llms-cols-12 {\n width: 100%;\n }\n}\n.llms-form-field.type-hidden {\n padding: 0;\n}\n.llms-form-field.type-radio input,\n.llms-form-field.type-radio label, .llms-form-field.type-checkbox input,\n.llms-form-field.type-checkbox label {\n display: inline-block;\n width: auto;\n}\n.llms-form-field.type-radio input, .llms-form-field.type-checkbox input {\n margin-right: 10px;\n}\n.llms-form-field.type-radio label + .llms-description, .llms-form-field.type-checkbox label + .llms-description {\n display: block;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio] {\n position: absolute;\n opacity: 0;\n visibility: none;\n}\n.llms-form-field.type-radio:not(.is-group) label:before {\n background: #fafafa;\n background-position: -24px 0;\n background-repeat: no-repeat;\n border-radius: 50%;\n -webkit-box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.35) 0 0 0 1px;\n box-shadow: hsla(0deg, 0%, 100%, 0.15) 0 1px 1px, inset hsla(0deg, 0%, 0%, 0.35) 0 0 0 1px;\n content: \"\";\n cursor: pointer;\n display: inline-block;\n height: 22px;\n margin-right: 5px;\n position: relative;\n -webkit-transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n transition: background-position 0.15s cubic-bezier(0.8, 0, 1, 1);\n top: -3px;\n vertical-align: middle;\n width: 22px;\n z-index: 2;\n}\n.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked + label:before {\n -webkit-transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n transition: background-position 0.2s 0.15s cubic-bezier(0, 0, 0.2, 1);\n background-position: 0 0;\n background-image: radial-gradient(ellipse at center, #466dd8 0%, #466dd8 40%, #fafafa 45%);\n}\n.llms-form-field .llms-input-group {\n margin-top: 5px;\n}\n.llms-form-field .llms-input-group .llms-form-field {\n padding: 0 0 5px 5px;\n}\n.llms-form-field.type-reset button:not(.auto), .llms-form-field.type-button button:not(.auto), .llms-form-field.type-submit button:not(.auto) {\n width: 100%;\n}\n.llms-form-field .llms-description {\n font-size: 14px;\n font-style: italic;\n line-height: 18px;\n}\n.llms-form-field .llms-required {\n color: #bb231c;\n margin-left: 4px;\n}\n.llms-form-field input, .llms-form-field textarea, .llms-form-field select {\n width: 100%;\n margin-bottom: 5px;\n}\n.llms-form-field .select2-container .select2-selection--single {\n height: auto;\n padding: 4px 6px;\n}\n.llms-form-field .select2-container--default .select2-selection--single .select2-selection__arrow {\n height: 100%;\n}\n\n.llms-password-strength-meter {\n border: 1px solid #dadada;\n display: none;\n font-size: 10px;\n margin-top: -10px;\n padding: 1px;\n position: relative;\n text-align: center;\n}\n.llms-password-strength-meter:before {\n bottom: 0;\n content: \"\";\n left: 0;\n position: absolute;\n top: 0;\n -webkit-transition: width 0.4s ease;\n transition: width 0.4s ease;\n}\n.llms-password-strength-meter.mismatch, .llms-password-strength-meter.too-short, .llms-password-strength-meter.very-weak {\n border-color: #e35b5b;\n}\n.llms-password-strength-meter.mismatch:before, .llms-password-strength-meter.too-short:before, .llms-password-strength-meter.very-weak:before {\n background: rgba(227, 91, 91, 0.25);\n width: 25%;\n}\n.llms-password-strength-meter.too-short:before {\n width: 0;\n}\n.llms-password-strength-meter.weak {\n border-color: #f78b53;\n}\n.llms-password-strength-meter.weak:before {\n background: rgba(247, 139, 83, 0.25);\n width: 50%;\n}\n.llms-password-strength-meter.medium {\n border-color: #ffc733;\n}\n.llms-password-strength-meter.medium:before {\n background: rgba(255, 199, 51, 0.25);\n width: 75%;\n}\n.llms-password-strength-meter.strong {\n border-color: #83c373;\n}\n.llms-password-strength-meter.strong:before {\n background: rgba(131, 195, 115, 0.25);\n width: 100%;\n}\n.llms-password-strength-meter + .llms-description {\n display: block;\n}\n\n.llms-widget-syllabus--collapsible .llms-section .section-header {\n cursor: pointer;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--opened .llms-collapse-caret .fa-caret-right {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-collapse-caret .fa-caret-down {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-section.llms-section--closed .llms-lesson {\n display: none;\n}\n.llms-widget-syllabus--collapsible .llms-syllabus-footer {\n text-align: left;\n}\n\n.llms-student-dashboard {\n /**\n * Dashboard Home\n */\n}\n.llms-student-dashboard .llms-sd-title {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n gap: 15px;\n margin: 40px 0 20px 0;\n}\n.llms-student-dashboard .llms-sd-title small {\n font-size: 18px;\n}\n.llms-student-dashboard .llms-sd-title small + a {\n text-decoration: none;\n}\n.llms-student-dashboard .llms-sd-items {\n list-style-type: none;\n margin: 0 0 25px 0;\n padding: 0;\n}\n.llms-student-dashboard .llms-sd-item {\n display: inline-block;\n list-style-type: none;\n margin: 5px 0;\n padding: 0;\n}\n.llms-student-dashboard .llms-sd-item:last-child .llms-sep {\n display: none;\n}\n.llms-student-dashboard .llms-sd-item .llms-sep {\n color: #666;\n margin: 0 5px;\n}\n.llms-student-dashboard .llms-sd-section {\n margin-bottom: 40px;\n}\n.llms-student-dashboard .llms-sd-section h2 {\n margin: 0 0 15px 0;\n}\n.llms-student-dashboard .llms-sd-section .llms-sd-section-title {\n margin: 0;\n padding: 0;\n}\n.llms-student-dashboard .llms-sd-section .llms-sd-section-title:first-child {\n margin: 0 0 10px 0;\n}\n.llms-student-dashboard .llms-sd-section .llms-sd-section-footer {\n margin-top: 10px;\n}\n.llms-student-dashboard .llms-sd-section .llms-sd-section-footer a.llms-button-secondary {\n display: inline-block;\n}\n.llms-student-dashboard .llms-sd-section .llms-certificates-loop {\n margin: 0 0 0 -10px;\n}\n.llms-student-dashboard .llms-sd-section .llms-certificate {\n padding: 20px 0;\n}\n.llms-student-dashboard .orders-table {\n border: 1px solid #dedede;\n border-spacing: 0;\n width: 100%;\n}\n.llms-student-dashboard .orders-table thead {\n display: none;\n}\n.llms-student-dashboard .orders-table thead th, .llms-student-dashboard .orders-table thead td {\n font-weight: 700;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table thead {\n display: table-header-group;\n }\n}\n.llms-student-dashboard .orders-table tbody tr:nth-child(odd) td, .llms-student-dashboard .orders-table tbody tr:nth-child(odd) th {\n background: #f9f9f9;\n}\n.llms-student-dashboard .orders-table tbody tr:last-child {\n border-bottom-width: 0;\n}\n.llms-student-dashboard .orders-table tfoot tr {\n background: #f9f9f9;\n}\n.llms-student-dashboard .orders-table tfoot th, .llms-student-dashboard .orders-table tfoot td {\n padding: 10px;\n text-align: right;\n}\n.llms-student-dashboard .orders-table tfoot th:last-child, .llms-student-dashboard .orders-table tfoot td:last-child {\n border-bottom-width: 0;\n}\n.llms-student-dashboard .orders-table th {\n font-weight: 700;\n}\n.llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {\n border-color: #dedede;\n border-style: solid;\n border-width: 0;\n display: block;\n padding: 15px 20px;\n text-align: center;\n}\n.llms-student-dashboard .orders-table th .llms-button-primary, .llms-student-dashboard .orders-table td .llms-button-primary {\n display: inline-block;\n}\n.llms-student-dashboard .orders-table th:last-child, .llms-student-dashboard .orders-table td:last-child {\n border-bottom-width: 1px;\n}\n.llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {\n content: attr(data-label);\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table th, .llms-student-dashboard .orders-table td {\n border-bottom-width: 1px;\n display: table-cell;\n text-align: left;\n }\n .llms-student-dashboard .orders-table th:first-child, .llms-student-dashboard .orders-table td:first-child {\n width: 220px;\n }\n .llms-student-dashboard .orders-table th:before, .llms-student-dashboard .orders-table td:before {\n display: none;\n }\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .orders-table.transactions th:first-child {\n width: auto;\n }\n}\n.llms-student-dashboard .llms-status {\n border-radius: 6px;\n display: inline-block;\n font-size: 13px;\n font-weight: 700;\n line-height: 1.4;\n padding: 2px 6px;\n vertical-align: middle;\n}\n.llms-student-dashboard .llms-status.llms-size--large {\n font-size: 105%;\n padding: 6px 12px;\n}\n.llms-student-dashboard .llms-status.llms-active, .llms-student-dashboard .llms-status.llms-completed, .llms-student-dashboard .llms-status.llms-pass, .llms-student-dashboard .llms-status.llms-txn-succeeded {\n color: #4d8d3c;\n background-color: rgba(77, 141, 60, 0.15);\n}\n.llms-student-dashboard .llms-status.llms-fail, .llms-student-dashboard .llms-status.llms-failed, .llms-student-dashboard .llms-status.llms-expired, .llms-student-dashboard .llms-status.llms-cancelled, .llms-student-dashboard .llms-status.llms-txn-failed {\n color: #bb231c;\n background-color: rgba(187, 35, 28, 0.15);\n}\n.llms-student-dashboard .llms-status.llms-incomplete, .llms-student-dashboard .llms-status.llms-on-hold, .llms-student-dashboard .llms-status.llms-pending, .llms-student-dashboard .llms-status.llms-pending-cancel, .llms-student-dashboard .llms-status.llms-refunded, .llms-student-dashboard .llms-status.llms-txn-pending, .llms-student-dashboard .llms-status.llms-txn-refunded {\n color: #c05621;\n background-color: rgba(192, 86, 33, 0.15);\n}\n.llms-student-dashboard .order-title .llms-status {\n font-size: 18px;\n}\n.llms-student-dashboard .llms-person-form-wrapper .llms-change-password {\n display: none;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .order-primary {\n float: left;\n width: 68%;\n }\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .order-secondary {\n float: left;\n width: 32%;\n }\n}\n.llms-student-dashboard .order-secondary form {\n margin-bottom: 0;\n}\n@media all and (min-width: 600px) {\n .llms-student-dashboard .llms-view-order.llms-stack-cols .order-primary,\n.llms-student-dashboard .llms-view-order.llms-stack-cols .order-secondary {\n float: none;\n width: 100%;\n }\n}\n.llms-student-dashboard .llms-switch-payment-source .llms-notice,\n.llms-student-dashboard .llms-switch-payment-source .entry-content .llms-notice {\n margin-left: 10px;\n margin-right: 10px;\n}\n.llms-student-dashboard .llms-switch-payment-source-main {\n border: none;\n display: none;\n margin: 0;\n}\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-payment-gateways {\n padding: 10px 15px 0;\n margin: 0;\n}\n.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method,\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary {\n padding: 0 25px 10px;\n margin: 0;\n list-style-type: none;\n}\n.llms-student-dashboard .llms-switch-payment-source-main .llms-payment-method li,\n.llms-student-dashboard .llms-switch-payment-source-main ul.llms-order-summary li {\n list-style-type: none;\n}\n.llms-student-dashboard.dashboard .llms-sd-section {\n border: 1px solid #dedede;\n border-radius: 6px;\n padding: 20px;\n margin-bottom: 40px;\n}\n.llms-student-dashboard .llms-loop-list {\n margin: 0 -10px;\n}\n\n.logged-in .llms-sd-layout-columns {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: start;\n}\n@media all and (min-width: 600px) {\n .logged-in .llms-sd-layout-columns {\n display: grid;\n grid-gap: 25px;\n grid-template-areas: \"nav header\" \"nav tab\";\n grid-template-columns: 200px 1fr;\n grid-template-rows: auto 1fr;\n }\n}\n.logged-in .llms-sd-layout-columns .llms-sd-nav {\n grid-area: nav;\n}\n@media all and (min-width: 600px) {\n .logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item {\n display: block;\n float: none;\n }\n .logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item a {\n display: block;\n padding: 10px 0;\n }\n .logged-in .llms-sd-layout-columns .llms-sd-nav .llms-sd-items .llms-sd-item .llms-sep {\n display: none;\n }\n}\n.logged-in .llms-sd-layout-columns .llms-sd-header {\n grid-area: header;\n}\n.logged-in .llms-sd-layout-columns .llms-sd-tab {\n grid-area: tab;\n}\n\n.llms-sd-grades .llms-table .llms-progress {\n display: block;\n margin: 0;\n}\n.llms-sd-grades .llms-table .llms-progress .llms-progress-bar {\n top: 0;\n height: 1.4em;\n}\n.llms-sd-grades .llms-table .llms-progress .progress__indicator {\n font-size: 1em;\n position: relative;\n right: 0.4em;\n top: 0.2em;\n z-index: 1;\n}\n\n.llms-table.llms-single-course-grades tbody tr:first-child td, .llms-table.llms-single-course-grades tbody tr:first-child th {\n background-color: #eaeaea;\n}\n.llms-table.llms-single-course-grades th {\n font-weight: 400;\n text-align: left;\n}\n.llms-table.llms-single-course-grades td .llms-donut {\n display: inline-block;\n vertical-align: middle;\n}\n.llms-table.llms-single-course-grades td .llms-status {\n margin-right: 4px;\n}\n.llms-table.llms-single-course-grades td .llms-donut + .llms-status {\n margin-left: 4px;\n}\n.llms-table.llms-single-course-grades th.llms-section_title {\n font-size: 110%;\n font-weight: 700;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title {\n max-width: 40%;\n}\n.llms-table.llms-single-course-grades td.llms-associated_quiz .llms-donut {\n display: inline-block;\n margin-right: 5px;\n vertical-align: middle;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href=\"#\"] {\n pointer-events: none;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] {\n color: inherit;\n position: relative;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] .llms-tooltip {\n max-width: 380px;\n width: 380px;\n}\n.llms-table.llms-single-course-grades td.llms-lesson_title a[href^=\"#\"] .llms-tooltip.show {\n top: -54px;\n}\n\n.llms-sd-widgets {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.llms-sd-widgets .llms-sd-widget {\n background: #fefefe;\n border: 1px solid #dedede;\n border-bottom-right-radius: 6px;\n border-bottom-left-radius: 6px;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n margin: 10px 10px 20px;\n padding: 0 0 20px;\n}\n.llms-sd-widgets .llms-sd-widget:first-child {\n margin-left: 0;\n}\n.llms-sd-widgets .llms-sd-widget:last-child {\n margin-right: 0;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-widget-title {\n background: #466dd8;\n color: #fff;\n font-size: 18px;\n line-height: 1;\n margin: 0 0 20px;\n padding: 10px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-widget-empty {\n font-size: 14px;\n font-style: italic;\n opacity: 0.5;\n text-align: center;\n}\n.llms-sd-widgets .llms-sd-widget .llms-donut {\n margin: 0 auto;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date {\n opacity: 0.8;\n text-align: center;\n font-size: 22px;\n line-height: 1.1;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span {\n display: block;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span.day {\n font-size: 52px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-sd-date span.diff {\n font-size: 12px;\n font-style: italic;\n margin-top: 8px;\n opacity: 0.75;\n}\n.llms-sd-widgets .llms-sd-widget .llms-achievement {\n background: transparent;\n margin: 0 auto;\n max-width: 120px;\n}\n.llms-sd-widgets .llms-sd-widget .llms-achievement .llms-achievement-title {\n display: none;\n}\n\n.redeem-voucher .form-row label {\n display: block;\n font-weight: 700;\n}\n.redeem-voucher .form-row input[type=text] {\n background-color: #fefefe;\n background-clip: padding-box;\n border: 1px solid #999;\n border-radius: 6px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n font-size: 16px;\n line-height: 1;\n padding: 8px 12px;\n -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\n transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;\n}\n\n.llms-sd-pagination {\n margin-top: 24px;\n}\n.llms-sd-pagination:before, .llms-sd-pagination:after {\n content: \" \";\n display: table;\n}\n.llms-sd-pagination:after {\n clear: both;\n}\n.llms-sd-pagination .llms-button-secondary {\n display: inline-block;\n}\n.llms-sd-pagination .llms-button-secondary.prev {\n float: left;\n}\n.llms-sd-pagination .llms-button-secondary.next {\n float: right;\n}\n\n.llms-sd-notification-center {\n background: #fefefe;\n border: 1px solid #dedede;\n border-radius: 6px;\n padding: 20px;\n}\n.llms-sd-notification-center .llms-notification-list-item .llms-notification {\n z-index: 1;\n}\n.llms-sd-notification-center .llms-notification-list-item .llms-notification:hover {\n background-color: inherit;\n}\n\n.llms-table {\n border: 1px solid #dedede;\n border-spacing: 0;\n width: 100%;\n}\n.llms-table thead th, .llms-table thead td {\n font-weight: 700;\n}\n.llms-table tbody tr:nth-child(odd) td, .llms-table tbody tr:nth-child(odd) th {\n background: #f9f9f9;\n}\n.llms-table tbody tr:last-child {\n border-bottom-width: 0;\n}\n.llms-table tfoot tr {\n background: #f9f9f9;\n}\n.llms-table tfoot tr .llms-pagination .page-numbers {\n margin: 0;\n}\n.llms-table tfoot tr .llms-table-sort {\n text-align: right;\n}\n.llms-table tfoot tr .llms-table-sort form, .llms-table tfoot tr .llms-table-sort select, .llms-table tfoot tr .llms-table-sort input, .llms-table tfoot tr .llms-table-sort button {\n margin: 0;\n}\n.llms-table th {\n font-weight: 700;\n}\n.llms-table th, .llms-table td {\n border-bottom: 1px solid #dedede;\n padding: 15px 20px;\n}\n.llms-table th:first-child, .llms-table td:first-child {\n padding-left: 12px;\n}\n.llms-table th:last-child, .llms-table td:last-child {\n padding-right: 12px;\n}\n\n#page .llms-table tfoot label {\n display: inline;\n}\n\n#page .llms-table tfoot select {\n height: auto;\n}\n\n/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: \"FontAwesome\";\n src: url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");\n src: url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"), url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"), url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"), url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"), url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n\n.fa-border {\n padding: 0.2em 0.25em 0.15em;\n border: solid 0.08em #eeeeee;\n border-radius: 0.1em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left {\n margin-right: 0.3em;\n}\n\n.fa.fa-pull-right {\n margin-left: 0.3em;\n}\n\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n\n.pull-left {\n float: left;\n}\n\n.fa.pull-left {\n margin-right: 0.3em;\n}\n\n.fa.pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n\n.fa-stack-1x {\n line-height: inherit;\n}\n\n.fa-stack-2x {\n font-size: 2em;\n}\n\n.fa-inverse {\n color: #ffffff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n\n.fa-music:before {\n content: \"\\f001\";\n}\n\n.fa-search:before {\n content: \"\\f002\";\n}\n\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n\n.fa-heart:before {\n content: \"\\f004\";\n}\n\n.fa-star:before {\n content: \"\\f005\";\n}\n\n.fa-star-o:before {\n content: \"\\f006\";\n}\n\n.fa-user:before {\n content: \"\\f007\";\n}\n\n.fa-film:before {\n content: \"\\f008\";\n}\n\n.fa-th-large:before {\n content: \"\\f009\";\n}\n\n.fa-th:before {\n content: \"\\f00a\";\n}\n\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n\n.fa-check:before {\n content: \"\\f00c\";\n}\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n\n.fa-power-off:before {\n content: \"\\f011\";\n}\n\n.fa-signal:before {\n content: \"\\f012\";\n}\n\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n\n.fa-home:before {\n content: \"\\f015\";\n}\n\n.fa-file-o:before {\n content: \"\\f016\";\n}\n\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n\n.fa-road:before {\n content: \"\\f018\";\n}\n\n.fa-download:before {\n content: \"\\f019\";\n}\n\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n\n.fa-refresh:before {\n content: \"\\f021\";\n}\n\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n\n.fa-lock:before {\n content: \"\\f023\";\n}\n\n.fa-flag:before {\n content: \"\\f024\";\n}\n\n.fa-headphones:before {\n content: \"\\f025\";\n}\n\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n\n.fa-tag:before {\n content: \"\\f02b\";\n}\n\n.fa-tags:before {\n content: \"\\f02c\";\n}\n\n.fa-book:before {\n content: \"\\f02d\";\n}\n\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n\n.fa-print:before {\n content: \"\\f02f\";\n}\n\n.fa-camera:before {\n content: \"\\f030\";\n}\n\n.fa-font:before {\n content: \"\\f031\";\n}\n\n.fa-bold:before {\n content: \"\\f032\";\n}\n\n.fa-italic:before {\n content: \"\\f033\";\n}\n\n.fa-text-height:before {\n content: \"\\f034\";\n}\n\n.fa-text-width:before {\n content: \"\\f035\";\n}\n\n.fa-align-left:before {\n content: \"\\f036\";\n}\n\n.fa-align-center:before {\n content: \"\\f037\";\n}\n\n.fa-align-right:before {\n content: \"\\f038\";\n}\n\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n\n.fa-list:before {\n content: \"\\f03a\";\n}\n\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n\n.fa-indent:before {\n content: \"\\f03c\";\n}\n\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n\n.fa-pencil:before {\n content: \"\\f040\";\n}\n\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n\n.fa-adjust:before {\n content: \"\\f042\";\n}\n\n.fa-tint:before {\n content: \"\\f043\";\n}\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n\n.fa-arrows:before {\n content: \"\\f047\";\n}\n\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n\n.fa-backward:before {\n content: \"\\f04a\";\n}\n\n.fa-play:before {\n content: \"\\f04b\";\n}\n\n.fa-pause:before {\n content: \"\\f04c\";\n}\n\n.fa-stop:before {\n content: \"\\f04d\";\n}\n\n.fa-forward:before {\n content: \"\\f04e\";\n}\n\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n\n.fa-eject:before {\n content: \"\\f052\";\n}\n\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n\n.fa-ban:before {\n content: \"\\f05e\";\n}\n\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n\n.fa-expand:before {\n content: \"\\f065\";\n}\n\n.fa-compress:before {\n content: \"\\f066\";\n}\n\n.fa-plus:before {\n content: \"\\f067\";\n}\n\n.fa-minus:before {\n content: \"\\f068\";\n}\n\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n\n.fa-gift:before {\n content: \"\\f06b\";\n}\n\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n\n.fa-fire:before {\n content: \"\\f06d\";\n}\n\n.fa-eye:before {\n content: \"\\f06e\";\n}\n\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n\n.fa-plane:before {\n content: \"\\f072\";\n}\n\n.fa-calendar:before {\n content: \"\\f073\";\n}\n\n.fa-random:before {\n content: \"\\f074\";\n}\n\n.fa-comment:before {\n content: \"\\f075\";\n}\n\n.fa-magnet:before {\n content: \"\\f076\";\n}\n\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n\n.fa-retweet:before {\n content: \"\\f079\";\n}\n\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n\n.fa-folder:before {\n content: \"\\f07b\";\n}\n\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n\n.fa-key:before {\n content: \"\\f084\";\n}\n\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n\n.fa-comments:before {\n content: \"\\f086\";\n}\n\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n\n.fa-star-half:before {\n content: \"\\f089\";\n}\n\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n\n.fa-trophy:before {\n content: \"\\f091\";\n}\n\n.fa-github-square:before {\n content: \"\\f092\";\n}\n\n.fa-upload:before {\n content: \"\\f093\";\n}\n\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n\n.fa-phone:before {\n content: \"\\f095\";\n}\n\n.fa-square-o:before {\n content: \"\\f096\";\n}\n\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n\n.fa-twitter:before {\n content: \"\\f099\";\n}\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n\n.fa-github:before {\n content: \"\\f09b\";\n}\n\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n\n.fa-square:before {\n content: \"\\f0c8\";\n}\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n\n.fa-table:before {\n content: \"\\f0ce\";\n}\n\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n\n.fa-money:before {\n content: \"\\f0d6\";\n}\n\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n\n.fa-columns:before {\n content: \"\\f0db\";\n}\n\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n\n.fa-desktop:before {\n content: \"\\f108\";\n}\n\n.fa-laptop:before {\n content: \"\\f109\";\n}\n\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n\n.fa-spinner:before {\n content: \"\\f110\";\n}\n\n.fa-circle:before {\n content: \"\\f111\";\n}\n\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n\n.fa-terminal:before {\n content: \"\\f120\";\n}\n\n.fa-code:before {\n content: \"\\f121\";\n}\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n\n.fa-crop:before {\n content: \"\\f125\";\n}\n\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n\n.fa-question:before {\n content: \"\\f128\";\n}\n\n.fa-info:before {\n content: \"\\f129\";\n}\n\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n\n.fa-microphone:before {\n content: \"\\f130\";\n}\n\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n\n.fa-shield:before {\n content: \"\\f132\";\n}\n\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n\n.fa-rocket:before {\n content: \"\\f135\";\n}\n\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n\n.fa-html5:before {\n content: \"\\f13b\";\n}\n\n.fa-css3:before {\n content: \"\\f13c\";\n}\n\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n\n.fa-ticket:before {\n content: \"\\f145\";\n}\n\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n\n.fa-level-up:before {\n content: \"\\f148\";\n}\n\n.fa-level-down:before {\n content: \"\\f149\";\n}\n\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n\n.fa-compass:before {\n content: \"\\f14e\";\n}\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n\n.fa-gbp:before {\n content: \"\\f154\";\n}\n\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n\n.fa-file:before {\n content: \"\\f15b\";\n}\n\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n\n.fa-youtube:before {\n content: \"\\f167\";\n}\n\n.fa-xing:before {\n content: \"\\f168\";\n}\n\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n\n.fa-adn:before {\n content: \"\\f170\";\n}\n\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n\n.fa-apple:before {\n content: \"\\f179\";\n}\n\n.fa-windows:before {\n content: \"\\f17a\";\n}\n\n.fa-android:before {\n content: \"\\f17b\";\n}\n\n.fa-linux:before {\n content: \"\\f17c\";\n}\n\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n\n.fa-skype:before {\n content: \"\\f17e\";\n}\n\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n\n.fa-trello:before {\n content: \"\\f181\";\n}\n\n.fa-female:before {\n content: \"\\f182\";\n}\n\n.fa-male:before {\n content: \"\\f183\";\n}\n\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n\n.fa-archive:before {\n content: \"\\f187\";\n}\n\n.fa-bug:before {\n content: \"\\f188\";\n}\n\n.fa-vk:before {\n content: \"\\f189\";\n}\n\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n\n.fa-renren:before {\n content: \"\\f18b\";\n}\n\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n\n.fa-slack:before {\n content: \"\\f198\";\n}\n\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n\n.fa-openid:before {\n content: \"\\f19b\";\n}\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n\n.fa-google:before {\n content: \"\\f1a0\";\n}\n\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n\n.fa-language:before {\n content: \"\\f1ab\";\n}\n\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n\n.fa-building:before {\n content: \"\\f1ad\";\n}\n\n.fa-child:before {\n content: \"\\f1ae\";\n}\n\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n\n.fa-database:before {\n content: \"\\f1c0\";\n}\n\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n\n.fa-git:before {\n content: \"\\f1d3\";\n}\n\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n\n.fa-history:before {\n content: \"\\f1da\";\n}\n\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n\n.fa-header:before {\n content: \"\\f1dc\";\n}\n\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n\n.fa-at:before {\n content: \"\\f1fa\";\n}\n\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n\n.fa-bus:before {\n content: \"\\f207\";\n}\n\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n\n.fa-angellist:before {\n content: \"\\f209\";\n}\n\n.fa-cc:before {\n content: \"\\f20a\";\n}\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n\n.fa-diamond:before {\n content: \"\\f219\";\n}\n\n.fa-ship:before {\n content: \"\\f21a\";\n}\n\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n\n.fa-venus:before {\n content: \"\\f221\";\n}\n\n.fa-mars:before {\n content: \"\\f222\";\n}\n\n.fa-mercury:before {\n content: \"\\f223\";\n}\n\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n\n.fa-server:before {\n content: \"\\f233\";\n}\n\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n\n.fa-user-times:before {\n content: \"\\f235\";\n}\n\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n\n.fa-train:before {\n content: \"\\f238\";\n}\n\n.fa-subway:before {\n content: \"\\f239\";\n}\n\n.fa-medium:before {\n content: \"\\f23a\";\n}\n\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n\n.fa-object-group:before {\n content: \"\\f247\";\n}\n\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n\n.fa-clone:before {\n content: \"\\f24d\";\n}\n\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n\n.fa-registered:before {\n content: \"\\f25d\";\n}\n\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n\n.fa-gg:before {\n content: \"\\f260\";\n}\n\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n\n.fa-safari:before {\n content: \"\\f267\";\n}\n\n.fa-chrome:before {\n content: \"\\f268\";\n}\n\n.fa-firefox:before {\n content: \"\\f269\";\n}\n\n.fa-opera:before {\n content: \"\\f26a\";\n}\n\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n\n.fa-contao:before {\n content: \"\\f26d\";\n}\n\n.fa-500px:before {\n content: \"\\f26e\";\n}\n\n.fa-amazon:before {\n content: \"\\f270\";\n}\n\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n\n.fa-industry:before {\n content: \"\\f275\";\n}\n\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n\n.fa-map-o:before {\n content: \"\\f278\";\n}\n\n.fa-map:before {\n content: \"\\f279\";\n}\n\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n\n.fa-edge:before {\n content: \"\\f282\";\n}\n\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n\n.fa-modx:before {\n content: \"\\f285\";\n}\n\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n\n.fa-usb:before {\n content: \"\\f287\";\n}\n\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n\n.fa-percent:before {\n content: \"\\f295\";\n}\n\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n\n.fa-envira:before {\n content: \"\\f299\";\n}\n\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n\n.fa-blind:before {\n content: \"\\f29d\";\n}\n\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n/*# sourceMappingURL=../maps/css/lifterlms.css.map */\n"],"sourceRoot":"../../css"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-admin-elementor-editor.min.js.map b/assets/maps/js/llms-admin-elementor-editor.min.js.map
new file mode 100644
index 0000000000..8b1b452d83
--- /dev/null
+++ b/assets/maps/js/llms-admin-elementor-editor.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-admin-elementor-editor.min.js","sources":["llms-admin-elementor-editor.js"],"sourcesContent":["jQuery(document).ready((function(e){\"undefined\"!=typeof elementor&&elementor.modules.layouts.panel.pages.menu.Menu.addItem({name:\"Course Builder\",title:\"Launch Course Builder\",icon:\"wp-menu-image dashicons-before dashicons-welcome-learn-more\",callback:function(){window.location.href=llms_elementor.builder_url}},\"navigate_from_page\",\"finder\")}));"],"names":["jQuery","document","ready","e","elementor","modules","layouts","panel","pages","menu","Menu","addItem","name","title","icon","callback","window","location","href","llms_elementor","builder_url"],"mappings":"AAAAA,OAAOC,QAAQ,EAAEC,MAAM,SAAUC,GAAG,aAAa,OAAOC,WAAWA,UAAUC,QAAQC,QAAQC,MAAMC,MAAMC,KAAKC,KAAKC,QAAQ,CAACC,KAAK,iBAAiBC,MAAM,wBAAwBC,KAAK,8DAA8DC,SAAS,WAAWC,OAAOC,SAASC,KAAKC,eAAeC,WAAW,CAAC,EAAE,qBAAqB,QAAQ,CAAE,CAAC","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-admin-forms.min.js.map b/assets/maps/js/llms-admin-forms.min.js.map
new file mode 100644
index 0000000000..137578a0e9
--- /dev/null
+++ b/assets/maps/js/llms-admin-forms.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-admin-forms.min.js","sources":["llms-admin-forms.js"],"sourcesContent":["/**\n * Show an upgrade to custom fields notice when viewing the forms post type table\n *\n * @since 5.0.0\n * @version 5.0.0\n */\n\n( function() {\n\n\tvar __ = window.wp.i18n.__,\n\t\tBTN_CLASS = 'page-title-action',\n\t\tHELP_CLASS = 'llms-forms-help-text',\n\t\taddNewBtn = document.querySelector( '.' + BTN_CLASS );\n\n\t// Don't do anything if the button already exists.\n\tif ( addNewBtn ) {\n\t\treturn;\n\t}\n\n\t/**\n\t * Create the disabled \"Add New Form\" button\n\t *\n\t * @since 5.0.0\n\t *\n\t * @return {Element} Button DOM node.\n\t */\n\tfunction createNewButton() {\n\n\t\tvar btn = document.createElement( 'button' );\n\n\t\tbtn.className = BTN_CLASS + ' button';\n\t\tbtn.innerHTML = __( 'Add New Form', 'lifterlms' );\n\t\tbtn.disabled = 'disabled';\n\t\tbtn.style = 'vertical-align: inherit';\n\n\t\treturn btn;\n\n\t}\n\n\t/**\n\t * Create the toggle \"Help\" icon button\n\t *\n\t * @since 5.0.0\n\t *\n\t * @return {Element} Button DOM node.\n\t */\n\tfunction createHelpIcon() {\n\n\t\tvar btn = document.createElement( 'button' ),\n\t\t\ttxt = __( 'Help', 'lifterlms' );\n\n\t\tbtn.className = 'button dashicons dashicons-editor-help';\n\t\tbtn.style = [\n\t\t\t'background-color: #466dd8',\n\t\t\t'border-radius: 50%;',\n\t\t\t'border-color: #466dd8',\n\t\t\t'color: #FFF',\n\t\t\t'font-size: 23px;',\n\t\t\t'height: 30px;',\n\t\t\t'line-height: 1;',\n\t\t\t'margin-left: 5px;',\n\t\t\t'padding: 0;',\n\t\t\t'position: relative;',\n\t\t\t'top: 3px',\n\t\t\t'vertical-align: baseline;',\n\t\t\t'width: 30px;',\n\t\t].join( ';' );\n\n\t\tbtn.innerHTML = '' + txt + ' ';\n\t\tbtn.title = __( 'Help', 'lifterlms' );\n\n\t\tbtn.addEventListener( 'click', toggleHelpNode );\n\n\t\treturn btn;\n\n\t}\n\n\t/**\n\t * Create the help notice node\n\t *\n\t * @since 5.0.0\n\t *\n\t * @return {Element} Notice div DOM node.\n\t */\n\tfunction createHelpNode() {\n\n\t\tvar div = document.createElement( 'div' );\n\n\t\tdiv.className = HELP_CLASS;\n\t\tdiv.style = 'display:none';\n\n\t\tdiv.innerHTML = '
Create Custom Forms and Fields Create unique student information forms for specific courses and memberships. Also unlock the power of custom fields so you can collect and display any form field data you can imagine.
Learn More
';\n\n\t\treturn div;\n\n\t}\n\n\t/**\n\t * Callback function for toggling the help notice dispaly\n\t *\n\t * @since 5.0.0\n\t *\n\t * @return {void}\n\t */\n\tfunction toggleHelpNode() {\n\n\t\tvar el = document.querySelector( '.' + HELP_CLASS );\n\n\t\tif ( 'none' === el.style.display ) {\n\t\t\tel.style.display = 'flex';\n\t\t\tel.className += ' notice notice-info llms-admin-notice';\n\t\t} else {\n\t\t\tel.style.display = 'none';\n\t\t}\n\n\t}\n\n\t/**\n\t * Initialize\n\t *\n\t * Creates and add elements to the dom and binds UI events.\n\t *\n\t * @since 5.0.0\n\t *\n\t * @return {void}\n\t */\n\tfunction init() {\n\n\t\tvar title = document.querySelector( '.wp-heading-inline' ),\n\t\t\tbtn = createNewButton();\n\n\t\ttitle.after( btn );\n\t\tbtn.after( createHelpIcon() );\n\n\t\tdocument.querySelector( '.wrap' ).insertBefore( createHelpNode(), document.querySelector( '.wp-header-end' ) );\n\n\t}\n\n\t// Go.\n\tinit();\n\n} )();\n\n\n"],"names":["btn","title","__","window","wp","i18n","BTN_CLASS","HELP_CLASS","toggleHelpNode","el","document","querySelector","style","display","className","createElement","innerHTML","disabled","after","txt","join","addEventListener","insertBefore","div"],"mappings":"AAOA,CAAA,WAEC,IAwHEA,EADGC,EAvHDC,EAAaC,OAAOC,GAAGC,KAAKH,GAC/BI,EAAa,oBACbC,EAAa,uBA6Fd,SAASC,IAER,IAAIC,EAAKC,SAASC,cAAe,IAAMJ,CAAW,EAE7C,SAAWE,EAAGG,MAAMC,SACxBJ,EAAGG,MAAMC,QAAU,OACnBJ,EAAGK,WAAa,yCAEhBL,EAAGG,MAAMC,QAAU,MAGrB,CAvGaH,SAASC,cAAe,IAAML,CAAU,IAoHhDL,EAAQS,SAASC,cAAe,oBAAqB,GApGrDX,EAAMU,SAASK,cAAe,QAAS,GAEvCD,UAAYR,EAAY,UAC5BN,EAAIgB,UAAYd,EAAI,eAAgB,WAAY,EAChDF,EAAIiB,SAAY,WAChBjB,EAAIY,MAAY,0BAkGhBX,EAAMiB,MAAOlB,CAAI,EACjBA,EAAIkB,OApFAlB,EAAMU,SAASK,cAAe,QAAS,EAC1CI,EAAMjB,EAAI,OAAQ,WAAY,EAE/BF,EAAIc,UAAY,yCAChBd,EAAIY,MAAY,CACf,4BACA,sBACA,wBACA,cACA,mBACA,gBACA,kBACA,oBACA,cACA,sBACA,WACA,4BACA,gBACCQ,KAAM,GAAI,EAEZpB,EAAIgB,UAAY,mCAAqCG,EAAM,UAC3DnB,EAAIC,MAAYC,EAAI,OAAQ,WAAY,EAExCF,EAAIqB,iBAAkB,QAASb,CAAe,EAEvCR,EA2DqB,EAE5BU,SAASC,cAAe,OAAQ,EAAEW,eAhD9BC,EAAMb,SAASK,cAAe,KAAM,GAEpCD,UAAYP,EAChBgB,EAAIX,MAAY,eAEhBW,EAAIP,UAAY,wjBAETO,GAyC2Db,SAASC,cAAe,gBAAiB,CAAE,EAO7G,EAAE","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-admin-settings.min.js.map b/assets/maps/js/llms-admin-settings.min.js.map
new file mode 100644
index 0000000000..1267217ff0
--- /dev/null
+++ b/assets/maps/js/llms-admin-settings.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-admin-settings.min.js","sources":["llms-admin-settings.js"],"sourcesContent":[";/**\n * LifterLMS Settings Pages UI / UX\n *\n * @since 3.7.3\n * @version 3.18.0\n */( function( $, undefined ) {\n\n\twindow.llms = window.llms || {};\n\twindow.llms.admin_settings = function() {\n\n\t\tthis.file_frame = null;\n\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t * @since 3.7.3\n\t\t * @version 3.18.0\n\t\t */\n\t\tthis.init = function() {\n\t\t\tthis.bind();\n\t\t\tthis.bind_conditionals();\n\t\t};\n\n\t\t/**\n\t\t * Bind DOM events\n\t\t *\n\t\t * @return void\n\t\t * @since 3.7.3\n\t\t * @version 3.17.5\n\t\t */\n\t\tthis.bind = function() {\n\n\t\t\tvar self = this;\n\n\t\t\tif ( $( '.llms-image-field-upload' ).length ) {\n\t\t\t\t$( '.llms-image-field-upload' ).on( 'click', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tself.image_upload_click( $( this ), e );\n\t\t\t\t} );\n\n\t\t\t\t$( '.llms-image-field-remove' ).on( 'click', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tself.update_image( $( this ), '', '' );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( $( '.llms-gateway-table' ).length ) {\n\t\t\t\t$( '.llms-gateway-table tbody' ).sortable( {\n\t\t\t\t\taxis: 'y',\n\t\t\t\t\tcursor: 'move',\n\t\t\t\t\titems: 'tr',\n\t\t\t\t\t// containment: 'parent',\n\t\t\t\t\thandle: 'td.sort',\n\t\t\t\t\thelper: function( event, ui ) {\n\t\t\t\t\t\tui.children().each( function() {\n\t\t\t\t\t\t\t$( this ).width( $( this ).width() );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\t// ui.css( 'left', '0' );\n\t\t\t\t\t\treturn ui;\n\t\t\t\t\t},\n\t\t\t\t\tupdate: function( event, ui ) {\n\t\t\t\t\t\t$( this ).find( 'td.sort input' ).each( function( i ) {\n\t\t\t\t\t\t\t$( this ).val( i );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Allow checkboxes to conditionally display other settings\n\t\t *\n\t\t * @return void\n\t\t * @since 3.18.0\n\t\t * @version 3.18.0\n\t\t */\n\t\tthis.bind_conditionals = function() {\n\n\t\t\t$( '.llms-conditional-controller' ).each( function() {\n\n\t\t\t\tvar $controls = $( $( this ).attr( 'data-controls' ) ).closest( 'tr' );\n\n\t\t\t\t$( this ).on( 'change', function() {\n\n\t\t\t\t\tvar val;\n\n\t\t\t\t\tif ( 'checkbox' === $( this ).attr( 'type' ) ) {\n\t\t\t\t\t\tval = $( this ).is( ':checked' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\t$controls.show();\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$controls.hide();\n\t\t\t\t\t}\n\n\t\t\t\t} ).trigger( 'change' );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Click event for image upload fields\n\t\t *\n\t\t * @param obj $btn jQuery object for clicked button\n\t\t * @param obj e JS event object\n\t\t * @return void\n\t\t * @since 3.7.3\n\t\t * @version 3.7.3\n\t\t */\n\t\tthis.image_upload_click = function( $btn, e ) {\n\n\t\t\tvar self = this,\n\t\t\t\tframe = null;\n\n\t\t\tif ( ! frame ) {\n\t\t\t\tvar title = $btn.attr( 'data-frame-title' ) || LLMS.l10n.translate( 'Select an Image' ),\n\t\t\t\t\tbutton_text = $btn.attr( 'data-frame-button' ) || LLMS.l10n.translate( 'Select Image' );\n\t\t\t\tframe = wp.media.frames.file_frame = wp.media({\n\t\t\t\t\ttitle: title,\n\t\t\t\t\tbutton: {\n\t\t\t\t\t\ttext: button_text,\n\t\t\t\t\t},\n\t\t\t\t\tmultiple: false\t// Set to true to allow multiple files to be selected\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tframe.on( 'select', function() {\n\n\t\t\t\t// We set multiple to false so only get one image from the uploader\n\t\t\t\tvar attachment = frame.state().get( 'selection' ).first().toJSON();\n\n\t\t\t\tself.update_image( $btn, attachment.id, attachment.url );\n\n\t\t\t});\n\n\t\t\tframe.open();\n\n\t\t};\n\n\t\t/**\n\t\t * Update the DOM with a selected image\n\t\t *\n\t\t * @param obj $btn jQuery object of the clicked button\n\t\t * @param int id WP Attachment ID of the image\n\t\t * @param string src src of the selected image\n\t\t * @return void\n\t\t * @since 3.7.3\n\t\t * @version 3.7.3\n\t\t */\n\t\tthis.update_image = function( $btn, id, src ) {\n\n\t\t\tvar $input = $( '#' + $btn.attr( 'data-id' ) ),\n\t\t\t\t$preview = $btn.prevAll( 'img.llms-image-field-preview' )\n\t\t\t\t$remove = $btn.hasClass( 'llms-image-field-remove' ) ? $btn : $btn.next( 'input.llms-image-field-remove' );\n\n\t\t\t$input.val( id );\n\t\t\t$preview.attr( 'src', src );\n\n\t\t\tif ( '' !== id ) {\n\t\t\t\t$remove.removeClass( 'hidden' );\n\t\t\t} else {\n\t\t\t\t$remove.addClass( 'hidden' );\n\t\t\t}\n\n\t\t}\n\n\t\t// go\n\t\tthis.init();\n\n\t};\n\n\tvar a = new window.llms.admin_settings();\n\n} )( jQuery );\n"],"names":["$","window","llms","admin_settings","this","file_frame","init","bind","bind_conditionals","self","length","on","e","preventDefault","image_upload_click","update_image","sortable","axis","cursor","items","handle","helper","event","ui","children","each","width","update","find","i","val","$controls","attr","closest","is","show","hide","trigger","$btn","title","button_text","frame","LLMS","l10n","translate","wp","media","frames","button","text","multiple","attachment","state","get","first","toJSON","id","url","open","src","$input","$preview","prevAll","$remove","hasClass","next","removeClass","addClass","jQuery"],"mappings":"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","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-admin-tables.min.js.map b/assets/maps/js/llms-admin-tables.min.js.map
new file mode 100644
index 0000000000..f631c94092
--- /dev/null
+++ b/assets/maps/js/llms-admin-tables.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-admin-tables.min.js","sources":["llms-admin-tables.js"],"sourcesContent":["/**\n * LifterLMS Admin Tables\n * @since 3.2.0\n * @version 3.28.1\n */\n;( function( $, undefined ) {\n\n\twindow.llms = window.llms || {};\n\n\tvar AdminTables = function() {\n\n\t\tthis.$tables = null;\n\n\t\t/**\n\t\t * Initialize\n\t\t * @return void\n\t\t * @since 3.2.0\n\t\t */\n\t\tthis.init = function() {\n\n\t\t\tvar self = this;\n\n\t\t\tself.$tables = $( '.llms-gb-table' );\n\n\t\t\tif ( self.$tables.length ) {\n\t\t\t\tself.bind();\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Bind DOM events\n\t\t * @return void\n\t\t * @since 2.3.0\n\t\t * @version 3.28.0\n\t\t */\n\t\tthis.bind = function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.$tables.each( function() {\n\n\t\t\t\tvar $table = $( this );\n\n\t\t\t\t$table.parent().find('form#llms-clear-student-progress-cache' ).on( 'submit', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tself.clear_cache( $table, $( this ) );\n\n\t\t\t\t} );\n\n\t\t\t\t$table.on( 'click', 'button[name=\"llms-table-paging\"]', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tself.change_page( $table, $( this ) );\n\t\t\t\t} );\n\n\t\t\t\t$table.on( 'click', 'button[name=\"llms-table-export\"]', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tself.export( $table, $( this ) );\n\t\t\t\t} );\n\n\t\t\t\t$table.on( 'click', 'a.llms-sortable', function( e ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tself.change_order( $table, $( this ) );\n\t\t\t\t} );\n\n\t\t\t\t$table.parent().find( '.llms-table-filters' ).on( 'change', 'select.llms-table-filter', function( e ) {\n\t\t\t\t\tself.change_filter( $table, $( this ) );\n\t\t\t\t} );\n\n\t\t\t\t$table.parent().find( '.llms-table-search' ).on( 'keyup', 'input', debounce( function( e ) {\n\n\t\t\t\t\tswitch ( e.keyCode ) {\n\n\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tself.search( $table, $( this ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}, 250 ) );\n\n\t\t\t} );\n\n\t\t};\n\n\t\tthis.clear_cache = function( $table, $form ) {\n\t\t\tvar self = this;\n\t\t\tvar $btn = $form.find( 'button' );\n\n\t\t\tLLMS.Ajax.call( {\n\t\t\t\turl: $form.attr( 'action' ),\n\t\t\t\tmethod: 'POST',\n\t\t\t\tdataType: 'html',\n\t\t\t\tdata: {\n\t\t\t\t\t'_wpnonce' : $form.find('[name=\"_wpnonce\"]').val(),\n\t\t\t\t\t'_wp_http_referer' : $form.find('[name=\"_wp_http_referer\"]').val(),\n\t\t\t\t\t'llms_tool': 'clear-cache'\n\t\t\t\t},\n\t\t\t\tbeforeSend: function() {\n\t\t\t\t\tif ( $btn ) {\n\t\t\t\t\t\t$btn.prop( 'disabled', true );\n\t\t\t\t\t\tLLMS.Spinner.start( $btn, 'small' );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror: function( jqXHR, status, error ) {\n\t\t\t\t\tif ( $btn ) {\n\t\t\t\t\t\t$btn.prop( 'disabled', false );\n\t\t\t\t\t\tLLMS.Spinner.stop( $btn );\n\t\t\t\t\t}\n\n\t\t\t\t\tconsole.error( error );\n\t\t\t\t},\n\t\t\t\tsuccess: function( res ) {\n\t\t\t\t\tif ( $btn ) {\n\t\t\t\t\t\t$btn.prop( 'disabled', false );\n\t\t\t\t\t\tLLMS.Spinner.stop( $btn );\n\t\t\t\t\t}\n\n\t\t\t\t\tself.reload( $table, {} );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\n\t\t/**\n\t\t * Handle clicks on sortable column headers\n\t\t * @param obj $table jQuery selector for the current table\n\t\t * @param obj $anchor jQuery selector for the clicked column head anchor\n\t\t * @return void\n\t\t * @since 3.2.0\n\t\t * @version 3.2.0\n\t\t */\n\t\tthis.change_order = function( $table, $anchor ) {\n\n\t\t\tthis.reload( $table, {\n\t\t\t\torder: $anchor.attr( 'data-order' ),\n\t\t\t\torderby: $anchor.attr( 'data-orderby' ),\n\t\t\t\tpage: 1,\n\t\t\t} );\n\n\t\t};\n\n\t\tthis.change_filter = function( $table, $select ) {\n\n\t\t\tthis.reload( $table, {\n\t\t\t\tfilter: $select.val(),\n\t\t\t\tfilterby: $select.attr( 'name' ),\n\t\t\t\tpage: 1,\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Change the current page of the table on a next/back click\n\t\t * @param obj $table jQuery selector for the current table\n\t\t * @param obj $btn jQuery selector for the clicked button\n\t\t * @return void\n\t\t * @since 3.2.0\n\t\t * @version 3.4.0\n\t\t */\n\t\tthis.change_page = function( $table, $btn ) {\n\n\t\t\tthis.reload( $table, {\n\t\t\t\torder: this.get_args( $table, 'order' ),\n\t\t\t\torderby: this.get_args( $table, 'orderby' ),\n\t\t\t\tpage: $btn.attr( 'data-page' ),\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Handle\n\t\t * @param obj $table jQuery object for the table\n\t\t * @param obj $btn jQuery object for the clicked button\n\t\t * @param string filename filename of the export in progress.\n\t\t * @return void\n\t\t * @since 3.15.0\n\t\t * @version 3.28.1\n\t\t */\n\t\tthis.export = function( $table, $btn, filename ) {\n\n\t\t\tvar self = this,\n\t\t\t\t$msg = $table.find( '.llms-table-export .llms-table-export-msg' ),\n\t\t\t\t$progress = $table.find( '.llms-table-export .llms-table-progress' );\n\n\t\t\tfunction activate_button() {\n\t\t\t\tLLMS.Spinner.stop( $btn, 'small' );\n\t\t\t\t$btn.removeAttr( 'disabled' );\n\t\t\t}\n\n\t\t\tLLMS.Ajax.call( {\n\t\t\t\tdata: $.extend( {\n\t\t\t\t\taction: 'export_admin_table',\n\t\t\t\t\thandler: $table.attr( 'data-handler' ),\n\t\t\t\t\tfilename: filename,\n\t\t\t\t}, JSON.parse( $table.attr( 'data-args' ) ) ),\n\t\t\t\tbeforeSend: function() {\n\n\t\t\t\t\tif ( ! $btn.attr( 'disabled' ) ) {\n\t\t\t\t\t\t$btn.attr( 'disabled', 'disabled' );\n\t\t\t\t\t\tLLMS.Spinner.start( $btn, 'small' );\n\t\t\t\t\t}\n\n\t\t\t\t},\n\t\t\t\terror: function( jqXHR, status, error ) {\n\n\t\t\t\t\tvar msg = LLMS.l10n.translate( 'An error was encountered generating the export' );\n\t\t\t\t\tactivate_button();\n\t\t\t\t\t$progress.hide();\n\t\t\t\t\t$msg.html( '' + msg + ': ' + error + ' ' );\n\t\t\t\t\tconsole.error( jqXHR );\n\n\t\t\t\t},\n\t\t\t\tsuccess: function( res ) {\n\n\t\t\t\t\tif ( ! res.success && res.message ) {\n\n\t\t\t\t\t\tactivate_button();\n\t\t\t\t\t\t$progress.hide();\n\t\t\t\t\t\t$msg.html( '' + res.message + ' ' );\n\n\t\t\t\t\t} else if ( res.success && res.data && res.data.progress ) {\n\n\t\t\t\t\t\t$msg.html( '' );\n\n\t\t\t\t\t\t// only show a progress bar if it's going to take more than one request.\n\t\t\t\t\t\tif ( ! $progress.is( 'visible' ) && res.data.progress !== 100 ) {\n\t\t\t\t\t\t\t$progress.css( 'display', 'inline-block' );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$progress.find( '.llms-table-progress-text' ).text( res.data.progress + '%' );\n\t\t\t\t\t\t$progress.find( '.llms-table-progress-inner' ).css( 'width', res.data.progress + '%' );\n\n\t\t\t\t\t\t// if we're not finished, make another request.\n\t\t\t\t\t\tif ( 100 !== res.data.progress ) {\n\t\t\t\t\t\t\tself.export( $table, $btn, res.data.filename );\n\n\t\t\t\t\t\t// finished, download the file and cleanup the interface.\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t\t\tvar id = 'llms-dl-export';\n\t\t\t\t\t\t\t\t$( '#' + id ).remove();\n\t\t\t\t\t\t\t\t$( ' ', {\n\t\t\t\t\t\t\t\t\tid: id,\n\t\t\t\t\t\t\t\t\thref: res.data.url,\n\t\t\t\t\t\t\t\t\tstyle: 'display: hidden;',\n\t\t\t\t\t\t\t\t\tdownload: '',\n\t\t\t\t\t\t\t\t} ).appendTo( 'body' );\n\t\t\t\t\t\t\t\t$( '#' + id )[0].click();\n\t\t\t\t\t\t\t\tactivate_button();\n\t\t\t\t\t\t\t\t$progress.hide();\n\t\t\t\t\t\t\t}, 1000 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t} );\n\n\t\t}\n\n\t\t/**\n\t\t * Retrieve arguments stored in the table and parse into a readable object\n\t\t * @param obj $table jQuery selector for the current table\n\t\t * @param string item key to grab a specific value from the args object\n\t\t * @return mixed\n\t\t * @since 3.2.0\n\t\t * @version 3.2.0\n\t\t */\n\t\tthis.get_args = function( $table, item ) {\n\n\t\t\tvar args = JSON.parse( $table.attr( 'data-args' ) );\n\n\t\t\tif ( item ) {\n\t\t\t\treturn ( args[ item ] ) ? args[ item ] : false;\n\t\t\t} else {\n\t\t\t\treturn args;\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Reload a table\n\t\t * @param obj $table jQuery selector for the current table\n\t\t * @param obj args arguments to pass with the ajax query\n\t\t * @return void\n\t\t * @since 3.2.0\n\t\t * @version 3.2.0\n\t\t */\n\t\tthis.reload = function( $table, args ) {\n\n\t\t\targs = $.extend( {\n\t\t\t\taction: 'get_admin_table_data',\n\t\t\t\thandler: $table.attr( 'data-handler' ),\n\t\t\t}, JSON.parse( $table.attr( 'data-args' ) ), args );\n\n\t\t\tLLMS.Ajax.call( {\n\t\t\t\tdata: args,\n\t\t\t\tbeforeSend: function() {\n\n\t\t\t\t\tLLMS.Spinner.start( $table.closest( '.llms-table-wrap' ) );\n\n\t\t\t\t},\n\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\tLLMS.Spinner.stop( $table.closest( '.llms-table-wrap' ) )\n\n\t\t\t\t\tif ( r.success ) {\n\n\t\t\t\t\t\t$table.attr( 'data-args', r.data.args );\n\n\t\t\t\t\t\t$table.find( 'thead' ).replaceWith( r.data.thead );\n\t\t\t\t\t\t$table.find( 'tbody' ).replaceWith( r.data.tbody );\n\t\t\t\t\t\t$table.find( 'tfoot' ).replaceWith( r.data.tfoot );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Executes an AJAX search query\n\t\t * @param obj $table jQuery selector for the current table\n\t\t * @param obj $input jQuery selector for the search input\n\t\t * @return void\n\t\t * @since 3.2.0\n\t\t * @version 3.2.0\n\t\t */\n\t\tthis.search = function( $table, $input ) {\n\n\t\t\tvar val = $input.val()\n\t\t\t\tlen = val.length;\n\n\t\t\tif ( 0 === len || len >= 3 ) {\n\t\t\t\tthis.reload( $table, {\n\t\t\t\t\tpage: 1,\n\t\t\t\t\tsearch: $input.val(),\n\t\t\t\t} );\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Throttle function by a delay in ms\n\t\t * @param Function fn callback function\n\t\t * @param int delay delay in millisecond\n\t\t * @return function\n\t\t * @since 3.2.0\n\t\t * @version 3.2.0\n\t\t */\n\t\tfunction debounce( fn, delay ) {\n\t\t\tvar timer = null;\n\t\t\treturn function () {\n\t\t\t\tvar context = this,\n\t\t\t\t\targs = arguments;\n\t\t\t\twindow.clearTimeout( timer );\n\t\t\t\ttimer = window.setTimeout( function () {\n\t\t\t\t\tfn.apply( context, args );\n\t\t\t\t}, delay );\n\t\t\t};\n\t\t}\n\n\t\t// go\n\t\tthis.init();\n\n\t};\n\n\t// initialize the object\n\twindow.llms.admin_tables = new AdminTables();\n\n} )( jQuery );\n"],"names":["$","window","llms","admin_tables","this","$tables","init","self","length","bind","each","fn","delay","timer","$table","parent","find","on","e","preventDefault","clear_cache","change_page","export","change_order","change_filter","keyCode","search","context","args","arguments","clearTimeout","setTimeout","apply","$form","$btn","LLMS","Ajax","call","url","attr","method","dataType","data","_wpnonce","val","_wp_http_referer","llms_tool","beforeSend","prop","Spinner","start","error","jqXHR","status","stop","console","success","res","reload","$anchor","order","orderby","page","$select","filter","filterby","get_args","filename","$msg","$progress","activate_button","removeAttr","extend","action","handler","JSON","parse","msg","l10n","translate","hide","html","message","progress","is","css","text","id","remove","href","style","download","appendTo","click","item","closest","r","replaceWith","thead","tbody","tfoot","$input","len","jQuery"],"mappings":"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","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-admin-wizard.min.js.map b/assets/maps/js/llms-admin-wizard.min.js.map
new file mode 100644
index 0000000000..bf18abd5a7
--- /dev/null
+++ b/assets/maps/js/llms-admin-wizard.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-admin-wizard.min.js","sources":["llms-admin-wizard.js"],"sourcesContent":["/**\n * JS from the admin setup wizard\n *\n * @since 4.8.0\n * @version 4.8.0\n */\n\n( function() {\n\tconst\n\t\tcurrStep = document.getElementById( 'llms-setup-current-step' ),\n\t\texitLink = document.querySelector( '.llms-exit-setup' ),\n\t\timports = document.querySelectorAll( 'input[name=\"llms_setup_course_import_ids[]\"]' ),\n\t\tcheckboxToggle = document.getElementsByClassName( 'llms-checkbox-toggle' )[ 0 ] ?? null;\n\n\tif ( imports.length ) {\n\t\tconst\n\t\t\tsubmit = document.getElementById( 'llms-setup-submit' ),\n\t\t\tmsgs = document.querySelectorAll( '.llms-importing-msgs .llms-importing-msg' );\n\n\t\t/**\n\t\t * Retrieve the number of courses to be imported\n\t\t *\n\t\t * @since 4.8.0\n\t\t *\n\t\t * @return {Number} The number of courses to be imported.\n\t\t */\n\t\tfunction getSelectedImportCount() {\n\t\t\tlet count = 0;\n\n\t\t\timports.forEach( function( el ) {\n\t\t\t\tif ( el.checked ) {\n\t\t\t\t\t++count;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn count;\n\t\t}\n\n\t\t/**\n\t\t * Update UI when a user toggles an import on or off.\n\t\t *\n\t\t * @since 4.8.0\n\t\t */\n\t\timports.forEach( function( el ) {\n\t\t\tel.addEventListener( 'change', function() {\n\t\t\t\t// Hide all messages.\n\t\t\t\tmsgs.forEach( function( msg ) {\n\t\t\t\t\tmsg.style.display = 'none';\n\t\t\t\t} );\n\n\t\t\t\tconst selectedCount = getSelectedImportCount();\n\n\t\t\t\t// If there's no courses to be imported, disable the submit button.\n\t\t\t\tsubmit.disabled = 0 === getSelectedImportCount() ? 'disabled' : null;\n\n\t\t\t\t// Show messages where applicable.\n\t\t\t\tif ( 1 === selectedCount ) {\n\t\t\t\t\tmsgs[0].style.display = 'block';\n\t\t\t\t} else if ( selectedCount >= 2 ) {\n\t\t\t\t\tmsgs[1].style.display = 'block';\n\t\t\t\t\tdocument.getElementById( 'llms-importing-number' ).textContent = selectedCount;\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\n\t\t// Trigger a change event so the UI displays properly on page load.\n\t\timports[0].dispatchEvent( new Event( 'change' ) );\n\n\t\t/**\n\t\t * Start a spinner when the \"Import Courses\" button is clicked.\n\t\t *\n\t\t * @since 4.8.0\n\t\t */\n\t\tsubmit.addEventListener( 'click', function() {\n\t\t\tLLMS.Spinner.start( jQuery( submit ), 'small' );\n\t\t} );\n\t}\n\n\tif ( exitLink && 'finish' !== currStep.value ) {\n\t\t/**\n\t\t * When users click \"Exit Setup\" prior to setup completion, open a confirmation dialog\n\t\t *\n\t\t * @since 4.8.0\n\t\t */\n\t\texitLink.addEventListener( 'click', function( e ) {\n\t\t\tif ( ! window.confirm( exitLink.dataset.confirm ) ) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} );\n\t}\n\n\tif ( checkboxToggle ) {\n\t\tcheckboxToggle.addEventListener( 'click', function() {\n\t\t\tconst hiddenFields = this.parentNode.parentNode.querySelectorAll( '.is-hidden,.is-visible' );\n\n\t\t\tfor ( let i = 0; i < hiddenFields.length; i++ ) {\n\t\t\t\thiddenFields[ i ].classList.toggle( 'is-visible' );\n\t\t\t\thiddenFields[ i ].classList.toggle( 'is-hidden' );\n\t\t\t}\n\t\t} );\n\t}\n}() );\n"],"names":["currStep","document","getElementById","exitLink","querySelector","imports","querySelectorAll","checkboxToggle","getElementsByClassName","length","submit","msgs","getSelectedImportCount","let","count","forEach","el","checked","addEventListener","msg","style","display","selectedCount","disabled","textContent","dispatchEvent","Event","LLMS","Spinner","start","jQuery","value","e","window","confirm","dataset","preventDefault","hiddenFields","this","parentNode","i","classList","toggle"],"mappings":"AAOA,CAAE,WACD,MACCA,EAAiBC,SAASC,eAAgB,yBAA0B,EACpEC,EAAiBF,SAASG,cAAe,kBAAmB,EAC5DC,EAAiBJ,SAASK,iBAAkB,8CAA+C,EAC3FC,EAAiBN,SAASO,uBAAwB,sBAAuB,EAAG,IAAO,KAEpF,GAAKH,EAAQI,OAAS,CACrB,MACCC,EAAST,SAASC,eAAgB,mBAAoB,EACtDS,EAASV,SAASK,iBAAkB,0CAA2C,EAShF,SAASM,IACRC,IAAIC,EAAQ,EAQZ,OANAT,EAAQU,QAAS,SAAUC,GACrBA,EAAGC,SACP,EAAEH,CAEJ,CAAE,EAEKA,CACR,CAOAT,EAAQU,QAAS,SAAUC,GAC1BA,EAAGE,iBAAkB,SAAU,WAE9BP,EAAKI,QAAS,SAAUI,GACvBA,EAAIC,MAAMC,QAAU,MACrB,CAAE,EAEF,IAAMC,EAAgBV,EAAuB,EAG7CF,EAAOa,SAAW,IAAMX,EAAuB,EAAI,WAAa,KAG3D,IAAMU,EACVX,EAAK,GAAGS,MAAMC,QAAU,QACI,GAAjBC,IACXX,EAAK,GAAGS,MAAMC,QAAU,QACxBpB,SAASC,eAAgB,uBAAwB,EAAEsB,YAAcF,EAEnE,CAAE,CACH,CAAE,EAGFjB,EAAQ,GAAGoB,cAAe,IAAIC,MAAO,QAAS,CAAE,EAOhDhB,EAAOQ,iBAAkB,QAAS,WACjCS,KAAKC,QAAQC,MAAOC,OAAQpB,CAAO,EAAG,OAAQ,CAC/C,CAAE,CACH,CAEKP,GAAY,WAAaH,EAAS+B,OAMtC5B,EAASe,iBAAkB,QAAS,SAAUc,GACtCC,OAAOC,QAAS/B,EAASgC,QAAQD,OAAQ,GAC/CF,EAAEI,eAAe,CAEnB,CAAE,EAGE7B,GACJA,EAAeW,iBAAkB,QAAS,WACzC,IAAMmB,EAAeC,KAAKC,WAAWA,WAAWjC,iBAAkB,wBAAyB,EAE3F,IAAMO,IAAI2B,EAAI,EAAGA,EAAIH,EAAa5B,OAAQ+B,CAAC,GAC1CH,EAAcG,GAAIC,UAAUC,OAAQ,YAAa,EACjDL,EAAcG,GAAIC,UAAUC,OAAQ,WAAY,CAElD,CAAE,CAEJ,EAAI","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-admin.min.js.map b/assets/maps/js/llms-admin.min.js.map
new file mode 100644
index 0000000000..f7c4f5067e
--- /dev/null
+++ b/assets/maps/js/llms-admin.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-admin.min.js","sources":["llms-admin.js"],"sourcesContent":["/**\n * LifterLMS Admin Panel Javascript\n *\n * @since Unknown\n * @version 7.3.0\n *\n * @param obj $ Traditional jQuery reference.\n * @return void\n */\n;( function( $ ) {\n\n\twindow.llms = window.llms || {};\n\n\twindow.llms.widgets = function() {\n\n\t\tthis.$widgets = $( '.llms-widget' );\n\t\tthis.$info_toggles = $( '.llms-widget-info-toggle' );\n\n\t\tthis.init = function() {\n\t\t\tthis.bind();\n\t\t};\n\n\t\tthis.bind = function() {\n\n\t\t\tthis.$info_toggles.on( 'mouseenter mouseleave', function( evt ) {\n\t\t\t\t$(this).closest( '.llms-widget' )\n\t\t\t\t\t.toggleClass( 'info-showing', 'mouseenter' === evt.type );\n\t\t\t} );\n\n\t\t};\n\n\t\t// Go.\n\t\tthis.init();\n\n\t\treturn this;\n\n\t};\n\n\tvar llms_widgets = new window.llms.widgets();\n\n\t/**\n\t * Simple jQuery plugin to transform select elements into Select2-powered elements to query for Courses/Memberships via AJAX.\n\t *\n\t * @since 3.19.4\n\t * @since 3.32.0 Added ability to fetch posts based on their post status.\n\t * @since 3.37.2 Added ability to fetch posts (llms posts) filtered by their instructor id.\n\t * @since 4.4.0 Update ajax nonce source.\n\t *\n\t * @param obj options Options passed to Select2.\n\t * Each default option will pulled from the elements data-attributes.\n\t * @return void\n\t */\n\t$.fn.llmsPostsSelect2 = function( options ) {\n\n\t\tvar self = this,\n\t\t\toptions = options || {},\n\t\t\tdefaults = {\n\t\t\t\tmultiple: false,\n\t\t\t\tplaceholder: undefined !== LLMS.l10n ? LLMS.l10n.translate( 'Select a Course/Membership' ) : 'Select a Course/Membership',\n\t\t\t\tpost_type: self.attr( 'data-post-type' ) || 'post',\n\t\t\t\tpost_statuses: self.attr( 'data-post-statuses' ) || 'publish',\n\t\t\t\tinstructor_id: null,\n\t\t\t\tallow_clear: self.attr( 'data-post-type' ) || false,\n\t\t\t\twidth: null,\n\t\t\t};\n\n\t\t$.each( defaults, function( setting ) {\n\t\t\tif ( self.attr( 'data-' + setting ) ) {\n\t\t\t\toptions[ setting ] = self.attr( 'data-' + setting );\n\t\t\t}\n\t\t} );\n\n\t\tif ( 'multiple' === self.attr( 'multiple' ) ) {\n\t\t\toptions.multiple = true;\n\t\t}\n\n\t\toptions = $.extend( defaults, options );\n\n\t\tthis.llmsSelect2( {\n\t\t\tallowClear: options.allow_clear,\n\t\t\tajax: {\n\t\t\t\tdataType: 'JSON',\n\t\t\t\tdelay: 250,\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: window.ajaxurl,\n\t\t\t\tdata: function( params ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\taction: 'select2_query_posts',\n\t\t\t\t\t\tpage: ( params.page ) ? params.page - 1 : 0, // 0 index the pages to make it simpler for the database query\n\t\t\t\t\t\tpost_type: options.post_type,\n\t\t\t\t\t\tinstructor_id : options.instructor_id,\n\t\t\t\t\t\tpost_statuses: options.post_statuses,\n\t\t\t\t\t\tterm: params.term,\n\t\t\t\t\t\t_ajax_nonce: window.llms.ajax_nonce,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tprocessResults: function( data, params ) {\n\n\t\t\t\t\t// recursive function for creating\n\t\t\t\t\tfunction map_data( items ) {\n\n\t\t\t\t\t\t// this is a flat array of results\n\t\t\t\t\t\t// used when only one post type is selected\n\t\t\t\t\t\t// and to format children when using optgroups with multiple post types\n\t\t\t\t\t\tif ( Array.isArray( items ) ) {\n\t\t\t\t\t\t\treturn $.map( items, function( item ) {\n\t\t\t\t\t\t\t\treturn format_item( item );\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t// this sets up the top level optgroups when using multiple post types\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn $.map( items, function( item ) {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttext: item.label,\n\t\t\t\t\t\t\t\t\tchildren: map_data( item.items ),\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// format a single result (option)\n\t\t\t\t\tfunction format_item( item ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: item.name,\n\t\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tresults: map_data( data.items ),\n\t\t\t\t\t\tpagination: {\n\t\t\t\t\t\t\tmore: data.more\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t},\n\t\t\t},\n\t\t\tcache: true,\n\t\t\tplaceholder: options.placeholder,\n\t\t\tmultiple: options.multiple,\n\t\t\twidth: options.width,\n\t\t} );\n\n\t};\n\n\t// automatically setup any select with the `llms-posts-select2` class\n\t$( 'select.llms-posts-select2' ).llmsPostsSelect2();\n\n\t/**\n\t * Simple jQuery plugin to transform select elements into Select2-powered elements to query for Students via AJAX\n\t *\n\t * @since Unknown\n\t * @since 3.17.5 Unknown.\n\t * @since 4.4.0 Update ajax nonce source.\n\t * @since 6.2.0 Use the LifterLMS REST API \"list students\" endpoint\n\t * instead of the `LLMS_AJAX_Handler::query_students()` PHP function.\n\t * @since 6.3.0 Fixed student's REST API URL.\n\t * @since 7.3.0 Early bail when the element doesn't exist.\n\t *\n\t * @param {Object} options Options passed to Select2. Each default option will be pulled from the elements data-attributes.\n\t * @return {jQuery}\n\t */\n\t$.fn.llmsStudentsSelect2 = function( options ) {\n\n\t\tif ( ! this.length ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tvar self = this,\n\t\t\toptions = options || {},\n\t\t\tdefaults = {\n\t\t\t\tallow_clear: false,\n\t\t\t\tenrolled_in: '',\n\t\t\t\tmultiple: false,\n\t\t\t\tnot_enrolled_in: '',\n\t\t\t\tplaceholder: undefined !== LLMS.l10n ? LLMS.l10n.translate( 'Select a student' ) : 'Select a student',\n\t\t\t\troles: '',\n\t\t\t\twidth: '100%',\n\t\t\t};\n\n\t\t$.each( defaults, function( setting ) {\n\t\t\tif ( self.attr( 'data-' + setting ) ) {\n\t\t\t\toptions[ setting ] = self.attr( 'data-' + setting );\n\t\t\t}\n\t\t} );\n\n\t\toptions = $.extend( defaults, options );\n\n\t\tthis.llmsSelect2({\n\t\t\tallowClear: options.allow_clear,\n\t\t\tajax: {\n\t\t\t\tdataType: 'JSON',\n\t\t\t\tdelay: 250,\n\t\t\t\tmethod: 'GET',\n\t\t\t\turl: window.wpApiSettings.root + 'wp/v2/users',\n\t\t\t\tdata: function( params ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t_wpnonce: window.wpApiSettings.nonce,\n\t\t\t\t\t\tcontext: 'edit',\n\t\t\t\t\t\tpage: params.page || 1,\n\t\t\t\t\t\tper_page: 10,\n\t\t\t\t\t\tnot_enrolled_in: params.not_enrolled_in || options.not_enrolled_in,\n\t\t\t\t\t\tenrolled_in: params.enrolled_in || options.enrolled_in,\n\t\t\t\t\t\troles: params.roles || options.roles,\n\t\t\t\t\t\tsearch: params.term,\n\t\t\t\t\t\tsearch_columns: 'email,name,username',\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tprocessResults: function( data, params ) {\n\t\t\t\t\tvar page = params.page || 1;\n\t\t\t\t\tvar totalPages = this._request.getResponseHeader( 'X-WP-TotalPages' );\n\t\t\t\t\treturn {\n\t\t\t\t\t\tresults: $.map( data, function( item ) {\n\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\ttext: item.name + ' <' + item.email + '>',\n\t\t\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\tpagination: {\n\t\t\t\t\t\t\tmore: page < totalPages\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t\tcache: true,\n\t\t\tplaceholder: options.placeholder,\n\t\t\tmultiple: options.multiple,\n\t\t\twidth: options.width,\n\t\t});\n\n\t\treturn this;\n\n\t};\n\n\t/**\n\t * Scripts for use on the engagements settings tab for email provider connector plugins\n\t *\n\t * @since 3.40.0\n\t */\n\twindow.llms.emailConnectors = {\n\n\t\t/**\n\t\t * Register a client\n\t\t *\n\t\t * Builds and submits a form used to direct the user to the connector's oAuth\n\t\t * authorization endpoint.\n\t\t *\n\t\t * @since 3.40.0\n\t\t *\n\t\t * @param {String} url Redirect URL.\n\t\t * @param {Object} fields Hash of fields where the key is the field name and the value if the field value.\n\t\t * @return {Void}\n\t\t */\n\t\tregisterClient: function( url, fields ) {\n\n\t\t\tvar form = document.createElement( 'form' );\n\t\t\tform.setAttribute( 'method', 'POST' );\n\t\t\tform.setAttribute( 'action', url );\n\n\t\t\tfunction appendInput( name, value ) {\n\t\t\t\tvar input = document.createElement( 'input' );\n\t\t\t\tinput.setAttribute( 'type', 'hidden' );\n\t\t\t\tinput.setAttribute( 'name', name );\n\t\t\t\tinput.setAttribute( 'value', value );\n\t\t\t\tform.appendChild( input );\n\t\t\t}\n\n\t\t\t$.each( fields, function( key, val ) {\n\t\t\t\tappendInput( key, val );\n\t\t\t} );\n\n\t\t\tdocument.body.appendChild( form );\n\t\t\tform.submit();\n\n\t\t},\n\n\t\t/**\n\t\t * Performs an AJAX request to perform remote installation of the connector plugin\n\t\t *\n\t\t * The callback will more than likely use `registerClient()` on success.\n\t\t *\n\t\t * @since 3.40.0\n\t\t *\n\t\t * @param {Object} $btn jQuery object for the connector button.\n\t\t * @param {Object} data Hash of data used for the ajax request.\n\t\t * @param {Function} callback Success callback function.\n\t\t * @return {Void}\n\t\t */\n\t\tremoteInstall: function( $btn, data, callback ) {\n\n\t\t\t$btn.parent().find( '.llms-error' ).remove();\n\t\t\t$.post( ajaxurl, data, callback ).fail( function( jqxhr ) {\n\t\t\t\tLLMS.Spinner.stop( $btn );\n\t\t\t\tvar msg = jqxhr.responseJSON && jqxhr.responseJSON.message ? jqxhr.responseJSON.message : jqxhr.responseText;\n\t\t\t\tif ( msg ) {\n\t\t\t\t\t$( '' + LLMS.l10n.replace( 'Error: %s', { '%s': msg } ) + '
' ).insertAfter( $btn );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t}\n\n\t};\n\n} )( jQuery );\n"],"names":["$","window","llms","widgets","this","$widgets","$info_toggles","init","bind","on","evt","closest","toggleClass","type","fn","llmsPostsSelect2","options","self","defaults","multiple","placeholder","undefined","LLMS","l10n","translate","post_type","attr","post_statuses","instructor_id","allow_clear","width","each","setting","extend","llmsSelect2","allowClear","ajax","dataType","delay","method","url","ajaxurl","data","params","action","page","term","_ajax_nonce","ajax_nonce","processResults","results","map_data","items","Array","isArray","map","item","text","name","id","label","children","pagination","more","cache","llmsStudentsSelect2","length","enrolled_in","not_enrolled_in","roles","wpApiSettings","root","_wpnonce","nonce","context","per_page","search","search_columns","totalPages","_request","getResponseHeader","email","emailConnectors","registerClient","fields","form","document","createElement","setAttribute","key","val","input","value","appendChild","body","submit","remoteInstall","$btn","callback","parent","find","remove","post","fail","jqxhr","Spinner","stop","msg","responseJSON","message","responseText","replace","%s","insertAfter","jQuery"],"mappings":"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","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-ajax.min.js.map b/assets/maps/js/llms-ajax.min.js.map
new file mode 100644
index 0000000000..a817a008c7
--- /dev/null
+++ b/assets/maps/js/llms-ajax.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-ajax.min.js","sources":["llms-ajax.js"],"sourcesContent":["function Ajax ( type, data, cache ) {\n\n\tthis.type = type;\n\tthis.data = data;\n\tthis.cache = cache;\n\tthis.dataType = 'json';\n\tthis.url = window.ajaxurl || window.llms.ajaxurl;\n\n}\n\nAjax.prototype.check_voucher_duplicate = function () {\n\n\tjQuery.ajax({\n\t\ttype \t\t: this.type,\n\t\turl\t\t\t: this.url,\n\t\tdata \t\t: this.data,\n\t\tcache\t\t: this.cache,\n\t\tdataType\t: this.dataType,\n\t\tsuccess\t\t: function( response ) {\n\t\t\tllms_on_voucher_duplicate( response.duplicates );\n\t\t}\n\t});\n};\n"],"names":["Ajax","type","data","cache","this","dataType","url","window","ajaxurl","llms","prototype","check_voucher_duplicate","jQuery","ajax","success","response","llms_on_voucher_duplicate","duplicates"],"mappings":"AAAA,SAASA,KAAOC,EAAMC,EAAMC,GAE3BC,KAAKH,KAAWA,EAChBG,KAAKF,KAAWA,EAChBE,KAAKD,MAAWA,EAChBC,KAAKC,SAAW,OAChBD,KAAKE,IAAWC,OAAOC,SAAWD,OAAOE,KAAKD,OAE/C,CAEAR,KAAKU,UAAUC,wBAA0B,WAExCC,OAAOC,KAAK,CACXZ,KAASG,KAAKH,KACdK,IAAQF,KAAKE,IACbJ,KAASE,KAAKF,KACdC,MAASC,KAAKD,MACdE,SAAWD,KAAKC,SAChBS,QAAW,SAAUC,GACpBC,0BAA2BD,EAASE,UAAW,CAChD,CACD,CAAC,CACF","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-analytics.min.js.map b/assets/maps/js/llms-analytics.min.js.map
new file mode 100644
index 0000000000..d33b907a20
--- /dev/null
+++ b/assets/maps/js/llms-analytics.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-analytics.min.js","sources":["llms-analytics.js"],"sourcesContent":[";/**\n * LifterLMS Admin Reporting Widgets & Charts\n *\n * @since 3.0.0\n * @since 3.17.2 Unknown.\n * @since 3.33.1 Fix issue that produced series options not aligned with the chart data.\n * @since 3.36.3 Added the `allow_clear` paramater when initializiing the `llmsStudentSelect2`.\n * @since 4.3.3 Legends will automatically display on top of the chart.\n * @since 4.5.1 Show sales reporting currency symbol based on LifterLMS site options.\n * @version 7.3.0\n *\n */( function( $, undefined ) {\n\n\twindow.llms = window.llms || {};\n\n\t/**\n\t * LifterLMS Admin Analytics.\n\t *\n\t * @since 3.0.0\n\t * @since 3.5.0 Unknown\n\t * @since 4.5.1 Added `opts` parameter.\n\t * @since [verison] Early bail if no `#llms-analytics-json` is available.\n\t *\n\t * @param {Object} options Options object.\n\t * @return {Object} Class instance.\n\t */\n\tvar Analytics = function( opts ) {\n\n\t\tif ( ! $( '#llms-analytics-json' ).length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.charts_loaded = false;\n\t\tthis.data = {};\n\t\tthis.query = $.parseJSON( $( '#llms-analytics-json' ).text() );\n\t\tthis.timeout = 8000;\n\t\tthis.options = opts;\n\n\t\tthis.$widgets = $( '.llms-widget[data-method]' );\n\n\t\t/**\n\t\t * Initializer\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.init = function() {\n\n\t\t\tgoogle.charts.load( 'current', {\n\t\t\t\tpackages: [\n\t\t\t\t\t'corechart'\n\t\t\t\t]\n\t\t\t} );\n\t\t\tgoogle.charts.setOnLoadCallback( this.charts_ready );\n\n\t\t\tthis.bind();\n\t\t\tthis.load_widgets();\n\n\t\t};\n\n\t\t/**\n\t\t * Bind DOM events.\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.36.3 Added the `allow_clear` paramater when initializiing the `llmsStudentSelect2`.\n\t\t * @since 7.2.0 Added check for datepicker before initializing.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tthis.bind = function() {\n\n\t\t\tif ( $( '.llms-datepicker' ).length && $.fn.datepicker ) {\n\t\t\t\t$( '.llms-datepicker' ).datepicker( {\n\t\t\t\t\tdateFormat: 'yy-mm-dd',\n\t\t\t\t\tmaxDate: 0,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t$( '#llms-students-ids-filter' ).llmsStudentsSelect2( {\n\t\t\t\tmultiple: true,\n\t\t\t\tplaceholder: LLMS.l10n.translate( 'Filter by Student(s)' ),\n\t\t\t\tallow_clear: true,\n\t\t\t} );\n\n\t\t\t$( 'a[href=\"#llms-toggle-filters\"]' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$( '.llms-analytics-filters' ).slideToggle( 100 );\n\t\t\t} );\n\n\t\t\t$( '#llms-custom-date-submit' ).on( 'click', function() {\n\t\t\t\t$( 'input[name=\"range\"]' ).val( 'custom' );\n\t\t\t} );\n\n\t\t\t$( '#llms-date-quick-filters a.llms-nav-link[data-range]' ).on( 'click', function( e ) {\n\n\t\t\t\te.preventDefault();\n\t\t\t\t$( 'input[name=\"range\"]' ).val( $( this ).attr( 'data-range' ) );\n\n\t\t\t\t$( 'form.llms-reporting-nav' ).submit();\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Called by Google Charts when the library is loaded and ready\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.charts_ready = function() {\n\n\t\t\twindow.llms.analytics.charts_loaded = true;\n\t\t\twindow.llms.analytics.draw_chart();\n\n\t\t};\n\n\t\t/**\n\t\t * Render the chart\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.17.6 Unknown\n\t\t * @since 4.3.3 Force the legend to appear on top of the chart.\n\t\t * @since 4.5.1 Display sales numbers according to the site's currency settings instead of the browser's locale.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tthis.draw_chart = function() {\n\n\t\t\tif ( ! this.charts_loaded || ! this.is_loading_finished() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar el = document.getElementById( 'llms-charts-wrapper' );\n\n\t\t\tif ( ! el ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar self = this,\n\t\t\t\tchart = new google.visualization.ComboChart( el ),\n\t\t\t\tdata = self.get_chart_data(),\n\t\t\t\toptions = {\n\t\t\t\t\tlegend: 'top',\n\t\t\t\t\tchartArea: {\n\t\t\t\t\t\theight: '75%',\n\t\t\t\t\t\twidth: '85%',\n\t\t\t\t\t},\n\t\t\t\t\tcolors: ['#606C38','#E85D75','#EF8354','#C64191','#731963'],\n\t\t\t\t\theight: 560,\n\t\t\t\t\tlineWidth: 4,\n\t\t\t\t\tseriesType: 'bars',\n\t\t\t\t\tseries: self.get_chart_series_options(),\n\t\t\t\t\tvAxes: {\n\t\t\t\t\t\t0: {\n\t\t\t\t\t\t\tformat: this.options.currency_format || 'currency',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t1: {\n\t\t\t\t\t\t\tformat: '',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t};\n\n\t\t\tif ( data.length ) {\n\n\t\t\t\tdata = google.visualization.arrayToDataTable( data );\n\t\t\t\tdata.sort( [{column: 0}] );\n\t\t\t\tchart.draw( data, options );\n\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Check if a widget is still loading\n\t\t *\n\t\t * @return bool\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.is_loading_finished = function() {\n\t\t\tif ( $( '.llms-widget.is-loading' ).length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t};\n\n\t\t/**\n\t\t * Start loading all widgets on the current screen\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.load_widgets = function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.$widgets.each( function() {\n\t\t\t\tself.load_widget( $( this ) );\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Load a specific widget.\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 7.2.0 Change h1 tag to .llms-widget-content.\n\t\t * @since 7.3.0 Append `_ajax_nonce` to the ajax data packet.\n\t\t *\n\t\t * @param {Object} $widget The jQuery selector of the widget element.\n\t\t * @return {Void}\n\t\t */\n\t\tthis.load_widget = function( $widget ) {\n\n\t\t\tvar self = this,\n\t\t\t\tmethod = $widget.attr( 'data-method' ),\n\t\t\t\t$content = $widget.find( '.llms-widget-content' ),\n\t\t\t\t$retry = $widget.find( '.llms-reload-widget' ),\n\t\t\t\tcontent_text = LLMS.l10n.translate( 'Error' ),\n\t\t\t\tstatus;\n\n\t\t\t$widget.addClass( 'is-loading' );\n\n\t\t\t$.ajax( {\n\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'llms_widget_' + method,\n\t\t\t\t\tdates: self.query.dates,\n\t\t\t\t\tcourses: self.query.current_courses,\n\t\t\t\t\tmemberships: self.query.current_memberships,\n\t\t\t\t\tstudents: self.query.current_students,\n\t\t\t\t\t_ajax_nonce: window.llms.ajax_nonce,\n\t\t\t\t},\n\t\t\t\tmethod: 'POST',\n\t\t\t\ttimeout: self.timeout,\n\t\t\t\turl: window.ajaxurl,\n\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\tstatus = 'success';\n\n\t\t\t\t\tif ( 'undefined' !== typeof r.response ) {\n\n\t\t\t\t\t\tcontent_text = r.response;\n\n\t\t\t\t\t\tself.data[method] = {\n\t\t\t\t\t\t\tchart_data: r.chart_data,\n\t\t\t\t\t\t\tresponse: r.response,\n\t\t\t\t\t\t\tresults: r.results,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t$retry.remove();\n\n\t\t\t\t\t}\n\n\t\t\t\t},\n\t\t\t\terror: function( r ) {\n\n\t\t\t\t\tstatus = 'error';\n\n\t\t\t\t},\n\t\t\t\tcomplete: function( r ) {\n\n\t\t\t\t\tif ( 'error' === status ) {\n\n\t\t\t\t\t\tif ( 'timeout' === r.statusText ) {\n\n\t\t\t\t\t\t\tcontent_text = LLMS.l10n.translate( 'Request timed out' );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tcontent_text = LLMS.l10n.translate( 'Error' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( ! $retry.length ) {\n\n\t\t\t\t\t\t\t$retry = $( '' + LLMS.l10n.translate( 'Retry' ) + ' ' );\n\t\t\t\t\t\t\t$retry.on( 'click', function( e ) {\n\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\tself.load_widget( $widget );\n\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t$widget.append( $retry );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t$widget.removeClass( 'is-loading' );\n\t\t\t\t\t$content.html( content_text );\n\n\t\t\t\t\tself.widget_finished( $widget );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Get the time in seconds between the queried dates\n\t\t *\n\t\t * @return int\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.get_date_diff = function() {\n\n\t\t\tvar end = new Date( this.query.dates.end ),\n\t\t\t\tstart = new Date( this.query.dates.start );\n\n\t\t\treturn Math.abs( end.getTime() - start.getTime() );\n\n\t\t};\n\n\t\t/**\n\t\t * Builds an object of data that can be used to, ultimately, draw the screen's chart\n\t\t *\n\t\t * @return obj\n\t\t * @since 3.0.0\n\t\t * @version 3.1.6\n\t\t */\n\t\tthis.get_chart_data_object = function() {\n\n\t\t\tvar self = this,\n\t\t\t\tmax_for_days = ( ( 1000 * 3600 * 24 ) * 30 ) * 4, // 4 months in seconds\n\t\t\t\tdiff = this.get_date_diff(),\n\t\t\t\tdata = {},\n\t\t\t\tres, i, d, date;\n\n\t\t\tfor ( var method in self.data ) {\n\n\t\t\t\tif ( ! self.data.hasOwnProperty( method ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ( 'object' !== typeof self.data[ method ].chart_data || 'object' !== typeof self.data[ method ].results ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tres = self.data[ method ].results;\n\n\t\t\t\tif ( res ) {\n\n\t\t\t\t\tfor ( i = 0; i < res.length; i++ ) {\n\n\t\t\t\t\t\td = this.init_date( res[i].date );\n\n\t\t\t\t\t\t// group by days\n\t\t\t\t\t\tif ( diff <= max_for_days ) {\n\t\t\t\t\t\t\tdate = new Date( d.getFullYear(), d.getMonth(), d.getDate() );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// group by months\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tdate = new Date( d.getFullYear(), d.getMonth(), 1 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( ! data[ date ] ) {\n\t\t\t\t\t\t\tdata[ date ] = this.get_empty_data_object( date )\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tswitch ( self.data[ method ].chart_data.type ) {\n\n\t\t\t\t\t\t\tcase 'amount':\n\t\t\t\t\t\t\t\tdata[ date ][ method ] = data[ date ][ method ] + ( res[i][ self.data[ method ].chart_data.key ] * 1 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase 'count':\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tdata[ date ][ method ]++;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t};\n\n\t\t/**\n\t\t * Get the data google charts needs to initiate the current chart\n\t\t *\n\t\t * @return obj\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.get_chart_data = function() {\n\n\t\t\tvar self = this,\n\t\t\t\tobj = self.get_chart_data_object(),\n\t\t\t\tdata = self.get_chart_headers();\n\n\t\t\tfor ( var date in obj ) {\n\n\t\t\t\tif ( ! obj.hasOwnProperty( date ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tvar row = [ obj[ date ]._date ];\n\n\t\t\t\tfor ( var item in obj[ date ] ) {\n\t\t\t\t\tif ( ! obj[ date ].hasOwnProperty( item ) ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t// skip meta items\n\t\t\t\t\tif ( 0 === item.indexOf( '_' ) ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\trow.push( obj[ date ][ item ] );\n\t\t\t\t}\n\n\t\t\t\tdata.push( row );\n\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t};\n\n\t\t/**\n\t\t * Get a stub of the data object used by this.get_data_object\n\t\t *\n\t\t * @param string date date to instantiate the object with\n\t\t * @return obj\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.get_empty_data_object = function( date ) {\n\n\t\t\tvar self = this,\n\t\t\t\tobj = {\n\t\t\t\t\t_date: date,\n\t\t\t};\n\n\t\t\tfor ( var method in self.data ) {\n\t\t\t\tif ( ! self.data.hasOwnProperty( method ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ( self.data[ method ].chart_data ) {\n\t\t\t\t\tobj[ method ] = 0;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn obj;\n\n\t\t};\n\n\t\t/**\n\t\t * Builds an array of chart header data\n\t\t *\n\t\t * @return array\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.get_chart_headers = function() {\n\n\t\t\tvar self = this,\n\t\t\t\th = [];\n\n\t\t\t// date headers go first\n\t\t\th.push( {\n\t\t\t\tlabel: LLMS.l10n.translate( 'Date' ),\n\t\t\t\tid: 'date',\n\t\t\t\ttype: 'date',\n\t\t\t} );\n\n\t\t\tfor ( var method in self.data ) {\n\t\t\t\tif ( ! self.data.hasOwnProperty( method ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ( self.data[ method ].chart_data ) {\n\t\t\t\t\th.push( self.data[ method ].chart_data.header );\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn [ h ];\n\n\t\t};\n\n\t\t/**\n\t\t * Get a object of series options needed to draw the chart.\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since Fix issue that produced series options not aligned with the chart data.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.get_chart_series_options = function() {\n\n\t\t\tvar self = this,\n\t\t\t\toptions = {}\n\t\t\t\ti = 0;\n\n\t\t\tfor ( var method in self.data ) {\n\t\t\t\tif ( ! self.data.hasOwnProperty( method ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ( self.data[ method ].chart_data ) {\n\n\t\t\t\t\tvar type = self.data[ method ].chart_data.type;\n\n\t\t\t\t\toptions[ i ] = {\n\t\t\t\t\t\ttype: ( 'count' === type ) ? 'bars' : 'line',\n\t\t\t\t\t\ttargetAxisIndex: ( 'count' === type ) ? 1 : 0,\n\t\t\t\t\t};\n\n\t\t\t\t\ti++;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn options;\n\n\t\t};\n\n\t\t/**\n\t\t * Instantiate a Date instance via a date string\n\t\t *\n\t\t * @param string string date string, expected format should be from php date( 'Y-m-d H:i:s' )\n\t\t * @return obj\n\t\t * @since 3.1.4\n\t\t * @version 3.1.5\n\t\t */\n\t\tthis.init_date = function( string ) {\n\n\t\t\tvar parts, date, time;\n\n\t\t\tparts = string.split( ' ' );\n\n\t\t\tdate = parts[0].split( '-' );\n\t\t\ttime = parts[1].split( ':' );\n\n\t\t\treturn new Date( date[0], date[1] - 1, date[2], time[0], time[1], time[2] );\n\n\t\t};\n\n\t\t/**\n\t\t * Called when a widget is finished loading\n\t\t * Updates the current chart with the new data from the widget\n\t\t *\n\t\t * @param obj $widget jQuery selector of the widget element\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.widget_finished = function( $widget ) {\n\n\t\t\tif ( this.is_loading_finished() ) {\n\t\t\t\tthis.draw_chart();\n\t\t\t}\n\n\t\t};\n\n\t\t// go\n\t\tthis.init();\n\n\t\t// return\n\t\treturn this;\n\n\t};\n\n\twindow.llms.analytics = new Analytics( window.llms.analytics || {} );\n\n} )( jQuery );\n"],"names":["$","window","llms","analytics","opts","length","this","charts_loaded","data","query","parseJSON","text","timeout","options","$widgets","init","google","charts","load","packages","setOnLoadCallback","charts_ready","bind","load_widgets","fn","datepicker","dateFormat","maxDate","llmsStudentsSelect2","multiple","placeholder","LLMS","l10n","translate","allow_clear","on","e","preventDefault","slideToggle","val","attr","submit","draw_chart","chart","is_loading_finished","el","document","getElementById","visualization","ComboChart","get_chart_data","legend","chartArea","height","width","colors","lineWidth","seriesType","series","get_chart_series_options","vAxes","0","format","currency_format","1","arrayToDataTable","sort","column","draw","self","each","load_widget","$widget","status","method","$content","find","$retry","content_text","addClass","ajax","action","dates","courses","current_courses","memberships","current_memberships","students","current_students","_ajax_nonce","ajax_nonce","url","ajaxurl","success","r","response","chart_data","results","remove","error","complete","statusText","append","removeClass","html","widget_finished","get_date_diff","end","Date","start","Math","abs","getTime","get_chart_data_object","res","i","date","diff","hasOwnProperty","d","init_date","getFullYear","getMonth","getDate","get_empty_data_object","type","key","obj","get_chart_headers","item","row","_date","indexOf","push","h","label","id","header","targetAxisIndex","string","parts","split","time","jQuery"],"mappings":"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","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-builder.js.map b/assets/maps/js/llms-builder.js.map
new file mode 100644
index 0000000000..01f870dccf
--- /dev/null
+++ b/assets/maps/js/llms-builder.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../../config-wrap-start-default.js","vendor/almond.js","vendor/wp-hooks.js","underscore.js","backbone.js","jquery.js","vendor/backbone.collectionView.js","vendor/backbone.trackit.js","Models/Image.js","Models/_Relationships.js","Models/QuestionChoice.js","Collections/QuestionChoices.js","Models/QuestionType.js","Models/_Utilities.js","Models/Question.js","Collections/Questions.js","Schemas/Quiz.js","Models/Quiz.js","Schemas/Lesson.js","Models/Lesson.js","Collections/Lessons.js","Collections/QuestionTypes.js","Models/Section.js","Collections/Sections.js","Collections/loader.js","Models/Abstract.js","Models/Course.js","Models/loader.js","Views/_Detachable.js","Views/_Editable.js","Views/_Receivable.js","Views/_Shiftable.js","Views/_Subview.js","Views/_Trashable.js","Views/_loader.js","Controllers/Construct.js","Controllers/Debug.js","Controllers/Schemas.js","Controllers/Sync.js","Views/Lesson.js","Views/LessonList.js","Views/Section.js","Views/SectionList.js","Views/Course.js","Views/SettingsFields.js","Views/LessonEditor.js","Views/Popover.js","Views/PostSearch.js","Views/QuestionType.js","Views/QuestionBank.js","Views/QuestionChoice.js","Views/QuestionChoiceList.js","Views/Question.js","Views/QuestionList.js","Views/Quiz.js","Views/Assignment.js","Views/Editor.js","Views/Elements.js","Views/Utilities.js","Views/Sidebar.js","main.js","../../../config-wrap-end-default.js"],"names":[],"mappings":"AAAA;AACA,ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC72CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9pBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtWA;AACA","file":"../../js/llms-builder.js","sourcesContent":["(function($){\n","/**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n\tvar main, req, makeMap, handlers,\n\t\tdefined = {},\n\t\twaiting = {},\n\t\tconfig = {},\n\t\tdefining = {},\n\t\thasOwn = Object.prototype.hasOwnProperty,\n\t\taps = [].slice,\n\t\tjsSuffixRegExp = /\\.js$/;\n\n\tfunction hasProp(obj, prop) {\n\t\treturn hasOwn.call(obj, prop);\n\t}\n\n\t/**\n\t * Given a relative module name, like ./something, normalize it to\n\t * a real name that can be mapped to a path.\n\t * @param {String} name the relative name\n\t * @param {String} baseName a real name that the name arg is relative\n\t * to.\n\t * @returns {String} normalized name\n\t */\n\tfunction normalize(name, baseName) {\n\t\tvar nameParts, nameSegment, mapValue, foundMap, lastIndex,\n\t\t\tfoundI, foundStarMap, starI, i, j, part, normalizedBaseParts,\n\t\t\tbaseParts = baseName && baseName.split(\"/\"),\n\t\t\tmap = config.map,\n\t\t\tstarMap = (map && map['*']) || {};\n\n\t\t//Adjust any relative paths.\n\t\tif (name) {\n\t\t\tname = name.split('/');\n\t\t\tlastIndex = name.length - 1;\n\n\t\t\t// If wanting node ID compatibility, strip .js from end\n\t\t\t// of IDs. Have to do this here, and not in nameToUrl\n\t\t\t// because node allows either .js or non .js to map\n\t\t\t// to same file.\n\t\t\tif (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n\t\t\t\tname[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n\t\t\t}\n\n\t\t\t// Starts with a '.' so need the baseName\n\t\t\tif (name[0].charAt(0) === '.' && baseParts) {\n\t\t\t\t//Convert baseName to array, and lop off the last part,\n\t\t\t\t//so that . matches that 'directory' and not name of the baseName's\n\t\t\t\t//module. For instance, baseName of 'one/two/three', maps to\n\t\t\t\t//'one/two/three.js', but we want the directory, 'one/two' for\n\t\t\t\t//this normalization.\n\t\t\t\tnormalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n\t\t\t\tname = normalizedBaseParts.concat(name);\n\t\t\t}\n\n\t\t\t//start trimDots\n\t\t\tfor (i = 0; i < name.length; i++) {\n\t\t\t\tpart = name[i];\n\t\t\t\tif (part === '.') {\n\t\t\t\t\tname.splice(i, 1);\n\t\t\t\t\ti -= 1;\n\t\t\t\t} else if (part === '..') {\n\t\t\t\t\t// If at the start, or previous value is still ..,\n\t\t\t\t\t// keep them so that when converted to a path it may\n\t\t\t\t\t// still work when converted to a path, even though\n\t\t\t\t\t// as an ID it is less than ideal. In larger point\n\t\t\t\t\t// releases, may be better to just kick out an error.\n\t\t\t\t\tif (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (i > 0) {\n\t\t\t\t\t\tname.splice(i - 1, 2);\n\t\t\t\t\t\ti -= 2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t//end trimDots\n\n\t\t\tname = name.join('/');\n\t\t}\n\n\t\t//Apply map config if available.\n\t\tif ((baseParts || starMap) && map) {\n\t\t\tnameParts = name.split('/');\n\n\t\t\tfor (i = nameParts.length; i > 0; i -= 1) {\n\t\t\t\tnameSegment = nameParts.slice(0, i).join(\"/\");\n\n\t\t\t\tif (baseParts) {\n\t\t\t\t\t//Find the longest baseName segment match in the config.\n\t\t\t\t\t//So, do joins on the biggest to smallest lengths of baseParts.\n\t\t\t\t\tfor (j = baseParts.length; j > 0; j -= 1) {\n\t\t\t\t\t\tmapValue = map[baseParts.slice(0, j).join('/')];\n\n\t\t\t\t\t\t//baseName segment has config, find if it has one for\n\t\t\t\t\t\t//this name.\n\t\t\t\t\t\tif (mapValue) {\n\t\t\t\t\t\t\tmapValue = mapValue[nameSegment];\n\t\t\t\t\t\t\tif (mapValue) {\n\t\t\t\t\t\t\t\t//Match, update name to the new value.\n\t\t\t\t\t\t\t\tfoundMap = mapValue;\n\t\t\t\t\t\t\t\tfoundI = i;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (foundMap) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t//Check for a star map match, but just hold on to it,\n\t\t\t\t//if there is a shorter segment match later in a matching\n\t\t\t\t//config, then favor over this star map.\n\t\t\t\tif (!foundStarMap && starMap && starMap[nameSegment]) {\n\t\t\t\t\tfoundStarMap = starMap[nameSegment];\n\t\t\t\t\tstarI = i;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!foundMap && foundStarMap) {\n\t\t\t\tfoundMap = foundStarMap;\n\t\t\t\tfoundI = starI;\n\t\t\t}\n\n\t\t\tif (foundMap) {\n\t\t\t\tnameParts.splice(0, foundI, foundMap);\n\t\t\t\tname = nameParts.join('/');\n\t\t\t}\n\t\t}\n\n\t\treturn name;\n\t}\n\n\tfunction makeRequire(relName, forceSync) {\n\t\treturn function () {\n\t\t\t//A version of a require function that passes a moduleName\n\t\t\t//value for items that may need to\n\t\t\t//look up paths relative to the moduleName\n\t\t\tvar args = aps.call(arguments, 0);\n\n\t\t\t//If first arg is not require('string'), and there is only\n\t\t\t//one arg, it is the array form without a callback. Insert\n\t\t\t//a null so that the following concat is correct.\n\t\t\tif (typeof args[0] !== 'string' && args.length === 1) {\n\t\t\t\targs.push(null);\n\t\t\t}\n\t\t\treturn req.apply(undef, args.concat([relName, forceSync]));\n\t\t};\n\t}\n\n\tfunction makeNormalize(relName) {\n\t\treturn function (name) {\n\t\t\treturn normalize(name, relName);\n\t\t};\n\t}\n\n\tfunction makeLoad(depName) {\n\t\treturn function (value) {\n\t\t\tdefined[depName] = value;\n\t\t};\n\t}\n\n\tfunction callDep(name) {\n\t\tif (hasProp(waiting, name)) {\n\t\t\tvar args = waiting[name];\n\t\t\tdelete waiting[name];\n\t\t\tdefining[name] = true;\n\t\t\tmain.apply(undef, args);\n\t\t}\n\n\t\tif (!hasProp(defined, name) && !hasProp(defining, name)) {\n\t\t\tthrow new Error('No ' + name);\n\t\t}\n\t\treturn defined[name];\n\t}\n\n\t//Turns a plugin!resource to [plugin, resource]\n\t//with the plugin being undefined if the name\n\t//did not have a plugin prefix.\n\tfunction splitPrefix(name) {\n\t\tvar prefix,\n\t\t\tindex = name ? name.indexOf('!') : -1;\n\t\tif (index > -1) {\n\t\t\tprefix = name.substring(0, index);\n\t\t\tname = name.substring(index + 1, name.length);\n\t\t}\n\t\treturn [prefix, name];\n\t}\n\n\t//Creates a parts array for a relName where first part is plugin ID,\n\t//second part is resource ID. Assumes relName has already been normalized.\n\tfunction makeRelParts(relName) {\n\t\treturn relName ? splitPrefix(relName) : [];\n\t}\n\n\t/**\n\t * Makes a name map, normalizing the name, and using a plugin\n\t * for normalization if necessary. Grabs a ref to plugin\n\t * too, as an optimization.\n\t */\n\tmakeMap = function (name, relParts) {\n\t\tvar plugin,\n\t\t\tparts = splitPrefix(name),\n\t\t\tprefix = parts[0],\n\t\t\trelResourceName = relParts[1];\n\n\t\tname = parts[1];\n\n\t\tif (prefix) {\n\t\t\tprefix = normalize(prefix, relResourceName);\n\t\t\tplugin = callDep(prefix);\n\t\t}\n\n\t\t//Normalize according\n\t\tif (prefix) {\n\t\t\tif (plugin && plugin.normalize) {\n\t\t\t\tname = plugin.normalize(name, makeNormalize(relResourceName));\n\t\t\t} else {\n\t\t\t\tname = normalize(name, relResourceName);\n\t\t\t}\n\t\t} else {\n\t\t\tname = normalize(name, relResourceName);\n\t\t\tparts = splitPrefix(name);\n\t\t\tprefix = parts[0];\n\t\t\tname = parts[1];\n\t\t\tif (prefix) {\n\t\t\t\tplugin = callDep(prefix);\n\t\t\t}\n\t\t}\n\n\t\t//Using ridiculous property names for space reasons\n\t\treturn {\n\t\t\tf: prefix ? prefix + '!' + name : name, //fullName\n\t\t\tn: name,\n\t\t\tpr: prefix,\n\t\t\tp: plugin\n\t\t};\n\t};\n\n\tfunction makeConfig(name) {\n\t\treturn function () {\n\t\t\treturn (config && config.config && config.config[name]) || {};\n\t\t};\n\t}\n\n\thandlers = {\n\t\trequire: function (name) {\n\t\t\treturn makeRequire(name);\n\t\t},\n\t\texports: function (name) {\n\t\t\tvar e = defined[name];\n\t\t\tif (typeof e !== 'undefined') {\n\t\t\t\treturn e;\n\t\t\t} else {\n\t\t\t\treturn (defined[name] = {});\n\t\t\t}\n\t\t},\n\t\tmodule: function (name) {\n\t\t\treturn {\n\t\t\t\tid: name,\n\t\t\t\turi: '',\n\t\t\t\texports: defined[name],\n\t\t\t\tconfig: makeConfig(name)\n\t\t\t};\n\t\t}\n\t};\n\n\tmain = function (name, deps, callback, relName) {\n\t\tvar cjsModule, depName, ret, map, i, relParts,\n\t\t\targs = [],\n\t\t\tcallbackType = typeof callback,\n\t\t\tusingExports;\n\n\t\t//Use name if no relName\n\t\trelName = relName || name;\n\t\trelParts = makeRelParts(relName);\n\n\t\t//Call the callback to define the module, if necessary.\n\t\tif (callbackType === 'undefined' || callbackType === 'function') {\n\t\t\t//Pull out the defined dependencies and pass the ordered\n\t\t\t//values to the callback.\n\t\t\t//Default to [require, exports, module] if no deps\n\t\t\tdeps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n\t\t\tfor (i = 0; i < deps.length; i += 1) {\n\t\t\t\tmap = makeMap(deps[i], relParts);\n\t\t\t\tdepName = map.f;\n\n\t\t\t\t//Fast path CommonJS standard dependencies.\n\t\t\t\tif (depName === \"require\") {\n\t\t\t\t\targs[i] = handlers.require(name);\n\t\t\t\t} else if (depName === \"exports\") {\n\t\t\t\t\t//CommonJS module spec 1.1\n\t\t\t\t\targs[i] = handlers.exports(name);\n\t\t\t\t\tusingExports = true;\n\t\t\t\t} else if (depName === \"module\") {\n\t\t\t\t\t//CommonJS module spec 1.1\n\t\t\t\t\tcjsModule = args[i] = handlers.module(name);\n\t\t\t\t} else if (hasProp(defined, depName) ||\n\t\t\t\t\t\t hasProp(waiting, depName) ||\n\t\t\t\t\t\t hasProp(defining, depName)) {\n\t\t\t\t\targs[i] = callDep(depName);\n\t\t\t\t} else if (map.p) {\n\t\t\t\t\tmap.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n\t\t\t\t\targs[i] = defined[depName];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(name + ' missing ' + depName);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tret = callback ? callback.apply(defined[name], args) : undefined;\n\n\t\t\tif (name) {\n\t\t\t\t//If setting exports via \"module\" is in play,\n\t\t\t\t//favor that over return value and exports. After that,\n\t\t\t\t//favor a non-undefined return value over exports use.\n\t\t\t\tif (cjsModule && cjsModule.exports !== undef &&\n\t\t\t\t\t\tcjsModule.exports !== defined[name]) {\n\t\t\t\t\tdefined[name] = cjsModule.exports;\n\t\t\t\t} else if (ret !== undef || !usingExports) {\n\t\t\t\t\t//Use the return value from the function.\n\t\t\t\t\tdefined[name] = ret;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (name) {\n\t\t\t//May just be an object definition for the module. Only\n\t\t\t//worry about defining if have a module name.\n\t\t\tdefined[name] = callback;\n\t\t}\n\t};\n\n\trequirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n\t\tif (typeof deps === \"string\") {\n\t\t\tif (handlers[deps]) {\n\t\t\t\t//callback in this case is really relName\n\t\t\t\treturn handlers[deps](callback);\n\t\t\t}\n\t\t\t//Just return the module wanted. In this scenario, the\n\t\t\t//deps arg is the module name, and second arg (if passed)\n\t\t\t//is just the relName.\n\t\t\t//Normalize module name, if it contains . or ..\n\t\t\treturn callDep(makeMap(deps, makeRelParts(callback)).f);\n\t\t} else if (!deps.splice) {\n\t\t\t//deps is a config object, not an array.\n\t\t\tconfig = deps;\n\t\t\tif (config.deps) {\n\t\t\t\treq(config.deps, config.callback);\n\t\t\t}\n\t\t\tif (!callback) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (callback.splice) {\n\t\t\t\t//callback is an array, which means it is a dependency list.\n\t\t\t\t//Adjust args if there are dependencies\n\t\t\t\tdeps = callback;\n\t\t\t\tcallback = relName;\n\t\t\t\trelName = null;\n\t\t\t} else {\n\t\t\t\tdeps = undef;\n\t\t\t}\n\t\t}\n\n\t\t//Support require(['a'])\n\t\tcallback = callback || function () {};\n\n\t\t//If relName is a function, it is an errback handler,\n\t\t//so remove it.\n\t\tif (typeof relName === 'function') {\n\t\t\trelName = forceSync;\n\t\t\tforceSync = alt;\n\t\t}\n\n\t\t//Simulate async callback;\n\t\tif (forceSync) {\n\t\t\tmain(undef, deps, callback, relName);\n\t\t} else {\n\t\t\t//Using a non-zero value because of concern for what old browsers\n\t\t\t//do, and latest browsers \"upgrade\" to 4 if lower value is used:\n\t\t\t//http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n\t\t\t//If want a value immediately, use require('id') instead -- something\n\t\t\t//that works in almond on the global level, but not guaranteed and\n\t\t\t//unlikely to work in other AMD implementations.\n\t\t\tsetTimeout(function () {\n\t\t\t\tmain(undef, deps, callback, relName);\n\t\t\t}, 4);\n\t\t}\n\n\t\treturn req;\n\t};\n\n\t/**\n\t * Just drops the config on the floor, but returns req in case\n\t * the config return value is used.\n\t */\n\treq.config = function (cfg) {\n\t\treturn req(cfg);\n\t};\n\n\t/**\n\t * Expose module registry for debugging and tooling\n\t */\n\trequirejs._defined = defined;\n\n\tdefine = function (name, deps, callback) {\n\t\tif (typeof name !== 'string') {\n\t\t\tthrow new Error('See almond README: incorrect module build, no module name');\n\t\t}\n\n\t\t//This module may not have dependencies\n\t\tif (!deps.splice) {\n\t\t\t//deps is not an array, so probably means\n\t\t\t//an object literal or factory function for\n\t\t\t//the value. Adjust args.\n\t\t\tcallback = deps;\n\t\t\tdeps = [];\n\t\t}\n\n\t\tif (!hasProp(defined, name) && !hasProp(waiting, name)) {\n\t\t\twaiting[name] = [name, deps, callback];\n\t\t}\n\t};\n\n\tdefine.amd = {\n\t\tjQuery: true\n\t};\n}());\n\ndefine(\"vendor/almond\", function(){});\n\n","/**\n * This is a slightly modified and forward compatible version of the @wordpress/hooks package\n * as included in the Gutenberg feature plugin version 3.8.0\n */\nwindow.llms=window.llms||{};\n// use the core hooks if available\nif ( 'undefined' !== typeof window.wp && 'undefined' !== typeof window.wp.hooks ) {\n\twindow.llms.hooks = window.wp.hooks;\n// otherwise load our own\n} else {\n\twindow.llms.hooks=function(n){var r={};function e(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,e),o.l=!0,o.exports}return e.m=n,e.c=r,e.d=function(n,r,t){e.o(n,r)||Object.defineProperty(n,r,{configurable:!1,enumerable:!0,get:t})},e.r=function(n){Object.defineProperty(n,\"__esModule\",{value:!0})},e.n=function(n){var r=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(r,\"a\",r),r},e.o=function(n,r){return Object.prototype.hasOwnProperty.call(n,r)},e.p=\"\",e(e.s=209)}({209:function(n,r,e){\"use strict\";e.r(r);var t=function(n){return\"string\"!=typeof n||\"\"===n?(console.error(\"The namespace must be a non-empty string.\"),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\\-\\/]*$/.test(n)||(console.error(\"The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.\"),!1)};var o=function(n){return\"string\"!=typeof n||\"\"===n?(console.error(\"The hook name must be a non-empty string.\"),!1):/^__/.test(n)?(console.error(\"The hook name cannot begin with `__`.\"),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(n)||(console.error(\"The hook name can only contain numbers, letters, dashes, periods and underscores.\"),!1)};var i=function(n){return function(r,e,i){var u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10;if(o(r)&&t(e))if(\"function\"==typeof i)if(\"number\"==typeof u){var c={callback:i,priority:u,namespace:e};if(n[r]){for(var a=n[r].handlers,l=0;lu);)l++;a.splice(l,0,c),(n.__current||[]).forEach(function(n){n.name===r&&n.currentIndex>=l&&n.currentIndex++})}else n[r]={handlers:[c],runs:0};\"hookAdded\"!==r&&b(\"hookAdded\",r,e,i,u)}else console.error(\"If specified, the hook priority must be a number.\");else console.error(\"The hook callback must be a function.\")}};var u=function(n,r){return function(e,i){if(o(e)&&(r||t(i))){if(!n[e])return 0;var u=0;if(r)u=n[e].handlers.length,n[e]={runs:n[e].runs,handlers:[]};else for(var c=n[e].handlers,a=function(r){c[r].namespace===i&&(c.splice(r,1),u++,(n.__current||[]).forEach(function(n){n.name===e&&n.currentIndex>=r&&n.currentIndex--}))},l=c.length-1;l>=0;l--)a(l);return\"hookRemoved\"!==e&&b(\"hookRemoved\",e,i),u}}};var c=function(n){return function(r){return r in n}};var a=function(n,r){return function(e){n[e]||(n[e]={handlers:[],runs:0}),n[e].runs++;for(var t=n[e].handlers,o=arguments.length,i=new Array(o>1?o-1:0),u=1;u li, tbody > tr > td\" : \"_listItem_onMousedown\",\n\t\t\t\"dblclick > li, tbody > tr > td\" : \"_listItem_onDoubleClick\",\n\t\t\t\"click\" : \"_listBackground_onClick\",\n\t\t\t\"click ul.collection-view, table.collection-view\" : \"_listBackground_onClick\",\n\t\t\t\"keydown\" : \"_onKeydown\"\n\t\t},\n\n\t\t// only used if Backbone.Courier is available\n\t\tspawnMessages : {\n\t\t\t\"focus\" : \"focus\"\n\t\t},\n\n\t\t//only used if Backbone.Courier is available\n\t\tpassMessages : { \"*\" : \".\" },\n\n\t\t// viewOption definitions with default values.\n\t\tinitializationOptions : [\n\t\t\t{ \"collection\" : null },\n\t\t\t{ \"modelView\" : null },\n\t\t\t{ \"modelViewOptions\" : {} },\n\t\t\t{ \"itemTemplate\" : null },\n\t\t\t{ \"itemTemplateFunction\" : null },\n\t\t\t{ \"selectable\" : true },\n\t\t\t{ \"clickToSelect\" : true },\n\t\t\t{ \"selectableModelsFilter\" : null },\n\t\t\t{ \"visibleModelsFilter\" : null },\n\t\t\t{ \"sortableModelsFilter\" : null },\n\t\t\t{ \"selectMultiple\" : false },\n\t\t\t{ \"clickToToggle\" : false },\n\t\t\t{ \"processKeyEvents\" : true },\n\t\t\t{ \"sortable\" : false },\n\t\t\t{ \"sortableOptions\" : null },\n\t\t\t{ \"reuseModelViews\" : true },\n\t\t\t{ \"detachedRendering\" : false },\n\t\t\t{ \"emptyListCaption\" : null }\n\t\t],\n\n\t\tinitialize : function( options ) {\n\t\t\tBackbone.ViewOptions.add( this, \"initializationOptions\" ); // setup the ViewOptions functionality.\n\t\t\tthis.setOptions( options ); // and make use of any provided options\n\n\t\t\tif( ! this.collection ) this.collection = new Backbone.Collection();\n\n\t\t\tthis._hasBeenRendered = false;\n\n\t\t\tif( this._isBackboneCourierAvailable() ) {\n\t\t\t\tBackbone.Courier.add( this );\n\t\t\t}\n\n\t\t\tthis.$el.data( \"view\", this ); // needed for connected sortable lists\n\t\t\tthis.$el.addClass( \"collection-view collection-list\" ); // collection-list is in there for legacy purposes\n\t\t\tif( this.selectable ) this.$el.addClass( \"selectable\" );\n\n\t\t\tif( this.selectable && this.processKeyEvents )\n\t\t\t\tthis.$el.attr( \"tabindex\", 0 ); // so we get keyboard events\n\n\t\t\tthis.selectedItems = [];\n\n\t\t\tthis._updateItemTemplate();\n\n\t\t\tif( this.collection )\n\t\t\t\tthis._registerCollectionEvents();\n\n\t\t\tthis.viewManager = new ChildViewContainer();\n\t\t},\n\n\t\t_onOptionsChanged : function( changedOptions, originalOptions ) {\n\t\t\tvar _this = this;\n\t\t\tvar rerender = false;\n\n\t\t\t_.each( _.keys( changedOptions ), function( changedOptionKey ) {\n\t\t\t\tvar newVal = changedOptions[ changedOptionKey ];\n\t\t\t\tvar oldVal = originalOptions[ changedOptionKey ];\n\t\t\t\tswitch( changedOptionKey ) {\n\t\t\t\t\tcase \"collection\" :\n\t\t\t\t\t\tif ( newVal !== oldVal ) {\n\t\t\t\t\t\t\t_this.stopListening( oldVal );\n\t\t\t\t\t\t\t_this._registerCollectionEvents();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"selectMultiple\" :\n\t\t\t\t\t\tif( ! newVal && _this.selectedItems.length > 1 )\n\t\t\t\t\t\t\t_this.setSelectedModel( _.first( _this.selectedItems ), { by : \"cid\" } );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"selectable\" :\n\t\t\t\t\t\tif( ! newVal && _this.selectedItems.length > 0 )\n\t\t\t\t\t\t\t_this.setSelectedModels( [] );\n\n\t\t\t\t\t\tif( newVal && this.processKeyEvents ) _this.$el.attr( \"tabindex\", 0 ); // so we get keyboard events\n\t\t\t\t\t\telse _this.$el.removeAttr( \"tabindex\", 0 );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"sortable\" :\n\t\t\t\t\t\tchangedOptions.sortable ? _this._setupSortable() : _this.$el.sortable( \"destroy\" );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"selectableModelsFilter\" :\n\t\t\t\t\t\t_this.reapplyFilter( 'selectableModels' );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"sortableOptions\" :\n\t\t\t\t\t\t_this.$el.sortable( \"destroy\" );\n\t\t\t\t\t\t_this._setupSortable();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"sortableModelsFilter\" :\n\t\t\t\t\t\t_this.reapplyFilter( 'sortableModels' );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"visibleModelsFilter\" :\n\t\t\t\t\t\t_this.reapplyFilter( 'visibleModels' );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"itemTemplate\" :\n\t\t\t\t\t\t_this._updateItemTemplate();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"processKeyEvents\" :\n\t\t\t\t\t\tif( newVal && this.selectable ) _this.$el.attr( \"tabindex\", 0 ); // so we get keyboard events\n\t\t\t\t\t\telse _this.$el.removeAttr( \"tabindex\", 0 );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"modelView\" :\n\t\t\t\t\t\t//need to remove all old view instances\n\t\t\t\t\t\t_this.viewManager.each( function( view ) {\n\t\t\t\t\t\t\t_this.viewManager.remove( view );\n\t\t\t\t\t\t\t// destroy the View itself\n\t\t\t\t\t\t\tview.remove();\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif( _.contains( kOptionsRequiringRerendering, changedOptionKey ) ) rerender = true;\n\t\t\t} );\n\n\t\t\tif( this._hasBeenRendered && rerender ) {\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t},\n\n\t\tsetOption : function( optionName, optionValue ) { // now is merely a wrapper around backbone.viewOptions' setOptions()\n\t\t\tvar optionHash = {};\n\t\t\toptionHash[ optionName ] = optionValue;\n\t\t\tthis.setOptions( optionHash );\n\t\t},\n\n\t\tgetSelectedModel : function( options ) {\n\t\t\treturn this.selectedItems.length ? _.first( this.getSelectedModels( options ) ) : null;\n\t\t},\n\n\t\tgetSelectedModels : function ( options ) {\n\t\t\tvar _this = this;\n\n\t\t\toptions = _.extend( {}, {\n\t\t\t\tby : kDefaultReferenceBy\n\t\t\t}, options );\n\n\t\t\tvar referenceBy = options.by;\n\t\t\tvar items = [];\n\n\t\t\tswitch( referenceBy ) {\n\t\t\t\tcase \"id\" :\n\t\t\t\t\t_.each( this.selectedItems, function ( item ) {\n\t\t\t\t\t\titems.push( _this.collection.get( item ).id );\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"cid\" :\n\t\t\t\t\titems = items.concat( this.selectedItems );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"offset\" :\n\t\t\t\t\tvar curLineNumber = 0;\n\n\t\t\t\t\tvar itemElements = this._getVisibleItemEls();\n\n\t\t\t\t\titemElements.each( function() {\n\t\t\t\t\t\tvar thisItemEl = $( this );\n\t\t\t\t\t\tif( thisItemEl.is( \".selected\" ) )\n\t\t\t\t\t\t\titems.push( curLineNumber );\n\t\t\t\t\t\tcurLineNumber++;\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"model\" :\n\t\t\t\t\t_.each( this.selectedItems, function ( item ) {\n\t\t\t\t\t\titems.push( _this.collection.get( item ) );\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"view\" :\n\t\t\t\t\t_.each( this.selectedItems, function ( item ) {\n\t\t\t\t\t\titems.push( _this.viewManager.findByModel( _this.collection.get( item ) ) );\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault :\n\t\t\t\t\tthrow new Error( \"Invalid referenceBy option: \" + referenceBy );\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn items;\n\n\t\t},\n\n\t\tsetSelectedModels : function( newSelectedItems, options ) {\n\t\t\tif( ! _.isArray( newSelectedItems ) ) throw \"Invalid parameter value\";\n\t\t\tif( ! this.selectable && newSelectedItems.length > 0 ) return; // used to throw error, but there are some circumstances in which a list can be selectable at times and not at others, don't want to have to worry about catching errors\n\n\t\t\toptions = _.extend( {}, {\n\t\t\t\tsilent : false,\n\t\t\t\tby : kDefaultReferenceBy\n\t\t\t}, options );\n\n\t\t\tvar referenceBy = options.by;\n\t\t\tvar newSelectedCids = [];\n\n\t\t\tswitch( referenceBy ) {\n\t\t\t\tcase \"cid\" :\n\t\t\t\t\tnewSelectedCids = newSelectedItems;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"id\" :\n\t\t\t\t\tthis.collection.each( function( thisModel ) {\n\t\t\t\t\t\tif( _.contains( newSelectedItems, thisModel.id ) ) newSelectedCids.push( thisModel.cid );\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"model\" :\n\t\t\t\t\tnewSelectedCids = _.pluck( newSelectedItems, \"cid\" );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"view\" :\n\t\t\t\t\t_.each( newSelectedItems, function( item ) {\n\t\t\t\t\t\tnewSelectedCids.push( item.model.cid );\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"offset\" :\n\t\t\t\t\tvar curLineNumber = 0;\n\t\t\t\t\tvar selectedItems = [];\n\n\t\t\t\t\tvar itemElements = this._getVisibleItemEls();\n\t\t\t\t\titemElements.each( function() {\n\t\t\t\t\t\tvar thisItemEl = $( this );\n\t\t\t\t\t\tif( _.contains( newSelectedItems, curLineNumber ) )\n\t\t\t\t\t\t\tnewSelectedCids.push( thisItemEl.attr( \"data-model-cid\" ) );\n\t\t\t\t\t\tcurLineNumber++;\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault :\n\t\t\t\t\tthrow new Error( \"Invalid referenceBy option: \" + referenceBy );\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar oldSelectedModels = this.getSelectedModels();\n\t\t\tvar oldSelectedCids = _.clone( this.selectedItems );\n\n\t\t\tthis.selectedItems = this._convertStringsToInts( newSelectedCids );\n\t\t\tthis._validateSelection();\n\n\t\t\tvar newSelectedModels = this.getSelectedModels();\n\n\t\t\tif( ! this._containSameElements( oldSelectedCids, this.selectedItems ) )\n\t\t\t{\n\t\t\t\tthis._addSelectedClassToSelectedItems( oldSelectedCids );\n\n\t\t\t\tif( ! options.silent )\n\t\t\t\t{\n\t\t\t\t\tif( this._isBackboneCourierAvailable() ) {\n\t\t\t\t\t\tthis.spawn( \"selectionChanged\", {\n\t\t\t\t\t\t\tselectedModels : newSelectedModels,\n\t\t\t\t\t\t\toldSelectedModels : oldSelectedModels\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else this.trigger( \"selectionChanged\", newSelectedModels, oldSelectedModels );\n\t\t\t\t}\n\n\t\t\t\tthis.updateDependentControls();\n\t\t\t}\n\t\t},\n\n\t\tsetSelectedModel : function( newSelectedItem, options ) {\n\t\t\tif( ! newSelectedItem && newSelectedItem !== 0 )\n\t\t\t\tthis.setSelectedModels( [], options );\n\t\t\telse\n\t\t\t\tthis.setSelectedModels( [ newSelectedItem ], options );\n\t\t},\n\n\t\tgetView : function( reference, options ) {\n\t\t\toptions = _.extend( {}, {\n\t\t\t\tby : kDefaultReferenceBy\n\t\t\t}, options );\n\n\t\t\tswitch( options.by ) {\n\t\t\t\tcase \"id\" :\n\t\t\t\tcase \"cid\" :\n\t\t\t\t\tvar model = this.collection.get( reference ) || null;\n\t\t\t\t\treturn model && this.viewManager.findByModel( model );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"offset\" :\n\t\t\t\t\tvar itemElements = this._getVisibleItemEls();\n\t\t\t\t\treturn $( itemElements.get( reference ) );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"model\" :\n\t\t\t\t\treturn this.viewManager.findByModel( reference );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault :\n\t\t\t\t\tthrow new Error( \"Invalid referenceBy option: \" + referenceBy );\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\trender : function() {\n\t\t\tvar _this = this;\n\n\t\t\tthis._hasBeenRendered = true;\n\n\t\t\tif( this.selectable ) this._saveSelection();\n\n\t\t\tvar modelViewContainerEl;\n\n\t\t\t// If collection view element is a table and it has a tbody\n\t\t\t// within it, render the model views inside of the tbody\n\t\t\tmodelViewContainerEl = this._getContainerEl();\n\n\t\t\tvar oldViewManager = this.viewManager;\n\t\t\tthis.viewManager = new ChildViewContainer();\n\n\t\t\t// detach each of our subviews that we have already created to represent models\n\t\t\t// in the collection. We are going to re-use the ones that represent models that\n\t\t\t// are still here, instead of creating new ones, so that we don't loose state\n\t\t\t// information in the views.\n\t\t\toldViewManager.each( function( thisModelView ) {\n\t\t\t\t// to boost performance, only detach those views that will be sticking around.\n\t\t\t\t// we won't need the other ones later, so no need to detach them individually.\n\t\t\t\tif( this.reuseModelViews && this.collection.get( thisModelView.model.cid ) ) {\n\t\t\t\t\tthisModelView.$el.detach();\n\t\t\t\t} else thisModelView.remove();\n\t\t\t}, this );\n\n\t\t\tmodelViewContainerEl.empty();\n\t\t\tvar fragmentContainer;\n\n\t\t\tif( this.detachedRendering )\n\t\t\t\tfragmentContainer = document.createDocumentFragment();\n\n\t\t\tthis.collection.each( function( thisModel ) {\n\t\t\t\tvar thisModelView = oldViewManager.findByModelCid( thisModel.cid );\n\t\t\t\tif( ! this.reuseModelViews || _.isUndefined( thisModelView ) ) {\n\t\t\t\t\t// if the model view has not already been created on a\n\t\t\t\t\t// previous render then create and initialize it now.\n\t\t\t\t\tthisModelView = this._createNewModelView( thisModel, this._getModelViewOptions( thisModel ) );\n\t\t\t\t}\n\n\t\t\t\tthis._insertAndRenderModelView( thisModelView, fragmentContainer || modelViewContainerEl );\n\t\t\t}, this );\n\n\t\t\tif( this.detachedRendering )\n\t\t\t\tmodelViewContainerEl.append( fragmentContainer );\n\n\t\t\tif( this.sortable ) this._setupSortable();\n\n\t\t\tthis._showEmptyListCaptionIfAppropriate();\n\n\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\tthis.spawn( \"render\" );\n\t\t\telse this.trigger( \"render\" );\n\n\t\t\tif( this.selectable ) {\n\t\t\t\tthis._restoreSelection();\n\t\t\t\tthis.updateDependentControls();\n\t\t\t}\n\n\t\t\tthis.forceRerenderOnNextSortEvent = false;\n\t\t},\n\n\t\t_showEmptyListCaptionIfAppropriate : function ( ) {\n\t\t\tthis._removeEmptyListCaption();\n\n\t\t\tif( this.emptyListCaption ) {\n\t\t\t\tvar visibleEls = this._getVisibleItemEls();\n\n\t\t\t\tif( visibleEls.length === 0 ) {\n\t\t\t\t\tvar emptyListString;\n\n\t\t\t\t\tif( _.isFunction( this.emptyListCaption ) )\n\t\t\t\t\t\temptyListString = this.emptyListCaption();\n\t\t\t\t\telse\n\t\t\t\t\t\temptyListString = this.emptyListCaption;\n\n\t\t\t\t\tvar $emptyListCaptionEl;\n\t\t\t\t\tvar $varEl = $( \"\" + emptyListString + \" \" );\n\n\t\t\t\t\t// need to wrap the empty caption to make it fit the rendered list structure (either with an li or a tr td)\n\t\t\t\t\tif( this._isRenderedAsList() )\n\t\t\t\t\t\t$emptyListCaptionEl = $varEl.wrapAll( \" \" ).parent().css( kStylesForEmptyListCaption );\n\t\t\t\t\telse\n\t\t\t\t\t\t$emptyListCaptionEl = $varEl.wrapAll( \" \" ).parent().parent().css( kStylesForEmptyListCaption );\n\n\t\t\t\t\tthis._getContainerEl().append( $emptyListCaptionEl );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_removeEmptyListCaption : function( ) {\n\t\t\tif( this._isRenderedAsList() )\n\t\t\t\tthis._getContainerEl().find( \"> li > var.empty-list-caption\" ).parent().remove();\n\t\t\telse\n\t\t\t\tthis._getContainerEl().find( \"> tr > td > var.empty-list-caption\" ).parent().parent().remove();\n\t\t},\n\n\t\t// Render a single model view in container object \"parentElOrDocumentFragment\", which is either\n\t\t// a documentFragment or a jquery object. optional arg atIndex is not support for document fragments.\n\t\t_insertAndRenderModelView : function( modelView, parentElOrDocumentFragment, atIndex ) {\n\t\t\tvar thisModelViewWrapped = this._wrapModelView( modelView );\n\n\t\t\tif( parentElOrDocumentFragment.nodeType === 11 ) // if we are inserting into a document fragment, we need to use the DOM appendChild method\n\t\t\t\tparentElOrDocumentFragment.appendChild( thisModelViewWrapped.get( 0 ) );\n\t\t\telse {\n\t\t\t\tvar numberOfModelViewsCurrentlyInDOM = parentElOrDocumentFragment.children().length;\n\t\t\t\tif( ! _.isUndefined( atIndex ) && atIndex >= 0 && atIndex < numberOfModelViewsCurrentlyInDOM )\n\t\t\t\t\t// note this.collection.length might be greater than parentElOrDocumentFragment.children().length here\n\t\t\t\t\tparentElOrDocumentFragment.children().eq( atIndex ).before( thisModelViewWrapped );\n\t\t\t\telse {\n\t\t\t\t\t// if we are attempting to insert a modelView in an position that is beyond what is currently in the\n\t\t\t\t\t// DOM, then make a note that we need to re-render the collection view on the next sort event. If we dont\n\t\t\t\t\t// force this re-render, we can end up with modelViews in the wrong order when the collection defines\n\t\t\t\t\t// a comparator and multiple models are added at once. See https://github.com/rotundasoftware/backbone.collectionView/issues/69\n\t\t\t\t\tif( ! _.isUndefined( atIndex ) && atIndex > numberOfModelViewsCurrentlyInDOM ) this.forceRerenderOnNextSortEvent = true;\n\n\t\t\t\t\tparentElOrDocumentFragment.append( thisModelViewWrapped );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.viewManager.add( modelView );\n\n\t\t\t// we have to render the modelView after it has been put in context, as opposed to in the\n\t\t\t// initialize function of the modelView, because some rendering might be dependent on\n\t\t\t// the modelView's context in the DOM tree. For example, if the modelView stretch()'s itself,\n\t\t\t// it must be in full context in the DOM tree or else the stretch will not behave as intended.\n\t\t\tvar renderResult = modelView.render();\n\n\t\t\t// return false from the view's render function to hide this item\n\t\t\tif( renderResult === false ) {\n\t\t\t\tthisModelViewWrapped.hide();\n\t\t\t\tthisModelViewWrapped.addClass( \"not-visible\" );\n\t\t\t}\n\n\t\t\tvar hideThisModelView = false;\n\t\t\tif( _.isFunction( this.visibleModelsFilter ) )\n\t\t\t\thideThisModelView = ! this.visibleModelsFilter( modelView.model );\n\n\t\t\tif( thisModelViewWrapped.children().length === 1 )\n\t\t\t\tthisModelViewWrapped.toggle( ! hideThisModelView );\n\t\t\telse modelView.$el.toggle( ! hideThisModelView );\n\n\t\t\tthisModelViewWrapped.toggleClass( \"not-visible\", hideThisModelView );\n\n\t\t\tif( ! hideThisModelView && this.emptyListCaption ) this._removeEmptyListCaption();\n\t\t},\n\n\t\tupdateDependentControls : function() {\n\t\t\tif( this._isBackboneCourierAvailable() ) {\n\t\t\t\tthis.spawn( \"updateDependentControls\", {\n\t\t\t\t\tselectedModels : this.getSelectedModels()\n\t\t\t\t} );\n\t\t\t} else this.trigger( \"updateDependentControls\", this.getSelectedModels() );\n\t\t},\n\n\t\t// Override `Backbone.View.remove` to also destroy all Views in `viewManager`\n\t\tremove : function() {\n\t\t\tthis.viewManager.each( function( view ) {\n\t\t\t\tview.remove();\n\t\t\t} );\n\n\t\t\tBackbone.View.prototype.remove.apply( this, arguments );\n\t\t},\n\n\t\treapplyFilter : function( whichFilter ) {\n\t\t\tvar _this = this;\n\n\t\t\tif( ! _.contains( [ \"selectableModels\", \"sortableModels\", \"visibleModels\" ], whichFilter ) ) {\n\t\t\t\tthrow new Error( \"Invalid filter identifier supplied to reapplyFilter: \" + whichFilter );\n\t\t\t}\n\n\t\t\tswitch( whichFilter ) {\n\t\t\t\tcase \"visibleModels\":\n\t\t\t\t\t_this.viewManager.each( function( thisModelView ) {\n\t\t\t\t\t\tvar notVisible = _this.visibleModelsFilter && ! _this.visibleModelsFilter.call( _this, thisModelView.model );\n\n\t\t\t\t\t\tthisModelView.$el.toggleClass( \"not-visible\", notVisible );\n\t\t\t\t\t\tif( _this._modelViewHasWrapperLI( thisModelView ) ) {\n\t\t\t\t\t\t\tthisModelView.$el.closest( \"li\" ).toggleClass( \"not-visible\", notVisible ).toggle( ! notVisible );\n\t\t\t\t\t\t} else thisModelView.$el.toggle( ! notVisible );\n\t\t\t\t\t} );\n\n\t\t\t\t\tthis._showEmptyListCaptionIfAppropriate();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"sortableModels\":\n\t\t\t\t\t_this.$el.sortable( \"destroy\" );\n\n\t\t\t\t\t_this.viewManager.each( function( thisModelView ) {\n\t\t\t\t\t\tvar notSortable = _this.sortableModelsFilter && ! _this.sortableModelsFilter.call( _this, thisModelView.model );\n\n\t\t\t\t\t\tthisModelView.$el.toggleClass( \"not-sortable\", notSortable );\n\t\t\t\t\t\tif( _this._modelViewHasWrapperLI( thisModelView ) ) {\n\t\t\t\t\t\t\tthisModelView.$el.closest( \"li\" ).toggleClass( \"not-sortable\", notSortable );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\t_this._setupSortable();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"selectableModels\":\n\t\t\t\t\t_this.viewManager.each( function( thisModelView ) {\n\t\t\t\t\t\tvar notSelectable = _this.selectableModelsFilter && ! _this.selectableModelsFilter.call( _this, thisModelView.model );\n\n\t\t\t\t\t\tthisModelView.$el.toggleClass( \"not-selectable\", notSelectable );\n\t\t\t\t\t\tif( _this._modelViewHasWrapperLI( thisModelView ) ) {\n\t\t\t\t\t\t\tthisModelView.$el.closest( \"li\" ).toggleClass( \"not-selectable\", notSelectable );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\t_this._validateSelection();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\t// A method to remove the view relating to model.\n\t\t_removeModelView : function( modelView ) {\n\t\t\tif( this.selectable ) this._saveSelection();\n\n\t\t\tthis.viewManager.remove( modelView ); // Remove the view from the viewManager\n\t\t\tif( this._modelViewHasWrapperLI( modelView ) ) modelView.$el.parent().remove(); // Remove the li wrapper from the DOM\n\t\t\tmodelView.remove(); // Remove the view from the DOM and stop listening to events\n\n\t\t\tif( this.selectable ) this._restoreSelection();\n\n\t\t\tthis._showEmptyListCaptionIfAppropriate();\n\t\t},\n\n\t\t_validateSelectionAndRender : function() {\n\t\t\tthis._validateSelection();\n\t\t\tthis.render();\n\t\t},\n\n\t\t_registerCollectionEvents : function() {\n\n\t\t\tthis.listenTo( this.collection, \"add\", function( model ) {\n\t\t\t\tvar modelView;\n\t\t\t\tif( this._hasBeenRendered ) {\n\t\t\t\t\tmodelView = this._createNewModelView( model, this._getModelViewOptions( model ) );\n\t\t\t\t\tthis._insertAndRenderModelView( modelView, this._getContainerEl(), this.collection.indexOf( model ) );\n\t\t\t\t}\n\n\t\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\t\tthis.spawn( \"add\", modelView );\n\t\t\t\telse this.trigger( \"add\", modelView );\n\t\t\t} );\n\n\t\t\tthis.listenTo( this.collection, \"remove\", function( model ) {\n\t\t\t\tvar modelView;\n\n\t\t\t\tif( this._hasBeenRendered ) {\n\t\t\t\t\tmodelView = this.viewManager.findByModelCid( model.cid );\n\t\t\t\t\tthis._removeModelView( modelView );\n\t\t\t\t}\n\n\t\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\t\tthis.spawn( \"remove\" );\n\t\t\t\telse this.trigger( \"remove\" );\n\t\t\t} );\n\n\t\t\tthis.listenTo( this.collection, \"reset\", function() {\n\t\t\t\tif( this._hasBeenRendered ) this.render();\n\t\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\t\tthis.spawn( \"reset\" );\n\t\t\t\telse this.trigger( \"reset\" );\n\t\t\t} );\n\n\t\t\t// we should not be listening to change events on the model as a default behavior. the models\n\t\t\t// should be responsible for re-rendering themselves if necessary, and if the collection does\n\t\t\t// also need to re-render as a result of a model change, this should be handled by overriding\n\t\t\t// this method. by default the collection view should not re-render in response to model changes\n\t\t\t// this.listenTo( this.collection, \"change\", function( model ) {\n\t\t\t// \tif( this._hasBeenRendered ) this.viewManager.findByModel( model ).render();\n\t\t\t// \tif( this._isBackboneCourierAvailable() )\n\t\t\t// \t\tthis.spawn( \"change\", { model : model } );\n\t\t\t// } );\n\n\t\t\tthis.listenTo( this.collection, \"sort\", function( collection, options ) {\n\t\t\t\tif( this._hasBeenRendered && ( options.add !== true || this.forceRerenderOnNextSortEvent ) ) this.render();\n\t\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\t\tthis.spawn( \"sort\" );\n\t\t\t\telse this.trigger( \"sort\" );\n\t\t\t} );\n\t\t},\n\n\t\t_getContainerEl : function() {\n\t\t\tif ( this._isRenderedAsTable() ) {\n\t\t\t\t// not all tables have a tbody, so we test\n\t\t\t\tvar tbody = this.$el.find( \"> tbody\" );\n\t\t\t\tif ( tbody.length > 0 )\n\t\t\t\t\treturn tbody;\n\t\t\t}\n\t\t\treturn this.$el;\n\t\t},\n\n\t\t_getClickedItemId : function( theEvent ) {\n\t\t\tvar clickedItemId = null;\n\n\t\t\t// important to use currentTarget as opposed to target, since we could be bubbling\n\t\t\t// an event that took place within another collectionList\n\t\t\tvar clickedItemEl = $( theEvent.currentTarget );\n\t\t\tif( clickedItemEl.closest( \".collection-view\" ).get(0) !== this.$el.get(0) ) return;\n\n\t\t\t// determine which list item was clicked. If we clicked in the blank area\n\t\t\t// underneath all the elements, we want to know that too, since in this\n\t\t\t// case we will want to deselect all elements. so check to see if the clicked\n\t\t\t// DOM element is the list itself to find that out.\n\t\t\tvar clickedItem = clickedItemEl.closest( \"[data-model-cid]\" );\n\t\t\tif( clickedItem.length > 0 )\n\t\t\t{\n\t\t\t\tclickedItemId = clickedItem.attr( \"data-model-cid\" );\n\t\t\t\tif( $.isNumeric( clickedItemId ) ) clickedItemId = parseInt( clickedItemId, 10 );\n\t\t\t}\n\n\t\t\treturn clickedItemId;\n\t\t},\n\n\t\t_updateItemTemplate : function() {\n\t\t\tvar itemTemplateHtml;\n\t\t\tif( this.itemTemplate )\n\t\t\t{\n\t\t\t\tif( $( this.itemTemplate ).length === 0 )\n\t\t\t\t\tthrow \"Could not find item template from selector: \" + this.itemTemplate;\n\n\t\t\t\titemTemplateHtml = $( this.itemTemplate ).html();\n\t\t\t}\n\t\t\telse\n\t\t\t\titemTemplateHtml = this.$( \".item-template\" ).html();\n\n\t\t\tif( itemTemplateHtml ) this.itemTemplateFunction = _.template( itemTemplateHtml );\n\n\t\t},\n\n\t\t_validateSelection : function() {\n\t\t\t// note can't use the collection's proxy to underscore because \"cid\" is not an attribute,\n\t\t\t// but an element of the model object itself.\n\t\t\tvar modelReferenceIds = _.pluck( this.collection.models, \"cid\" );\n\t\t\tthis.selectedItems = _.intersection( modelReferenceIds, this.selectedItems );\n\n\t\t\tif( _.isFunction( this.selectableModelsFilter ) )\n\t\t\t{\n\t\t\t\tthis.selectedItems = _.filter( this.selectedItems, function( thisItemId ) {\n\t\t\t\t\treturn this.selectableModelsFilter.call( this, this.collection.get( thisItemId ) );\n\t\t\t\t}, this );\n\t\t\t}\n\t\t},\n\n\t\t_saveSelection : function() {\n\t\t\t// save the current selection. use restoreSelection() to restore the selection to the state it was in the last time saveSelection() was called.\n\t\t\tif( ! this.selectable ) throw \"Attempt to save selection on non-selectable list\";\n\t\t\tthis.savedSelection = {\n\t\t\t\titems : _.clone( this.selectedItems ),\n\t\t\t\toffset : this.getSelectedModel( { by : \"offset\" } )\n\t\t\t};\n\t\t},\n\n\t\t_restoreSelection : function() {\n\t\t\tif( ! this.savedSelection ) throw \"Attempt to restore selection but no selection has been saved!\";\n\n\t\t\t// reset selectedItems to empty so that we \"redraw\" all \"selected\" classes\n\t\t\t// when we set our new selection. We do this because it is likely that our\n\t\t\t// contents have been refreshed, and we have thus lost all old \"selected\" classes.\n\t\t\tthis.setSelectedModels( [], { silent : true } );\n\n\t\t\tif( this.savedSelection.items.length > 0 )\n\t\t\t{\n\t\t\t\t// first try to restore the old selected items using their reference ids.\n\t\t\t\tthis.setSelectedModels( this.savedSelection.items, { by : \"cid\", silent : true } );\n\n\t\t\t\t// all the items with the saved reference ids have been removed from the list.\n\t\t\t\t// ok. try to restore the selection based on the offset that used to be selected.\n\t\t\t\t// this is the expected behavior after a item is deleted from a list (i.e. select\n\t\t\t\t// the line that immediately follows the deleted line).\n\t\t\t\tif( this.selectedItems.length === 0 )\n\t\t\t\t\tthis.setSelectedModel( this.savedSelection.offset, { by : \"offset\" } );\n\n\t\t\t\t// Trigger a selection changed if the previously selected items were not all found\n\t\t\t\tif (this.selectedItems.length !== this.savedSelection.items.length)\n\t\t\t\t{\n\t\t\t\t\tif( this._isBackboneCourierAvailable() ) {\n\t\t\t\t\t\tthis.spawn( \"selectionChanged\", {\n\t\t\t\t\t\t\tselectedModels : this.getSelectedModels(),\n\t\t\t\t\t\t\toldSelectedModels : []\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else this.trigger( \"selectionChanged\", this.getSelectedModels(), [] );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_addSelectedClassToSelectedItems : function( oldItemsIdsWithSelectedClass ) {\n\t\t\tif( _.isUndefined( oldItemsIdsWithSelectedClass ) ) oldItemsIdsWithSelectedClass = [];\n\n\t\t\t// oldItemsIdsWithSelectedClass is used for optimization purposes only. If this info is supplied then we\n\t\t\t// only have to add / remove the \"selected\" class from those items that \"selected\" state has changed.\n\n\t\t\tvar itemsIdsFromWhichSelectedClassNeedsToBeRemoved = oldItemsIdsWithSelectedClass;\n\t\t\titemsIdsFromWhichSelectedClassNeedsToBeRemoved = _.without( itemsIdsFromWhichSelectedClassNeedsToBeRemoved, this.selectedItems );\n\n\t\t\t_.each( itemsIdsFromWhichSelectedClassNeedsToBeRemoved, function( thisItemId ) {\n\t\t\t\tthis._getContainerEl().find( \"[data-model-cid=\" + thisItemId + \"]\" ).removeClass( \"selected\" );\n\n\t\t\t\tif( this._isRenderedAsList() ) {\n\t\t\t\t\tthis._getContainerEl().find( \"li[data-model-cid=\" + thisItemId + \"] > *\" ).removeClass( \"selected\" );\n\t\t\t\t}\n\t\t\t}, this );\n\n\t\t\tvar itemsIdsFromWhichSelectedClassNeedsToBeAdded = this.selectedItems;\n\t\t\titemsIdsFromWhichSelectedClassNeedsToBeAdded = _.without( itemsIdsFromWhichSelectedClassNeedsToBeAdded, oldItemsIdsWithSelectedClass );\n\n\t\t\t_.each( itemsIdsFromWhichSelectedClassNeedsToBeAdded, function( thisItemId ) {\n\t\t\t\tthis._getContainerEl().find( \"[data-model-cid=\" + thisItemId + \"]\" ).addClass( \"selected\" );\n\n\t\t\t\tif( this._isRenderedAsList() ) {\n\t\t\t\t\tthis._getContainerEl().find( \"li[data-model-cid=\" + thisItemId + \"] > *\" ).addClass( \"selected\" );\n\t\t\t\t}\n\t\t\t}, this );\n\t\t},\n\n\t\t_reorderCollectionBasedOnHTML : function() {\n\n\t\t\tvar _this = this;\n\n\t\t\tthis._getContainerEl().children().each( function() {\n\t\t\t\tvar thisModelCid = $( this ).attr( \"data-model-cid\" );\n\n\t\t\t\tif( thisModelCid )\n\t\t\t\t{\n\t\t\t\t\t// remove the current model and then add it back (at the end of the collection).\n\t\t\t\t\t// When we are done looping through all models, they will be in the correct order.\n\t\t\t\t\tvar thisModel = _this.collection.get( thisModelCid );\n\t\t\t\t\tif( thisModel )\n\t\t\t\t\t{\n\t\t\t\t\t\t_this.collection.remove( thisModel, { silent : true } );\n\t\t\t\t\t\t_this.collection.add( thisModel, { silent : true, sort : ! _this.collection.comparator } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tif( this._isBackboneCourierAvailable() ) this.spawn( \"reorder\" );\n\t\t\telse this.collection.trigger( \"reorder\" );\n\n\t\t\tif( this.collection.comparator ) this.collection.sort();\n\n\t\t},\n\n\t\t_getModelViewConstructor : function( thisModel ) {\n\t\t\treturn this.modelView || mDefaultModelViewConstructor;\n\t\t},\n\n\t\t_getModelViewOptions : function( thisModel ) {\n\t\t\tvar modelViewOptions = this.modelViewOptions;\n\t\t\tif( _.isFunction( modelViewOptions ) ) modelViewOptions = modelViewOptions( thisModel );\n\n\t\t\treturn _.extend( { model : thisModel }, modelViewOptions );\n\t\t},\n\n\t\t_createNewModelView : function( model, modelViewOptions ) {\n\t\t\tvar modelViewConstructor = this._getModelViewConstructor( model );\n\t\t\tif( _.isUndefined( modelViewConstructor ) ) throw \"Could not find modelView constructor for model\";\n\n\t\t\tvar newModelView = new( modelViewConstructor )( modelViewOptions );\n\t\t\tnewModelView.collectionListView = newModelView.collectionView = this; // collectionListView for legacy\n\n\t\t\treturn newModelView;\n\t\t},\n\n\t\t_wrapModelView : function( modelView ) {\n\t\t\tvar _this = this;\n\n\t\t\t// we use items client ids as opposed to real ids, since we may not have a representation\n\t\t\t// of these models on the server\n\t\t\tvar modelViewWrapperEl;\n\n\t\t\tif( this._isRenderedAsTable() ) {\n\t\t\t\t// if we are rendering the collection in a table, the template $el is a tr so we just need to set the data-model-cid\n\t\t\t\tmodelViewWrapperEl = modelView.$el;\n\t\t\t\tmodelView.$el.attr( \"data-model-cid\", modelView.model.cid );\n\t\t\t}\n\t\t\telse if( this._isRenderedAsList() ) {\n\t\t\t\t// if we are rendering the collection in a list, we need wrap each item in an (if its not already an )\n\t\t\t\t// and set the data-model-cid\n\t\t\t\tif( modelView.$el.is( \"li\" ) ) {\n\t\t\t\t\tmodelViewWrapperEl = modelView.$el;\n\t\t\t\t\tmodelView.$el.attr( \"data-model-cid\", modelView.model.cid );\n\t\t\t\t} else {\n\t\t\t\t\tmodelViewWrapperEl = modelView.$el.wrapAll( \" \" ).parent();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif( _.isFunction( this.sortableModelsFilter ) )\n\t\t\t\tif( ! this.sortableModelsFilter.call( _this, modelView.model ) ) {\n\t\t\t\t\tmodelViewWrapperEl.addClass( \"not-sortable\" );\n\t\t\t\t\tmodelView.$el.addClass( \"not-selectable\" );\n\t\t\t\t}\n\n\t\t\tif( _.isFunction( this.selectableModelsFilter ) )\n\t\t\t\tif( ! this.selectableModelsFilter.call( _this, modelView.model ) ) {\n\t\t\t\t\tmodelViewWrapperEl.addClass( \"not-selectable\" );\n\t\t\t\t\tmodelView.$el.addClass( \"not-selectable\" );\n\t\t\t\t}\n\n\t\t\treturn modelViewWrapperEl;\n\t\t},\n\n\t\t_convertStringsToInts : function( theArray ) {\n\t\t\treturn _.map( theArray, function( thisEl ) {\n\t\t\t\tif( ! _.isString( thisEl ) ) return thisEl;\n\t\t\t\tvar thisElAsNumber = parseInt( thisEl, 10 );\n\t\t\t\treturn( thisElAsNumber == thisEl ? thisElAsNumber : thisEl );\n\t\t\t} );\n\t\t},\n\n\t\t_containSameElements : function( arrayA, arrayB ) {\n\t\t\tif( arrayA.length != arrayB.length ) return false;\n\t\t\tvar intersectionSize = _.intersection( arrayA, arrayB ).length;\n\t\t\treturn intersectionSize == arrayA.length; // and must also equal arrayB.length, since arrayA.length == arrayB.length\n\t\t},\n\n\t\t_isRenderedAsTable : function() {\n\t\t\treturn this.$el.prop( \"tagName\" ).toLowerCase() === \"table\";\n\t\t},\n\n\t\t_isRenderedAsList : function() {\n\t\t\treturn ! this._isRenderedAsTable();\n\t\t},\n\n\t\t_modelViewHasWrapperLI : function( modelView ) {\n\t\t\treturn this._isRenderedAsList() && ! modelView.$el.is( \"li\" );\n\t\t},\n\n\t\t// Returns the wrapper HTML element for each visible modelView.\n\t\t// When rendering in a table context, the returned elements are the $el of each modelView.\n\t\t// When rendering in a list context,\n\t\t// If the $el of the modelView is an , the returned elements are the $el of each modelView.\n\t\t// Otherwise, the returned elements are the 's the collectionView wrapped around each modelView $el.\n\t\t_getVisibleItemEls : function() {\n\t\t\tvar itemElements = [];\n\t\t\titemElements = this._getContainerEl().find( \"> [data-model-cid]:not(.not-visible)\" );\n\n\t\t\treturn itemElements;\n\t\t},\n\n\t\t_charCodes : {\n\t\t\tupArrow : 38,\n\t\t\tdownArrow : 40\n\t\t},\n\n\t\t_isBackboneCourierAvailable : function() {\n\t\t\treturn !_.isUndefined( Backbone.Courier );\n\t\t},\n\n\t\t_setupSortable : function() {\n\t\t\tvar sortableOptions = _.extend( {\n\t\t\t\taxis : \"y\",\n\t\t\t\tdistance : 10,\n\t\t\t\tforcePlaceholderSize : true,\n\t\t\t\titems : this._isRenderedAsTable() ? \"> tbody > tr:not(.not-sortable)\" : \"> li:not(.not-sortable)\",\n\t\t\t\tstart : _.bind( this._sortStart, this ),\n\t\t\t\tchange : _.bind( this._sortChange, this ),\n\t\t\t\tstop : _.bind( this._sortStop, this ),\n\t\t\t\treceive : _.bind( this._receive, this ),\n\t\t\t\tover : _.bind( this._over, this )\n\t\t\t}, _.result( this, \"sortableOptions\" ) );\n\n\t\t\tthis.$el = this.$el.sortable( sortableOptions );\n\t\t\t//this.$el.sortable( \"enable\" ); // in case it was disabled previously\n\t\t},\n\n\t\t_sortStart : function( event, ui ) {\n\t\t\tvar modelBeingSorted = this.collection.get( ui.item.attr( \"data-model-cid\" ) );\n\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\tthis.spawn( \"sortStart\", { modelBeingSorted : modelBeingSorted } );\n\t\t\telse this.trigger( \"sortStart\", modelBeingSorted );\n\t\t},\n\n\t\t_sortChange : function( event, ui ) {\n\t\t\tvar modelBeingSorted = this.collection.get( ui.item.attr( \"data-model-cid\" ) );\n\n\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\tthis.spawn( \"sortChange\", { modelBeingSorted : modelBeingSorted } );\n\t\t\telse this.trigger( \"sortChange\", modelBeingSorted );\n\t\t},\n\n\t\t_sortStop : function( event, ui ) {\n\t\t\tvar modelBeingSorted = this.collection.get( ui.item.attr( \"data-model-cid\" ) );\n\t\t\tvar modelViewContainerEl = this._getContainerEl();\n\t\t\tvar newIndex = modelViewContainerEl.children().index( ui.item );\n\n\t\t\tif( newIndex == -1 && modelBeingSorted ) {\n\t\t\t\t// the element was removed from this list. can happen if this sortable is connected\n\t\t\t\t// to another sortable, and the item was dropped into the other sortable.\n\t\t\t\tthis.collection.remove( modelBeingSorted );\n\t\t\t}\n\n\t\t\tif( ! modelBeingSorted ) return; // something is wacky. we don't mess with this case, preferring to guarantee that we can always provide a reference to the model\n\n\t\t\tthis._reorderCollectionBasedOnHTML();\n\t\t\tthis.updateDependentControls();\n\n\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\tthis.spawn( \"sortStop\", { modelBeingSorted : modelBeingSorted, newIndex : newIndex } );\n\t\t\telse this.trigger( \"sortStop\", modelBeingSorted, newIndex );\n\t\t},\n\n\t\t_receive : function( event, ui ) {\n\n\t\t\tvar senderListEl = ui.sender;\n\t\t\tvar senderCollectionListView = senderListEl.data( \"view\" );\n\t\t\tif( ! senderCollectionListView || ! senderCollectionListView.collection ) return;\n\n\t\t\tvar newIndex = this._getContainerEl().children().index( ui.item );\n\t\t\tvar modelReceived = senderCollectionListView.collection.get( ui.item.attr( \"data-model-cid\" ) );\n\t\t\tsenderCollectionListView.collection.remove( modelReceived );\n\t\t\tthis.collection.add( modelReceived, { at : newIndex } );\n\t\t\tmodelReceived.collection = this.collection; // otherwise will not get properly set, since modelReceived.collection might already have a value.\n\t\t\tthis.setSelectedModel( modelReceived );\n\t\t},\n\n\t\t_over : function( event, ui ) {\n\t\t\t// when an item is being dragged into the sortable,\n\t\t\t// hide the empty list caption if it exists\n\t\t\tthis._getContainerEl().find( \"> var.empty-list-caption\" ).hide();\n\t\t},\n\n\t\t_onKeydown : function( event ) {\n\t\t\tif( ! this.processKeyEvents ) return true;\n\n\t\t\tvar trap = false;\n\n\t\t\tif( this.getSelectedModels( { by : \"offset\" } ).length == 1 )\n\t\t\t{\n\t\t\t\t// need to trap down and up arrows or else the browser\n\t\t\t\t// will end up scrolling a autoscroll div.\n\n\t\t\t\tvar currentOffset = this.getSelectedModel( { by : \"offset\" } );\n\t\t\t\tif( event.which === this._charCodes.upArrow && currentOffset !== 0 )\n\t\t\t\t{\n\t\t\t\t\tthis.setSelectedModel( currentOffset - 1, { by : \"offset\" } );\n\t\t\t\t\ttrap = true;\n\t\t\t\t}\n\t\t\t\telse if( event.which === this._charCodes.downArrow && currentOffset !== this.collection.length - 1 )\n\t\t\t\t{\n\t\t\t\t\tthis.setSelectedModel( currentOffset + 1, { by : \"offset\" } );\n\t\t\t\t\ttrap = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn ! trap;\n\t\t},\n\n\t\t_listItem_onMousedown : function( theEvent ) {\n\t\t\tvar clickedItemId = this._getClickedItemId( theEvent );\n\n\t\t\tif( clickedItemId ) {\n\t\t\t\tvar clickedModel = this.collection.get( clickedItemId );\n\t\t\t\tif( this._isBackboneCourierAvailable() ) {\n\t\t\t\t\tvar data = {\n\t\t\t\t\t\tclickedModel : clickedModel,\n\t\t\t\t\t\tmetaKeyPressed : theEvent.ctrlKey || theEvent.metaKey\n\t\t\t\t\t};\n\n\t\t\t\t\t_.each( [ 'preventDefault', 'stopPropagation', 'stopImmediatePropagation' ], function( thisMethod ) {\n\t\t\t\t\t\tdata[ thisMethod ] = function() {\n\t\t\t\t\t\t\ttheEvent[ thisMethod ]();\n\t\t\t\t\t\t};\n\t\t\t\t\t} );\n\n\t\t\t\t\tthis.spawn( \"click\", data );\n\t\t\t\t}\n\t\t\t\telse this.trigger( \"click\", clickedModel );\n\t\t\t}\n\n\t\t\tif( ! this.selectable || ! this.clickToSelect ) return;\n\n\t\t\tif( clickedItemId )\n\t\t\t{\n\t\t\t\t// Exit if an unselectable item was clicked\n\t\t\t\tif( _.isFunction( this.selectableModelsFilter ) &&\n\t\t\t\t\t! this.selectableModelsFilter.call( this, this.collection.get( clickedItemId ) ) )\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// a selectable list item was clicked\n\t\t\t\tif( this.selectMultiple && theEvent.shiftKey )\n\t\t\t\t{\n\t\t\t\t\tvar firstSelectedItemIndex = -1;\n\n\t\t\t\t\tif( this.selectedItems.length > 0 )\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.collection.find( function( thisItemModel ) {\n\t\t\t\t\t\t\tfirstSelectedItemIndex++;\n\n\t\t\t\t\t\t\t// exit when we find our first selected element\n\t\t\t\t\t\t\treturn _.contains( this.selectedItems, thisItemModel.cid );\n\t\t\t\t\t\t}, this );\n\t\t\t\t\t}\n\n\t\t\t\t\tvar clickedItemIndex = -1;\n\t\t\t\t\tthis.collection.find( function( thisItemModel ) {\n\t\t\t\t\t\tclickedItemIndex++;\n\n\t\t\t\t\t\t// exit when we find the clicked element\n\t\t\t\t\t\treturn thisItemModel.cid == clickedItemId;\n\t\t\t\t\t}, this );\n\n\t\t\t\t\tvar shiftKeyRootSelectedItemIndex = firstSelectedItemIndex == -1 ? clickedItemIndex : firstSelectedItemIndex;\n\t\t\t\t\tvar minSelectedItemIndex = Math.min( clickedItemIndex, shiftKeyRootSelectedItemIndex );\n\t\t\t\t\tvar maxSelectedItemIndex = Math.max( clickedItemIndex, shiftKeyRootSelectedItemIndex );\n\n\t\t\t\t\tvar newSelectedItems = [];\n\t\t\t\t\tfor( var thisIndex = minSelectedItemIndex; thisIndex <= maxSelectedItemIndex; thisIndex ++ )\n\t\t\t\t\t\tnewSelectedItems.push( this.collection.at( thisIndex ).cid );\n\t\t\t\t\tthis.setSelectedModels( newSelectedItems, { by : \"cid\" } );\n\n\t\t\t\t\t// shift clicking will usually highlight selectable text, which we do not want.\n\t\t\t\t\t// this is a cross browser (hopefully) snippet that deselects all text selection.\n\t\t\t\t\tif( document.selection && document.selection.empty )\n\t\t\t\t\t\tdocument.selection.empty();\n\t\t\t\t\telse if(window.getSelection) {\n\t\t\t\t\t\tvar sel = window.getSelection();\n\t\t\t\t\t\tif( sel && sel.removeAllRanges )\n\t\t\t\t\t\t\tsel.removeAllRanges();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( ( this.selectMultiple || _.contains( this.selectedItems, clickedItemId ) ) && ( this.clickToToggle || theEvent.metaKey || theEvent.ctrlKey ) )\n\t\t\t\t{\n\t\t\t\t\tif( _.contains( this.selectedItems, clickedItemId ) )\n\t\t\t\t\t\tthis.setSelectedModels( _.without( this.selectedItems, clickedItemId ), { by : \"cid\" } );\n\t\t\t\t\telse this.setSelectedModels( _.union( this.selectedItems, [clickedItemId] ), { by : \"cid\" } );\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tthis.setSelectedModels( [ clickedItemId ], { by : \"cid\" } );\n\t\t\t}\n\t\t\telse\n\t\t\t\t// the blank area of the list was clicked\n\t\t\t\tthis.setSelectedModels( [] );\n\n\t\t},\n\n\t\t_listItem_onDoubleClick : function( theEvent ) {\n\n\t\t\tvar clickedItemId = this._getClickedItemId( theEvent );\n\n\t\t\tif( clickedItemId )\n\t\t\t{\n\t\t\t\tvar clickedModel = this.collection.get( clickedItemId );\n\n\t\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\t\tthis.spawn( \"doubleClick\", { clickedModel : clickedModel, metaKeyPressed : theEvent.ctrlKey || theEvent.metaKey } );\n\t\t\t\telse this.trigger( \"doubleClick\", clickedModel );\n\t\t\t}\n\t\t},\n\n\t\t_listBackground_onClick : function( theEvent ) {\n\t\t\tif( ! this.selectable || ! this.clickToSelect ) return;\n\t\t\tif( ! $( theEvent.target ).is( \".collection-view\" ) ) return;\n\n\t\t\tthis.setSelectedModels( [] );\n\t\t}\n\n\t}, {\n\t\tsetDefaultModelViewConstructor : function( theConstructor ) {\n\t\t\tmDefaultModelViewConstructor = theConstructor;\n\t\t}\n\t});\n\n\t/*\n\t* Backbone.ViewOptions, v0.2.4\n\t* Copyright (c)2014 Rotunda Software, LLC.\n\t* Distributed under MIT license\n\t* http://github.com/rotundasoftware/backbone.viewOptions\n\t*/\n\n\tBackbone.ViewOptions = {};\n\n\tBackbone.ViewOptions.add = function( view, optionsDeclarationsProperty ) {\n\t\tif( _.isUndefined( optionsDeclarationsProperty ) ) optionsDeclarationsProperty = \"options\";\n\n\t\t// ****************** Public methods added to view ******************\n\n\t\tview.setOptions = function( options ) {\n\t\t\tvar _this = this;\n\t\t\tvar optionsThatWereChanged = {};\n\t\t\tvar optionsThatWereChangedPreviousValues = {};\n\n\t\t\tvar optionDeclarations = _.result( this, optionsDeclarationsProperty );\n\n\t\t\tif( ! _.isUndefined( optionDeclarations ) ) {\n\t\t\t\tvar normalizedOptionDeclarations = _normalizeOptionDeclarations( optionDeclarations );\n\n\t\t\t\t_.each( normalizedOptionDeclarations, function( thisOptionProperties, thisOptionName ) {\n\t\t\t\t\tvar thisOptionRequired = thisOptionProperties.required;\n\t\t\t\t\tvar thisOptionDefaultValue = thisOptionProperties.defaultValue;\n\n\t\t\t\t\tif( thisOptionRequired ) {\n\t\t\t\t\t\t// note we do not throw an error if a required option is not supplied, but it is\n\t\t\t\t\t\t// found on the object itself (due to a prior call of view.setOptions, most likely)\n\n\t\t\t\t\t\tif( ( ! options || ! _.contains( _.keys( options ), thisOptionName ) ) && _.isUndefined( _this[ thisOptionName ] ) )\n\t\t\t\t\t\t\tthrow new Error( \"Required option \\\"\" + thisOptionName + \"\\\" was not supplied.\" );\n\n\t\t\t\t\t\tif( options && _.contains( _.keys( options ), thisOptionName ) && _.isUndefined( options[ thisOptionName ] ) )\n\t\t\t\t\t\t\tthrow new Error( \"Required option \\\"\" + thisOptionName + \"\\\" can not be set to undefined.\" );\n\t\t\t\t\t}\n\n\t\t\t\t\t// attach the supplied value of this option, or the appropriate default value, to the view object\n\t\t\t\t\tif( options && thisOptionName in options && ! _.isUndefined( options[ thisOptionName ] ) ) {\n\t\t\t\t\t\tvar oldValue = _this[ thisOptionName ];\n\t\t\t\t\t\tvar newValue = options[ thisOptionName ];\n\t\t\t\t\t\t// if this option already exists on the view, and the new value is different,\n\t\t\t\t\t\t// make a note that we will be changing it\n\t\t\t\t\t\tif( ! _.isUndefined( oldValue ) && oldValue !== newValue ) {\n\t\t\t\t\t\t\toptionsThatWereChangedPreviousValues[ thisOptionName ] = oldValue;\n\t\t\t\t\t\t\toptionsThatWereChanged[ thisOptionName ] = newValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_this[ thisOptionName ] = newValue;\n\t\t\t\t\t\t// note we do NOT delete the option off the options object here so that\n\t\t\t\t\t\t// multiple views can be passed the same options object without issue.\n\t\t\t\t\t}\n\t\t\t\t\telse if( _.isUndefined( _this[ thisOptionName ] ) ) {\n\t\t\t\t\t\t// note defaults do not write over any existing properties on the view itself.\n\t\t\t\t\t\t_this[ thisOptionName ] = thisOptionDefaultValue;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif( _.keys( optionsThatWereChanged ).length > 0 ) {\n\t\t\t\tif( _.isFunction( _this.onOptionsChanged ) )\n\t\t\t\t\t_this.onOptionsChanged( optionsThatWereChanged, optionsThatWereChangedPreviousValues );\n\t\t\t\telse if( _.isFunction( _this._onOptionsChanged ) )\n\t\t\t\t\t_this._onOptionsChanged( optionsThatWereChanged, optionsThatWereChangedPreviousValues );\n\t\t\t}\n\t\t};\n\n\t\tview.getOptions = function() {\n\t\t\tvar optionDeclarations = _.result( this, optionsDeclarationsProperty );\n\t\t\tif( _.isUndefined( optionDeclarations ) ) return {};\n\n\t\t\tvar normalizedOptionDeclarations = _normalizeOptionDeclarations( optionDeclarations );\n\t\t\tvar optionsNames = _.keys( normalizedOptionDeclarations );\n\n\t\t\treturn _.pick( this, optionsNames );\n\t\t};\n\t};\n\n\t// ****************** Private Utility Functions ******************\n\n\tfunction _normalizeOptionDeclarations( optionDeclarations ) {\n\t\t// convert our short-hand option syntax (with exclamation marks, etc.)\n\t\t// to a simple array of standard option declaration objects.\n\n\t\tvar normalizedOptionDeclarations = {};\n\n\t\tif( ! _.isArray( optionDeclarations ) ) throw new Error( \"Option declarations must be an array.\" );\n\n\t\t_.each( optionDeclarations, function( thisOptionDeclaration ) {\n\t\t\tvar thisOptionName, thisOptionRequired, thisOptionDefaultValue;\n\n\t\t\tthisOptionRequired = false;\n\t\t\tthisOptionDefaultValue = undefined;\n\n\t\t\tif( _.isString( thisOptionDeclaration ) )\n\t\t\t\tthisOptionName = thisOptionDeclaration;\n\t\t\telse if( _.isObject( thisOptionDeclaration ) ) {\n\t\t\t\tthisOptionName = _.first( _.keys( thisOptionDeclaration ) );\n\t\t\t\tif( _.isFunction( thisOptionDeclaration[ thisOptionName ] ) )\n\t\t\t\t\tthisOptionDefaultValue = thisOptionDeclaration[ thisOptionName ];\n\t\t\t\telse\n\t\t\t\t\tthisOptionDefaultValue = _.clone( thisOptionDeclaration[ thisOptionName ] );\n\t\t\t}\n\t\t\telse throw new Error( \"Each element in the option declarations array must be either a string or an object.\" );\n\n\t\t\tif( thisOptionName[ thisOptionName.length - 1 ] === \"!\" ) {\n\t\t\t\tthisOptionRequired = true;\n\t\t\t\tthisOptionName = thisOptionName.slice( 0, thisOptionName.length - 1 );\n\t\t\t}\n\n\t\t\tnormalizedOptionDeclarations[ thisOptionName ] = normalizedOptionDeclarations[ thisOptionName ] || {};\n\t\t\tnormalizedOptionDeclarations[ thisOptionName ].required = thisOptionRequired;\n\t\t\tif( ! _.isUndefined( thisOptionDefaultValue ) ) normalizedOptionDeclarations[ thisOptionName ].defaultValue = thisOptionDefaultValue;\n\t\t} );\n\n\t\treturn normalizedOptionDeclarations;\n\t}\n\n\n\t// Backbone.BabySitter\n\t// -------------------\n\t// v0.0.6\n\t//\n\t// Copyright (c)2013 Derick Bailey, Muted Solutions, LLC.\n\t// Distributed under MIT license\n\t//\n\t// http://github.com/babysitterjs/backbone.babysitter\n\n\t// Backbone.ChildViewContainer\n\t// ---------------------------\n\t//\n\t// Provide a container to store, retrieve and\n\t// shut down child views.\n\n\tChildViewContainer = (function(Backbone, _){\n\n\t\t// Container Constructor\n\t\t// ---------------------\n\n\t\tvar Container = function(views){\n\t\t\tthis._views = {};\n\t\t\tthis._indexByModel = {};\n\t\t\tthis._indexByCustom = {};\n\t\t\tthis._updateLength();\n\n\t\t\t_.each(views, this.add, this);\n\t\t};\n\n\t\t// Container Methods\n\t\t// -----------------\n\n\t\t_.extend(Container.prototype, {\n\n\t\t\t// Add a view to this container. Stores the view\n\t\t\t// by `cid` and makes it searchable by the model\n\t\t\t// cid (and model itself). Optionally specify\n\t\t\t// a custom key to store an retrieve the view.\n\t\t\tadd: function(view, customIndex){\n\t\t\t\tvar viewCid = view.cid;\n\n\t\t\t\t// store the view\n\t\t\t\tthis._views[viewCid] = view;\n\n\t\t\t\t// index it by model\n\t\t\t\tif (view.model){\n\t\t\t\t\tthis._indexByModel[view.model.cid] = viewCid;\n\t\t\t\t}\n\n\t\t\t\t// index by custom\n\t\t\t\tif (customIndex){\n\t\t\t\t\tthis._indexByCustom[customIndex] = viewCid;\n\t\t\t\t}\n\n\t\t\t\tthis._updateLength();\n\t\t\t},\n\n\t\t\t// Find a view by the model that was attached to\n\t\t\t// it. Uses the model's `cid` to find it.\n\t\t\tfindByModel: function(model){\n\t\t\t\treturn this.findByModelCid(model.cid);\n\t\t\t},\n\n\t\t\t// Find a view by the `cid` of the model that was attached to\n\t\t\t// it. Uses the model's `cid` to find the view `cid` and\n\t\t\t// retrieve the view using it.\n\t\t\tfindByModelCid: function(modelCid){\n\t\t\t\tvar viewCid = this._indexByModel[modelCid];\n\t\t\t\treturn this.findByCid(viewCid);\n\t\t\t},\n\n\t\t\t// Find a view by a custom indexer.\n\t\t\tfindByCustom: function(index){\n\t\t\t\tvar viewCid = this._indexByCustom[index];\n\t\t\t\treturn this.findByCid(viewCid);\n\t\t\t},\n\n\t\t\t// Find by index. This is not guaranteed to be a\n\t\t\t// stable index.\n\t\t\tfindByIndex: function(index){\n\t\t\t\treturn _.values(this._views)[index];\n\t\t\t},\n\n\t\t\t// retrieve a view by it's `cid` directly\n\t\t\tfindByCid: function(cid){\n\t\t\t\treturn this._views[cid];\n\t\t\t},\n\n\t\t\tfindIndexByCid : function( cid ) {\n\t\t\t\tvar index = -1;\n\t\t\t\tvar view = _.find( this._views, function ( view ) {\n\t\t\t\t\tindex++;\n\t\t\t\t\tif( view.model.cid == cid )\n\t\t\t\t\t\treturn view;\n\t\t\t\t} );\n\t\t\t\treturn ( view ) ? index : -1;\n\t\t\t},\n\n\t\t\t// Remove a view\n\t\t\tremove: function(view){\n\t\t\t\tvar viewCid = view.cid;\n\n\t\t\t\t// delete model index\n\t\t\t\tif (view.model){\n\t\t\t\t\tdelete this._indexByModel[view.model.cid];\n\t\t\t\t}\n\n\t\t\t\t// delete custom index\n\t\t\t\t_.any(this._indexByCustom, function(cid, key) {\n\t\t\t\t\tif (cid === viewCid) {\n\t\t\t\t\t\tdelete this._indexByCustom[key];\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\n\t\t\t\t// remove the view from the container\n\t\t\t\tdelete this._views[viewCid];\n\n\t\t\t\t// update the length\n\t\t\t\tthis._updateLength();\n\t\t\t},\n\n\t\t\t// Call a method on every view in the container,\n\t\t\t// passing parameters to the call method one at a\n\t\t\t// time, like `function.call`.\n\t\t\tcall: function(method){\n\t\t\t\tthis.apply(method, _.tail(arguments));\n\t\t\t},\n\n\t\t\t// Apply a method on every view in the container,\n\t\t\t// passing parameters to the call method one at a\n\t\t\t// time, like `function.apply`.\n\t\t\tapply: function(method, args){\n\t\t\t\t_.each(this._views, function(view){\n\t\t\t\t\tif (_.isFunction(view[method])){\n\t\t\t\t\t\tview[method].apply(view, args || []);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t// Update the `.length` attribute on this container\n\t\t\t_updateLength: function(){\n\t\t\t\tthis.length = _.size(this._views);\n\t\t\t}\n\t\t});\n\n\t\t// Borrowing this code from Backbone.Collection:\n\t\t// http://backbonejs.org/docs/backbone.html#section-106\n\t\t//\n\t\t// Mix in methods from Underscore, for iteration, and other\n\t\t// collection related features.\n\t\tvar methods = ['forEach', 'each', 'map', 'find', 'detect', 'filter',\n\t\t\t 'select', 'reject', 'every', 'all', 'some', 'any', 'include',\n\t\t\t 'contains', 'invoke', 'toArray', 'first', 'initial', 'rest',\n\t\t\t 'last', 'without', 'isEmpty', 'pluck'];\n\n\t\t_.each(methods, function(method) {\n\t\t\tContainer.prototype[method] = function() {\n\t\t\t\tvar views = _.values(this._views);\n\t\t\t\tvar args = [views].concat(_.toArray(arguments));\n\t\t\t\treturn _[method].apply(_, args);\n\t\t\t};\n\t\t});\n\n\t\t// return the public API\n\t\treturn Container;\n\t})(Backbone, _);\n\n\treturn Backbone.CollectionView;\n} ) );\n\n","/**\n * backbone.trackit - 0.1.0\n *\n * The MIT License\n * Copyright (c) 2013 The New York Times, CMS Group, Matthew DeLambo \n *\n * @since 7.4.0 Added support for deep models (attributes that are objects themselves).\n */\n(function() {\n\n\t// Unsaved Record Keeping\n\t// ----------------------\n\n\t// Collection of all models in an app that have unsaved changes.\n\tvar unsavedModels = [];\n\n\t// If the given model has unsaved changes then add it to\n\t// the `unsavedModels` collection, otherwise remove it.\n\tvar updateUnsavedModels = function(model) {\n\t\tif (!_.isEmpty(model._unsavedChanges)) {\n\t\t\tif (!_.findWhere(unsavedModels, {cid:model.cid})) unsavedModels.push(model);\n\t\t} else {\n\t\t\tunsavedModels = _.filter(unsavedModels, function(m) { return model.cid != m.cid; });\n\t\t}\n\t};\n\n\t// Unload Handlers\n\t// ---------------\n\n\t// Helper which returns a prompt message for an unload handler.\n\t// Uses the given function name (one of the callback names\n\t// from the `model.unsaved` configuration hash) to evaluate\n\t// whether a prompt is needed/returned.\n\tvar getPrompt = function(fnName) {\n\t\tvar prompt, args = _.rest(arguments);\n\t\t// Evaluate and return a boolean result. The given `fn` may be a\n\t\t// boolean value, a function, or the name of a function on the model.\n\t\tvar evaluateModelFn = function(model, fn) {\n\t\t\tif (_.isBoolean(fn)) return fn;\n\t\t\treturn (_.isString(fn) ? model[fn] : fn).apply(model, args);\n\t\t};\n\t\t_.each(unsavedModels, function(model) {\n\t\t\tif (!prompt && evaluateModelFn(model, model._unsavedConfig[fnName]))\n\t\t\t\tprompt = model._unsavedConfig.prompt;\n\t\t});\n\t\treturn prompt;\n\t};\n\n\t// Wrap Backbone.History.navigate so that in-app routing\n\t// (`router.navigate('/path')`) can be intercepted with a\n\t// confirmation if there are any unsaved models.\n\tBackbone.History.prototype.navigate = _.wrap(Backbone.History.prototype.navigate, function(oldNav, fragment, options) {\n\t\tvar prompt = getPrompt('unloadRouterPrompt', fragment, options);\n\t\tif (prompt) {\n\t\t\tif (confirm(prompt + ' \\n\\nAre you sure you want to leave this page?')) {\n\t\t\t\toldNav.call(this, fragment, options);\n\t\t\t}\n\t\t} else {\n\t\t\toldNav.call(this, fragment, options);\n\t\t}\n\t});\n\n\t// Create a browser unload handler which is triggered\n\t// on the refresh, back, or forward button.\n\twindow.onbeforeunload = function(e) {\n\t\treturn getPrompt('unloadWindowPrompt', e);\n\t};\n\n\t// Backbone.Model API\n\t// ------------------\n\n\t_.extend(Backbone.Model.prototype, {\n\n\t\tunsaved: {},\n\t\t_trackingChanges: false,\n\t\t_originalAttrs: {},\n\t\t_unsavedChanges: {},\n\n\t\t// Opt in to tracking attribute changes\n\t\t// between saves.\n\t\tstartTracking: function() {\n\t\t\tthis._unsavedConfig = _.extend({}, {\n\t\t\t\tprompt: 'You have unsaved changes!',\n\t\t\t\tunloadRouterPrompt: false,\n\t\t\t\tunloadWindowPrompt: false\n\t\t\t}, this.unsaved || {});\n\t\t\tthis._trackingChanges = true;\n\t\t\tthis._resetTracking();\n\t\t\tthis._triggerUnsavedChanges();\n\t\t\treturn this;\n\t\t},\n\n\t\t// Resets the default tracking values\n\t\t// and stops tracking attribute changes.\n\t\tstopTracking: function() {\n\t\t\tthis._trackingChanges = false;\n\t\t\tthis._originalAttrs = {};\n\t\t\tthis._unsavedChanges = {};\n\t\t\tthis._triggerUnsavedChanges();\n\t\t\treturn this;\n\t\t},\n\n\t\t// Gets rid of accrued changes and\n\t\t// resets state.\n\t\trestartTracking: function() {\n\t\t\tthis._resetTracking();\n\t\t\tthis._triggerUnsavedChanges();\n\t\t\treturn this;\n\t\t},\n\n\t\t// Restores this model's attributes to\n\t\t// their original values since tracking\n\t\t// started, the last save, or last restart.\n\t\tresetAttributes: function() {\n\t\t\tif (!this._trackingChanges) return;\n\t\t\tthis.attributes = this._originalAttrs;\n\t\t\tthis._resetTracking();\n\t\t\tthis._triggerUnsavedChanges();\n\t\t\treturn this;\n\t\t},\n\n\t\t// Symmetric to Backbone's `model.changedAttributes()`,\n\t\t// except that this returns a hash of the model's attributes that\n\t\t// have changed since the last save, or `false` if there are none.\n\t\t// Like `changedAttributes`, an external attributes hash can be\n\t\t// passed in, returning the attributes in that hash which differ\n\t\t// from the model.\n\t\tunsavedAttributes: function(attrs) {\n\t\t\tif (!attrs) return _.isEmpty(this._unsavedChanges) ? false : _.clone(this._unsavedChanges);\n\t\t\tvar val, changed = false, old = this._unsavedChanges;\n\t\t\tfor (var attr in attrs) {\n\t\t\t\tif (_.isEqual(old[attr], (val = attrs[attr]))) continue;\n\t\t\t\t(changed || (changed = {}))[attr] = val;\n\t\t\t}\n\t\t\treturn changed;\n\t\t},\n\n\t\t/**\n\t\t * Reset tracking.\n\t\t *\n\t\t * @since 7.4.0 Added support for deep models (attributes that are objects themselves),\n\t\t * by using `_.deepClone` in place of `_.clone`.\n\t\t */\n\t\t_resetTracking: function() {\n\t\t\tthis._originalAttrs = _.deepClone(this.attributes);\n\t\t\tthis._unsavedChanges = {};\n\t\t},\n\n\t\t// Trigger an `unsavedChanges` event on this model,\n\t\t// supplying the result of whether there are unsaved\n\t\t// changes and a changed attributes hash.\n\t\t_triggerUnsavedChanges: function() {\n\t\t\tthis.trigger('unsavedChanges', !_.isEmpty(this._unsavedChanges), _.clone(this._unsavedChanges));\n\t\t\tif (this.unsaved) updateUnsavedModels(this);\n\t\t}\n\t});\n\n\t// Wrap `model.set()` and update the internal\n\t// unsaved changes record keeping.\n\tBackbone.Model.prototype.set = _.wrap(Backbone.Model.prototype.set, function(oldSet, key, val, options) {\n\t\tvar attrs, ret;\n\t\tif (key == null) return this;\n\t\t// Handle both `\"key\", value` and `{key: value}` -style arguments.\n\t\tif (typeof key === 'object') {\n\t\t\tattrs = key;\n\t\t\toptions = val;\n\t\t} else {\n\t\t\t(attrs = {})[key] = val;\n\t\t}\n\t\toptions || (options = {});\n\n\t\t// Delegate to Backbone's set.\n\t\tret = oldSet.call(this, attrs, options);\n\n\t\tif (this._trackingChanges && !options.silent) {\n\t\t\t_.each(attrs, _.bind(function(val, key) {\n\t\t\t\tif (_.isEqual(this._originalAttrs[key], val))\n\t\t\t\t\tdelete this._unsavedChanges[key];\n\t\t\t\telse\n\t\t\t\t\tthis._unsavedChanges[key] = val;\n\t\t\t}, this));\n\t\t\tthis._triggerUnsavedChanges();\n\t\t}\n\t\treturn ret;\n\t});\n\n\t// Intercept `model.save()` and reset tracking/unsaved\n\t// changes if it was successful.\n\tBackbone.sync = _.wrap(Backbone.sync, function(oldSync, method, model, options) {\n\t\toptions || (options = {});\n\n\t\tif (method == 'update') {\n\t\t\toptions.success = _.wrap(options.success, _.bind(function(oldSuccess, data, textStatus, jqXHR) {\n\t\t\t\tvar ret;\n\t\t\t\tif (oldSuccess) ret = oldSuccess.call(this, data, textStatus, jqXHR);\n\t\t\t\tif (model._trackingChanges) {\n\t\t\t\t\tmodel._resetTracking();\n\t\t\t\t\tmodel._triggerUnsavedChanges();\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}, this));\n\t\t}\n\t\treturn oldSync(method, model, options);\n\t});\n\n})();\n\ndefine(\"vendor/backbone.trackit\", function(){});\n\n","/**\n * Image object model for use in various models for the 'image' attribute\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Models/Image',[], function() {\n\n\treturn Backbone.Model.extend( {\n\n\t\tdefaults: {\n\t\t\tenabled: 'no',\n\t\t\tid: '',\n\t\t\tsize: 'full',\n\t\t\tsrc: '',\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tthis.startTracking();\n\t\t},\n\n\t} );\n} );\n\n","/**\n * Model relationships mixin\n *\n * @since 3.16.0\n * @version 3.16.11\n */\ndefine( 'Models/_Relationships',[], function() {\n\n\treturn {\n\n\t\t/**\n\t\t * Default relationship settings object\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\trelationship_defaults: {\n\t\t\tparent: {},\n\t\t\tchildren: {},\n\t\t},\n\n\t\t/**\n\t\t * Relationship settings object\n\t\t * Should be overridden in the model\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\trelationships: {},\n\n\t\t/**\n\t\t * Initialize all parent and child relationships\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinit_relationships: function( options ) {\n\n\t\t\tvar rels = this.get_relationships();\n\n\t\t\t// initialize parent relationships\n\t\t\t// useful when adding a model to ensure parent is initialized\n\t\t\tif ( rels.parent && options && options.parent ) {\n\t\t\t\tthis.set_parent( options.parent );\n\t\t\t}\n\n\t\t\t// initialize all children relationships\n\t\t\t_.each( rels.children, function( child_data, child_key ) {\n\n\t\t\t\tif ( ! child_data.conditional || true === child_data.conditional( this ) ) {\n\n\t\t\t\t\tvar child_val = this.get( child_key ),\n\t\t\t\t\t\tchild;\n\n\t\t\t\t\tif ( child_data.lookup ) {\n\t\t\t\t\t\tchild = child_data.lookup( child_val );\n\t\t\t\t\t} else if ( 'model' === child_data.type ) {\n\t\t\t\t\t\tchild = window.llms_builder.construct.get_model( child_data.class, child_val );\n\t\t\t\t\t} else if ( 'collection' === child_data.type ) {\n\t\t\t\t\t\tchild = window.llms_builder.construct.get_collection( child_data.class, child_val );\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.set( child_key, child );\n\n\t\t\t\t\t// if the child defines a parent, save a reference to the parent on the child\n\t\t\t\t\tif ( 'model' === child_data.type ) {\n\t\t\t\t\t\tthis._maybe_set_parent_reference( child );\n\n\t\t\t\t\t\t// save directly to each model in the collection\n\t\t\t\t\t} else if ( 'collection' === child_data.type ) {\n\n\t\t\t\t\t\tchild.parent = this;\n\t\t\t\t\t\tchild.each( function( child_model ) {\n\n\t\t\t\t\t\t\tthis._maybe_set_parent_reference( child_model );\n\n\t\t\t\t\t\t}, this );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the property names for all children of the model\n\t\t *\n\t\t * @return array\n\t\t * @since 3.16.11\n\t\t * @version 3.16.11\n\t\t */\n\t\tget_child_props: function() {\n\n\t\t\tvar props = [];\n\n\t\t\t_.each( this.get_relationships().children, function( data, key ) {\n\n\t\t\t\tif ( ! data.conditional || true === data.conditional( this ) ) {\n\t\t\t\t\tprops.push( key );\n\t\t\t\t}\n\n\t\t\t}, this );\n\n\t\t\treturn props;\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the model's parent (if set)\n\t\t *\n\t\t * @return obj|false\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_parent: function() {\n\n\t\t\tvar rels = this.get_relationships();\n\n\t\t\tif ( rels.parent ) {\n\t\t\t\treturn rels.parent.reference;\n\t\t\t}\n\n\t\t\treturn false;\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve relationships for the model\n\t\t * Extends with defaults\n\t\t *\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_relationships: function() {\n\n\t\t\treturn $.extend( true, this.relationships, this.relationship_defaults );\n\n\t\t},\n\n\t\t/**\n\t\t * Set the parent reference for the given model\n\t\t *\n\t\t * @param obj obj parent model obj\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tset_parent: function( obj ) {\n\t\t\tthis.relationships.parent.reference = obj;\n\t\t},\n\n\t\t/**\n\t\t * Set up the parent relationships for qualifying children during relationship initialization\n\t\t *\n\t\t * @param obj model child model\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_maybe_set_parent_reference: function( model ) {\n\n\t\t\tif ( ! model || ! model.get_relationships ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar rels = model.get_relationships();\n\t\t\tif ( rels.parent && rels.parent.model === this.get( 'type' ) ) {\n\t\t\t\tmodel.set_parent( this );\n\t\t\t}\n\n\t\t},\n\n\t};\n\n} );\n\n","/**\n * Quiz Question Choice\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Models/QuestionChoice',[ 'Models/Image', 'Models/_Relationships' ], function( Image, Relationships ) {\n\n\treturn Backbone.Model.extend( _.defaults( {\n\n\t\t/**\n\t\t * Model relationships\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\trelationships: {\n\t\t\tparent: {\n\t\t\t\tmodel: 'llms_question',\n\t\t\t\ttype: 'model',\n\t\t\t},\n\t\t\tchildren: {\n\t\t\t\tchoice: {\n\t\t\t\t\tconditional: function( model ) {\n\t\t\t\t\t\treturn ( 'image' === model.get( 'choice_type' ) );\n\t\t\t\t\t},\n\t\t\t\t\tclass: 'Image',\n\t\t\t\t\tmodel: 'image',\n\t\t\t\t\ttype: 'model',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Model defaults\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tdefaults: function() {\n\t\t\treturn {\n\t\t\t\tid: _.uniqueId( 'temp_' ),\n\t\t\t\tchoice: '',\n\t\t\t\tchoice_type: 'text',\n\t\t\t\tcorrect: false,\n\t\t\t\tmarker: 'A',\n\t\t\t\tquestion_id: '',\n\t\t\t\ttype: 'choice',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Initializer\n\t\t *\n\t\t * @param obj data object of model attributes\n\t\t * @param obj options additional options\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function( data, options ) {\n\n\t\t\tthis.startTracking();\n\t\t\tthis.init_relationships( options );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the choice's parent question\n\t\t *\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_parent: function() {\n\t\t\treturn this.collection.parent;\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the ID used when trashing the model\n\t\t *\n\t\t * @return string\n\t\t * @since 3.17.1\n\t\t * @version 3.17.1\n\t\t */\n\t\tget_trash_id: function() {\n\t\t\treturn this.get( 'question_id' ) + ':' + this.get( 'id' );\n\t\t},\n\n\t\t/**\n\t\t * Determine if \"selection\" is enabled for the question type\n\t\t * Choice type questions are selectable by reorder type questions are not but still use choices\n\t\t *\n\t\t * @return {Boolean}\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tis_selectable: function() {\n\t\t\treturn this.get_parent().get( 'question_type' ).get_choice_selectable();\n\t\t},\n\n\t}, Relationships ) );\n\n} );\n\n","/**\n * Question Choice Collection\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Collections/QuestionChoices',[ 'Models/QuestionChoice' ], function( model ) {\n\n\treturn Backbone.Collection.extend( {\n\n\t\t/**\n\t\t * Model for collection items\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\tmodel: model,\n\n\t\tinitialize: function() {\n\n\t\t\t// reorder called by QuestionList view when sortable drops occur\n\t\t\tthis.on( 'reorder', this.update_order );\n\n\t\t\t// when a choice is added or removed, update order\n\t\t\tthis.on( 'add', this.update_order );\n\t\t\tthis.on( 'remove', this.update_order );\n\n\t\t\t// when a choice is added or remove, ensure min/max correct answers exist\n\t\t\tthis.on( 'add', this.update_correct );\n\t\t\tthis.on( 'remove', this.update_correct );\n\n\t\t\t// when a choice is toggled, ensure min/max correct exist\n\t\t\tthis.on( 'correct-update', this.update_correct );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the number of correct choices in the collection\n\t\t *\n\t\t * @return int\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tcount_correct: function() {\n\n\t\t\treturn _.size( this.get_correct() );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the collection reduced to only correct choices\n\t\t *\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_correct: function() {\n\t\t\treturn this.filter( function( choice ) {\n\t\t\t\treturn choice.get( 'correct' );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Ensure min/max correct choices exist in the collection based on the question's settings\n\t\t *\n\t\t * @param obj choice model of the choice that was toggled\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_correct: function( choice ) {\n\n\t\t\tif ( ! this.parent.get( 'question_type' ).get_choice_selectable() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar siblings = this.without( choice ), // exclude the toggled choice from loops\n\t\t\t\tquestion = this.parent;\n\n\t\t\t// if multiple choices aren't enabled turn all other choices to incorrect\n\t\t\tif ( 'no' === question.get( 'multi_choices' ) ) {\n\t\t\t\t_.each( siblings, function( model ) {\n\t\t\t\t\tmodel.set( 'correct', false );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// if we don't have a single correct answer & the question has points, set one\n\t\t\t// allows users to create quizzes / questions with no points and therefore no correct answers are allowed\n\t\t\tif ( 0 === this.count_correct() && question.get( 'points' ) > 0 ) {\n\t\t\t\tvar models = 1 === this.size() ? this.models : siblings;\n\t\t\t\t_.first( models ).set( 'correct', true );\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Update the marker attr of each choice in the list to reflect the order of the collection\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_order: function() {\n\n\t\t\tvar self = this,\n\t\t\t\tquestion = this.parent;\n\n\t\t\tthis.each( function( choice ) {\n\t\t\t\tchoice.set( 'marker', question.get( 'question_type' ).get_choice_markers()[ self.indexOf( choice ) ] );\n\t\t\t} );\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Quiz Question Type\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Models/QuestionType',[], function() {\n\n\treturn Backbone.Model.extend( {\n\n\t\t/**\n\t\t * Get model default attributes\n\t\t *\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tdefaults: function() {\n\t\t\treturn {\n\t\t\t\tchoices: false,\n\t\t\t\tclarifications: true,\n\t\t\t\tdefault_choices: [],\n\t\t\t\tdescription: true,\n\t\t\t\ticon: 'question',\n\t\t\t\tid: 'generic',\n\t\t\t\timage: true,\n\t\t\t\tkeywords: [],\n\t\t\t\tname: 'Generic',\n\t\t\t\tplaceholder: '',\n\t\t\t\tpoints: true,\n\t\t\t\tvideo: true,\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Retrieve an array of keywords for the question type\n\t\t * Used for filtering questions by search term in the quiz builder\n\t\t *\n\t\t * @return array\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_keywords: function() {\n\n\t\t\tvar name = this.get( 'name' ),\n\t\t\t\twords = [ name ];\n\n\t\t\treturn words.concat( this.get( 'keywords' ) ).concat( name.split( ' ' ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Get marker array for the question choices\n\t\t *\n\t\t * @return array\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_choice_markers: function() {\n\n\t\t\treturn this._get_choice_option( 'markers' );\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if the question's choices are selectable\n\t\t *\n\t\t * @return bool\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_choice_selectable: function() {\n\n\t\t\treturn this._get_choice_option( 'selectable' );\n\n\t\t},\n\n\t\t/**\n\t\t * Get the choice type (text,image)\n\t\t *\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_choice_type: function() {\n\n\t\t\treturn this._get_choice_option( 'type' );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve defined min. choices\n\t\t *\n\t\t * @return int\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_min_choices: function() {\n\n\t\t\treturn this._get_choice_option( 'min' );\n\n\t\t},\n\n\t\t/**\n\t\t * Get type-defined max choices\n\t\t *\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_max_choices: function() {\n\n\t\t\treturn this._get_choice_option( 'max' );\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if multi-choice selection is enabled\n\t\t *\n\t\t * @return bool\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_multi_choices: function() {\n\n\t\t\tvar choices = this.get( 'choices' );\n\n\t\t\tif ( ! choices ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this._get_choice_option( 'multi' );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve data from the type's \"choices\" attribute\n\t\t * Allows quick handling of types with no choice definitions w/o additional checks\n\t\t *\n\t\t * @param string option name of the choice option to retrieve\n\t\t * @return mixed\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_get_choice_option: function( option ) {\n\n\t\t\tvar choices = this.get( 'choices' );\n\n\t\t\tif ( ! choices || ! choices[ option ] ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn choices[ option ];\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Utility functions for Models.\n *\n * @since 3.16.0\n * @version 7.4.0\n */\ndefine( 'Models/_Utilities',[], function() {\n\n\treturn {\n\n\t\tfields: [],\n\n\t\t/**\n\t\t * Override Backbone `set` method.\n\t\t *\n\t\t * Takes into account attributes of the form object[prop].\n\t\t *\n\t\t * @since 7.4.0\n\t\t *\n\t\t * @param {Mixed} attr The attribute to be set.\n\t\t * @param {Mixed} val The value to set.\n\t\t */\n\t\tset: function ( attr, val ) {\n\n\t\t\tif ( 'string' === typeof attr ) {\n\n\t\t\t\tconst matches = attr.match( /(.*?)\\[(.*?)\\]/ );\n\t\t\t\tif ( matches && 3 === matches.length ) {\n\n\t\t\t\t\tconst\n\t\t\t\t\t\trealAttr = matches[1],\n\t\t\t\t\t\tcurrentVal = Backbone.Model.prototype.get.call( this, realAttr );\n\n\t\t\t\t\tvar newVal = undefined !== currentVal ? currentVal : {};\n\n\t\t\t\t\tnewVal[ matches[2] ] = val;\n\n\t\t\t\t\targuments[0] = realAttr;\n\t\t\t\t\targuments[1] = newVal;\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Continue with Backbone default `set` behavior.\n\t\t\tBackbone.Model.prototype.set.apply( this, arguments );\n\n\t\t},\n\n\t\t/**\n\t\t * Override Backbone `get` method.\n\t\t *\n\t\t * Takes into account attributes of the form object[prop].\n\t\t *\n\t\t * @since 7.4.0\n\t\t *\n\t\t * @param {Mixed} attr The attribute name.\n\t\t */\n\t\tget: function( attr ) {\n\n\t\t\tconst matches = attr.match( /(.*?)\\[(.*?)\\]/ );\n\t\t\tif ( matches && 3 === matches.length ) {\n\t\t\t\tconst val = Backbone.Model.prototype.get.call( this, matches[1] );\n\t\t\t\tif ( val && undefined !== val[ matches[2] ] ) {\n\t\t\t\t\treturn val[ matches[2] ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Continue with Backbone default `get` behavior.\n\t\t\treturn Backbone.Model.prototype.get.call( this, attr );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the edit post link for the current model.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return string\n\t\t */\n\t\tget_edit_post_link: function() {\n\n\t\t\tif ( this.has_temp_id() ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn window.llms_builder.admin_url + 'post.php?post=' + this.get( 'id' ) + '&action=edit';\n\n\t\t},\n\n\t\tget_view_post_link: function() {\n\t\t\tif ( this.has_temp_id() ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif ( this.get( 'permalink' ) ) {\n\t\t\t\treturn this.get( 'permalink' );\n\t\t\t}\n\n\t\t\tif ( this.get( 'status' ) === 'publish' ) {\n\t\t\t\treturn window.llms_builder.home_url + '?p=' + this.get( 'id' );\n\t\t\t}\n\n\t\t\treturn window.llms_builder.home_url + '?p=' + this.get( 'id' ) + '&preview=true&post_type=' + this.get( 'type' );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve schema fields defined for the model\n\t\t *\n\t\t * @return object\n\t\t * @since 3.17.0\n\t\t * @version 3.17.1\n\t\t */\n\t\tget_settings_fields: function() {\n\n\t\t\tvar schema = this.schema || {};\n\t\t\treturn window.llms_builder.schemas.get( schema, this.get( 'type' ).replace( 'llms_', '' ), this );\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if the model has a temporary ID\n\t\t *\n\t\t * @return {Boolean}\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\thas_temp_id: function() {\n\n\t\t\treturn ( ! _.isNumber( this.get( 'id' ) ) && 0 === this.get( 'id' ).indexOf( 'temp_' ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Initializes 3rd party custom schema (field) data for a model\n\t\t *\n\t\t * @return void\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tinit_custom_schema: function() {\n\n\t\t\tvar groups = _.filter( this.get_settings_fields(), function( group ) {\n\t\t\t\treturn ( group.custom );\n\t\t\t} );\n\n\t\t\t_.each( groups, function( group ) {\n\t\t\t\t_.each( _.flatten( group.fields ), function( field ) {\n\n\t\t\t\t\tvar keys = [ field.attribute ],\n\t\t\t\t\t\tcustoms = this.get( 'custom' );\n\n\t\t\t\t\tif ( field.switch_attribute ) {\n\t\t\t\t\t\tkeys.push( field.switch_attribute );\n\t\t\t\t\t}\n\n\t\t\t\t\t_.each( keys, function( key ) {\n\t\t\t\t\t\tvar attr = field.attribute_prefix ? field.attribute_prefix + key : key;\n\t\t\t\t\t\tif ( customs && customs[ attr ] ) {\n\t\t\t\t\t\t\tthis.set( key, customs[ attr ][0] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this );\n\n\t\t\t\t}, this );\n\t\t\t}, this );\n\n\t\t},\n\n\t};\n\n} );\n\n","/**\n * Quiz Question\n *\n * @since 3.16.0\n * @version 3.27.0\n */\ndefine( 'Models/Question',[\n\t\t'Models/Image',\n\t\t'Collections/Questions',\n\t\t'Collections/QuestionChoices',\n\t\t'Models/QuestionType',\n\t\t'Models/_Relationships',\n\t\t'Models/_Utilities'\n\t], function(\n\t\tImage,\n\t\tQuestions,\n\t\tQuestionChoices,\n\t\tQuestionType,\n\t\tRelationships,\n\t\tUtilities\n\t) {\n\n\t\treturn Backbone.Model.extend( _.defaults( {\n\n\t\t\t/**\n\t\t\t * Model relationships\n\t\t\t *\n\t\t\t * @type {Object}\n\t\t\t */\n\t\t\trelationships: {\n\t\t\t\tparent: {\n\t\t\t\t\tmodel: 'llms_quiz',\n\t\t\t\t\ttype: 'model',\n\t\t\t\t},\n\t\t\t\tchildren: {\n\t\t\t\t\tchoices: {\n\t\t\t\t\t\tclass: 'QuestionChoices',\n\t\t\t\t\t\tmodel: 'choice',\n\t\t\t\t\t\ttype: 'collection',\n\t\t\t\t\t},\n\t\t\t\t\timage: {\n\t\t\t\t\t\tclass: 'Image',\n\t\t\t\t\t\tmodel: 'image',\n\t\t\t\t\t\ttype: 'model',\n\t\t\t\t\t},\n\t\t\t\t\tquestions: {\n\t\t\t\t\t\tclass: 'Questions',\n\t\t\t\t\t\tconditional: function( model ) {\n\t\t\t\t\t\t\tvar type = model.get( 'question_type' ),\n\t\t\t\t\t\t\ttype_id = _.isString( type ) ? type : type.get( 'id' );\n\t\t\t\t\t\t\treturn ( 'group' === type_id );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmodel: 'llms_question',\n\t\t\t\t\t\ttype: 'collection',\n\t\t\t\t\t},\n\t\t\t\t\tquestion_type: {\n\t\t\t\t\t\tclass: 'QuestionType',\n\t\t\t\t\t\tlookup: function( val ) {\n\t\t\t\t\t\t\tif ( _.isString( val ) ) {\n\t\t\t\t\t\t\t\treturn window.llms_builder.questions.get( val );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn val;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmodel: 'question_type',\n\t\t\t\t\t\ttype: 'model',\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Model defaults\n\t\t\t *\n\t\t\t * @return obj\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tdefaults: function() {\n\t\t\t\treturn {\n\t\t\t\t\tid: _.uniqueId( 'temp_' ),\n\t\t\t\t\tchoices: [],\n\t\t\t\t\tcontent: '',\n\t\t\t\t\tdescription_enabled: 'no',\n\t\t\t\t\timage: {},\n\t\t\t\t\tmulti_choices: 'no',\n\t\t\t\t\tmenu_order: 1,\n\t\t\t\t\tpoints: 1,\n\t\t\t\t\tquestion_type: 'generic',\n\t\t\t\t\tquestions: [], // for question groups\n\t\t\t\t\tparent_id: '',\n\t\t\t\t\ttitle: '',\n\t\t\t\t\ttype: 'llms_question',\n\t\t\t\t\tvideo_enabled: 'no',\n\t\t\t\t\tvideo_src: '',\n\n\t\t\t\t\t_expanded: false,\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Initializer\n\t\t\t *\n\t\t\t * @param obj data object of data for the model\n\t\t\t * @param obj options additional options\n\t\t\t * @return void\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tinitialize: function( data, options ) {\n\n\t\t\t\tvar self = this;\n\n\t\t\t\tthis.startTracking();\n\t\t\t\tthis.init_relationships( options );\n\n\t\t\t\tif ( false !== this.get( 'question_type' ).choices ) {\n\n\t\t\t\t\tthis._ensure_min_choices();\n\n\t\t\t\t\t// when a choice is removed, maybe add back some defaults so we always have the minimum\n\t\t\t\t\tthis.listenTo( this.get( 'choices' ), 'remove', function() {\n\t\t\t\t\t\t// new items are added at index 0 when there's only 1 item in the collection, not sure why exactly...\n\t\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t\tself._ensure_min_choices();\n\t\t\t\t\t\t}, 0 );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t// ensure question types that don't support points don't record default 1 point in database\n\t\t\t\tif ( ! this.get( 'question_type' ).get( 'points' ) ) {\n\t\t\t\t\tthis.set( 'points', 0 );\n\t\t\t\t}\n\n\t\t\t\t_.delay( function( self ) {\n\t\t\t\t\tself.on( 'change:points', self.get_parent().update_points, self.get_parent() );\n\t\t\t\t}, 1, this );\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Add a new question choice\n\t\t\t *\n\t\t\t * @param obj data object of choice data\n\t\t\t * @param obj options additional options\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tadd_choice: function( data, options ) {\n\n\t\t\t\tvar max = this.get( 'question_type' ).get_max_choices();\n\t\t\t\tif ( this.get( 'choices' ).size() >= max ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tdata = data || {};\n\t\t\t\toptions = options || {};\n\n\t\t\t\tdata.choice_type = this.get( 'question_type' ).get_choice_type();\n\t\t\t\tdata.question_id = this.get( 'id' );\n\t\t\t\toptions.parent = this;\n\n\t\t\t\tvar choice = this.get( 'choices' ).add( data, options );\n\n\t\t\t\tBackbone.pubSub.trigger( 'question-add-choice', choice, this );\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Collapse question_type attribute during full syncs to save to database\n\t\t\t * Not needed because question types cannot be adjusted after question creation\n\t\t\t * Called from sync controller\n\t\t\t *\n\t\t\t * @param obj atts flat object of attributes to be saved to db\n\t\t\t * @param string sync_type full or partial\n\t\t\t * full indicates a force resync or that the model isn't persisted yet\n\t\t\t * @return obj\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tbefore_save: function( atts, sync_type ) {\n\t\t\t\tif ( 'full' === sync_type ) {\n\t\t\t\t\tatts.question_type = this.get( 'question_type' ).get( 'id' );\n\t\t\t\t}\n\t\t\t\treturn atts;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Retrieve the model's parent (if set)\n\t\t\t *\n\t\t\t * @return obj|false\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tget_parent: function() {\n\n\t\t\t\tvar rels = this.get_relationships();\n\n\t\t\t\tif ( rels.parent ) {\n\t\t\t\t\tif ( this.collection && this.collection.parent ) {\n\t\t\t\t\t\treturn this.collection.parent;\n\t\t\t\t\t} else if ( rels.parent.reference ) {\n\t\t\t\t\t\treturn rels.parent.reference;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Retrieve the translated post type name for the model's type\n\t\t\t *\n\t\t\t * @param bool plural if true, returns the plural, otherwise returns singular\n\t\t\t * @return string\n\t\t\t * @since 3.27.0\n\t\t\t * @version 3.27.0\n\t\t\t */\n\t\t\tget_l10n_type: function( plural ) {\n\n\t\t\t\tif ( plural ) {\n\t\t\t\t\treturn LLMS.l10n.translate( 'questions' );\n\t\t\t\t}\n\n\t\t\t\treturn LLMS.l10n.translate( 'question' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Gets the index of the question within it's parent\n\t\t\t * Question numbers skip content elements\n\t\t\t * & content elements skip questions\n\t\t\t *\n\t\t\t * @return int\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tget_type_index: function() {\n\n\t\t\t\t// current models type, used to check the predicate in the filter function below\n\t\t\t\tvar curr_type = this.get( 'question_type' ).get( 'id' ),\n\t\t\t\tquestions;\n\n\t\t\t\tquestions = this.collection.filter( function( question ) {\n\n\t\t\t\t\tvar type = question.get( 'question_type' ).get( 'id' );\n\n\t\t\t\t\t// if current model is not content, return all non-content questions\n\t\t\t\t\tif ( curr_type !== 'content' ) {\n\t\t\t\t\t\treturn ( 'content' !== type );\n\t\t\t\t\t}\n\n\t\t\t\t\t// current model is content, return only content questions\n\t\t\t\t\treturn 'content' === type;\n\n\t\t\t\t} );\n\n\t\t\t\treturn questions.indexOf( this );\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Gets iterator for the given type\n\t\t\t * Questions use numbers and content uses alphabet\n\t\t\t *\n\t\t\t * @return mixed\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tget_type_iterator: function() {\n\n\t\t\t\tvar index = this.get_type_index();\n\n\t\t\t\tif ( -1 === index ) {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\n\t\t\t\tif ( 'content' === this.get( 'question_type' ).get( 'id' ) ) {\n\t\t\t\t\tvar alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split( '' );\n\t\t\t\t\treturn alphabet[ index ];\n\t\t\t\t}\n\n\t\t\t\treturn index + 1;\n\n\t\t\t},\n\n\t\t\tget_qid: function() {\n\n\t\t\t\tvar parent = this.get_parent_question(),\n\t\t\t\tprefix = '';\n\n\t\t\t\tif ( parent ) {\n\n\t\t\t\t\tprefix = parent.get_qid() + '.';\n\n\t\t\t\t}\n\n\t\t\t\t// return short_id + this.get_type_iterator();\n\t\t\t\treturn prefix + this.get_type_iterator();\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Retrieve the parent question (if the question is in a question group)\n\t\t\t *\n\t\t\t * @return obj|false\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tget_parent_question: function() {\n\n\t\t\t\tif ( this.is_in_group() ) {\n\n\t\t\t\t\treturn this.collection.parent;\n\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Retrieve the parent quiz\n\t\t\t *\n\t\t\t * @return obj\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tget_parent_quiz: function() {\n\t\t\t\treturn this.get_parent();\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Points getter\n\t\t\t * ensures that 0 is always returned if the question type doesn't support points\n\t\t\t *\n\t\t\t * @return int\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tget_points: function() {\n\n\t\t\t\tif ( ! this.get( 'question_type' ).get( 'points' ) ) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn this.get( 'points' );\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Retrieve the questions percentage value within the quiz\n\t\t\t *\n\t\t\t * @return string\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tget_points_percentage: function() {\n\n\t\t\t\tvar total = this.get_parent().get( '_points' ),\n\t\t\t\tpoints = this.get( 'points' );\n\n\t\t\t\tif ( 0 === total ) {\n\t\t\t\t\treturn '0%';\n\t\t\t\t}\n\n\t\t\t\treturn ( ( points / total ) * 100 ).toFixed( 2 ) + '%';\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Determine if the question belongs to a question group\n\t\t\t *\n\t\t\t * @return {Boolean}\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tis_in_group: function() {\n\n\t\t\t\treturn ( 'question' === this.collection.parent.get( 'type' ) );\n\n\t\t\t},\n\n\t\t\t_ensure_min_choices: function() {\n\n\t\t\t\tvar choices = this.get( 'choices' );\n\t\t\t\twhile ( choices.size() < this.get( 'question_type' ).get_min_choices() ) {\n\t\t\t\t\tthis.add_choice();\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t}, Relationships, Utilities ) );\n\n} );\n\n","/**\n * Questions Collection\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Collections/Questions',[ 'Models/Question' ], function( model ) {\n\n\treturn Backbone.Collection.extend( {\n\n\t\t/**\n\t\t * Model for collection items\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\tmodel: model,\n\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\t// reorder called by QuestionList view when sortable drops occur\n\t\t\tthis.on( 'reorder', this.update_order );\n\n\t\t\t// when a question is added or removed, update order\n\t\t\tthis.on( 'add', this.update_order );\n\t\t\tthis.on( 'remove', this.update_order );\n\n\t\t\tthis.on( 'add', this.update_parent );\n\n\t\t},\n\n\t\t/**\n\t\t * Update the order attr of each question in the list to reflect the order of the collection\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_order: function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.each( function( question ) {\n\n\t\t\t\tquestion.set( 'menu_order', self.indexOf( question ) + 1 );\n\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * When adding a question to a question list, update the question's parent\n\t\t * Will ensure that questions moved into and out of groups always have the correct parent_id\n\t\t *\n\t\t * @param obj model instance of the question model\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_parent: function( model ) {\n\n\t\t\tmodel.set( 'parent_id', this.parent.get( 'id' ) );\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Quiz Schema.\n *\n * @since 3.17.6\n * @since 7.4.0 Added upsell for Question Bank and condition in `random_questions` schema.\n * @since 7.6.2 Added `disable_retake` schema.\n * @since 7.8.0 Added `can_be_resumed` option.\n * @version 7.8.0\n\n */\ndefine( 'Schemas/Quiz',[], function() {\n\n\treturn window.llms.hooks.applyFilters( 'llms_define_quiz_schema', {\n\n\t\tdefault: {\n\t\t\ttitle: LLMS.l10n.translate( 'General Settings' ),\n\t\t\ttoggleable: true,\n\t\t\tfields: [\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'permalink',\n\t\t\t\t\t\tid: 'permalink',\n\t\t\t\t\t\ttype: 'permalink',\n\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'content',\n\t\t\t\t\t\tid: 'description',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Description' ),\n\t\t\t\t\t\ttype: 'editor',\n\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'passing_percent',\n\t\t\t\t\t\tid: 'passing-percent',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Passing Percentage' ),\n\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\tmax: 100,\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Minimum percentage of total points required to pass the quiz' ),\n\t\t\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'allowed_attempts',\n\t\t\t\t\t\tid: 'allowed-attempts',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Limit Attempts' ),\n\t\t\t\t\t\tswitch_attribute: 'limit_attempts',\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Limit the maximum number of times a student can take this quiz' ),\n\t\t\t\t\t\ttype: 'switch-number',\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'time_limit',\n\t\t\t\t\t\tid: 'time-limit',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Time Limit' ),\n\t\t\t\t\t\tmin: 1,\n\t\t\t\t\t\tmax: 360,\n\t\t\t\t\t\tswitch_attribute: 'limit_time',\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Enforce a maximum number of minutes a student can spend on each attempt' ),\n\t\t\t\t\t\ttype: 'switch-number',\n\t\t\t},\n\t\t\t\t], [\n\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'can_be_resumed',\n\t\t\t\t\t\tid: 'resume',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Can be resumed' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Allow a new attempt on this quiz to be resumed' ),\n\t\t\t\t\t\ttype: 'switch',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn 'yes' === this.get( 'limit_time' ) ? false : true;\n\t\t\t\t\t\t}\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'show_correct_answer',\n\t\t\t\t\t\tid: 'show-correct-answer',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Show Correct Answers' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'When enabled, students will be shown the correct answer to any question they answered incorrectly.' ),\n\t\t\t\t\t\ttype: 'switch',\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'random_questions',\n\t\t\t\t\t\tid: 'random-questions',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Randomize Question Order' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Display questions in a random order for each attempt. Content questions are locked into their defined positions.' ),\n\t\t\t\t\t\ttype: 'switch',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn 'yes' === this.get( 'question_bank' ) ? false : true;\n\t\t\t\t\t\t}\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'disable_retake',\n\t\t\t\t\t\tid: 'disable-retake',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Disable Retake' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Prevent quiz retake after student passed the quiz.' ),\n\t\t\t\t\t\ttype: 'switch',\n\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'question-bank',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Question Bank' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'A question bank helps prevent cheating and reinforces learning by allowing instructors to create assessments with randomized questions pulled from a bank of questions. (Available in Advanced Quizzes addon)' ),\n\t\t\t\t\t\ttype: 'upsell',\n\t\t\t\t\t\ttext: LLMS.l10n.translate( 'Get LifterLMS Advanced Quizzes' ),\n\t\t\t\t\t\turl: 'https://lifterlms.com/product/advanced-quizzes/?utm_source=LifterLMS%20Plugin&utm_medium=Quiz%20Builder%20Button&utm_campaign=Advanced%20Question%20Upsell&utm_content=3.16.0&utm_term=Questions%20Bank'\n\t\t\t\t\t}\n\t\t\t\t]\n\n\t\t\t],\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Quiz Model.\n *\n * @since 3.16.0\n * @version 7.5.0\n */\ndefine( 'Models/Quiz',[\n\t\t'Collections/Questions',\n\t\t'Models/Lesson',\n\t\t'Models/Question',\n\t\t'Models/_Relationships',\n\t\t'Models/_Utilities',\n\t\t'Schemas/Quiz',\n\t], function(\n\t\tQuestions,\n\t\tLesson,\n\t\tQuestion,\n\t\tRelationships,\n\t\tUtilities,\n\t\tQuizSchema\n\t) {\n\n\treturn Backbone.Model.extend( _.defaults( {\n\n\t\t/**\n\t\t * model relationships\n\t\t * @type {Object}\n\t\t */\n\t\trelationships: {\n\t\t\tparent: {\n\t\t\t\tmodel: 'lesson',\n\t\t\t\ttype: 'model',\n\t\t\t},\n\t\t\tchildren: {\n\t\t\t\tquestions: {\n\t\t\t\t\tclass: 'Questions',\n\t\t\t\t\tmodel: 'llms_question',\n\t\t\t\t\ttype: 'collection',\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Lesson Settings Schema\n\t\t * @type {Object}\n\t\t */\n\t\tschema: QuizSchema,\n\n\t\t/**\n\t\t * New quiz defaults.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 7.4.0 Added filter for filtering defaults.\n\t\t * @since 7.5.0 Replaced unused `random_answers` property with `random_questions`.\n\t\t * @since 7.8.0 Added filter for filtering defaults and `can_be_resumed` property.\n\t\t *\n\t\t * @return {Object}\n\t\t */\n\t\tdefaults: function() {\n\n\t\t\treturn window.llms.hooks.applyFilters( 'llms_quiz_model_defaults', {\n\t\t\t\tid: _.uniqueId( 'temp_' ),\n\t\t\t\ttitle: LLMS.l10n.translate( 'New Quiz' ),\n\t\t\t\ttype: 'llms_quiz',\n\t\t\t\tlesson_id: '',\n\n\t\t\t\tstatus: 'draft',\n\n\t\t\t\t// editable fields.\n\t\t\t\tcontent: '',\n\t\t\t\tallowed_attempts: 5,\n\t\t\t\tlimit_attempts: 'no',\n\t\t\t\tlimit_time: 'no',\n\t\t\t\tpassing_percent: 65,\n\t\t\t\tname: '',\n\t\t\t\trandom_questions: 'no',\n\t\t\t\ttime_limit: 30,\n\t\t\t\tshow_correct_answer: 'no',\n\t\t\t\tcan_be_resumed: 'no',\n\t\t\t\tdisable_retake: 'no',\n\n\t\t\t\tquestions: [],\n\n\t\t\t\t// calculated.\n\t\t\t\t_points: 0,\n\n\t\t\t\t// display.\n\t\t\t\tpermalink: '',\n\t\t\t\t_show_settings: false,\n\t\t\t\t_questions_loaded: false,\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Initializer\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.24.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.init_custom_schema();\n\t\t\tthis.startTracking();\n\t\t\tthis.init_relationships();\n\n\t\t\tthis.listenTo( this.get( 'questions' ), 'add', this.update_points );\n\t\t\tthis.listenTo( this.get( 'questions' ), 'remove', this.update_points );\n\n\t\t\tthis.set( '_points', this.get_total_points() );\n\n\t\t\t// when a quiz is published, ensure the parent lesson is marked as \"Enabled\" for quizzing\n\t\t\tthis.on( 'change:status', function() {\n\t\t\t\tif ( 'publish' === this.get( 'status' ) ) {\n\t\t\t\t\tthis.get_parent().set( 'quiz_enabled', 'yes' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\twindow.llms.hooks.doAction( 'llms_quiz_model_init', this );\n\n\t\t},\n\n\t\t/**\n\t\t * Add a new question to the quiz\n\t\t * @param obj data question data\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tadd_question: function( data ) {\n\n\t\t\tdata.parent_id = this.get( 'id' );\n\t\t\tvar question = this.get( 'questions' ).add( data, {\n\t\t\t\tparent: this,\n\t\t\t} );\n\t\t\tBackbone.pubSub.trigger( 'quiz-add-question', question, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the translated post type name for the model's type\n\t\t * @param bool plural if true, returns the plural, otherwise returns singular\n\t\t * @return string\n\t\t * @since 3.16.12\n\t\t * @version 3.16.12\n\t\t */\n\t\tget_l10n_type: function( plural ) {\n\n\t\t\tif ( plural ) {\n\t\t\t\treturn LLMS.l10n.translate( 'quizzes' );\n\t\t\t}\n\n\t\t\treturn LLMS.l10n.translate( 'quiz' );\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the quiz's total points\n\t\t * @return int\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_total_points: function() {\n\n\t\t\tvar points = 0;\n\n\t\t\tthis.get( 'questions' ).each( function( question ) {\n\t\t\t\tpoints += question.get_points();\n\t\t\t} );\n\n\t\t\treturn points;\n\n\t\t},\n\n\t\t/**\n\t\t * Lazy load questions via AJAX\n\t\t * @param {Function} cb callback function\n\t\t * @return void\n\t\t * @since 3.19.2\n\t\t * @version 3.19.2\n\t\t */\n\t\tload_questions: function( cb ) {\n\n\t\t\tif ( this.get( '_questions_loaded' ) ) {\n\n\t\t\t\tcb();\n\n\t\t\t} else {\n\n\t\t\t\tvar self = this;\n\n\t\t\t\tLLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'llms_builder',\n\t\t\t\t\t\taction_type: 'lazy_load',\n\t\t\t\t\t\tcourse_id: window.llms_builder.CourseModel.get( 'id' ),\n\t\t\t\t\t\tload_id: this.get( 'id' ),\n\t\t\t\t\t},\n\t\t\t\t\terror: function( xhr, status, error ) {\n\n\t\t\t\t\t\tconsole.log( xhr, status, error );\n\t\t\t\t\t\twindow.llms_builder.debug.log( '==== start load_questions error ====', xhr, status, error, '==== finish load_questions error ====' );\n\t\t\t\t\t\tcb( true );\n\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( res ) {\n\t\t\t\t\t\tif ( res && res.questions ) {\n\t\t\t\t\t\t\tself.set( '_questions_loaded', true );\n\t\t\t\t\t\t\tif ( res.questions ) {\n\t\t\t\t\t\t\t\t_.each( res.questions, self.add_question, self );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcb();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcb( true );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\n\t\t},\n\n\t\t/**\n\t\t * Update total number of points calculated property\n\t\t * @return int\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_points: function() {\n\n\t\t\tthis.set( '_points', this.get_total_points() );\n\n\t\t},\n\n\t}, Relationships, Utilities ) );\n\n} );\n\n","/**\n * Lesson Schemas\n *\n * @since 3.17.0\n * @version 3.25.4\n */\ndefine( 'Schemas/Lesson',[], function() {\n\n\treturn window.llms.hooks.applyFilters( 'llms_define_lesson_schema', {\n\n\t\tdefault: {\n\t\t\ttitle: LLMS.l10n.translate( 'General Settings' ),\n\t\t\ttoggleable: true,\n\t\t\tfields: [\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'permalink',\n\t\t\t\t\t\tid: 'permalink',\n\t\t\t\t\t\ttype: 'permalink',\n\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'video_embed',\n\t\t\t\t\t\tid: 'video-embed',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Video Embed URL' ),\n\t\t\t\t\t\ttype: 'video_embed',\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'audio_embed',\n\t\t\t\t\t\tid: 'audio-embed',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Audio Embed URL' ),\n\t\t\t\t\t\ttype: 'audio_embed',\n\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'free_lesson',\n\t\t\t\t\t\tid: 'free-lesson',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Free Lesson' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Free lessons can be accessed without enrollment.' ),\n\t\t\t\t\t\ttype: 'switch',\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'require_passing_grade',\n\t\t\t\t\t\tid: 'require-passing-grade',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Require Passing Grade on Quiz' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'When enabled, students must pass this quiz before the lesson can be completed.' ),\n\t\t\t\t\t\ttype: 'switch',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn ( 'yes' === this.get( 'quiz_enabled' ) );\n\t\t\t\t\t\t},\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'require_assignment_passing_grade',\n\t\t\t\t\t\tid: 'require-assignment-passing-grade',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Require Passing Grade on Assignment' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'When enabled, students must pass this assignment before the lesson can be completed.' ),\n\t\t\t\t\t\ttype: 'switch',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn ( 'undefined' !== window.llms_builder.assignments && 'yes' === this.get( 'assignment_enabled' ) );\n\t\t\t\t\t\t},\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'points',\n\t\t\t\t\t\tid: 'points',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Lesson Weight' ),\n\t\t\t\t\t\tlabel_after: LLMS.l10n.translate( 'POINTS' ),\n\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\tmax: 99,\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Determines the weight of the lesson when calculating the overall grade of the course.' ),\n\t\t\t\t\t\ttip_position: 'top-left',\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn ( ( 'yes' === this.get( 'quiz_enabled' ) ) || ( 'undefined' !== window.llms_builder.assignments && 'yes' === this.get( 'assignment_enabled' ) ) );\n\t\t\t\t\t\t},\n\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'prerequisite',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn ( false === this.is_first_in_course() );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tid: 'prerequisite',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Prerequisite' ),\n\t\t\t\t\t\tswitch_attribute: 'has_prerequisite',\n\t\t\t\t\t\ttype: 'switch-select',\n\t\t\t\t\t\toptions: function() {\n\t\t\t\t\t\t\treturn this.get_available_prereq_options();\n\t\t\t\t\t\t},\n\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Course Drip Method' ),\n\t\t\t\t\t\tid: 'course-drip',\n\t\t\t\t\t\ttype: 'heading',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn ( this.get_course() && 'yes' === this.get_course().get( 'lesson_drip' ) && this.get_course().get( 'drip_method' ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdetail: LLMS.l10n.translate( 'Drip settings are currently set at the course level, under the Restrictions settings tab. Disable to allow lesson level drip settings.' ) + ' ' + LLMS.l10n.translate( 'Edit Course' ) + ' ',\n\t\t\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Course Drip Method' ),\n\t\t\t\t\t\tid: 'course-drip',\n\t\t\t\t\t\ttype: 'heading',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn ( ! this.get_course() || 'yes' !== this.get_course().get( 'lesson_drip' ) || ! this.get_course().get( 'drip_method' ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdetail: LLMS.l10n.translate( 'Drip settings can be set at the course level to release course content at a specified interval, in the Restrictions settings tab.' ) + ' ' + LLMS.l10n.translate( 'Edit Course' ) + ' ',\n\t\t\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'drip_method',\n\t\t\t\t\t\tid: 'drip-method',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Drip Method' ),\n\t\t\t\t\t\tswitch_attribute: 'drip_method',\n\t\t\t\t\t\ttype: 'select',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn ( ! this.get_course() || 'yes' !== this.get_course().get( 'lesson_drip' ) || ! this.get_course().get( 'drip_method' ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t\toptions: function() {\n\n\t\t\t\t\t\t\tvar options = [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tkey: '',\n\t\t\t\t\t\t\t\t\tval: LLMS.l10n.translate( 'None' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tkey: 'date',\n\t\t\t\t\t\t\t\t\tval: LLMS.l10n.translate( 'On a specific date' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tkey: 'enrollment',\n\t\t\t\t\t\t\t\t\tval: LLMS.l10n.translate( '# of days after course enrollment' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\tif ( this.get_course() && this.get_course().get( 'start_date' ) ) {\n\t\t\t\t\t\t\t\toptions.push( {\n\t\t\t\t\t\t\t\t\tkey: 'start',\n\t\t\t\t\t\t\t\t\tval: LLMS.l10n.translate( '# of days after course start date' ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( 'yes' === this.get( 'has_prerequisite' ) ) {\n\t\t\t\t\t\t\t\toptions.push( {\n\t\t\t\t\t\t\t\t\tkey: 'prerequisite',\n\t\t\t\t\t\t\t\t\tval: LLMS.l10n.translate( '# of days after prerequisite lesson completion' ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn options;\n\n\t\t\t\t\t\t},\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'days_before_available',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\tif ( this.get_course() && 'yes' === this.get_course().get( 'lesson_drip' ) && this.get_course().get( 'drip_method' ) ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ( -1 !== [ 'enrollment', 'start', 'prerequisite' ].indexOf( this.get( 'drip_method' ) ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tid: 'days-before-available',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( '# of days' ),\n\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'date_available',\n\t\t\t\t\t\tdate_format: 'Y-m-d',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\tif ( this.get_course() && 'yes' === this.get_course().get( 'lesson_drip' ) && this.get_course().get( 'drip_method' ) ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ( 'date' === this.get( 'drip_method' ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tid: 'date-available',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Date' ),\n\t\t\t\t\t\ttimepicker: 'false',\n\t\t\t\t\t\ttype: 'datepicker',\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'time_available',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\tif ( this.get_course() && 'yes' === this.get_course().get( 'lesson_drip' ) && this.get_course().get( 'drip_method' ) ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ( 'date' === this.get( 'drip_method' ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdatepicker: 'false',\n\t\t\t\t\t\tdate_format: 'h:i A',\n\t\t\t\t\t\tid: 'time-available',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Time' ),\n\t\t\t\t\t\ttype: 'datepicker',\n\t\t\t},\n\t\t\t\t],\n\t\t\t],\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Lesson Model\n *\n * @since 3.13.0\n * @version 4.20.0\n */\ndefine( 'Models/Lesson',[ 'Models/Quiz', 'Models/_Relationships', 'Models/_Utilities', 'Schemas/Lesson' ], function( Quiz, Relationships, Utilities, LessonSchema ) {\n\n\treturn Backbone.Model.extend( _.defaults( {\n\n\t\t/**\n\t\t * Model relationships\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\trelationships: {\n\t\t\tparents: {\n\t\t\t\tmodel: 'section',\n\t\t\t\ttype: 'model',\n\t\t\t},\n\t\t\tchildren: {\n\t\t\t\tquiz: {\n\t\t\t\t\tclass: 'Quiz',\n\t\t\t\t\tconditional: function( model ) {\n\t\t\t\t\t\t// if quiz is enabled OR not enabled but we have some quiz data as an obj\n\t\t\t\t\t\treturn ( 'yes' === model.get( 'quiz_enabled' ) || ! _.isEmpty( model.get( 'quiz' ) ) );\n\t\t\t\t\t},\n\t\t\t\t\tmodel: 'llms_quiz',\n\t\t\t\t\ttype: 'model',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Lesson Settings Schema\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tschema: LessonSchema,\n\n\t\t/**\n\t\t * New lesson defaults\n\t\t *\n\t\t * @since 3.13.0\n\t\t * @since 3.24.0 Unknown.\n\t\t *\n\t\t * @return {Object} Default options associative array (js object).\n\t\t */\n\t\tdefaults: function() {\n\t\t\treturn {\n\t\t\t\tid: _.uniqueId( 'temp_' ),\n\t\t\t\ttitle: LLMS.l10n.translate( 'New Lesson' ),\n\t\t\t\ttype: 'lesson',\n\t\t\t\torder: this.collection ? this.collection.length + 1 : 1,\n\t\t\t\tparent_course: window.llms_builder.course.id,\n\t\t\t\tparent_section: '',\n\n\t\t\t\t// Urls.\n\t\t\t\tedit_url: '',\n\t\t\t\tview_url: '',\n\n\t\t\t\t// Editable fields.\n\t\t\t\tcontent: '',\n\t\t\t\taudio_embed: '',\n\t\t\t\thas_prerequisite: 'no',\n\t\t\t\trequire_passing_grade: 'yes',\n\t\t\t\trequire_assignment_passing_grade: 'yes',\n\t\t\t\tvideo_embed: '',\n\t\t\t\tfree_lesson: '',\n\t\t\t\tpoints: 1,\n\n\t\t\t\t// Other fields.\n\t\t\t\tassignment: {}, // Assignment model/data.\n\t\t\t\tassignment_enabled: 'no',\n\n\t\t\t\tquiz: {}, // Quiz model/data.\n\t\t\t\tquiz_enabled: 'no',\n\n\t\t\t\t_forceSync: false,\n\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Initializer\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.17.0 Unknown\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.init_custom_schema();\n\t\t\tthis.startTracking();\n\t\t\tthis.maybe_init_assignments();\n\t\t\tthis.init_relationships();\n\n\t\t\t// If the lesson ID isn't set on a quiz, set it.\n\t\t\tvar quiz = this.get( 'quiz' );\n\t\t\tif ( ! _.isEmpty( quiz ) && ! quiz.get( 'lesson_id' ) ) {\n\t\t\t\tquiz.set( 'lesson_id', this.get( 'id' ) );\n\t\t\t}\n\n\t\t\twindow.llms.hooks.doAction( 'llms_lesson_model_init', this );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve a reference to the parent course of the lesson\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 4.14.0 Use Section.get_course() in favor of Section.get_parent().\n\t\t *\n\t\t * @return {Object} The parent course model of the lesson.\n\t\t */\n\t\tget_course: function() {\n\t\t\treturn this.get_parent().get_course();\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the translated post type name for the model's type\n\t\t *\n\t\t * @since 3.16.12\n\t\t *\n\t\t * @param bool plural If true, returns the plural, otherwise returns singular.\n\t\t * @return string The translated post type name.\n\t\t */\n\t\tget_l10n_type: function( plural ) {\n\n\t\t\tif ( plural ) {\n\t\t\t\treturn LLMS.l10n.translate( 'lessons' );\n\t\t\t}\n\n\t\t\treturn LLMS.l10n.translate( 'lesson' );\n\t\t},\n\n\t\t/**\n\t\t * Override default get_parent to grab from collection if models parent isn't set\n\t\t *\n\t\t * @since 3.17.0\n\t\t *\n\t\t * @return {Object}|false The parent model or false if not available.\n\t\t */\n\t\tget_parent: function() {\n\n\t\t\tvar rels = this.get_relationships();\n\t\t\tif ( rels.parent && rels.parent.reference ) {\n\t\t\t\treturn rels.parent.reference;\n\t\t\t} else if ( this.collection && this.collection.parent ) {\n\t\t\t\treturn this.collection.parent;\n\t\t\t}\n\t\t\treturn false;\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the questions percentage value within the quiz\n\t\t *\n\t\t * @since 3.24.0\n\t\t *\n\t\t * @return {String} Questions percentage value within the quiz.\n\t\t */\n\t\tget_points_percentage: function() {\n\n\t\t\tvar total = this.get_course().get_total_points(),\n\t\t\t\tpoints = this.get( 'points' ) * 1;\n\n\t\t\tif ( ! _.isNumber( points ) ) {\n\t\t\t\tpoints = 0;\n\t\t\t}\n\n\t\t\tif ( 0 === total ) {\n\t\t\t\treturn '0%';\n\t\t\t}\n\n\t\t\treturn ( ( points / total ) * 100 ).toFixed( 2 ) + '%';\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve an array of prerequisite options available for the current lesson\n\t\t *\n\t\t * @since 3.17.0\n\t\t *\n\t\t * @return {Object} Prerequisite options.\n\t\t */\n\t\tget_available_prereq_options: function() {\n\n\t\t\tvar parent_section_index = this.get_parent().collection.indexOf( this.get_parent() ),\n\t\t\t\tlesson_index_in_section = this.collection.indexOf( this ),\n\t\t\t\toptions = [];\n\n\t\t\tthis.get_course().get( 'sections' ).each( function( section, curr_sec_index ) {\n\t\t\t\tif ( curr_sec_index <= parent_section_index ) {\n\t\t\t\t\tvar group = {\n\t\t\t\t\t\t\t// Translators: %1$d = section order number, %2$s = section title.\n\t\t\t\t\t\tlabel: LLMS.l10n.replace( 'Section %1$d: %2$s', {\n\t\t\t\t\t\t\t'%1$d': section.get( 'order' ),\n\t\t\t\t\t\t\t'%2$s': section.get( 'title' )\n\t\t\t\t\t\t} ),\n\t\t\t\t\toptions: [],\n\t\t\t\t\t};\n\n\t\t\t\t\tsection.get( 'lessons' ).each( function( lesson, curr_les_index ) {\n\t\t\t\t\t\tif ( curr_sec_index !== parent_section_index || curr_les_index < lesson_index_in_section ) {\n\t\t\t\t\t\t\t// Translators: %1$d = lesson order number, %2$s = lesson title.\n\t\t\t\t\t\t\tgroup.options.push( {\n\t\t\t\t\t\t\t\tkey: lesson.get( 'id' ),\n\t\t\t\t\t\t\t\tval: LLMS.l10n.replace( 'Lesson %1$d: %2$s', {\n\t\t\t\t\t\t\t\t\t'%1$d': lesson.get( 'order' ),\n\t\t\t\t\t\t\t\t\t'%2$s': lesson.get( 'title' )\n\t\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this );\n\n\t\t\t\t\toptions.push( group );\n\t\t\t\t}\n\t\t\t}, this );\n\n\t\t\treturn options;\n\n\t\t},\n\n\t\t/**\n\t\t * Add a new quiz to the lesson\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.27.0 Unknown.\n\t\t *\n\t\t * @param {Object} data Object of quiz data used to construct a new quiz model.\n\t\t * @return {Object} Model for the created quiz.\n\t\t */\n\t\tadd_quiz: function( data ) {\n\n\t\t\tdata = data || {};\n\n\t\t\tdata.lesson_id = this.id;\n\t\t\tdata._questions_loaded = true;\n\n\t\t\tif ( ! data.title ) {\n\n\t\t\t\tdata.title = LLMS.l10n.replace( '%1$s Quiz', {\n\t\t\t\t\t'%1$s': this.get( 'title' ),\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tthis.set( 'quiz', data );\n\t\t\tthis.init_relationships();\n\n\t\t\tvar quiz = this.get( 'quiz' );\n\t\t\tthis.set( 'quiz_enabled', 'yes' );\n\n\t\t\twindow.llms.hooks.doAction( 'llms_lesson_add_quiz', quiz, this );\n\n\t\t\treturn quiz;\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if this is the first lesson\n\t\t *\n\t\t * @since 3.17.0\n\t\t * @since 4.20.0 Use is_first_in_section() new method.\n\t\t *\n\t\t * @return {Boolean} Whether this is the first lesson of its course.\n\t\t */\n\t\tis_first_in_course: function() {\n\n\t\t\t// If it's not the first item in the section it cant be the first lesson.\n\t\t\tif ( ! this.is_first_in_section() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// If it's not the first section it cant' be first lesson.\n\t\t\tvar section = this.get_parent();\n\t\t\tif ( section.collection.indexOf( section ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// It's first lesson in first section.\n\t\t\treturn true;\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if this is the last lesson of the course\n\t\t *\n\t\t * @since 4.20.0\n\t\t *\n\t\t * @return {Boolean} Whether this is the last lesson of its course.\n\t\t */\n\t\t is_last_in_course: function() {\n\n\t\t\t// If it's not last item in the section it cant be the last lesson.\n\t\t\tif ( ! this.is_last_in_section() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// If it's not the last section it cant' be last lesson.\n\t\t\tvar section = this.get_parent();\n\t\t\tif ( section.collection.indexOf( section ) < ( section.collection.size() - 1 ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// It's last lesson in last section.\n\t\t\treturn true;\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if this is the first lesson within its section\n\t\t *\n\t\t * @since 4.20.0\n\t\t *\n\t\t * @return {Boolean} Whether this is the first lesson of its section.\n\t\t */\n\t\tis_first_in_section: function() {\n\t\t\treturn 0 === this.collection.indexOf( this );\n\t\t},\n\n\t\t/**\n\t\t * Determine if this is the last lesson within its section\n\t\t *\n\t\t * @since 4.20.0\n\t\t *\n\t\t * @return {Boolean} Whether this is the last lesson of its section.\n\t\t */\n\t\tis_last_in_section: function() {\n\t\t\treturn this.collection.indexOf( this ) === ( this.collection.size() - 1 );\n\t\t},\n\n\t\t/**\n\t\t * Get prev lesson in a course\n\t\t *\n\t\t * @since 4.20.0\n\t\t *\n\t\t * @param {String} status Prev lesson post status. If not specified any status will be taken into account.\n\t\t * @return {Object}|false Previous lesson model or `false` if no previous lesson could be found.\n\t\t */\n\t\tget_prev: function( status ) {\n\t\t\treturn this.get_sibling( 'prev', status );\n\t\t},\n\n\t\t/**\n\t\t * Get next lesson in a course\n\t\t *\n\t\t * @since 4.20.0\n\t\t *\n\t\t * @param {String} status Next lesson post status. If not specified any status will be taken into account.\n\t\t * @return {Object}|false Next lesson model or `false` if no next lesson could be found.\n\t\t */\n\t\tget_next: function( status ) {\n\t\t\treturn this.get_sibling( 'next', status );\n\t\t},\n\n\t\t/**\n\t\t * Get a sibling lesson\n\t\t *\n\t\t * @param {String} direction Siblings direction [next|prev]. If not specified will fall back on 'prev'.\n\t\t * @param {String} status Sibling lesson post status. If not specified any status will be taken into account.\n\t\t * @return {Object}|false Sibling lesson model, in the specified direction, or `false` if no sibling lesson could be found.\n\t\t */\n\t\tget_sibling: function( direction, status ) {\n\n\t\t\tdirection = 'next' === direction ? direction : 'prev';\n\n\t\t\t// Functions and vars to use when direction is 'prev' (default).\n\t\t\tvar is_course_limit_reached_f = 'is_first_in_course',\n\t\t\t\tis_section_limit_reached_f = 'is_first_in_section',\n\t\t\t\tsibling_index_increment = -1,\n\t\t\t\tget_sibling_lesson_in_sibling_section_f = 'last';\n\n\t\t\tif ( 'next' === direction ) {\n\t\t\t\tis_course_limit_reached_f = 'is_last_in_course';\n\t\t\t\tis_section_limit_reached_f = 'is_last_in_section';\n\t\t\t\tsibling_index_increment = 1,\n\t\t\t\tget_sibling_lesson_in_sibling_section_f = 'first';\n\t\t\t}\n\n\t\t\tif ( this[ is_course_limit_reached_f ]() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar sibling_index = this.collection.indexOf( this ) + sibling_index_increment,\n\t\t\t\tsibling_lesson = this.collection.at( sibling_index );\n\n\t\t\tif ( this[ 'next' === direction ? 'is_last_in_section' : 'is_first_in_section' ]() ) {\n\t\t\t\tvar cur_section = this.get_parent(),\n\t\t\t\t\tsibling_section = cur_section[ 'get_' + direction ]( false );\n\n\t\t\t\t// Skip sibling empty sections.\n\t\t\t\twhile ( sibling_section && ! sibling_section.get( 'lessons' ).size() ) {\n\t\t\t\t\tsibling_section = sibling_section[ 'get_' + direction ]( false );\n\t\t\t\t}\n\n\t\t\t\t// Couldn't find any suitable lesson.\n\t\t\t\tif ( ! sibling_section || ! sibling_section.get( 'lessons' ).size() ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tsibling_lesson = sibling_section.get( 'lessons' )[ get_sibling_lesson_in_sibling_section_f ]();\n\n\t\t\t}\n\n\t\t\t// If we need a specific lesson status.\n\t\t\tif ( status && status !== sibling_lesson.get( 'status' ) ) {\n\t\t\t\treturn sibling_lesson.get_sibling( direction, status );\n\t\t\t}\n\n\t\t\treturn sibling_lesson;\n\n\t\t},\n\n\t\t/**\n\t\t * Initialize lesson assignments *if* the assignments addon is available and enabled\n\t\t *\n\t\t * @since 3.17.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tmaybe_init_assignments: function() {\n\n\t\t\tif ( ! window.llms_builder.assignments ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.relationships.children.assignment = {\n\t\t\t\tclass: 'Assignment',\n\t\t\t\tconditional: function( model ) {\n\t\t\t\t\t// If assignment is enabled OR not enabled but we have some assignment data as an obj.\n\t\t\t\t\treturn ( 'yes' === model.get( 'assignment_enabled' ) || ! _.isEmpty( model.get( 'assignment' ) ) );\n\t\t\t\t},\n\t\t\t\tmodel: 'llms_assignment',\n\t\t\t\ttype: 'model',\n\t\t\t};\n\n\t\t},\n\n\t}, Relationships, Utilities ) );\n\n} );\n\n","/**\n * Lessons Collection\n *\n * @since 3.13.0\n * @version 3.17.0\n */\ndefine( 'Collections/Lessons',[ 'Models/Lesson' ], function( model ) {\n\n\treturn Backbone.Collection.extend( {\n\n\t\t/**\n\t\t * Model for collection items\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\tmodel: model,\n\n\t\t/**\n\t\t * Initializer\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\t// reorder called by LessonList view when sortable drops occur\n\t\t\tthis.on( 'reorder', this.on_reorder );\n\n\t\t\t// when a lesson is added or removed, update order\n\t\t\tthis.on( 'add', this.on_reorder );\n\t\t\tthis.on( 'remove', this.on_reorder );\n\n\t\t},\n\n\t\t/**\n\t\t * On lesson reorder callback\n\t\t *\n\t\t * Update the order attr of each lesson to reflect the new lesson order\n\t\t * Validate prerequisite (if set) and unset it if it's no longer a valid prereq\n\t\t *\n\t\t * @return void\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\ton_reorder: function() {\n\t\t\tthis.update_order();\n\t\t\tthis.validate_prereqs();\n\t\t},\n\n\t\t/**\n\t\t * Update lesson order attribute of all lessons when lessons are reordered\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tupdate_order: function() {\n\n\t\t\tthis.each( function( lesson ) {\n\t\t\t\tlesson.set( 'order', this.indexOf( lesson ) + 1 );\n\t\t\t}, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Validate prerequisite (if set) and unset it if it's no longer a valid prereq\n\t\t *\n\t\t * @return void\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tvalidate_prereqs: function() {\n\n\t\t\tthis.each( function( lesson ) {\n\n\t\t\t\t// validate prereqs\n\t\t\t\tif ( 'yes' === lesson.get( 'has_prerequisite' ) ) {\n\t\t\t\t\tvar valid = _.pluck( _.flatten( _.pluck( lesson.get_available_prereq_options(), 'options' ) ), 'key' );\n\t\t\t\t\tif ( -1 === valid.indexOf( lesson.get( 'prerequisite' ) * 1 ) ) {\n\t\t\t\t\t\tlesson.set( {\n\t\t\t\t\t\t\tprerequisite: 0,\n\t\t\t\t\t\t\thas_prerequisite: 'no',\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}, this );\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Quiz Question Type Collection\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Collections/QuestionTypes',[ 'Models/QuestionType' ], function( model ) {\n\n\treturn Backbone.Collection.extend( {\n\n\t\t/**\n\t\t * Model for collection items\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\tmodel: model,\n\n\t\t/**\n\t\t * Initializer\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.on( 'add', this.comparator );\n\t\t\tthis.on( 'remove', this.comparator );\n\n\t\t},\n\n\t\t/**\n\t\t * Comparator (sorts collection)\n\t\t *\n\t\t * @param obj model QuestionType model\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tcomparator: function( model ) {\n\n\t\t\treturn model.get( 'group' ).order;\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Section Model\n *\n * @since 3.16.0\n * @version 4.20.0\n */\ndefine( 'Models/Section',[ 'Collections/Lessons', 'Models/_Relationships' ], function( Lessons, Relationships ) {\n\n\treturn Backbone.Model.extend( _.defaults( {\n\n\t\trelationships: {\n\t\t\tparent: {\n\t\t\t\tmodel: 'course',\n\t\t\t\ttype: 'model',\n\t\t\t},\n\t\t\tchildren: {\n\t\t\t\tlessons: {\n\t\t\t\t\tclass: 'Lessons',\n\t\t\t\t\tmodel: 'lesson',\n\t\t\t\t\ttype: 'collection',\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * New section defaults\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Object}\n\t\t */\n\t\tdefaults: function() {\n\t\t\treturn {\n\t\t\t\tid: _.uniqueId( 'temp_' ),\n\t\t\t\tlessons: [],\n\t\t\t\torder: this.collection ? this.collection.length + 1 : 1,\n\t\t\t\tparent_course: window.llms_builder.course.id,\n\t\t\t\ttitle: LLMS.l10n.translate( 'New Section' ),\n\t\t\t\ttype: 'section',\n\n\t\t\t\t// Expand the first 100 sections by default to avoid timeout issues.\n\t\t\t\t_expanded: ! this.collection || this.collection.length <= 100 ? true : false,\n\t\t\t\t_selected: false,\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.startTracking();\n\t\t\tthis.init_relationships();\n\n\t\t},\n\n\t\t/**\n\t\t * Add a lesson to the section\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.16.11 Unknown.\n\t\t *\n\t\t * @param {Object} data Hash of lesson data (creates new lesson)\n\t\t * or existing lesson as a Backbone.Model.\n\t\t * @param {Object} options Hash of options.\n\t\t * @return {Object} Backbone.Model of the new/updated lesson.\n\t\t */\n\t\tadd_lesson: function( data, options ) {\n\n\t\t\tdata = data || {};\n\t\t\toptions = options || {};\n\n\t\t\tif ( data instanceof Backbone.Model ) {\n\t\t\t\tdata.set( 'status', 'publish' );\n\t\t\t\tdata.set( 'parent_section', this.get( 'id' ) );\n\t\t\t\tdata.set_parent( this );\n\t\t\t} else {\n\t\t\t\tdata.status = 'publish';\n\t\t\t\tdata.parent_section = this.get( 'id' );\n\t\t\t}\n\n\t\t\treturn this.get( 'lessons' ).add( data, options );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the translated post type name for the model's type\n\t\t *\n\t\t * @since 3.16.12\n\t\t *\n\t\t * @param {Boolean} plural If true, returns the plural, otherwise returns singular.\n\t\t * @return {String}\n\t\t */\n\t\tget_l10n_type: function( plural ) {\n\n\t\t\tif ( plural ) {\n\t\t\t\treturn LLMS.l10n.translate( 'sections' );\n\t\t\t}\n\n\t\t\treturn LLMS.l10n.translate( 'section' );\n\t\t},\n\n\t\t/**\n\t\t * Get next section in the collection\n\t\t *\n\t\t * @since 3.16.11\n\t\t *\n\t\t * @param {boolean} circular If true handles the collection in a circle.\n\t\t * If current is the last section, returns the first section.\n\t\t * @return {Object}|false\n\t\t */\n\t\tget_next: function( circular ) {\n\t\t\treturn this._get_sibling( 'next', circular );\n\t\t},\n\n\t\t/**\n\t\t * Retrieve a reference to the parent course of the section\n\t\t *\n\t\t * @since 4.14.0\n\t\t *\n\t\t * @return {Object}\n\t\t */\n\t\tget_course: function() {\n\n\t\t\t// When working with an unsaved draft course the parent isn't properly set on the creation of a section.\n\t\t\tif ( ! this.get_parent() ) {\n\t\t\t\tthis.set_parent( window.llms_builder.CourseModel );\n\t\t\t}\n\n\t\t\treturn this.get_parent();\n\n\t\t},\n\n\t\t/**\n\t\t * Get prev section in the collection\n\t\t *\n\t\t * @since 3.16.11\n\t\t *\n\t\t * @param {Boolean} circular If true handles the collection in a circle.\n\t\t * If current is the first section, returns the last section.\n\t\t * @return {Object}|false\n\t\t */\n\t\tget_prev: function( circular ) {\n\t\t\treturn this._get_sibling( 'prev', circular );\n\t\t},\n\n\t\t/**\n\t\t * Get a sibling section\n\t\t *\n\t\t * @since 3.16.11\n\t\t * @since 4.20.0 Fix case when the last section was returned when looking for the prev of the first section and not `circular`.\n\t\t *\n\t\t * @param {String} direction Siblings direction [next|prev].\n\t\t * @param {Boolean} circular If true handles the collection in a circle.\n\t\t * If current is the last section, returns the first section.\n\t\t * If current is the first section, returns the last section.\n\t\t * @return {Object}|false\n\t\t */\n\t\t_get_sibling: function( direction, circular ) {\n\n\t\t\tcircular = ( 'undefined' === circular ) ? true : circular;\n\n\t\t\tvar max = this.collection.size() - 1,\n\t\t\t\tindex = this.collection.indexOf( this ),\n\t\t\t\tsibling_index;\n\n\t\t\tif ( 'next' === direction ) {\n\t\t\t\tsibling_index = index + 1;\n\t\t\t} else if ( 'prev' === direction ) {\n\t\t\t\tsibling_index = index - 1;\n\t\t\t}\n\n\t\t\t// Don't retrieve greater than max or less than min.\n\t\t\tif ( sibling_index <= max || sibling_index >= 0 ) {\n\n\t\t\t\treturn this.collection.at( sibling_index );\n\n\t\t\t} else if ( circular ) {\n\n\t\t\t\tif ( 'next' === direction ) {\n\t\t\t\t\treturn this.collection.first();\n\t\t\t\t} else if ( 'prev' === direction ) {\n\t\t\t\t\treturn this.collection.last();\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn false;\n\n\t\t},\n\n\t}, Relationships ) );\n\n} );\n\n","/**\n * Sections Collection\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Collections/Sections',[ 'Models/Section' ], function( model ) {\n\n\treturn Backbone.Collection.extend( {\n\n\t\t/**\n\t\t * Model for collection items\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\tmodel: model,\n\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tvar self = this;\n\n\t\t\t// reorder called by SectionList view when sortable drops occur\n\t\t\tthis.on( 'reorder', this.update_order );\n\n\t\t\t// when a section is added or removed, update order\n\t\t\tthis.on( 'add', this.update_order );\n\t\t\tthis.on( 'remove', this.update_order );\n\n\t\t},\n\n\t\t/**\n\t\t * Update the order attr of each section in the list to reflect the order of the collection\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_order: function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.each( function( section ) {\n\n\t\t\t\tsection.set( 'order', self.indexOf( section ) + 1 );\n\n\t\t\t} );\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Lessons Collection\n *\n * @since 3.13.0\n * @version 3.16.0\n */\ndefine( 'Collections/loader',[\n\t\t'Collections/Lessons',\n\t\t'Collections/QuestionChoices',\n\t\t'Collections/Questions',\n\t\t'Collections/QuestionTypes',\n\t\t'Collections/Sections'\n\t], function(\n\t\tLessons,\n\t\tQuestionChoices,\n\t\tQuestions,\n\t\tQuestionTypes,\n\t\tSections\n\t) {\n\n\t\treturn {\n\t\t\tLessons: Lessons,\n\t\t\tQuestionChoices: QuestionChoices,\n\t\t\tQuestions: Questions,\n\t\t\tQuestionTypes: QuestionTypes,\n\t\t\tSections: Sections,\n\t\t};\n\n} );\n\n","/**\n * Abstract LifterLMS Model\n *\n * @since 3.17.0\n * @version 3.17.0\n */\ndefine( 'Models/Abstract',[ 'Models/_Relationships', 'Models/_Utilities' ], function( Relationships, Utilities ) {\n\n\treturn Backbone.Model.extend( _.defaults( {}, Relationships, Utilities ) );\n\n} );\n\n","/**\n * Course Model.\n *\n * @since 3.16.0\n * @since 3.24.0 Added `get_total_points()` method.\n * @since 3.37.11 Use lesson author ID instead of author object when adding existing lessons to a course.\n * @version 5.4.0\n */\ndefine( 'Models/Course',[ 'Collections/Sections', 'Models/_Relationships', 'Models/_Utilities' ], function( Sections, Relationships, Utilities ) {\n\n\treturn Backbone.Model.extend( _.defaults( {\n\n\t\trelationships: {\n\t\t\tchildren: {\n\t\t\t\tsections: {\n\t\t\t\t\tclass: 'Sections',\n\t\t\t\t\tmodel: 'section',\n\t\t\t\t\ttype: 'collection',\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * New Course Defaults.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Object}\n\t\t */\n\t\tdefaults: function() {\n\t\t\treturn {\n\t\t\t\tedit_url: '',\n\t\t\t\tsections: [],\n\t\t\t\ttitle: 'New Course',\n\t\t\t\ttype: 'course',\n\t\t\t\tview_url: '',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Init.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.startTracking();\n\t\t\tthis.init_relationships();\n\n\t\t\t// Sidebar \"New Section\" button broadcast.\n\t\t\tBackbone.pubSub.on( 'add-new-section', this.add_section, this );\n\n\t\t\t// Sidebar \"New Lesson\" button broadcast.\n\t\t\tBackbone.pubSub.on( 'add-new-lesson', this.add_lesson, this );\n\n\t\t\tBackbone.pubSub.on( 'lesson-search-select', this.add_existing_lesson, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Add an existing lesson to the course.\n\t\t *\n\t\t * Duplicate a lesson from this or another course or attach an orphaned lesson.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.24.0 Unknown.\n\t\t * @since 3.37.11 Use the author id instead of the author object.\n\t\t * @since 5.4.0 Added filter hook 'llms_adding_existing_lesson_data'.\n\t\t * On cloning, duplicate assignments too, if assignment add-on active and assignment attached.\n\t\t *\n\t\t * @param {Object} lesson Lesson data obj.\n\t\t * @return {Void}\n\t\t */\n\t\tadd_existing_lesson: function( lesson ) {\n\n\t\t\tvar data = lesson.data;\n\n\t\t\tif ( 'clone' === lesson.action ) {\n\n\t\t\t\tdelete data.id;\n\n\t\t\t\t// If a quiz is attached, duplicate the quiz also.\n\t\t\t\tif ( data.quiz ) {\n\t\t\t\t\tdata.quiz = _.prepareQuizObjectForCloning( data.quiz );\n\t\t\t\t\tdata.quiz._questions_loaded = true;\n\t\t\t\t}\n\n\t\t\t\t// If assignment add-on active and assignment attached, duplicate the assignment too.\n\t\t\t\tif ( window.llms_builder.assignments && data.assignment ) {\n\t\t\t\t\tdata.assignment = _.prepareAssignmentObjectForCloning( data.assignment );\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tdata._forceSync = true;\n\n\t\t\t}\n\n\t\t\tdelete data.order;\n\t\t\tdelete data.parent_course;\n\t\t\tdelete data.parent_section;\n\n\t\t\t// Use author id instead of the lesson author object.\n\t\t\tdata = _.prepareExistingPostObjectDataForAddingOrCloning( data );\n\n\t\t\t/**\n\t\t\t * Filters the data of the existing lesson being added.\n\t\t\t *\n\t\t\t * @since 5.4.0\n\t\t\t *\n\t\t\t * @param {Object} data Lesson data.\n\t\t\t * @param {String} action Action being performed. [clone|attach].\n\t\t\t * @param {Object} course The lesson's course parent model.\n\t\t\t */\n\t\t\tdata = window.llms.hooks.applyFilters( 'llms_adding_existing_lesson_data', data, lesson.action, this );\n\n\t\t\tthis.add_lesson( data );\n\n\t\t},\n\n\t\t/**\n\t\t * Add a new lesson to the course.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @param {Object} data Lesson data.\n\t\t * @return {Object} Backbone.Model of the lesson.\n\t\t */\n\t\tadd_lesson: function( data ) {\n\n\t\t\tdata = data || {};\n\t\t\tvar options = {},\n\t\t\t\tsection;\n\n\t\t\tif ( ! data.parent_section ) {\n\t\t\t\tsection = this.get_selected_section();\n\t\t\t\tif ( ! section ) {\n\t\t\t\t\tsection = this.get( 'sections' ).last();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsection = this.get( 'sections' ).get( data.parent_section );\n\t\t\t}\n\n\t\t\tdata._selected = true;\n\n\t\t\tdata.parent_course = this.get( 'id' );\n\n\t\t\tvar lesson = section.add_lesson( data, options );\n\t\t\tBackbone.pubSub.trigger( 'new-lesson-added', lesson );\n\n\t\t\t// Expand the section.\n\t\t\tsection.set( '_expanded', true );\n\n\t\t\treturn lesson;\n\n\t\t},\n\n\t\t/**\n\t\t * Add a new section to the course.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @param {Object} data Section data.\n\t\t * @return {Void}\n\t\t */\n\t\tadd_section: function( data ) {\n\n\t\t\tdata = data || {};\n\t\t\tvar sections = this.get( 'sections' ),\n\t\t\t\toptions = {},\n\t\t\t\tselected = this.get_selected_section();\n\n\t\t\t// If a section is selected, add the new section after the currently selected one.\n\t\t\tif ( selected ) {\n\t\t\t\toptions.at = sections.indexOf( selected ) + 1;\n\t\t\t}\n\n\t\t\tsections.add( data, options );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the currently selected section in the course.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Object|undefined}\n\t\t */\n\t\tget_selected_section: function() {\n\n\t\t\treturn this.get( 'sections' ).find( function( model ) {\n\t\t\t\treturn model.get( '_selected' );\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the total number of points in the course.\n\t\t *\n\t\t * @since 3.24.0\n\t\t *\n\t\t * @return {Integer}\n\t\t */\n\t\tget_total_points: function() {\n\n\t\t\tvar points = 0;\n\n\t\t\tthis.get( 'sections' ).each( function( section ) {\n\t\t\t\tsection.get( 'lessons' ).each( function( lesson ) {\n\t\t\t\t\tvar lesson_points = lesson.get( 'points' );\n\t\t\t\t\tif ( ! _.isNumber( lesson_points ) ) {\n\t\t\t\t\t\tlesson_points = 0;\n\t\t\t\t\t}\n\t\t\t\t\tpoints += lesson_points * 1;\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\treturn points;\n\n\t\t},\n\n\t}, Relationships, Utilities ) );\n\n} );\n\n","/**\n * Load all models\n *\n * @return obj\n * @since 3.16.0\n * @version 3.17.0\n */\ndefine( 'Models/loader',[\n\t\t'Models/Abstract',\n\t\t'Models/Course',\n\t\t'Models/Image',\n\t\t'Models/Lesson',\n\t\t'Models/Question',\n\t\t'Models/QuestionChoice',\n\t\t'Models/QuestionType',\n\t\t'Models/Quiz',\n\t\t'Models/Section'\n\t],\n\tfunction(\n\t\tAbstract,\n\t\tCourse,\n\t\tImage,\n\t\tLesson,\n\t\tQuestion,\n\t\tQuestionChoice,\n\t\tQuestionType,\n\t\tQuiz,\n\t\tSection\n\t) {\n\n\t\treturn {\n\t\t\tAbstract: Abstract,\n\t\t\tCourse: Course,\n\t\t\tImage: Image,\n\t\t\tLesson: Lesson,\n\t\t\tQuestion: Question,\n\t\t\tQuestionChoice: QuestionChoice,\n\t\t\tQuestionType: QuestionType,\n\t\t\tQuiz: Quiz,\n\t\t\tSection: Section,\n\t\t};\n\n} );\n\n","/**\n * Detachable model\n *\n * @package LifterLMS/Scripts\n *\n * @since 3.16.12\n * @version 3.16.12\n */\n\ndefine( 'Views/_Detachable',[], function() {\n\n\treturn {\n\n\t\t/**\n\t\t * DOM Events\n\t\t *\n\t\t * @type {Object}\n\t\t * @since 3.16.12\n\t\t * @version 3.16.12\n\t\t */\n\t\tevents: {\n\t\t\t'click a[href=\"#llms-detach-model\"]': 'detach_model',\n\t\t\t'click button.llms-detach-model': 'detach_model',\n\t\t},\n\n\t\t/**\n\t\t * Detaches a model from it's parent (doesn't delete)\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.12\n\t\t * @version 3.16.12\n\t\t */\n\t\tdetach_model: function( event ) {\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\n\t\t\tvar msg = LLMS.l10n.replace( 'Are you sure you want to detach this %s?', {\n\t\t\t\t'%s': this.model.get_l10n_type(),\n\t\t\t} );\n\n\t\t\tif ( window.confirm( msg ) ) {\n\n\t\t\t\tif ( this.model.collection ) {\n\t\t\t\t\tthis.model.collection.remove( this.model );\n\t\t\t\t}\n\n\t\t\t\t// publish global event\n\t\t\t\tBackbone.pubSub.trigger( 'model-detached', this.model );\n\n\t\t\t\t// trigger local event so extending views can run other actions where necessary\n\t\t\t\tthis.trigger( 'model-trashed', this.model );\n\n\t\t\t}\n\n\t\t},\n\n\t}\n\n} );\n\n","/**\n * Handles UX and Events for inline editing of views\n *\n * Use with a Model's View\n * Allows editing model.title field via .llms-editable-title elements\n *\n * @package LifterLMS/Scripts\n *\n * @since 3.16.0\n * @since 3.25.4 Unknown\n * @since 3.37.11 Replace reference to `wp.editor` with `_.getEditor()` helper.\n * @version 3.37.11\n */\ndefine( 'Views/_Editable',[], function() {\n\n\treturn {\n\n\t\tmedia_lib: null,\n\n\t\t/**\n\t\t * DOM Events\n\t\t *\n\t\t * @type {Object}\n\t\t * @since 3.16.0\n\t\t * @version 3.17.8\n\t\t */\n\t\tevents: {\n\t\t\t'click .llms-add-image': 'open_media_lib',\n\t\t\t'click a[href=\"#llms-edit-slug\"]': 'make_slug_editable',\n\t\t\t'click a[href=\"#llms-remove-image\"]': 'remove_image',\n\t\t\t'change .llms-editable-select select': 'on_select',\n\t\t\t'change .llms-switch input[type=\"checkbox\"]': 'toggle_switch',\n\t\t\t'change .llms-editable-radio input': 'on_radio_select',\n\t\t\t'focusin .llms-input': 'on_focus',\n\t\t\t'focusout .llms-input': 'on_blur',\n\t\t\t'keydown .llms-input': 'on_keydown',\n\t\t\t'input .llms-input[type=\"number\"]': 'on_blur',\n\t\t\t'paste .llms-input[data-formatting]': 'on_paste',\n\t\t},\n\n\t\t/**\n\t\t * Retrieve a list of allowed tags for a given element\n\t\t *\n\t\t * @param obj $el jQuery selector for the element\n\t\t * @return array\n\t\t * @since 3.16.0\n\t\t * @version 3.17.8\n\t\t */\n\t\tget_allowed_tags: function( $el ) {\n\n\t\t\tif ( $el.attr( 'data-formatting' ) ) {\n\t\t\t\treturn _.map( $el.attr( 'data-formatting' ).split( ',' ), function( tag ) {\n\t\t\t\t\treturn tag.trim();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn [ 'b', 'i', 'u', 'strong', 'em' ];\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the content of an element\n\t\t *\n\t\t * @param obj $el jQuery object of the element\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.17.8\n\t\t */\n\t\tget_content: function( $el ) {\n\n\t\t\tif ( 'INPUT' === $el[0].tagName ) {\n\t\t\t\treturn $el.val();\n\t\t\t}\n\n\t\t\tif ( ! $el.attr( 'data-formatting' ) && ! $el.hasClass( 'ql-editor' ) ) {\n\t\t\t\treturn $el.text();\n\t\t\t}\n\n\t\t\treturn _.stripFormatting( $el.html(), this.get_allowed_tags( $el ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if changes have been made to the element\n\t\t *\n\t\t * @param {[obj]} event js event object\n\t\t * @return {Boolean} true when changes have been made, false otherwise\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\thas_changed: function( event ) {\n\t\t\tvar $el = $( event.target );\n\t\t\treturn ( $el.attr( 'data-original-content' ) !== this.get_content( $el ) );\n\t\t},\n\n\t\t/**\n\t\t * Ensure that new content is at least 1 character long\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return boolean\n\t\t * @since 3.16.0\n\t\t * @version 3.17.2\n\t\t */\n\t\tis_valid: function( event ) {\n\n\t\t\tvar self = this,\n\t\t\t\t$el = $( event.target ),\n\t\t\t\tcontent = this.get_content( $el ),\n\t\t\t\ttype = $el.attr( 'data-type' );\n\n\t\t\tif ( ( $el.attr( 'required' ) || $el.attr( 'data-required' ) ) && content.length < 1 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif ( 'url' === type || 'video' === type ) {\n\t\t\t\tif ( ! this._validate_url( this.get_content( $el ) ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t} else if ( 'permalink' === type ) {\n\n\t\t\t\tLLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'llms_builder',\n\t\t\t\t\t\taction_type: 'get_permalink',\n\t\t\t\t\t\tcourse_id: window.llms_builder.CourseModel.get( 'id' ),\n\t\t\t\t\t\tid: self.model.get( 'id' ),\n\t\t\t\t\t\ttitle: self.model.get( 'title' ),\n\t\t\t\t\t\tslug: content,\n\t\t\t\t\t},\n\t\t\t\t\tbeforeSend: function() {\n\t\t\t\t\t\tLLMS.Spinner.start( $el.closest( '.llms-editable-toggle-group' ), 'small' );\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\t\tif ( r.permalink && r.slug ) {\n\t\t\t\t\t\t\tself.model.set( 'permalink', r.permalink );\n\t\t\t\t\t\t\tself.model.set( 'name', r.slug );\n\t\t\t\t\t\t\tself.render();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t},\n\n\t\t/**\n\t\t * Initialize datepicker elements\n\t\t *\n\t\t * @return void\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tinit_datepickers: function() {\n\n\t\t\tthis.$el.find( '.llms-editable-date input' ).each( function() {\n\n\t\t\t\t$( this ).datetimepicker( {\n\t\t\t\t\tformat: $( this ).attr( 'data-date-format' ) || 'Y-m-d h:i A',\n\t\t\t\t\tdatepicker: ( undefined === $( this ).attr( 'data-date-datepicker' ) ) ? true : ( 'true' == $( this ).attr( 'data-date-datepicker' ) ),\n\t\t\t\t\ttimepicker: ( undefined === $( this ).attr( 'data-date-timepicker' ) ) ? true : ( 'true' == $( this ).attr( 'data-date-timepicker' ) ),\n\t\t\t\t\tonClose: function( current_time, $input ) {\n\t\t\t\t\t\t$input.blur();\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Initialize elements that allow inline formatting\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinit_formatting_els: function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.$el.find( '.llms-input-formatting[data-formatting]' ).each( function() {\n\n\t\t\t\tvar formatting = $( this ).attr( 'data-formatting' ).split( ',' ),\n\t\t\t\t\tattr = $( this ).attr( 'data-attribute' );\n\n\t\t\t\tvar ed = new Quill( this, {\n\t\t\t\t\tmodules: {\n\t\t\t\t\t\ttoolbar: [ formatting ],\n\t\t\t\t\t\tkeyboard: {\n\t\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\t\ttab: {\n\t\t\t\t\t\t\t\t\tkey: 9,\n\t\t\t\t\t\t\t\t\thandler: function( range, context ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t13: {\n\t\t\t\t\t\t\t\t\tkey: 13,\n\t\t\t\t\t\t\t\t\thandler: function( range, context ) {\n\t\t\t\t\t\t\t\t\t\ted.root.blur();\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tplaceholder: $( this ).attr( 'data-placeholder' ),\n\t\t\t\t\ttheme: 'bubble',\n\t\t\t\t} );\n\n\t\t\t\ted.on( 'text-change', function( delta, oldDelta, source ) {\n\t\t\t\t\tself.model.set( attr, self.get_content( $( ed.root ) ) );\n\t\t\t\t} );\n\n\t\t\t\tBackbone.pubSub.trigger( 'formatting-ed-init', ed, $( this ), self );\n\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Initialize editable select elements\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.25.4\n\t\t */\n\t\tinit_selects: function() {\n\n\t\t\tthis.$el.find( '.llms-editable-select select' ).llmsSelect2( {\n\t\t\t\twidth: '100%',\n\t\t\t} ).trigger( 'change' );\n\n\t\t},\n\n\t\t/**\n\t\t * Blur/focusout function for .llms-editable-title elements\n\t\t * Automatically saves changes if changes have been made\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.6\n\t\t */\n\t\ton_blur: function( event ) {\n\n\t\t\tevent.stopPropagation();\n\n\t\t\tthis.model.set( '_has_focus', false, { silent: true } );\n\n\t\t\tvar self = this,\n\t\t\t\t$el = $( event.target ),\n\t\t\t\tchanged = this.has_changed( event );\n\n\t\t\tif ( changed ) {\n\n\t\t\t\tif ( ! self.is_valid( event ) ) {\n\t\t\t\t\tself.revert_edits( event );\n\t\t\t\t} else {\n\t\t\t\t\tthis.save_edits( event );\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Focus event for editable inputs\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.6\n\t\t * @version 3.16.6\n\t\t */\n\t\ton_focus: function( event ) {\n\n\t\t\tevent.stopPropagation();\n\t\t\tthis.model.set( '_has_focus', true, { silent: true } );\n\n\t\t},\n\n\t\t/**\n\t\t * Handle content pasted into contenteditable fields\n\t\t * This will ensure that HTML from RTF editors isn't pasted into the dom\n\t\t *\n\t\t * @param obj event js event obj\n\t\t * @return void\n\t\t * @since 3.17.8\n\t\t * @version 3.17.8\n\t\t */\n\t\ton_paste: function( event ) {\n\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\n\t\t\tvar text = ( event.originalEvent || event ).clipboardData.getData( 'text/plain' );\n\t\t\twindow.document.execCommand( 'insertText', false, text );\n\n\t\t},\n\n\t\t/**\n\t\t * Change event for selectables\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ton_select: function( event ) {\n\n\t\t\tvar $el = $( event.target ),\n\t\t\t\tmulti = ( $el.attr( 'multiple' ) ),\n\t\t\t\tattr = $el.attr( 'name' ),\n\t\t\t\t$selected = $el.find( 'option:selected' ),\n\t\t\t\tval;\n\n\t\t\tif ( multi ) {\n\t\t\t\tval = [];\n\t\t\t\tval = $selected.map( function() {\n\t\t\t\t\treturn this.value;\n\t\t\t\t} ).get();\n\t\t\t} else {\n\t\t\t\tval = $selected[0].value;\n\t\t\t}\n\n\t\t\tthis.model.set( attr, val );\n\n\t\t},\n\n\t\t/**\n\t\t * Change event for radio element groups\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.17.6\n\t\t * @version 3.17.6\n\t\t */\n\t\ton_radio_select: function( event ) {\n\n\t\t\tvar $el = $( event.target ),\n\t\t\t\tattr = $el.attr( 'name' ),\n\t\t\t\tval = $el.val();\n\n\t\t\tthis.model.set( attr, val );\n\n\t\t},\n\n\t\t/**\n\t\t * Keydown function for .llms-editable-title elements\n\t\t * Blurs\n\t\t *\n\t\t * @param {obj} event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.17.8\n\t\t */\n\t\ton_keydown: function( event ) {\n\n\t\t\tevent.stopPropagation();\n\n\t\t\tvar self = this,\n\t\t\t\tkey = event.which || event.keyCode,\n\t\t\t\tshift = event.shiftKey;\n\t\t\t\t// ctrl = event.metaKey || event.ctrlKey;\n\n\t\t\tswitch ( key ) {\n\n\t\t\t\tcase 13: // enter\n\t\t\t\t\t// shift + enter should add a return\n\t\t\t\t\tif ( ! shift ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tevent.target.blur();\n\t\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t\tcase 27: // escape\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.revert_edits( event );\n\t\t\t\t\tevent.target.blur();\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Open the WP media lib\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.6\n\t\t */\n\t\topen_media_lib: function( event ) {\n\n\t\t\tevent.stopPropagation();\n\n\t\t\tvar self = this,\n\t\t\t\t$el = $( event.currentTarget );\n\n\t\t\tif ( self.media_lib ) {\n\n\t\t\t\tself.media_lib.uploader.uploader.param( 'post_id' );\n\n\t\t\t} else {\n\n\t\t\t\tself.media_lib = wp.media.frames.file_frame = wp.media( {\n\t\t\t\t\ttitle: LLMS.l10n.translate( 'Select an image' ),\n\t\t\t\t\tbutton: {\n\t\t\t\t\t\ttext: LLMS.l10n.translate( 'Use this image' ),\n\t\t\t\t\t},\n\t\t\t\t\tmultiple: false\t// Set to true to allow multiple files to be selected\n\t\t\t\t} );\n\n\t\t\t\tself.media_lib.on( 'select', function() {\n\n\t\t\t\t\tvar size = $el.attr( 'data-image-size' ),\n\t\t\t\t\t\tattachment = self.media_lib.state().get( 'selection' ).first().toJSON(),\n\t\t\t\t\t\timage = self.model.get( $el.attr( 'data-attribute' ) ),\n\t\t\t\t\t\turl;\n\n\t\t\t\t\tif ( size && attachment.sizes[ size ] ) {\n\t\t\t\t\t\turl = attachment.sizes[ size ].url;\n\t\t\t\t\t} else {\n\t\t\t\t\t\turl = attachment.url;\n\t\t\t\t\t}\n\n\t\t\t\t\timage.set( {\n\t\t\t\t\t\tid: attachment.id,\n\t\t\t\t\t\tsrc: url,\n\t\t\t\t\t} );\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\t// This flag is used to protect the media files uploaded via places like the Quiz questions (Picture type)\n\t\t\tself.media_lib.uploader.options.uploader.params.llms = 1;\n\n\t\t\tself.media_lib.open();\n\n\t\t},\n\n\t\t/**\n\t\t * Click event to remove an image\n\t\t *\n\t\t * @param obj event js event obj\n\t\t * @return voids\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tremove_image: function( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.model.get( $( event.currentTarget ).attr( 'data-attribute' ) ).set( {\n\t\t\t\tid: '',\n\t\t\t\tsrc: '',\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Helper to undo changes\n\t\t * Bound to \"escape\" key via on_keydown function\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trevert_edits: function( event ) {\n\t\t\tvar $el = $( event.target ),\n\t\t\t\tval = $el.attr( 'data-original-content' );\n\t\t\t$el.html( val );\n\t\t},\n\n\t\t/**\n\t\t * Sync changes to the model and DB\n\t\t *\n\t\t * @param {obj} event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tsave_edits: function( event ) {\n\n\t\t\tvar $el = $( event.target ),\n\t\t\t\tval = this.get_content( $el );\n\n\t\t\tthis.model.set( $el.attr( 'data-attribute' ), val );\n\n\t\t},\n\n\t\t/**\n\t\t * Change event for a switch element\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.17.0\n\t\t */\n\t\ttoggle_switch: function( event ) {\n\n\t\t\tevent.stopPropagation();\n\t\t\tvar $el = $( event.target ),\n\t\t\t\tattr = $el.attr( 'name' ),\n\t\t\t\trerender = $el.attr( 'data-rerender' ),\n\t\t\t\tval;\n\n\t\t\tif ( $el.is( ':checked' ) ) {\n\t\t\t\tval = $el.attr( 'data-on' ) ? $el.attr( 'data-on' ) : 'yes';\n\t\t\t} else {\n\t\t\t\tval = $el.attr( 'data-off' ) ? $el.attr( 'data-off' ) : 'no';\n\t\t\t}\n\n\t\t\tif ( -1 !== attr.indexOf( '.' ) ) {\n\n\t\t\t\tvar split = attr.split( '.' );\n\n\t\t\t\tif ( 'parent' === split[0] ) {\n\t\t\t\t\tthis.model.get_parent().set( split[1], val );\n\t\t\t\t} else {\n\t\t\t\t\tthis.model.get( split[0] ).set( split[1], val );\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tthis.model.set( attr, val );\n\n\t\t\t}\n\n\t\t\tthis.trigger( attr.replace( '.', '-' ) + '_toggle', val );\n\n\t\t\tif ( ! rerender || 'yes' === rerender ) {\n\t\t\t\tvar self = this;\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\tself.render();\n\t\t\t\t}, 100 );\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Initializes a WP Editor on a textarea\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.37.11 Replace reference to `wp.editor` with `_.getEditor()` helper.\n\t\t *\n\t\t * @param {String} id CSS ID of the editor (don't include #).\n\t\t * @param {Object} settings Optional object of settings to pass to wp.oldEditor.initialize().\n\t\t * @return {Void}\n\t\t */\n\t\tinit_editor: function( id, settings ) {\n\n\t\t\tsettings = settings || {};\n\n\t\t\tvar editor = _.getEditor();\n\n\t\t\teditor.remove( id );\n\n\t\t\teditor.initialize( id, $.extend( true, editor.getDefaultSettings(), {\n\t\t\t\tmediaButtons: true,\n\t\t\t\ttinymce: {\n\t\t\t\t\ttoolbar1: 'bold,italic,strikethrough,bullist,numlist,blockquote,hr,alignleft,aligncenter,alignright,link,unlink,wp_adv',\n\t\t\t\t\ttoolbar2: 'formatselect,underline,alignjustify,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help',\n\t\t\t\t\tsetup: _.bind( this.on_editor_ready, this ),\n\t\t\t\t}\n\t\t\t}, settings ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Setup a permalink editor to allow editing of a permalink\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.6\n\t\t * @version 3.16.6\n\t\t */\n\t\tmake_slug_editable: function( event ) {\n\n\t\t\tvar self = this,\n\t\t\t\t$btn = $( event.currentTarget ),\n\t\t\t\t$link = $btn.prevAll( 'a' ),\n\t\t\t\t$input = $btn.prev( 'input.permalink' ),\n\t\t\t\tfull_url = $link.attr( 'href' ),\n\t\t\t\tslug = $input.val(),\n\t\t\t\tshort_url = full_url.replace( slug, '' );\n\n\t\t\t// hide the button\n\t\t\t$btn.hide();\n\n\t\t\t// make the link not clickable\n\t\t\t$link.css( {\n\t\t\t\tcolor: '#999',\n\t\t\t\t'pointer-events': 'none',\n\t\t\t\t'text-decoration': 'none',\n\t\t\t} );\n\n\t\t\t// remove the current slug & trailing slash from the URL\n\t\t\t$link.text( short_url.substring( 0, short_url.length - 1 ) );\n\n\t\t\t// focus in on the field\n\t\t\t$input.show().focus();\n\n\t\t},\n\n\t\t/**\n\t\t * Callback function called after initialization of an editor\n\t\t *\n\t\t * Updates UI if a label is present.\n\t\t *\n\t\t * Binds a change event to ensure editor changes are saved to the model.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.17.1 Uknown.\n\t\t * @since 3.37.11 Replace references to `wp.editor` with `_.getEditor()` helper.\n\t\t *\n\t\t * @param {Object} editor TinyMCE Editor instance.\n\t\t * @return {Void}\n\t\t */\n\t\ton_editor_ready: function( editor ) {\n\n\t\t\tvar self = this,\n\t\t\t\t$ed = $( '#' + editor.id ),\n\t\t\t\t$parent = $ed.closest( '.llms-editable-editor' ),\n\t\t\t\t$label = $parent.find( '.llms-label' ),\n\t\t\t\tprop = $ed.attr( 'data-attribute' )\n\n\t\t\tif ( $label.length ) {\n\t\t\t\t$label.prependTo( $parent.find( '.wp-editor-tools' ) );\n\t\t\t}\n\n\t\t\t// save changes to the model via Visual ed\n\t\t\teditor.on( 'change', function( event ) {\n\t\t\t\tself.model.set( prop, _.getEditor().getContent( editor.id ) );\n\t\t\t} );\n\n\t\t\t// save changes via Text ed\n\t\t\t$ed.on( 'input', function( event ) {\n\t\t\t\tself.model.set( prop, $ed.val() );\n\t\t\t} );\n\n\t\t\t// trigger an input on the Text ed when quicktags buttons are clicked\n\t\t\t$parent.on( 'click', '.quicktags-toolbar .ed_button', function() {\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t$ed.trigger( 'input' );\n\t\t\t\t}, 10 );\n\t\t\t} );\n\n\t\t},\n\n\t\t_validate_url: function( str ) {\n\n\t\t\tvar a = document.createElement( 'a' );\n\t\t\ta.href = str;\n\t\t\treturn ( a.host && a.host !== window.location.host );\n\n\t\t}\n\n\t};\n\n} );\n\n","/**\n * _receive override for Backbone.CollectionView core\n * enables connection with jQuery UI draggable buttons\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/_Receivable',[], function() {\n\n\treturn {\n\n\t\t/**\n\t\t * Overloads the function from Backbone.CollectionView core because it doesn't properly handle\n\t\t * receives from a jQuery UI draggable object\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @param obj ui jQuery UI object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_receive : function( event, ui ) {\n\n\t\t\t// came from sidebar drag\n\t\t\tif ( ui.sender.hasClass( 'ui-draggable' ) ) {\n\t\t\t\tvar index = this._getContainerEl().children().index( ui.helper );\n\t\t\t\tui.helper.remove(); // remove the helper\n\t\t\t\tthis.collection.add( {}, { at: index } );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar senderListEl = ui.sender;\n\t\t\tvar senderCollectionListView = senderListEl.data( 'view' );\n\t\t\tif ( ! senderCollectionListView || ! senderCollectionListView.collection ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar newIndex = this._getContainerEl().children().index( ui.item );\n\t\t\tvar modelReceived = senderCollectionListView.collection.get( ui.item.attr( 'data-model-cid' ) );\n\t\t\tsenderCollectionListView.collection.remove( modelReceived );\n\t\t\tthis.collection.add( modelReceived, { at : newIndex } );\n\t\t\tmodelReceived.collection = this.collection; // otherwise will not get properly set, since modelReceived.collection might already have a value.\n\t\t\tthis.setSelectedModel( modelReceived );\n\t\t},\n\n\t}\n\n} );\n\n","/**\n * Shiftable view mixin function\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/_Shiftable',[], function() {\n\n\treturn {\n\n\t\t/**\n\t\t * Conditionally hide action buttons based on section position in collection\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tmaybe_hide_shiftable_buttons: function() {\n\n\t\t\tif ( ! this.model.collection ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar type = this.model.get( 'type' );\n\n\t\t\tif ( this.model.collection.first() === this.model ) {\n\t\t\t\tthis.$el.find( '.shift-up--' + type ).hide();\n\t\t\t} else if ( this.model.collection.last() === this.model ) {\n\t\t\t\tthis.$el.find( '.shift-down--' + type ).hide();\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Move an item in a collection from one position to another\n\t\t *\n\t\t * @param int old_index current (old) index within the collection\n\t\t * @param int new_index desired (new) index within the collection\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tshift: function( old_index, new_index ) {\n\n\t\t\tvar collection = this.model.collection;\n\n\t\t\tcollection.remove( this.model );\n\t\t\tcollection.add( this.model, { at: new_index } );\n\t\t\tcollection.trigger( 'reorder' );\n\n\t\t},\n\n\t\t/**\n\t\t * Move an item down the tree one position\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tshift_down: function( e ) {\n\n\t\t\te.preventDefault();\n\t\t\tvar index = this.model.collection.indexOf( this.model );\n\t\t\tthis.shift( index, index + 1 );\n\n\t\t},\n\n\t\t/**\n\t\t * Move an item up the tree one position\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tshift_up: function( e ) {\n\n\t\t\te.preventDefault();\n\t\t\tvar index = this.model.collection.indexOf( this.model );\n\t\t\tthis.shift( index, index - 1 );\n\n\t\t},\n\n\t};\n\n} );\n\n","/**\n * Subview utility mixin\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/_Subview',[], function() {\n\n\treturn {\n\n\t\tsubscriptions: {},\n\n\t\t/**\n\t\t * Name of the current subview\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tstate: '',\n\n\t\t/**\n\t\t * Object of subview data\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tviews: {},\n\n\t\t/**\n\t\t * Retrieve a subview by name from this.views\n\t\t *\n\t\t * @param string name name of the subview\n\t\t * @return obl|false\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_subview: function( name ) {\n\n\t\t\tif ( this.views[ name ] ) {\n\t\t\t\treturn this.views[ name ];\n\t\t\t}\n\n\t\t\treturn false;\n\n\t\t},\n\n\t\tevents_subscribe: function( events ) {\n\n\t\t\t_.each( events, function( func, event ) {\n\n\t\t\t\tthis.subscriptions[ event ] = func;\n\t\t\t\tBackbone.pubSub.on( event, func, this );\n\n\t\t\t}, this );\n\n\t\t},\n\n\t\tevents_unsubscribe: function() {\n\n\t\t\t_.each( this.subscriptions, function( func, event ) {\n\n\t\t\t\tBackbone.pubSub.off( event, func, this );\n\t\t\t\tdelete this.subscriptions[ event ];\n\n\t\t\t}, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Remove a single subview (and all it's subviews) by name\n\t\t *\n\t\t * @param string name name of the subview\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tremove_subview: function( name ) {\n\n\t\t\tvar view = this.get_subview( name );\n\n\t\t\tif ( ! view ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( view.instance ) {\n\n\t\t\t\t// remove the subviews if the view has subviews\n\t\t\t\tif ( ! _.isEmpty( view.instance.views ) ) {\n\t\t\t\t\tview.instance.events_unsubscribe();\n\t\t\t\t\tview.instance.remove_subviews();\n\t\t\t\t}\n\n\t\t\t\tview.instance.off();\n\t\t\t\tview.instance.off( null, null, null );\n\t\t\t\tview.instance.remove();\n\t\t\t\tview.instance.undelegateEvents();\n\n\t\t\t\t// _.each( view.instance, function( val, key ) {\n\t\t\t\t// delete view.instance[ key ];\n\t\t\t\t// } );\n\n\t\t\t\tview.instance = null;\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Remove all subviews (and all the subviews of those subviews)\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tremove_subviews: function() {\n\n\t\t\t_.each( this.views, function( data, name ) {\n\n\t\t\t\tthis.remove_subview( name );\n\n\t\t\t}, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Render subviews based on current state\n\t\t *\n\t\t * @param obj view_data additional data to pass to the subviews\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender_subviews: function( view_data ) {\n\n\t\t\tview_data = view_data || {};\n\n\t\t\t_.each( this.views, function( data, name ) {\n\n\t\t\t\tif ( this.state === data.state ) {\n\n\t\t\t\t\tthis.render_subview( name, view_data );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.remove_subview( name );\n\n\t\t\t\t}\n\n\t\t\t}, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Render a single subview by name\n\t\t *\n\t\t * @param string name name of the subview\n\t\t * @param obj view_data additional data to pass to the subview initializer\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender_subview: function( name, view_data ) {\n\n\t\t\tvar view = this.get_subview( name );\n\n\t\t\tif ( ! view ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.remove_subview( name );\n\n\t\t\tif ( ! view.instance ) {\n\t\t\t\tview.instance = new view.class( view_data );\n\t\t\t}\n\n\t\t\tview.instance.render();\n\n\t\t},\n\n\t\t/**\n\t\t * Set the current subview\n\t\t * Must call render after!\n\t\t *\n\t\t * @param string state name of the state [builder|editor]\n\t\t * @return obj this for chaining\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tset_state: function ( state ) {\n\n\t\t\tthis.state = state;\n\t\t\treturn this;\n\n\t\t},\n\n\t}\n\n} );\n\n","/**\n * Trashable model\n *\n * @type {Object}\n * @since 3.16.12\n * @version 3.16.12\n */\ndefine( 'Views/_Trashable',[], function() {\n\n\treturn {\n\n\t\t/**\n\t\t * DOM Events\n\t\t *\n\t\t * @type {Object}\n\t\t * @since 3.16.12\n\t\t * @version 3.16.12\n\t\t */\n\t\tevents: {\n\t\t\t'click a[href=\"#llms-trash-model\"]': 'trash_model',\n\t\t\t'click button.llms-trash-model': 'trash_model',\n\t\t},\n\n\t\t/**\n\t\t * Remove a model from it's parent and delete it\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.12\n\t\t * @version 3.16.12\n\t\t */\n\t\ttrash_model: function( event ) {\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\n\t\t\tvar msg = LLMS.l10n.replace( 'Are you sure you want to move this %s to the trash?', {\n\t\t\t\t'%s': this.model.get_l10n_type(),\n\t\t\t} );\n\n\t\t\tif ( window.confirm( msg ) ) {\n\n\t\t\t\tif ( this.model.collection ) {\n\t\t\t\t\tthis.model.collection.remove( this.model );\n\t\t\t\t}\n\n\t\t\t\t// publish event\n\t\t\t\tBackbone.pubSub.trigger( 'model-trashed', this.model );\n\n\t\t\t\t// trigger local event so extending views can run other actions where necessary\n\t\t\t\tthis.trigger( 'model-trashed', this.model );\n\n\t\t\t}\n\n\t\t},\n\n\t}\n\n} );\n\n","/**\n * Load view mixins\n *\n * @package LifterLMS/Scripts\n *\n * @since 3.17.1\n * @version 3.17.1\n */\n\ndefine( 'Views/_loader',[\n\t\t'Views/_Detachable',\n\t\t'Views/_Editable',\n\t\t'Views/_Receivable',\n\t\t'Views/_Shiftable',\n\t\t'Views/_Subview',\n\t\t'Views/_Trashable'\n\t],\n\tfunction(\n\t\tDetachable,\n\t\tEditable,\n\t\tReceivable,\n\t\tShiftable,\n\t\tSubview,\n\t\tTrashable\n\t) {\n\n\t\treturn {\n\t\t\tDetachable: Detachable,\n\t\t\tEditable: Editable,\n\t\t\tReceivable: Receivable,\n\t\t\tShiftable: Shiftable,\n\t\t\tSubview: Subview,\n\t\t\tTrashable: Trashable,\n\t\t};\n\n} );\n\n","/**\n * Constructor functions for constructing models, views, and collections\n *\n * @since 3.16.0\n * @version 3.17.1\n */\ndefine( 'Controllers/Construct',[\n\t\t'Collections/loader',\n\t\t'Models/loader',\n\t\t'Views/_loader'\n\t], function(\n\t\tCollections,\n\t\tModels,\n\t\tViews\n\t) {\n\n\t\treturn function() {\n\n\t\t\t/**\n\t\t\t * Internal getter\n\t\t\t * Constructs new Collections, Models, and Views\n\t\t\t *\n\t\t\t * @param obj type type of object to construct [Collection,Model,View]\n\t\t\t * @param string name name of the object to construct\n\t\t\t * @param obj data object data to pass into the object's constructor\n\t\t\t * @param obj options object options to pass into the constructor\n\t\t\t * @return obj\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tfunction get( type, name, data, options ) {\n\n\t\t\t\tif ( ! type[ name ] ) {\n\t\t\t\t\tconsole.log( '\"' + name + '\" not found.' );\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn new type[ name ]( data, options );\n\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Instantiate a collection\n\t\t *\n\t\t\t * @param string name Collection class name (EG: \"Sections\")\n\t\t\t * @param array data Array of model objects to pass to the constructor\n\t\t\t * @param obj options Object of options to pass to the constructor\n\t\t\t * @return obj\n\t\t\t * @since 3.17.0\n\t\t\t * @version 3.17.0\n\t\t\t */\n\t\t\tthis.get_collection = function( name, data, options ) {\n\n\t\t\t\treturn get( Collections, name, data, options );\n\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Instantiate a model\n\t\t\t *\n\t\t\t * @param string name Model class name (EG: \"Section\")\n\t\t\t * @param obj data Object of model attributes to pass to the constructor\n\t\t\t * @param obj options Object of options to pass to the constructor\n\t\t\t * @return obj\n\t\t\t * @since 3.17.0\n\t\t\t * @version 3.17.0\n\t\t\t */\n\t\t\tthis.get_model = function( name, data, options ) {\n\n\t\t\t\treturn get( Models, name, data, options );\n\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Let 3rd parties extend a view using any of the mixin (_) views\n\t\t\t *\n\t\t\t * @param {obj} view base object used for the view\n\t\t\t * @param... {string} extends any number of strings that should be mixed into the view\n\t\t\t * @return obj\n\t\t\t * @since 3.17.1\n\t\t\t * @version 3.17.1\n\t\t\t */\n\t\t\tthis.extend_view = function() {\n\n\t\t\t\tvar view = arguments[0],\n\t\t\t\ti = 1;\n\n\t\t\t\twhile ( arguments[ i ] ) {\n\n\t\t\t\t\tvar classname = arguments[ i ];\n\t\t\t\t\tif ( Views[ classname ] ) {\n\n\t\t\t\t\t\tif ( view.events && Views[ classname ].events ) {\n\t\t\t\t\t\t\tview.events = _.defaults( view.events, Views[ classname ].events );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tview = _.defaults( view, Views[ classname ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\ti++;\n\t\t\t\t}\n\n\t\t\t\treturn Backbone.View.extend( view );\n\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Allows custom collection registration by extending the default BackBone collection\n\t\t\t *\n\t\t\t * @param string name model name\n\t\t\t * @param obj props properties to extend the collection with\n\t\t\t * @return void\n\t\t\t * @since 3.17.1\n\t\t\t * @version 3.17.1\n\t\t\t */\n\t\t\tthis.register_collection = function( name, props ) {\n\n\t\t\t\tCollections[ name ] = Backbone.Collection.extend( props );\n\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Allows custom model registration by extending the default abstract model\n\t\t\t *\n\t\t\t * @param string name model name\n\t\t\t * @param obj props properties to extend the abstract model with\n\t\t\t * @return void\n\t\t\t * @since 3.17.0\n\t\t\t * @version 3.17.0\n\t\t\t */\n\t\t\tthis.register_model = function( name, props ) {\n\n\t\t\t\tModels[ name ] = Models['Abstract'].extend( props );\n\n\t\t\t};\n\n\t\t\treturn this;\n\n\t\t};\n\n} );\n\n","/**\n * LifterLMS Builder Debugging suite\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Controllers/Debug',[], function() {\n\n\treturn function( settings ) {\n\n\t\tvar self = this,\n\t\t\tenabled = settings.enabled || false;\n\n\t\t/**\n\t\t * Disable debugging\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tthis.disable = function() {\n\n\t\t\tself.log( 'LifterLMS Builder debugging disabled' );\n\t\t\tenabled = false;\n\n\t\t};\n\n\t\t/**\n\t\t * Enable debugging\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tthis.enable = function() {\n\n\t\t\tenabled = true;\n\t\t\tself.log( 'LifterLMS Builder debugging enabled' );\n\n\t\t};\n\n\t\t/**\n\t\t * General logging function\n\t\t * Logs to the js console only if logging is enabled\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tthis.log = function() {\n\n\t\t\tif ( ! enabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.each( arguments, function( data ) {\n\t\t\t\tconsole.log( data );\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Toggles current state of the logger on or off\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tthis.toggle = function() {\n\n\t\t\tif ( enabled ) {\n\t\t\t\tself.disable();\n\t\t\t} else {\n\t\t\t\tself.enable();\n\t\t\t}\n\n\t\t};\n\n\t\t// on startup, log a message if logging is enabled\n\t\tif ( enabled ) {\n\t\t\tself.enable();\n\t\t}\n\n\t}\n\n} );\n\n","/**\n * Model schema functions\n *\n * @since 3.17.0\n * @version 3.17.0\n */\ndefine( 'Controllers/Schemas',[], function() {\n\n\t/**\n\t * Main Schemas class\n\t *\n\t * @param obj schemas schemas definitions initialized via PHP filters\n\t * @return obj\n\t * @since 3.17.0\n\t * @version 3.17.0\n\t */\n\treturn function( schemas ) {\n\n\t\t// initialize any custom schemas defined via PHP\n\t\tvar custom_schemas = schemas;\n\t\t_.each( custom_schemas, function( type ) {\n\t\t\t_.each( type, function( schema ) {\n\t\t\t\tschema.custom = true;\n\t\t\t} );\n\t\t} );\n\n\t\t/**\n\t\t * Retrieve a schema for a given model by type\n\t\t * Extends default schemas definitions with custom 3rd party definitions\n\t\t *\n\t\t * @param obj schema default schema definition from the model (or empty object if none defined)\n\t\t * @param string model_type the model type ('lesson', 'quiz', etc)\n\t\t * @param obj model Instance of the Backbone.Model for the given model\n\t\t * @return obj\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tthis.get = function( schema, model_type, model ) {\n\n\t\t\t// extend the default schema with custom php schemas for the type if they exist\n\t\t\tif ( custom_schemas[ model_type ] ) {\n\t\t\t\tschema = _.extend( schema, custom_schemas[ model_type ] );\n\t\t\t}\n\n\t\t\treturn schema;\n\n\t\t};\n\n\t\treturn this;\n\n\t};\n\n} );\n\n","/**\n * Sync builder data to the server\n *\n * @since 3.16.0\n * @version 4.17.0\n */\ndefine( 'Controllers/Sync',[], function() {\n\n\treturn function( Course, settings ) {\n\n\t\tthis.saving = false;\n\n\t\tvar self = this,\n\t\t\tautosave = ( 'yes' === window.llms_builder.autosave ),\n\t\t\tcheck_interval = null,\n\t\t\tcheck_interval_ms = settings.check_interval_ms || ( ( 'yes' === window.llms_builder.autosave ) ? 10000 : 1000 ),\n\t\t\tdetached = new Backbone.Collection(),\n\t\t\ttrashed = new Backbone.Collection();\n\n\t\t/**\n\t\t * init\n\t\t *\n\t\t * @since 3.16.7\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tfunction init() {\n\n\t\t\t// determine if autosaving is possible\n\t\t\tif ( 'undefined' === typeof wp.heartbeat ) {\n\n\t\t\t\twindow.llms_builder.debug.log( 'WordPress Heartbeat disabled. Autosaving is disabled!' );\n\t\t\t\tautosave = false;\n\n\t\t\t}\n\n\t\t\t// setup the check interval\n\t\t\tif ( check_interval_ms ) {\n\t\t\t\tself.set_check_interval( check_interval_ms );\n\t\t\t}\n\n\t\t\t// warn when users attempt to leave the page\n\t\t\t$( window ).on( 'beforeunload', function() {\n\n\t\t\t\tif ( self.has_unsaved_changes() ) {\n\t\t\t\t\tcheck_for_changes();\n\t\t\t\t\treturn 'Are you sure you want to abandon your changes?';\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/*\n\t\t\t /$$ /$$ /$$ /$$\n\t\t\t |__/ | $$ | $$ |__/\n\t\t\t /$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$ | $$ /$$$$$$ /$$$$$$ /$$\n\t\t\t | $$| $$__ $$|_ $$_/ /$$__ $$ /$$__ $$| $$__ $$ |____ $$| $$ |____ $$ /$$__ $$| $$\n\t\t\t | $$| $$ \\ $$ | $$ | $$$$$$$$| $$ \\__/| $$ \\ $$ /$$$$$$$| $$ /$$$$$$$| $$ \\ $$| $$\n\t\t\t | $$| $$ | $$ | $$ /$$| $$_____/| $$ | $$ | $$ /$$__ $$| $$ /$$__ $$| $$ | $$| $$\n\t\t\t | $$| $$ | $$ | $$$$/| $$$$$$$| $$ | $$ | $$| $$$$$$$| $$ | $$$$$$$| $$$$$$$/| $$\n\t\t\t |__/|__/ |__/ \\___/ \\_______/|__/ |__/ |__/ \\_______/|__/ \\_______/| $$____/ |__/\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | $$\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | $$\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t |__/\n\t\t */\n\n\t\t/**\n\t\t * Adds error message(s) to the data object returned by heartbeat-tick\n\t\t *\n\t\t * @param obj data llms_builder data object from heartbeat-tick\n\t\t * @param string|array err error messages array or string\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tfunction add_error_msg( data, err ) {\n\n\t\t\tif ( 'success' === data.status ) {\n\t\t\t\tdata.message = [];\n\t\t\t}\n\n\t\t\tdata.status = 'error';\n\t\t\tif ( 'string' === typeof err ) {\n\t\t\t\terr = [ err ];\n\t\t\t}\n\t\t\tdata.message = data.message.concat( err );\n\n\t\t\treturn data;\n\n\t\t};\n\n\t\t/**\n\t\t * Publish sync status so other areas of the application can see what's happening here\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tfunction check_for_changes() {\n\n\t\t\tvar data = {};\n\t\t\tdata.changes = self.get_unsaved_changes();\n\t\t\tdata.has_unsaved_changes = self.has_unsaved_changes( data.changes );\n\t\t\tdata.saving = self.saving;\n\n\t\t\twindow.llms_builder.debug.log( '==== start changes check ====', data, '==== finish changes check ====' );\n\n\t\t\tBackbone.pubSub.trigger( 'current-save-status', data );\n\n\t\t};\n\n\t\t/**\n\t\t * Manually Save data via Admin AJAX when the heartbeat API has been disabled\n\t\t *\n\t\t * @since 3.16.7\n\t\t * @since 4.17.0 Fixed undefined variable error when logging an error response.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tfunction do_ajax_save() {\n\n\t\t\t// prevent simultaneous saves\n\t\t\tif ( self.saving ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar changes = self.get_unsaved_changes();\n\n\t\t\t// only send data if we have data to send\n\t\t\tif ( self.has_unsaved_changes( changes ) ) {\n\n\t\t\t\tchanges.id = Course.get( 'id' );\n\n\t\t\t\tLLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'llms_builder',\n\t\t\t\t\t\taction_type: 'ajax_save',\n\t\t\t\t\t\tcourse_id: changes.id,\n\t\t\t\t\t\tllms_builder: JSON.stringify( changes ),\n\t\t\t\t\t},\n\t\t\t\t\tbeforeSend: function() {\n\n\t\t\t\t\t\twindow.llms_builder.debug.log( '==== start do_ajax_save before ====', changes, '==== finish do_ajax_save before ====' );\n\n\t\t\t\t\t\tself.saving = true;\n\n\t\t\t\t\t\tBackbone.pubSub.trigger( 'heartbeat-send', self );\n\n\t\t\t\t\t},\n\t\t\t\t\terror: function( xhr, status, error ) {\n\n\t\t\t\t\t\twindow.llms_builder.debug.log( '==== start do_ajax_save error ====', xhr, '==== finish do_ajax_save error ====' );\n\n\t\t\t\t\t\tself.saving = false;\n\n\t\t\t\t\t\tBackbone.pubSub.trigger( 'heartbeat-tick', self, {\n\t\t\t\t\t\t\tstatus: 'error',\n\t\t\t\t\t\t\tmessage: xhr.responseText + ' (' + error + ' ' + status + ')',\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( res ) {\n\n\t\t\t\t\t\tif ( ! res.llms_builder ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twindow.llms_builder.debug.log( '==== start do_ajax_save success ====', res, '==== finish do_ajax_save success ====' );\n\n\t\t\t\t\t\tres.llms_builder = process_removals( res.llms_builder );\n\t\t\t\t\t\tres.llms_builder = process_updates( res.llms_builder );\n\n\t\t\t\t\t\tself.saving = false;\n\n\t\t\t\t\t\tBackbone.pubSub.trigger( 'heartbeat-tick', self, res.llms_builder );\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Retrieve all the attributes changed on a model since the last sync\n\t\t *\n\t\t * For a new model (a model with a temp ID) or a model where _forceSync has been defined ALL atts will be returned\n\t\t * For an existing model (without a temp ID) only retrieves changed attributes as tracked by Backbone.TrackIt\n\t\t *\n\t\t * This function excludes any attributes defined as child attributes via the models relationship settings\n\t\t *\n\t\t * @param obj model instance of a Backbone.Model\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.6\n\t\t */\n\t\tfunction get_changed_attributes( model ) {\n\n\t\t\tvar atts = {},\n\t\t\t\tsync_type;\n\n\t\t\t// don't save mid editing\n\t\t\tif ( model.get( '_has_focus' ) ) {\n\t\t\t\treturn atts;\n\t\t\t}\n\n\t\t\t// model hasn't been persisted to the database to get a real ID yet\n\t\t\t// send *all* of it's atts\n\t\t\tif ( has_temp_id( model ) || true === model.get( '_forceSync' ) ) {\n\n\t\t\t\tatts = _.clone( model.attributes );\n\t\t\t\tsync_type = 'full';\n\n\t\t\t\t// only send the changed atts\n\t\t\t} else {\n\n\t\t\t\tatts = model.unsavedAttributes();\n\t\t\t\tsync_type = 'partial';\n\n\t\t\t}\n\n\t\t\tvar exclude = ( model.get_relationships ) ? model.get_child_props() : [];\n\t\t\tatts = _.omit( atts, function( val, key ) {\n\n\t\t\t\t// exclude keys that start with an underscore which are used by the\n\t\t\t\t// application but don't need to be stored in the database\n\t\t\t\tif ( 0 === key.indexOf( '_' ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else if ( -1 !== exclude.indexOf( key ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\n\t\t\t} );\n\n\t\t\tif ( model.before_save ) {\n\t\t\t\tatts = model.before_save( atts, sync_type );\n\t\t\t}\n\n\t\t\treturn atts;\n\n\t\t};\n\n\t\t/**\n\t\t * Get all the changes to an object (either a Model or a Collection of models)\n\t\t * Returns only changes to models and the IDs of that model (should changes exist)\n\t\t * Uses get_changed_attributes() to determine if all atts or only changed atts are needed\n\t\t * Processes children intelligently to only return changed children rather than the entire collection of children\n\t\t *\n\t\t * @param obj object instance of a Backbone.Model or Backbone.Collection\n\t\t * @return obj|array\t \t\tif object is a model, returns an object\n\t\t * \tif object is a collection, returns an array of objects\n\t\t * @since 3.16.0\n\t\t * @version 3.16.11\n\t\t */\n\t\tfunction get_changes_to_object( object ) {\n\n\t\t\tvar changed_atts;\n\n\t\t\tif ( object instanceof Backbone.Model ) {\n\n\t\t\t\tchanged_atts = get_changed_attributes( object );\n\n\t\t\t\tif ( object.get_relationships ) {\n\n\t\t\t\t\t_.each( object.get_child_props(), function( prop ) {\n\n\t\t\t\t\t\tvar children = get_changes_to_object( object.get( prop ) );\n\t\t\t\t\t\tif ( ! _.isEmpty( children ) ) {\n\t\t\t\t\t\t\tchanged_atts[ prop ] = children;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t// if we have any data, add the id to the model\n\t\t\t\tif ( ! _.isEmpty( changed_atts ) ) {\n\t\t\t\t\tchanged_atts.id = object.get( 'id' );\n\t\t\t\t}\n\n\t\t\t} else if ( object instanceof Backbone.Collection ) {\n\n\t\t\t\tchanged_atts = [];\n\t\t\t\tobject.each( function( model ) {\n\t\t\t\t\tvar model_changes = get_changes_to_object( model );\n\t\t\t\t\tif ( ! _.isEmpty( model_changes ) ) {\n\t\t\t\t\t\tchanged_atts.push( model_changes );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn changed_atts;\n\n\t\t};\n\n\t\t/**\n\t\t * Determines if a model has a temporary ID or a real persisted ID\n\t\t *\n\t\t * @param obj model instance of a model\n\t\t * @return boolean\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tfunction has_temp_id( model ) {\n\n\t\t\treturn ( ! _.isNumber( model.id ) && 0 === model.id.indexOf( 'temp_' ) );\n\n\t\t};\n\n\t\t/**\n\t\t * Compares changes synced to the server against current model and restarts\n\t\t * tracking on elements that haven't changed since the last sync\n\t\t *\n\t\t * @param obj model instance of a Backbone.Model\n\t\t * @param obj data data set that was processed by the server\n\t\t * @return void\n\t\t * @since 3.16.11\n\t\t * @version 3.19.4\n\t\t */\n\t\tfunction maybe_restart_tracking( model, data ) {\n\n\t\t\tBackbone.pubSub.trigger( model.get( 'type' ) + '-maybe-restart-tracking', model, data );\n\n\t\t\tvar omit = [ 'id', 'orig_id' ];\n\n\t\t\tif ( model.get_relationships ) {\n\t\t\t\tomit.concat( model.get_child_props() );\n\t\t\t}\n\n\t\t\t_.each( _.omit( data, omit ), function( val, prop ) {\n\n\t\t\t\tif ( _.isEqual( model.get( prop ), val ) ) {\n\t\t\t\t\tdelete model._unsavedChanges[ prop ];\n\t\t\t\t\tmodel._originalAttrs[ prop ] = val;\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t// if syncing was forced, allow tracking to move forward as normal moving forward\n\t\t\tmodel.unset( '_forceSync' );\n\n\t\t};\n\n\t\t/**\n\t\t * Processes response data from heartbeat-tick related to trashing & detaching models\n\t\t * On success, removes from local removal collection\n\t\t * On error, appends error messages to the data object returned to UI for on-screen feedback\n\t\t *\n\t\t * @param obj data data.llms_builder object from heartbeat-tick response\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.17.1\n\t\t */\n\t\tfunction process_removals( data ) {\n\n\t\t\t// check removals for errors\n\t\t\tvar removals = {\n\t\t\t\tdetach: detached,\n\t\t\t\ttrash: trashed,\n\t\t\t};\n\n\t\t\t_.each( removals, function( coll, key ) {\n\n\t\t\t\tif ( data[ key ] ) {\n\n\t\t\t\t\tvar errors = [];\n\n\t\t\t\t\t_.each( data[ key ] , function( info ) {\n\n\t\t\t\t\t\t// successfully detached, remove it from the detached collection\n\t\t\t\t\t\tif ( ! info.error ) {\n\n\t\t\t\t\t\t\tcoll.remove( info.id );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\terrors.push( info.error );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( errors.length ) {\n\t\t\t\t\t\t_.extend( data, add_error_msg( data, errors ) );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\treturn data;\n\t\t}\n\n\t\t/**\n\t\t * Processes response data from heartbeat-tick related to creating / updating a single object\n\t\t * Handles both collections and models as a recursive function\n\t\t *\n\t\t * @param {[type]} data [description]\n\t\t * @param {[type]} type [description]\n\t\t * @param {[type]} parent [description]\n\t\t * @param {[type]} main_data [description]\n\t\t * @return {[type]}\n\t\t * @since 3.16.0\n\t\t * @version 3.16.11\n\t\t */\n\t\tfunction process_object_updates( data, type, parent, main_data ) {\n\n\t\t\tif ( ! data[ type ] ) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tif ( parent.get( type ) instanceof Backbone.Model ) {\n\n\t\t\t\tvar info = data[ type ];\n\n\t\t\t\tif ( info.error ) {\n\n\t\t\t\t\t_.extend( main_data, add_error_msg( main_data, info.error ) );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tvar model = parent.get( type );\n\n\t\t\t\t\t// update temp ids with the real id\n\t\t\t\t\tif ( info.id != info.orig_id ) {\n\t\t\t\t\t\tmodel.set( 'id', info.id );\n\t\t\t\t\t\tdelete model._unsavedChanges.id;\n\t\t\t\t\t}\n\t\t\t\t\tmaybe_restart_tracking( model, info );\n\n\t\t\t\t\t// check children\n\t\t\t\t\tif ( model.get_relationships ) {\n\n\t\t\t\t\t\t_.each( model.get_child_props(), function( child_key ) {\n\t\t\t\t\t\t\t_.extend( data[ type ], process_object_updates( data[ type ], child_key, model, main_data ) );\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( parent.get( type ) instanceof Backbone.Collection ) {\n\n\t\t\t\t_.each( data[ type ], function( info, index ) {\n\n\t\t\t\t\tif ( info.error ) {\n\n\t\t\t\t\t\t_.extend( main_data, add_error_msg( main_data, info.error ) );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tvar model = parent.get( type ).get( info.orig_id );\n\n\t\t\t\t\t\t// update temp ids with the real id\n\t\t\t\t\t\tif ( info.id != info.orig_id ) {\n\t\t\t\t\t\t\tmodel.set( 'id', info.id );\n\t\t\t\t\t\t\tdelete model._unsavedChanges.id;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaybe_restart_tracking( model, info );\n\n\t\t\t\t\t\t// check children\n\t\t\t\t\t\tif ( model.get_relationships ) {\n\n\t\t\t\t\t\t\t_.each( model.get_child_props(), function( child_key ) {\n\t\t\t\t\t\t\t\t_.extend( data[ type ], process_object_updates( data[ type ][ index ], child_key, model, main_data ) );\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn main_data;\n\n\t\t};\n\n\t\t/**\n\t\t * Processes response data from heartbeat-tick related to updating & creating new models\n\t\t * On success, removes from local removal collection\n\t\t * On error, appends error messages to the data object returned to UI for on-screen feedback\n\t\t *\n\t\t * @param obj data data.llms_builder object from heartbeat-tick response\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tfunction process_updates( data ) {\n\n\t\t\t// only mess with updates data\n\t\t\tif ( ! data.updates ) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tif ( data.updates ) {\n\t\t\t\tdata = process_object_updates( data.updates, 'sections', Course, data );\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t};\n\n\t\t/*\n\t\t\t\t\t\t\t\t /$$ /$$ /$$ /$$\n\t\t\t\t\t\t\t\t| $$ | $$|__/ |__/\n\t\t\t /$$$$$$ /$$ /$$| $$$$$$$ | $$ /$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$\n\t\t\t /$$__ $$| $$ | $$| $$__ $$| $$| $$ /$$_____/ |____ $$ /$$__ $$| $$\n\t\t\t| $$ \\ $$| $$ | $$| $$ \\ $$| $$| $$| $$ /$$$$$$$| $$ \\ $$| $$\n\t\t\t| $$ | $$| $$ | $$| $$ | $$| $$| $$| $$ /$$__ $$| $$ | $$| $$\n\t\t\t| $$$$$$$/| $$$$$$/| $$$$$$$/| $$| $$| $$$$$$$ | $$$$$$$| $$$$$$$/| $$\n\t\t\t| $$____/ \\______/ |_______/ |__/|__/ \\_______/ \\_______/| $$____/ |__/\n\t\t\t| $$ | $$\n\t\t\t| $$ | $$\n\t\t\t|__/ |__/\n\t\t*/\n\n\t\t/**\n\t\t * Retrieve all unsaved changes for the builder instance\n\t\t *\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.17.1\n\t\t */\n\t\tthis.get_unsaved_changes = function() {\n\n\t\t\treturn {\n\t\t\t\tdetach: detached.pluck( 'id' ),\n\t\t\t\ttrash: trashed.pluck( 'id' ),\n\t\t\t\tupdates: get_changes_to_object( Course ),\n\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Check if the builder instance has unsaved changes\n\t\t *\n\t\t * @param obj changes optionally pass in an object from the return of this.get_unsaved_changes()\n\t\t * save some resources by not running the check twice during heartbeats\n\t\t * @return boolean\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tthis.has_unsaved_changes = function( changes ) {\n\n\t\t\tif ( 'undefined' === typeof changes ) {\n\t\t\t\tchanges = self.get_unsaved_changes();\n\t\t\t}\n\n\t\t\t// check all possible keys, once we find one with content we have some changes to persist\n\t\t\tvar found = _.find( changes, function( data ) {\n\n\t\t\t\treturn ( false === _.isEmpty( data ) );\n\n\t\t\t} );\n\n\t\t\treturn found ? true : false;\n\n\t\t};\n\n\t\t/**\n\t\t * Save changes right now.\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.7\n\t\t */\n\t\tthis.save_now = function() {\n\t\t\tif ( autosave ) {\n\t\t\t\twp.heartbeat.connectNow();\n\t\t\t} else {\n\t\t\t\tdo_ajax_save();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Update the interval that checks for changes to the builder instance\n\t\t *\n\t\t * @param int ms time (in milliseconds) to run the check on\n\t\t * pass 0 to disable the check\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tthis.set_check_interval = function( ms ) {\n\t\t\tcheck_interval_ms = ms;\n\t\t\tif ( check_interval ) {\n\t\t\t\tclearInterval( check_interval );\n\t\t\t}\n\t\t\tif ( check_interval_ms ) {\n\t\t\t\tcheck_interval = setInterval( check_for_changes, check_interval_ms );\n\t\t\t}\n\t\t};\n\n\t\t/*\n\t\t\t /$$ /$$ /$$\n\t\t\t| $$|__/ | $$\n\t\t\t| $$ /$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$\n\t\t\t| $$| $$ /$$_____/|_ $$_/ /$$__ $$| $$__ $$ /$$__ $$ /$$__ $$ /$$_____/\n\t\t\t| $$| $$| $$$$$$ | $$ | $$$$$$$$| $$ \\ $$| $$$$$$$$| $$ \\__/| $$$$$$\n\t\t\t| $$| $$ \\____ $$ | $$ /$$| $$_____/| $$ | $$| $$_____/| $$ \\____ $$\n\t\t\t| $$| $$ /$$$$$$$/ | $$$$/| $$$$$$$| $$ | $$| $$$$$$$| $$ /$$$$$$$/\n\t\t\t|__/|__/|_______/ \\___/ \\_______/|__/ |__/ \\_______/|__/ |_______/\n\t\t*/\n\n\t\t/**\n\t\t * Listen for detached models and send them to the server for persistence\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tBackbone.pubSub.on( 'model-detached', function( model ) {\n\n\t\t\t// detached models with temp ids haven't been persisted so we don't care\n\t\t\tif ( has_temp_id( model ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdetached.add( _.clone( model.attributes ) );\n\n\t\t} );\n\n\t\t/**\n\t\t * Listen for trashed models and send them to the server for deletion\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @version 3.17.1\n\t\t */\n\t\tBackbone.pubSub.on( 'model-trashed', function( model ) {\n\n\t\t\t// if the model has a temp ID we don't have to persist the deletion\n\t\t\tif ( has_temp_id( model ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar data = _.clone( model.attributes );\n\n\t\t\tif ( model.get_trash_id ) {\n\t\t\t\tdata.id = model.get_trash_id();\n\t\t\t}\n\n\t\t\ttrashed.add( data );\n\n\t\t} );\n\n\t\t/*\n\t\t\t /$$ /$$ /$$ /$$\n\t\t\t| $$ | $$ | $$ | $$\n\t\t\t| $$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ | $$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$\n\t\t\t| $$__ $$ /$$__ $$ |____ $$ /$$__ $$|_ $$_/ | $$__ $$ /$$__ $$ |____ $$|_ $$_/\n\t\t\t| $$ \\ $$| $$$$$$$$ /$$$$$$$| $$ \\__/ | $$ | $$ \\ $$| $$$$$$$$ /$$$$$$$ | $$\n\t\t\t| $$ | $$| $$_____/ /$$__ $$| $$ | $$ /$$| $$ | $$| $$_____/ /$$__ $$ | $$ /$$\n\t\t\t| $$ | $$| $$$$$$$| $$$$$$$| $$ | $$$$/| $$$$$$$/| $$$$$$$| $$$$$$$ | $$$$/\n\t\t\t|__/ |__/ \\_______/ \\_______/|__/ \\___/ |_______/ \\_______/ \\_______/ \\___/\n\t\t*/\n\n\n\t\t/**\n\t\t * Add data to the WP heartbeat to persist new models, changes, and deletions to the DB\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.16.7 Unknown\n\t\t * @since 4.14.0 Return early when autosaving is disabled.\n\t\t */\n\t\t$( document ).on( 'heartbeat-send', function( event, data ) {\n\n\t\t\t// Autosaving is disabled.\n\t\t\tif ( ! autosave ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// prevent simultaneous saves\n\t\t\tif ( self.saving ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar changes = self.get_unsaved_changes();\n\n\t\t\t// only send data if we have data to send\n\t\t\tif ( self.has_unsaved_changes( changes ) ) {\n\n\t\t\t\tchanges.id = Course.get( 'id' );\n\t\t\t\tself.saving = true;\n\t\t\t\tdata.llms_builder = JSON.stringify( changes );\n\n\t\t\t}\n\n\t\t\twindow.llms_builder.debug.log( '==== start heartbeat-send ====', data, '==== finish heartbeat-send ====' );\n\n\t\t\tBackbone.pubSub.trigger( 'heartbeat-send', self );\n\n\t\t} );\n\n\t\t/**\n\t\t * Confirm detachments & deletions and replace temp IDs with new persisted IDs\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 4.14.0 Return early when autosaving is disabled.\n\t\t */\n\t\t$( document ).on( 'heartbeat-tick', function( event, data ) {\n\n\t\t\t// Autosaving is disabled.\n\t\t\tif ( ! autosave ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( ! data.llms_builder ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twindow.llms_builder.debug.log( '==== start heartbeat-tick ====', data, '==== finish heartbeat-tick ====' );\n\n\t\t\tdata.llms_builder = process_removals( data.llms_builder );\n\t\t\tdata.llms_builder = process_updates( data.llms_builder );\n\n\t\t\tself.saving = false;\n\n\t\t\tBackbone.pubSub.trigger( 'heartbeat-tick', self, data.llms_builder );\n\n\t\t} );\n\n\t\t/**\n\t\t * On heartbeat errors publish an error to the main builder application\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 4.14.0 Return early when autosaving is disabled.\n\t\t */\n\t\t$( document ).on( 'heartbeat-error', function( event, data ) {\n\n\t\t\t// Autosaving is disabled.\n\t\t\tif ( ! autosave ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twindow.llms_builder.debug.log( '==== start heartbeat-error ====', data, '==== finish heartbeat-error ====' );\n\n\t\t\tself.saving = false;\n\n\t\t\tBackbone.pubSub.trigger( 'heartbeat-tick', self, {\n\t\t\t\tstatus: 'error',\n\t\t\t\tmessage: data.responseText + ' (' + data.status + ' ' + data.statusText + ')',\n\t\t\t} );\n\n\t\t} );\n\n\t\t/*\n\t\t\t /$$ /$$ /$$\n\t\t\t|__/ |__/ | $$\n\t\t\t /$$ /$$$$$$$ /$$ /$$$$$$\n\t\t\t| $$| $$__ $$| $$|_ $$_/\n\t\t\t| $$| $$ \\ $$| $$ | $$\n\t\t\t| $$| $$ | $$| $$ | $$ /$$\n\t\t\t| $$| $$ | $$| $$ | $$$$/\n\t\t\t|__/|__/ |__/|__/ \\___/\n\t\t*/\n\t\tinit();\n\n\t\treturn this;\n\n\t};\n\n} );\n\n","/**\n * Single Lesson View\n * @since 3.16.0\n * @version 3.27.0\n */\ndefine( 'Views/Lesson',[\n\t\t'Views/_Detachable',\n\t\t'Views/_Editable',\n\t\t'Views/_Shiftable',\n\t\t'Views/_Trashable'\n\t], function(\n\t\tDetachable,\n\t\tEditable,\n\t\tShiftable,\n\t\tTrashable\n\t) {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * Get default attributes for the html wrapper element\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tattributes: function() {\n\t\t\treturn {\n\t\t\t\t'data-id': this.model.id,\n\t\t\t\t'data-section-id': this.model.get( 'parent_section' ),\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * HTML class names\n\t\t * @type {String}\n\t\t */\n\t\tclassName: 'llms-builder-item llms-lesson',\n\n\t\t/**\n\t\t * Events\n\t\t * @type {Object}\n\t\t * @since 3.16.0\n\t\t * @version 3.16.12\n\t\t */\n\t\tevents: _.defaults( {\n\t\t\t'click .edit-lesson': 'open_lesson_editor',\n\t\t\t'click .llms-headline': 'open_lesson_editor',\n\t\t\t'click .edit-quiz': 'open_quiz_editor',\n\t\t\t'click .edit-assignment': 'open_assignment_editor',\n\t\t\t'click .section-prev': 'section_prev',\n\t\t\t'click .section-next': 'section_next',\n\t\t\t'click .shift-up--lesson': 'shift_up',\n\t\t\t'click .shift-down--lesson': 'shift_down',\n\t\t}, Detachable.events, Editable.events, Trashable.events ),\n\n\t\t/**\n\t\t * HTML element wrapper ID attribute\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tid: function() {\n\t\t\treturn 'llms-lesson-' + this.model.id;\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'li',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-lesson-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t * @return void\n\t\t * @since 3.14.1\n\t\t * @version 3.14.1\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.render();\n\n\t\t\tthis.listenTo( this.model, 'change', this.render );\n\n\t\t\tBackbone.pubSub.on( 'lesson-selected', this.on_select, this );\n\t\t\tBackbone.pubSub.on( 'new-lesson-added', this.on_select, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t * @return self (for chaining)\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender: function() {\n\n\t\t\tthis.$el.html( this.template( this.model ) );\n\t\t\tthis.maybe_hide_shiftable_buttons();\n\t\t\tif ( this.model.get( '_selected' ) ) {\n\t\t\t\tthis.$el.addClass( 'selected' );\n\t\t\t} else {\n\t\t\t\tthis.$el.removeClass( 'selected' );\n\t\t\t}\n\t\t\treturn this;\n\n\t\t},\n\n\t\t/**\n\t\t * Click event for the assignment editor action icon\n\t\t * Opens sidebar to the assignment editor tab\n\t\t * @param obj event JS Event obj.\n\t\t * @return void\n\t\t * @since 3.17.0\n\t\t * @version 3.27.0\n\t\t */\n\t\topen_assignment_editor: function( event ) {\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tBackbone.pubSub.trigger( 'lesson-selected', this.model, 'assignment' );\n\t\t\tthis.model.set( '_selected', true );\n\t\t\tthis.set_hash( 'assignment' );\n\n\t\t},\n\n\t\t/**\n\t\t * Click event for lesson settings action icon\n\t\t * Opens sidebar to the lesson editor tab\n\t\t * @param obj event JS Event obj.\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.27.0\n\t\t */\n\t\topen_lesson_editor: function( event ) {\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tBackbone.pubSub.trigger( 'lesson-selected', this.model, 'lesson' );\n\t\t\tthis.model.set( '_selected', true );\n\t\t\tthis.set_hash( false );\n\n\t\t},\n\n\t\t/**\n\t\t * Click event for the quiz editor action icon\n\t\t * Opens sidebar to the quiz editor tab\n\t\t * @param obj event JS Event obj.\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.27.0\n\t\t */\n\t\topen_quiz_editor: function( event ) {\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tBackbone.pubSub.trigger( 'lesson-selected', this.model, 'quiz' );\n\t\t\tthis.model.set( '_selected', true );\n\t\t\tthis.set_hash( 'quiz' );\n\n\t\t},\n\n\t\t/**\n\t\t * When a lesson is selected mark it as selected in the hidden prop\n\t\t * Allows views to re-render and reflect current state properly\n\t\t * @param obj model lesson model that's been selected\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ton_select: function( model ) {\n\n\t\t\tif ( this.model.id !== model.id ) {\n\t\t\t\tthis.model.set( '_selected', false );\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Click event for the \"Next Section\" button\n\t\t * @param obj event js event obj\n\t\t * @return void\n\t\t * @since 3.16.11\n\t\t * @version 3.16.11\n\t\t */\n\t\tsection_next: function( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._move_to_section( 'next' );\n\t\t},\n\n\t\t/**\n\t\t * Click event for the \"Previous Section\" button\n\t\t * @param obj event js event obj\n\t\t * @return void\n\t\t * @since 3.16.11\n\t\t * @version 3.16.11\n\t\t */\n\t\tsection_prev: function( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._move_to_section( 'prev' );\n\t\t},\n\n\t\t/**\n\t\t * Adds a hash for deep linking to a specific lesson tab\n\t\t * @param string subtab subtab [quiz|assignment]\n\t\t * @return void\n\t\t * @since 3.27.0\n\t\t * @version 3.27.0\n\t\t */\n\t\tset_hash: function( subtab ) {\n\n\t\t\tvar hash = 'lesson:' + this.model.get( 'id' );\n\n\t\t\tif ( subtab ) {\n\t\t\t\thash += ':' + subtab;\n\t\t\t}\n\n\t\t\twindow.location.hash = hash;\n\n\t\t},\n\n\t\t/**\n\t\t * Move the lesson into a new section\n\t\t * @param string direction direction [prev|next]\n\t\t * @return void\n\t\t * @since 3.16.11\n\t\t * @version 3.16.11\n\t\t */\n\t\t_move_to_section: function( direction ) {\n\n\t\t\tvar from_coll = this.model.collection,\n\t\t\t\tto_section;\n\n\t\t\tif ( 'next' === direction ) {\n\t\t\t\tto_section = from_coll.parent.get_next();\n\t\t\t} else if ( 'prev' === direction ) {\n\t\t\t\tto_section = from_coll.parent.get_prev();\n\t\t\t}\n\n\t\t\tif ( to_section ) {\n\n\t\t\t\tfrom_coll.remove( this.model );\n\t\t\t\tto_section.add_lesson( this.model );\n\t\t\t\tto_section.set( '_expanded', true );\n\n\t\t\t}\n\n\t\t},\n\n\t}, Detachable, Editable, Shiftable, Trashable ) );\n\n} );\n\n","/**\n * Single Section View\n *\n * @since 3.13.0\n * @version 3.16.0\n */\ndefine( 'Views/LessonList',[ 'Views/Lesson', 'Views/_Receivable' ], function( LessonView, Receivable ) {\n\n\treturn Backbone.CollectionView.extend( _.defaults( {\n\n\t\tclassName: 'llms-lessons',\n\n\t\t/**\n\t\t * Section model\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\tmodelView: LessonView,\n\n\t\t/**\n\t\t * Are sections selectable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tselectable: false,\n\n\t\t/**\n\t\t * Are sections sortable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tsortable: true,\n\n\t\tsortableOptions: {\n\t\t\taxis: false,\n\t\t\tconnectWith: '.llms-lessons',\n\t\t\tcursor: 'move',\n\t\t\thandle: '.drag-lesson',\n\t\t\titems: '.llms-lesson',\n\t\t\tplaceholder: 'llms-lesson llms-sortable-placeholder',\n\t\t},\n\n\t\tsortable_start: function( collection ) {\n\t\t\t$( '.llms-lessons' ).addClass( 'dragging' );\n\t\t},\n\n\t\tsortable_stop: function( collection ) {\n\t\t\t$( '.llms-lessons' ).removeClass( 'dragging' );\n\t\t},\n\n\t\t/**\n\t\t * Overloads the function from Backbone.CollectionView core because it doesn't send stop events\n\t\t * if moving from one sortable to another... :-(\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @param obj ui jQuery UI object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_sortStop : function( event, ui ) {\n\n\t\t\tvar modelBeingSorted = this.collection.get( ui.item.attr( 'data-model-cid' ) ),\n\t\t\t\tmodelViewContainerEl = this._getContainerEl(),\n\t\t\t\tnewIndex = modelViewContainerEl.children().index( ui.item );\n\n\t\t\tif ( newIndex == -1 && modelBeingSorted ) {\n\t\t\t\tthis.collection.remove( modelBeingSorted );\n\t\t\t}\n\n\t\t\tthis._reorderCollectionBasedOnHTML();\n\t\t\tthis.updateDependentControls();\n\n\t\t\tif ( this._isBackboneCourierAvailable() ) {\n\t\t\t\tthis.spawn( 'sortStop', { modelBeingSorted : modelBeingSorted, newIndex : newIndex } );\n\t\t\t} else {\n\t\t\t\tthis.trigger( 'sortStop', modelBeingSorted, newIndex );\n\t\t\t}\n\n\t\t},\n\n\t}, Receivable ) );\n\n} );\n\n","/**\n * Single Section View\n * @since 3.13.0\n * @version 3.16.12\n */\ndefine( 'Views/Section',[\n\t\t'Views/LessonList',\n\t\t'Views/_Editable',\n\t\t'Views/_Shiftable',\n\t\t'Views/_Trashable'\n\t], function(\n\t\tLessonListView,\n\t\tEditable,\n\t\tShiftable,\n\t\tTrashable\n\t) {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * Get default attributes for the html wrapper element\n\t\t * @return obj\n\t\t * @since 3.13.0\n\t\t * @version 3.13.0\n\t\t */\n\t\tattributes: function() {\n\t\t\treturn {\n\t\t\t\t'data-id': this.model.id,\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Element class names\n\t\t * @type {String}\n\t\t */\n\t\tclassName: 'llms-builder-item llms-section',\n\n\t\t/**\n\t\t * Events\n\t\t * @type {Object}\n\t\t * @since 3.16.0\n\t\t * @version 3.16.12\n\t\t */\n\t\tevents: _.defaults( {\n\n\t\t\t'click': 'select',\n\t\t\t'click .expand': 'expand',\n\t\t\t'click .collapse': 'collapse',\n\t\t\t'click .shift-up--section': 'shift_up',\n\t\t\t'click .shift-down--section': 'shift_down',\n\t\t\t'click .new-lesson': 'add_new_lesson',\n\t\t\t'click .llms-builder-header': 'toggle',\n\t\t\t'mouseenter .llms-lessons': 'on_mouseenter',\n\n\t\t}, Editable.events, Trashable.events ),\n\n\t\t/**\n\t\t * HTML element wrapper ID attribute\n\t\t * @return string\n\t\t * @since 3.13.0\n\t\t * @version 3.13.0\n\t\t */\n\t\tid: function() {\n\t\t\treturn 'llms-section-' + this.model.id;\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'li',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-section-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t * @return void\n\t\t * @since 3.13.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.render();\n\t\t\tthis.listenTo( this.model, 'change', this.render );\n\t\t\tthis.listenTo( this.model, 'change:_expanded', this.toggle_expanded );\n\t\t\tthis.lessonListView.collection.on( 'add', this.on_lesson_add, this );\n\n\t\t\tthis.dragTimeout = null;\n\n\t\t\tBackbone.pubSub.on( 'expand-all', this.expand, this );\n\t\t\tBackbone.pubSub.on( 'collapse-all', this.collapse, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Render the section\n\t\t * Initializes a new collection and views for all lessons in the section\n\t\t * @return void\n\t\t * @since 3.13.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender: function() {\n\n\t\t\tthis.$el.html( this.template( this.model.toJSON() ) );\n\n\t\t\tthis.maybe_hide_shiftable_buttons();\n\n\t\t\tthis.lessonListView = new LessonListView( {\n\t\t\t\tel: this.$el.find( '.llms-lessons' ),\n\t\t\t\tcollection: this.model.get( 'lessons' ),\n\t\t\t} );\n\t\t\tthis.lessonListView.render();\n\t\t\tthis.lessonListView.on( 'sortStart', this.lessonListView.sortable_start );\n\t\t\tthis.lessonListView.on( 'sortStop', this.lessonListView.sortable_stop );\n\n\t\t\t// selection changes\n\t\t\tthis.lessonListView.on( 'selectionChanged', this.active_lesson_change, this );\n\n\t\t\tthis.maybe_hide_trash_button();\n\n\t\t\treturn this;\n\n\t\t},\n\n\t\tadd_new_lesson: function( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tBackbone.pubSub.trigger( 'section-select', this.model );\n\t\t\tBackbone.pubSub.trigger( 'add-new-lesson' );\n\n\t\t},\n\n\t\tactive_lesson_change: function( current, previous ) {\n\n\t\t\tBackbone.pubSub.trigger( 'active-lesson-change', {\n\t\t\t\tcurrent: current,\n\t\t\t\tprevious: previous,\n\t\t\t} );\n\n\t\t},\n\n\t\ttoggle: function( event, update ) {\n\n\t\t\t// We only want to expand/collapse when the actual header div is clicked, not an element inside it.\n\t\t\tif ( 'llms-builder-header' !== event.target.className ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( this.model.get( '_expanded' ) ) {\n\t\t\t\tthis.collapse( event, update );\n\t\t\t} else {\n\t\t\t\tthis.expand( event, update );\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Collapse lessons within the section\n\t\t * @param obj event js event object\n\t\t * @param bool update if true, updates the model to reflect the new state\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tcollapse: function( event, update ) {\n\n\t\t\tif ( 'undefined' === typeof update ) {\n\t\t\t\tupdate = true;\n\t\t\t}\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tthis.$el.removeClass( 'expanded' ).find( '.drag-expanded' ).removeClass( 'drag-expanded' );\n\t\t\tif ( update ) {\n\t\t\t\tthis.model.set( '_expanded', false );\n\t\t\t}\n\t\t\tBackbone.pubSub.trigger( 'section-toggle', this.model );\n\n\t\t},\n\n\t\t/**\n\t\t * Expand lessons within the section\n\t\t * @param obj event js event object\n\t\t * @param bool update if true, updates the model to reflect the new state\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\texpand: function( event, update ) {\n\n\t\t\tif ( 'undefined' === typeof update ) {\n\t\t\t\tupdate = true;\n\t\t\t}\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tthis.$el.addClass( 'expanded' );\n\t\t\tif ( update ) {\n\t\t\t\tthis.model.set( '_expanded', true );\n\t\t\t}\n\t\t\tBackbone.pubSub.trigger( 'section-toggle', this.model );\n\n\t\t},\n\n\t\tmaybe_hide_trash_button: function() {\n\n\t\t\tvar $btn = this.$el.find( '.trash--section' );\n\n\t\t\tif ( this.model.get( 'lessons' ).isEmpty() ) {\n\n\t\t\t\t$btn.show();\n\n\t\t\t} else {\n\n\t\t\t\t$btn.hide()\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * When a lesson is added to the section trigger a collection reorder & update the lesson's id\n\t\t * @param obj model Lesson model\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ton_lesson_add: function( model ) {\n\n\t\t\tthis.lessonListView.collection.trigger( 'reorder' );\n\t\t\tmodel.set( 'parent_section', this.model.get( 'id' ) );\n\t\t\tthis.expand();\n\n\t\t},\n\n\t\ton_mouseenter: function( event ) {\n\n\n\t\t\tif ( $( event.target ).hasClass( 'dragging' ) ) {\n\n\t\t\t\t$( '.drag-expanded' ).removeClass( 'drag-expanded' );\n\t\t\t\t$( event.target ).addClass( 'drag-expanded' );\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Expand\n\t\t * @param {[type]} model [description]\n\t\t * @param {[type]} value [description]\n\t\t * @return {[type]}\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ttoggle_expanded: function( model, value ) {\n\n\t\t\tif ( value ) {\n\t\t\t\tthis.expand( null, false );\n\t\t\t} else {\n\t\t\t\tthis.collapse( null, false );\n\t\t\t}\n\n\t\t},\n\n\t}, Editable, Shiftable, Trashable ) );\n\n} );\n\n","/**\n * Single Section View\n *\n * @since 3.13.0\n * @version 3.16.0\n */\ndefine( 'Views/SectionList',[ 'Views/Section', 'Views/_Receivable' ], function( SectionView, Receivable ) {\n\n\treturn Backbone.CollectionView.extend( _.defaults( {\n\n\t\t/**\n\t\t * Parent element\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tel: '#llms-sections',\n\n\t\tevents : {\n\t\t\t'mousedown > li.llms-section > .llms-builder-header .llms-headline' : '_listItem_onMousedown',\n\t\t\t// 'dblclick > li, tbody > tr > td' : '_listItem_onDoubleClick',\n\t\t\t'click' : '_listBackground_onClick',\n\t\t\t'click ul.collection-view' : '_listBackground_onClick',\n\t\t\t'keydown' : '_onKeydown'\n\t\t},\n\n\t\t/**\n\t\t * Section model\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\tmodelView: SectionView,\n\n\t\t/**\n\t\t * Enable keyboard events\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tprocessKeyEvents: false,\n\n\t\t/**\n\t\t * Are sections selectable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tselectable: true,\n\n\t\t/**\n\t\t * Are sections sortable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tsortable: true,\n\n\t\tsortableOptions: {\n\t\t\taxis: false,\n\t\t\tcursor: 'move',\n\t\t\thandle: '.drag-section',\n\t\t\titems: '.llms-section',\n\t\t\tplaceholder: 'llms-section llms-sortable-placeholder',\n\t\t},\n\n\t\tsortable_start: function( collection ) {\n\t\t\tthis.$el.addClass( 'dragging' );\n\t\t},\n\n\t\tsortable_stop: function( collection ) {\n\t\t\tthis.$el.removeClass( 'dragging' );\n\t\t},\n\n\t}, Receivable ) );\n\n} );\n\n","/**\n * Single Course View\n *\n * @since 3.13.0\n * @version 3.16.0\n */\ndefine( 'Views/Course',[\n\t'Views/SectionList',\n\t'Views/_Detachable',\n\t'Views/_Editable',\n\t'Views/_Shiftable',\n\t'Views/_Trashable'\n], function(\n\t SectionListView,\n\t Detachable,\n\t Editable,\n\t Shiftable,\n\t Trashable\n) {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * Get default attributes for the html wrapper element\n\t\t *\n\t\t * @return obj\n\t\t * @since 3.13.0\n\t\t * @version 3.13.0\n\t\t */\n\t\tattributes: function() {\n\t\t\treturn {\n\t\t\t\t'data-id': this.model.id,\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * HTML element selector\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tel: '#llms-builder-main',\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'div',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-course-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t *\n\t\t * @return void\n\t\t * @since 3.13.0\n\t\t * @version 3.13.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tvar self = this;\n\n\t\t\t// this.listenTo( this.model, 'sync', this.render );\n\t\t\tthis.render();\n\n\t\t\tthis.sectionListView = new SectionListView( {\n\t\t\t\tcollection: this.model.get( 'sections' ),\n\t\t\t} );\n\t\t\tthis.sectionListView.render();\n\t\t\t// drag and drop start\n\t\t\tthis.sectionListView.on( 'sortStart', this.sectionListView.sortable_start );\n\t\t\t// drag and drop stop\n\t\t\tthis.sectionListView.on( 'sortStop', this.sectionListView.sortable_stop );\n\t\t\t// selection changes\n\t\t\tthis.sectionListView.on( 'selectionChanged', this.active_section_change );\n\t\t\t// \"select\" a section when it's added to the course\n\t\t\tthis.listenTo( this.model.get( 'sections' ), 'add', this.on_section_add );\n\n\t\t\tBackbone.pubSub.on( 'section-toggle', this.on_section_toggle, this );\n\n\t\t\tBackbone.pubSub.on( 'section-select', this.on_section_select, this );\n\n\t\t\tBackbone.pubSub.on( 'expand-section', this.expand_section, this );\n\n\t\t\tBackbone.pubSub.on( 'lesson-selected', this.active_lesson_change, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Events\n\t\t * @type {Object}\n\t\t * @version 7.6.0\n\t\t */\n\t\tevents: _.defaults( {\n\t\t\t'click .new-section': 'add_new_section',\n\t\t}, Detachable.events, Editable.events, Trashable.events ),\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t *\n\t\t * @return self (for chaining)\n\t\t * @since 3.13.0\n\t\t * @version 3.13.0\n\t\t */\n\t\trender: function() {\n\t\t\tthis.$el.html( this.template( this.model ) );\n\t\t\treturn this;\n\t\t},\n\n\t\tactive_lesson_change: function( model ) {\n\n\t\t\t// set parent section to be active\n\t\t\tvar section = this.model.get( 'sections' ).get( model.get( 'parent_section' ) );\n\t\t\tthis.sectionListView.setSelectedModel( section );\n\n\t\t},\n\n\t\t/**\n\t\t * When a section \"selection\" changes in the list\n\t\t * Update each section model so we can figure out which one is selected from other views\n\t\t *\n\t\t * @param array current array of selected models\n\t\t * @param array previous array of previously selected models\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tactive_section_change: function( current, previous ) {\n\n\t\t\t_.each( current, function( model ) {\n\t\t\t\tmodel.set( '_selected', true );\n\t\t\t} );\n\n\t\t\t_.each( previous, function( model ) {\n\t\t\t\tmodel.set( '_selected', false );\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * \"Selects\" the new section when it's added to the course\n\t\t *\n\t\t * @param obj model Section model that's just been added\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ton_section_add: function( model ) {\n\n\t\t\tthis.sectionListView.setSelectedModel( model );\n\n\t\t},\n\n\t\t/**\n\t\t * When expanding/collapsing sections\n\t\t * if collapsing, unselect, if expanding, select\n\t\t *\n\t\t * @param obj model toggled section\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ton_section_toggle: function( model ) {\n\n\t\t\tvar selected = model.get( '_expanded' ) ? [ model ] : [];\n\t\t\tthis.sectionListView.setSelectedModels( selected );\n\n\t\t},\n\n\n\t\t/**\n\t\t * When doing things like adding a lesson, seelct the section.\n\t\t *\n\t\t * @param obj model toggled section\n\t\t * @return void\n\t\t * @since 7.6.0\n\t\t * @version 7.6.0\n\t\t */\n\t\ton_section_select: function( model ) {\n\n\t\t\tthis.sectionListView.setSelectedModel( model );\n\n\t\t},\n\n\t\tadd_new_section: function( event ) {\n\n\t\t\tevent.preventDefault();\n\t\t\tBackbone.pubSub.trigger( 'add-new-section' );\n\t\t},\n\n\n\t}, Editable ) );\n\n} );\n\n","/**\n * Model settings fields view\n *\n * @since 3.17.0\n * @version 4.7.0\n */\ndefine( 'Views/SettingsFields',[], function() {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * DOM events\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tevents: {\n\t\t\t'click .llms-settings-group-toggle': 'toggle_group',\n\t\t},\n\n\t\t/**\n\t\t * Processed fields data\n\t\t * Allows access by ID without traversing the schema\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tfields: {},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'div',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-settings-fields-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t *\n\t\t * @return void\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\t// initialize: function() {},\n\n\t\t/**\n\t\t * Retrieve an array of all editor fields in all groups\n\t\t *\n\t\t * @return array\n\t\t * @since 3.17.1\n\t\t * @version 3.17.1\n\t\t */\n\t\tget_editor_fields: function() {\n\t\t\treturn _.filter( this.fields, function( field ) {\n\t\t\t\treturn this.is_editor_field( field.type );\n\t\t\t}, this );\n\t\t},\n\n\t\t/**\n\t\t * Get settings group data from a model\n\t\t *\n\t\t * @return {[type]}\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tget_groups: function() {\n\n\t\t\treturn this.model.get_settings_fields();\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if a settings group is hidden in localStorage\n\t\t *\n\t\t * @param string group_id id of the group\n\t\t * @return {Boolean}\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tis_group_hidden: function( group_id ) {\n\n\t\t\tvar id = 'llms-' + this.model.get( 'type' ) + '-settings-group--' + group_id;\n\n\t\t\tif ( 'undefined' !== window.localStorage ) {\n\t\t\t\treturn ( 'hidden' === window.localStorage.getItem( id ) );\n\t\t\t}\n\n\t\t\treturn false;\n\n\t\t},\n\n\t\t/**\n\t\t * Get the switch attribute for a field with switches\n\t\t *\n\t\t * @param obj field field data obj\n\t\t * @return string\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tget_switch_attribute: function( field ) {\n\n\t\t\treturn field.switch_attribute ? field.switch_attribute : field.attribute;\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if a field has a switch\n\t\t *\n\t\t * @param string type field type string\n\t\t * @return {Boolean}\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\thas_switch: function( type ) {\n\t\t\treturn ( -1 !== type.indexOf( 'switch' ) );\n\t\t},\n\n\t\t/**\n\t\t * Determine if a field is a default (text) field\n\t\t *\n\t\t * @param string type field type string\n\t\t * @return {Boolean}\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tis_default_field: function( type ) {\n\n\t\t\tvar types = [ 'audio_embed', 'datepicker', 'number', 'text', 'video_embed' ];\n\t\t\treturn ( -1 !== types.indexOf( type.replace( 'switch-', '' ) ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if a field is a WYSIWYG editor field\n\t\t *\n\t\t * @param string type field type string\n\t\t * @return {Boolean}\n\t\t * @since 3.17.1\n\t\t * @version 3.17.1\n\t\t */\n\t\tis_editor_field: function( type ) {\n\n\t\t\tvar types = [ 'editor', 'switch-editor' ];\n\t\t\treturn ( -1 !== types.indexOf( type.replace( 'switch-', '' ) ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if a switch is enabled for a field\n\t\t *\n\t\t * @param obj field field data object\n\t\t * @return {Boolean}\n\t\t * @since 3.17.0\n\t\t * @version 3.17.6\n\t\t */\n\t\tis_switch_condition_met: function( field ) {\n\n\t\t\treturn ( field.switch_on === this.model.get( field.switch_attribute ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t *\n\t\t * @return self (for chaining)\n\t\t * @since 3.17.0\n\t\t * @version 3.17.1\n\t\t */\n\t\trender: function() {\n\n\t\t\tthis.$el.html( this.template( this ) );\n\n\t\t\t// if editors exist, render them\n\t\t\t_.each( this.get_editor_fields(), function( field ) {\n\t\t\t\tthis.render_editor( field );\n\t\t\t}, this );\n\n\t\t\treturn this;\n\n\t\t},\n\n\t\t/**\n\t\t * Renders an editor field\n\t\t *\n\t\t * @since 3.17.1\n\t\t * @since 3.37.11 Replace references to `wp.editor` with `_.getEditor()` helper.\n\t\t *\n\t\t * @param {Object} field Field data object.\n\t\t * @return {Void}\n\t\t */\n\t\trender_editor: function( field ) {\n\n\t\t\tvar self = this,\n\t\t\t\twpEditor = _.getEditor();\n\n\t\t\t// Exit early if there's no editor to work with.\n\t\t\tif ( undefined === wpEditor ) {\n\t\t\t\tconsole.error( 'Unable to access `wp.oldEditor` or `wp.editor`.' );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twpEditor.remove( field.id );\n\t\t\tfield.settings.tinymce.setup = function( editor ) {\n\n\t\t\t\tvar $ed = $( '#' + editor.id ),\n\t\t\t\t\t$parent = $ed.closest( '.llms-editable-editor' ),\n\t\t\t\t\t$label = $parent.find( '.llms-label' ),\n\t\t\t\t\tprop = $ed.attr( 'data-attribute' )\n\n\t\t\t\tif ( $label.length ) {\n\t\t\t\t\t$label.prependTo( $parent.find( '.wp-editor-tools' ) );\n\t\t\t\t}\n\n\t\t\t\t// save changes to the model via Visual ed\n\t\t\t\teditor.on( 'change', function( event ) {\n\t\t\t\t\tself.model.set( prop, wpEditor.getContent( editor.id ) );\n\t\t\t\t} );\n\n\t\t\t\t// save changes via Text ed\n\t\t\t\t$ed.on( 'input', function( event ) {\n\t\t\t\t\tself.model.set( prop, $ed.val() );\n\t\t\t\t} );\n\n\t\t\t\t// trigger an input on the Text ed when quicktags buttons are clicked\n\t\t\t\t$parent.on( 'click', '.quicktags-toolbar .ed_button', function() {\n\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t$ed.trigger( 'input' );\n\t\t\t\t\t}, 10 );\n\t\t\t\t} );\n\t\t\t};\n\n\t\t\twpEditor.initialize( field.id, field.settings );\n\n\t\t},\n\n\t\t/**\n\t\t * Get the HTML for a select field\n\t\t *\n\t\t * @param obj options flat or multi-dimensional options object\n\t\t * @param string attribute name of the select field's attribute\n\t\t * @return string\n\t\t * @since 3.17.0\n\t\t * @version 3.17.2\n\t\t */\n\t\trender_select_options: function( options, attribute ) {\n\n\t\t\tvar html = '',\n\t\t\t\tselected = this.model.get( attribute );\n\n\t\t\tfunction option_html( label, val ) {\n\n\t\t\t\treturn '' + label.substring( 0, 100 ) + ( label.length > 100 ? '...' : '' ) + ' ';\n\n\t\t\t}\n\n\t\t\t_.each( options, function( option, index ) {\n\n\t\t\t\t// this will be an key:val object\n\t\t\t\tif ( 'string' === typeof option ) {\n\t\t\t\t\thtml += option_html( option, index );\n\t\t\t\t\t// either option group or array of key,val objects\n\t\t\t\t} else if ( 'object' === typeof option ) {\n\t\t\t\t\t// option group\n\t\t\t\t\tif ( option.label && option.options ) {\n\t\t\t\t\t\thtml += '';\n\t\t\t\t\t\thtml += this.render_select_options( option.options, attribute );\n\t\t\t\t\t} else {\n\t\t\t\t\t\thtml += option_html( option.val, option.key );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}, this );\n\n\t\t\treturn html;\n\n\t\t},\n\n\t\t/**\n\t\t * Setup and fill fields with default data based on field type\n\t\t *\n\t\t * @since 3.17.0\n\t\t * @since 3.24.0 Unknown.\n\t\t * @since 3.37.11 Replace reference to `wp.editor` with `_.getEditor()` helper.\n\t\t * @since 4.7.0 Ensure `switch-number` fields are set with the `number` type attribute.\n\t\t *\n\t\t * @param {Object} orig_field Original field as defined in the settings.\n\t\t * @param {Integer} field_index Index of the field in the current row.\n\t\t * @return {Object}\n\t\t */\n\t\tsetup_field: function( orig_field, field_index ) {\n\n\t\t\tvar defaults = {\n\t\t\t\tclasses: [],\n\t\t\t\tid: _.uniqueId( orig_field.attribute + '_' ),\n\t\t\t\tinput_type: 'text',\n\t\t\t\tlabel: '',\n\t\t\t\toptions: {},\n\t\t\t\tplaceholder: '',\n\t\t\t\ttip: '',\n\t\t\t\ttip_position: 'top-right',\n\t\t\t\tsettings: {},\n\t\t\t};\n\n\t\t\t// check the field condition if set\n\t\t\tif ( orig_field.condition && false === _.bind( orig_field.condition, this.model )() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tswitch ( orig_field.type ) {\n\n\t\t\t\tcase 'audio_embed':\n\t\t\t\t\tdefaults.classes.push( 'llms-editable-audio' );\n\t\t\t\t\tdefaults.placeholder = 'https://';\n\t\t\t\t\tdefaults.tip = LLMS.l10n.translate( 'Use SoundCloud or Spotify audio URLS.' );\n\t\t\t\t\tdefaults.input_type = 'url';\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'datepicker':\n\t\t\t\t\tdefaults.classes.push( 'llms-editable-date' );\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'editor':\n\t\t\t\tcase 'switch-editor':\n\t\t\t\t\tvar orig_settings = orig_field.settings || {};\n\t\t\t\t\tdefaults.settings = $.extend( true, _.getEditor().getDefaultSettings(), {\n\t\t\t\t\t\tmediaButtons: true,\n\t\t\t\t\t\ttinymce: {\n\t\t\t\t\t\t\ttoolbar1: 'bold,italic,strikethrough,bullist,numlist,blockquote,hr,alignleft,aligncenter,alignright,link,unlink,wp_adv',\n\t\t\t\t\t\t\ttoolbar2: 'formatselect,underline,alignjustify,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help',\n\t\t\t\t\t\t}\n\t\t\t\t\t}, orig_settings );\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'number':\n\t\t\t\tcase 'switch-number':\n\t\t\t\t\tdefaults.input_type = 'number';\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'permalink':\n\t\t\t\t\tdefaults.label = LLMS.l10n.translate( 'Permalink' );\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'video_embed':\n\t\t\t\t\tdefaults.classes.push( 'llms-editable-video' );\n\t\t\t\t\tdefaults.placeholder = 'https://';\n\t\t\t\t\tdefaults.tip = LLMS.l10n.translate( 'Use YouTube, Vimeo, or Wistia video URLS.' );\n\t\t\t\t\tdefaults.input_type = 'url';\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( this.has_switch( orig_field.type ) ) {\n\t\t\t\tdefaults.switch_on = 'yes';\n\t\t\t\tdefaults.switch_off = 'no';\n\t\t\t}\n\n\t\t\tvar field = _.defaults( _.deepClone( orig_field ), defaults );\n\n\t\t\t// if options is a function run it\n\t\t\tif ( _.isFunction( field.options ) ) {\n\t\t\t\tfield.options = _.bind( field.options, this.model )();\n\t\t\t}\n\n\t\t\t// if it's a radio field options values can be submitted as images\n\t\t\t// this will transform those images into html\n\t\t\tif ( -1 !== [ 'radio', 'switch-radio' ].indexOf( orig_field.type ) ) {\n\n\t\t\t\tvar has_images = false;\n\t\t\t\t_.each( orig_field.options, function( val, key ) {\n\t\t\t\t\tif ( -1 !== val.indexOf( '.png' ) || -1 !== val.indexOf( '.jpg' ) ) {\n\t\t\t\t\t\tfield.options[key] = ' ';\n\t\t\t\t\t\thas_images = true;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\tif ( has_images ) {\n\t\t\t\t\tfield.classes.push( 'has-images' );\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// transform classes array to a css class string\n\t\t\tif ( field.classes.length ) {\n\t\t\t\tfield.classes = ' ' + field.classes.join( ' ' );\n\t\t\t}\n\n\t\t\tthis.fields[ field.id ] = field;\n\n\t\t\treturn field;\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if toggling a switch select should rerender the view\n\t\t *\n\t\t * @param string field_type field type string\n\t\t * @return boolean\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tshould_rerender_on_toggle: function( field_type ) {\n\n\t\t\treturn ( -1 !== field_type.indexOf( 'switch-' ) ) ? 'yes' : 'no';\n\n\t\t},\n\n\t\t/**\n\t\t * Click event for toggling visibility of settings groups\n\t\t * If localStorage is available, persist state\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\ttoggle_group: function( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tvar $el = $( event.currentTarget ),\n\t\t\t\t$group = $el.closest( '.llms-model-settings' );\n\n\t\t\t$group.toggleClass( 'hidden' );\n\n\t\t\tif ( 'undefined' !== window.localStorage ) {\n\n\t\t\t\tvar id = $group.attr( 'id' );\n\t\t\t\tif ( $group.hasClass( 'hidden' ) ) {\n\t\t\t\t\twindow.localStorage.setItem( id, 'hidden' );\n\t\t\t\t} else {\n\t\t\t\t\twindow.localStorage.removeItem( id );\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t},\n\n\t} ) );\n\n} );\n\n","/**\n * Lesson Editor (Sidebar) View\n *\n * @package LifterLMS/Scripts/Builder\n *\n * @since 3.17.0\n * @since 3.35.2 Added filter `llms_lesson_rerender_change_events` to view re-render change events.\n * @version 3.35.2\n */\ndefine( 'Views/LessonEditor',[\n\t\t'Views/_Detachable',\n\t\t'Views/_Editable',\n\t\t'Views/_Trashable',\n\t\t'Views/_Subview',\n\t\t'Views/SettingsFields'\n\t], function(\n\t\tDetachable,\n\t\tEditable,\n\t\tTrashable,\n\t\tSubview,\n\t\tSettingsFields\n\t) {\n\n\t\treturn Backbone.View.extend( _.defaults( {\n\n\t\t\t/**\n\t\t\t * Current view state\n\t\t\t *\n\t\t\t * @type {String}\n\t\t\t */\n\t\t\tstate: 'default',\n\n\t\t\t/**\n\t\t\t * Current Subviews\n\t\t\t *\n\t\t\t * @type {Object}\n\t\t\t */\n\t\t\tviews: {\n\t\t\t\tsettings: {\n\t\t\t\t\tclass: SettingsFields,\n\t\t\t\t\tinstance: null,\n\t\t\t\t\tstate: 'default',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tel: '#llms-editor-lesson',\n\n\t\t\t/**\n\t\t\t * Events\n\t\t\t *\n\t\t\t * @type {Object}\n\t\t\t */\n\t\t\tevents: _.defaults( {}, Detachable.events, Editable.events, Trashable.events ),\n\n\t\t\t/**\n\t\t\t * Template function\n\t\t\t *\n\t\t\t * @type {[type]}\n\t\t\t */\n\t\t\ttemplate: wp.template( 'llms-lesson-settings-template' ),\n\n\t\t\t/**\n\t\t\t * Init\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t * @since 3.24.0 Unknown\n\t\t\t * @since 3.35.2 Added filter to change events.\n\t\t\t *\n\t\t\t * @param {obj} data Parent template data.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tinitialize: function( data ) {\n\n\t\t\t\tthis.model = data.lesson;\n\n\t\t\t\tvar change_events = window.llms.hooks.applyFilters( 'llms_lesson_rerender_change_events', [\n\t\t\t\t\t'change:date_available',\n\t\t\t\t\t'change:drip_method',\n\t\t\t\t\t'change:time_available',\n\t\t\t\t] );\n\t\t\t\t_.each( change_events, function( event ) {\n\t\t\t\t\tthis.listenTo( this.model, event, this.render );\n\t\t\t\t}, this );\n\n\t\t\t\t// render only the tooltip for points percentage when points change\n\t\t\t\tthis.listenTo( this.model, 'change:points', this.render_points_percentage );\n\n\t\t\t\t// when the \"has_prerequisite\" attr is toggled ON\n\t\t\t\t// trigger the prereq select object to set the default (first available) prereq for the lesson\n\t\t\t\tthis.listenTo( this.model, 'change:has_prerequisite', function( lesson, val ) {\n\t\t\t\t\tif ( 'yes' === val ) {\n\t\t\t\t\t\tthis.$el.find( 'select[name=\"prerequisite\"]' ).trigger( 'change' );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Render the view\n\t\t\t *\n\t\t\t * @return obj\n\t\t\t * @since 3.17.0\n\t\t\t * @version 3.24.0\n\t\t\t */\n\t\t\trender: function() {\n\n\t\t\t\tthis.$el.html( this.template( this.model ) );\n\n\t\t\t\tthis.remove_subview( 'settings' );\n\n\t\t\t\tthis.render_subview( 'settings', {\n\t\t\t\t\tel: '#llms-lesson-settings-fields',\n\t\t\t\t\tmodel: this.model,\n\t\t\t\t} );\n\n\t\t\t\tthis.init_datepickers();\n\t\t\t\tthis.init_selects();\n\n\t\t\t\tthis.render_points_percentage();\n\n\t\t\t\treturn this;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Render the portion of the template which displays the points percentage\n\t\t\t *\n\t\t\t * @return void\n\t\t\t * @since 3.24.0\n\t\t\t * @version 3.24.0\n\t\t\t */\n\t\t\trender_points_percentage: function() {\n\t\t\t\tthis.$el.find( '#llms-model-settings-field--points .llms-editable-input' )\n\t\t\t\t.addClass( 'tip--top-left' )\n\t\t\t\t.attr( 'data-tip', this.model.get_points_percentage() );\n\t\t\t}\n\n\t\t}, Detachable, Editable, Trashable, Subview, SettingsFields ) );\n\n} );\n\n","/**\n * Popover View\n *\n * @since 3.16.0\n * @version 4.0.0\n */\ndefine( 'Views/Popover',[], function() {\n\n\treturn Backbone.View.extend( {\n\n\t\t/**\n\t\t * Default Properties\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tdefaults: {\n\t\t\tplacement: 'auto',\n\t\t\t// container: document.body,\n\t\t\twidth: 'auto',\n\t\t\ttrigger: 'manual',\n\t\t\tstyle: 'light',\n\t\t\tanimation: 'pop',\n\t\t\ttitle: '',\n\t\t\tcontent: '',\n\t\t\tcloseable: false,\n\t\t\tbackdrop: false,\n\t\t\tonShow: function( $el ) {},\n\t\t\tonHide: function( $el ) {},\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'div',\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t *\n\t\t * @since 3.14.1\n\t\t * @since 4.0.0 Add RTL support for popovers.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tinitialize: function( data ) {\n\n\t\t\tif ( this.$el.length ) {\n\t\t\t\tthis.defaults.container = this.$el.parent();\n\t\t\t}\n\n\t\t\tthis.args = _.defaults( data.args, this.defaults );\n\n\t\t\t// Reverse directions for RTL sites.\n\t\t\tif ( $( 'body' ).hasClass( 'rtl' ) ) {\n\n\t\t\t\tif ( -1 !== this.args.placement.indexOf( 'left' ) ) {\n\t\t\t\t\tthis.args.placement = this.args.placement.replace( 'left', 'right' );\n\t\t\t\t} else if ( -1 !== this.args.placement.indexOf( 'right' ) ) {\n\t\t\t\t\tthis.args.placement = this.args.placement.replace( 'right', 'left' );\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.render();\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Object} Instance of the Backbone.view.\n\t\t */\n\t\trender: function() {\n\n\t\t\tthis.$el.webuiPopover( this.args );\n\t\t\treturn this;\n\n\t\t},\n\n\t\t/**\n\t\t * Hide the popover\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.16.12 Unknown.\n\t\t *\n\t\t * @return {Object} Instance of the Backbone.view.\n\t\t */\n\t\thide: function() {\n\n\t\t\tthis.$el.webuiPopover( 'hide' );\n\t\t\treturn this;\n\n\t\t},\n\n\t\t/**\n\t\t * Show the popover\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.16.12 Unknown.\n\t\t *\n\t\t * @return {Object} Instance of the Backbone.view.\n\t\t */\n\t\tshow: function() {\n\n\t\t\tthis.$el.webuiPopover( 'show' );\n\t\t\treturn this;\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Post Popover Search content View\n *\n * @since 3.16.0\n * @version 4.4.0\n */\ndefine( 'Views/PostSearch',[], function() {\n\n\treturn Backbone.View.extend( {\n\n\t\t/**\n\t\t * DOM Events\n\t\t *\n\t\t * @type obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tevents: {\n\t\t\t'select2:select': 'add_post',\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'select',\n\n\t\t/**\n\t\t * Initializer\n\t\t *\n\t\t * @param obj data customize the search box with data\n\t\t * @return void\n\t\t * @since 3.16.12\n\t\t * @version 3.16.12\n\t\t */\n\t\tinitialize: function( data ) {\n\n\t\t\tthis.post_type = data.post_type;\n\t\t\tthis.searching_message = data.searching_message || LLMS.l10n.translate( 'Searching...' );\n\n\t\t},\n\n\t\t/**\n\t\t * Select event, adds the existing lesson to the course\n\t\t *\n\t\t * @param obj event select2:select event object\n\t\t * @since 3.16.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tadd_post: function( event ) {\n\n\t\t\tvar type = this.$el.attr( 'data-post-type' );\n\n\t\t\tBackbone.pubSub.trigger( type.replace( 'llms_', '' ) + '-search-select', event.params.data, event );\n\t\t\tthis.$el.val( null ).trigger( 'change' );\n\n\t\t},\n\n\t\t/**\n\t\t * Render the section\n\t\t *\n\t\t * Initializes a new collection and views for all lessons in the section.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.16.12 Unknown.\n\t\t * @since 4.4.0 Update ajax nonce source.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\trender: function() {\n\t\t\tvar self = this;\n\t\t\tsetTimeout( function () {\n\t\t\t\tself.$el.llmsSelect2( {\n\t\t\t\t\tajax: {\n\t\t\t\t\t\tdataType: 'JSON',\n\t\t\t\t\t\tdelay: 250,\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\turl: window.ajaxurl,\n\t\t\t\t\t\tdata: function( params ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\taction: 'llms_builder',\n\t\t\t\t\t\t\t\taction_type: 'search',\n\t\t\t\t\t\t\t\tcourse_id: window.llms_builder.course.id,\n\t\t\t\t\t\t\t\tpost_type: self.post_type,\n\t\t\t\t\t\t\t\tterm: params.term,\n\t\t\t\t\t\t\t\tpage: params.page,\n\t\t\t\t\t\t\t\t_ajax_nonce: window.llms.ajax_nonce,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tdropdownParent: $( '.wrap.lifterlms.llms-builder' ),\n\t\t\t\t\t// Don't escape html from render_result.\n\t\t\t\t\tescapeMarkup: function( markup ) {\n\t\t\t\t\t\treturn markup;\n\t\t\t\t\t},\n\t\t\t\t\tplaceholder: self.searching_message,\n\t\t\t\t\ttemplateResult: self.render_result,\n\t\t\t\t\twidth: '100%',\n\t\t\t\t} );\n\t\t\t\tself.$el.attr( 'data-post-type', self.post_type );\n\t\t\t}, 0 );\n\t\t\treturn this;\n\n\t\t},\n\n\t\t/**\n\t\t * Render a nicer UI for each search result in the in the Select2 search results\n\t\t *\n\t\t * @param object res result data\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.16.12\n\t\t */\n\t\trender_result: function( res ) {\n\n\t\t\tvar $html = $( '
' );\n\n\t\t\tif ( res.loading ) {\n\t\t\t\treturn $html.append( res.text );\n\t\t\t}\n\n\t\t\tvar $side = $( '' ),\n\t\t\t\t$main = $( '
' );\n\t\t\t\ticon = ( 'attach' === res.action ) ? 'paperclip' : 'clone',\n\t\t\t\ttext = ( 'attach' === res.action ) ? LLMS.l10n.translate( 'Attach' ) : LLMS.l10n.translate( 'Clone' );\n\n\t\t\t$side.append( '' + text + ' ' );\n\n\t\t\t$main.append( '' + res.data.title + ' ' );\n\t\t\t$main.append( '' + LLMS.l10n.translate( 'ID' ) + ': ' + res.data.id + ' ' );\n\n\t\t\t_.each( res.parents, function( parent ) {\n\t\t\t\t$main.append( '' + parent + ' ' );\n\t\t\t} );\n\n\t\t\treturn $html.append( $side ).append( $main );\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Question Type View\n *\n * @since 3.16.0\n * @since 3.30.1 Fixed issue causing multiple binds for add_existing_question events.\n * @version 5.4.0\n */\ndefine( 'Views/QuestionType',[ 'Views/Popover', 'Views/PostSearch' ], function( Popover, QuestionSearch ) {\n\n\treturn Backbone.View.extend( {\n\n\t\t/**\n\t\t * HTML class names.\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tclassName: 'llms-question-type',\n\n\t\tevents: {\n\t\t\t'click .llms-add-question': 'add_question',\n\t\t},\n\n\t\t/**\n\t\t * HTML element wrapper ID attribute.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {String}\n\t\t */\n\t\tid: function() {\n\t\t\treturn 'llms-question-type-' + this.model.id;\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name.\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'li',\n\n\t\t/**\n\t\t * Get the underscore template.\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-question-type-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen).\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.render();\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Self} For chaining.\n\t\t */\n\t\trender: function() {\n\t\t\tthis.$el.html( this.template( this.model ) );\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Add a question of the selected type to the current quiz.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.27.0 Unknown.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tadd_question: function() {\n\n\t\t\tif ( 'existing' === this.model.get( 'id' ) ) {\n\t\t\t\tthis.add_existing_question_click();\n\t\t\t} else {\n\t\t\t\tthis.add_new_question();\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Add a new question to the quiz.\n\t\t *\n\t\t * @since 3.27.0\n\t\t * @since 3.30.1 Fixed issue causing multiple binds.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tadd_existing_question_click: function() {\n\n\t\t\tvar pop = new Popover( {\n\t\t\t\tel: '#llms-add-question--existing',\n\t\t\t\targs: {\n\t\t\t\t\tbackdrop: true,\n\t\t\t\t\tcloseable: true,\n\t\t\t\t\tcontainer: '#llms-builder-sidebar',\n\t\t\t\t\tdismissible: true,\n\t\t\t\t\tplacement: 'top-left',\n\t\t\t\t\twidth: 'calc( 100% - 40px )',\n\t\t\t\t\toffsetLeft: 250,\n\t\t\t\t\toffsetTop: 60,\n\t\t\t\t\ttitle: LLMS.l10n.translate( 'Add Existing Question' ),\n\t\t\t\t\tcontent: new QuestionSearch( {\n\t\t\t\t\t\tpost_type: 'llms_question',\n\t\t\t\t\t\tsearching_message: LLMS.l10n.translate( 'Search for existing questions...' ),\n\t\t\t\t\t} ).render().$el,\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tpop.show();\n\t\t\tBackbone.pubSub.on( 'question-search-select', this.add_existing_question, this );\n\t\t\tBackbone.pubSub.on( 'question-search-select', function( event ) {\n\t\t\t\tpop.hide();\n\t\t\t\tBackbone.pubSub.off( 'question-search-select', this.add_existing_question, this );\n\t\t\t}, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Callback event fired when a question is selected from the Add Existing Question popover interface.\n\t\t *\n\t\t * @since 3.27.0\n\t\t * @since 5.4.0 Use author id instead of the question author object.\n\t\t *\n\t\t * @param {Object} event JS event object.\n\t\t * @return {Void}\n\t\t */\n\t\tadd_existing_question: function( event ) {\n\n\t\t\tvar question = event.data;\n\n\t\t\tif ( 'clone' === event.action ) {\n\t\t\t\tquestion = _.prepareQuestionObjectForCloning( question );\n\t\t\t} else {\n\t\t\t\t// Use author id instead of the question author object.\n\t\t\t\tquestion = _.prepareExistingPostObjectDataForAddingOrCloning( question );\n\t\t\t\tquestion._forceSync = true;\n\t\t\t}\n\n\t\t\tquestion._expanded = true;\n\t\t\tthis.quiz.add_question( question );\n\n\t\t\tthis.quiz.trigger( 'new-question-added' );\n\n\t\t},\n\n\t\t/**\n\t\t * Add a new question to the quiz.\n\t\t *\n\t\t * @since 3.27.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tadd_new_question: function() {\n\n\t\t\tthis.quiz.add_question( {\n\t\t\t\t_expanded: true,\n\t\t\t\tchoices: this.model.get( 'default_choices' ) ? this.model.get( 'default_choices' ) : null,\n\t\t\t\tquestion_type: this.model,\n\t\t\t} );\n\n\t\t\tthis.quiz.trigger( 'new-question-added' );\n\n\t\t},\n\n\t\t// filter: function( term ) {\n\n\t\t// var words = this.model.get_keywords().map( function( word ) {\n\t\t// return word.toLowerCase();\n\t\t// } );\n\n\t\t// term = term.toLowerCase();\n\n\t\t// if ( -1 === words.indexOf( term ) ) {\n\t\t// this.$el.addClass( 'filtered' );\n\t\t// } else {\n\t\t// this.$el.removeClass( 'filtered' );\n\t\t// }\n\n\t\t// },\n\n\t\t// clear_filter: function() {\n\t\t// this.$el.removeClass( 'filtered' );\n\t\t// }\n\n\t} );\n\n} );\n\n","/**\n * Quiz question bank view\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/QuestionBank',[ 'Views/QuestionType' ], function( QuestionView ) {\n\n\treturn Backbone.CollectionView.extend( {\n\n\t\tclassName: 'llms-question',\n\n\t\t/**\n\t\t * Parent element\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tel: '#llms-question-bank',\n\n\t\t/**\n\t\t * Section model\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\tmodelView: QuestionView,\n\n\t\t/**\n\t\t * Are sections selectable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tselectable: false,\n\n\t\t/**\n\t\t * Are sections sortable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tsortable: false,\n\n\t} );\n\n} );\n\n","/**\n * Single Question Choice View\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/QuestionChoice',[ 'Views/_Editable', ], function( Editable ) {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * HTML class names\n\t\t * @type {String}\n\t\t */\n\t\tclassName: 'llms-question-choice',\n\n\t\tevents: _.defaults( {\n\t\t\t'change input[name=\"correct\"]': 'toggle_correct',\n\t\t\t'click .llms-action-icon[href=\"#llms-add-choice\"]': 'add_choice',\n\t\t\t'click .llms-action-icon[href=\"#llms-del-choice\"]': 'del_choice',\n\t\t}, Editable.events ),\n\n\t\t/**\n\t\t * HTML element wrapper ID attribute\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tid: function() {\n\t\t\treturn 'llms-question-choice-' + this.model.id;\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'li',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-question-choice-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t * @return void\n\t\t * @since 3.14.1\n\t\t * @version 3.14.1\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.render();\n\n\t\t\tthis.listenTo( this.model.collection, 'add', this.maybe_disable_buttons );\n\t\t\tthis.listenTo( this.model, 'change', this.render );\n\n\t\t\tif ( 'image' === this.model.get( 'choice_type' ) ) {\n\t\t\t\tthis.listenTo( this.model.get( 'choice' ), 'change', this.render );\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t * @return self (for chaining)\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender: function() {\n\t\t\tthis.$el.html( this.template( this.model ) );\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Add a new choice to the current choice list\n\t\t * Adds *after* the clicked choice\n\t\t * @param obj event JS event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tadd_choice: function( event ) {\n\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n\t\t\tvar index = this.model.collection.indexOf( this.model );\n\t\t\tthis.model.collection.parent.add_choice( {}, {\n\t\t\t\tat: index + 1,\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Delete the choice from the choice list & ensure there's at least one correct choice\n\t\t * @param obj event js event obj\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tdel_choice: function( event ) {\n\n\t\t\tevent.preventDefault();\n\t\t\tBackbone.pubSub.trigger( 'model-trashed', this.model );\n\t\t\tthis.model.collection.remove( this.model );\n\n\t\t},\n\n\t\t/**\n\t\t * When the correct answer input changes sync status to model\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ttoggle_correct: function() {\n\n\t\t\tvar correct = this.$el.find( 'input[name=\"correct\"]' ).is( ':checked' );\n\t\t\tthis.model.set( 'correct', correct );\n\t\t\tthis.model.collection.trigger( 'correct-update', this.model );\n\n\t\t},\n\n\t}, Editable ) );\n\n} );\n\n","/**\n * Quiz question bank view\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/QuestionChoiceList',[ 'Views/QuestionChoice' ], function( ChoiceView ) {\n\n\treturn Backbone.CollectionView.extend( {\n\n\t\tclassName: 'llms-quiz-questions',\n\n\t\t/**\n\t\t * Choice model view\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\tmodelView: ChoiceView,\n\n\t\t/**\n\t\t * Enable keyboard events\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tprocessKeyEvents: false,\n\n\t\t/**\n\t\t * Are sections selectable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tselectable: false,\n\n\t\t/**\n\t\t * Are sections sortable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tsortable: true,\n\n\t\tsortableOptions: {\n\t\t\taxis: false,\n\t\t\t// connectWith: '.llms-lessons',\n\t\t\tcursor: 'move',\n\t\t\thandle: '.llms-choice-id',\n\t\t\titems: '.llms-question-choice',\n\t\t\tplaceholder: 'llms-question-choice llms-sortable-placeholder',\n\t\t},\n\n\t\tsortable_start: function( model ) {\n\t\t\tthis.$el.addClass( 'dragging' );\n\t\t},\n\n\t\tsortable_stop: function( model ) {\n\t\t\tthis.$el.removeClass( 'dragging' );\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Single Question View.\n *\n * @since 3.16.0\n * @version 7.8.0\n */\ndefine( 'Views/Question',[\n\t\t'Views/_Detachable',\n\t\t'Views/_Editable',\n\t\t'Views/QuestionChoiceList'\n\t], function(\n\t\tDetachable,\n\t\tEditable,\n\t\tChoiceListView\n\t) {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * Generate CSS classes for the question\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tclassName: function() {\n\t\t\treturn 'llms-question qtype--' + this.model.get( 'question_type' ).get( 'id' );\n\t\t},\n\n\t\tevents: _.defaults( {\n\t\t\t'click .clone--question': 'clone',\n\t\t\t'click .delete--question': 'delete',\n\t\t\t'click .expand--question': 'expand',\n\t\t\t'click .collapse--question': 'collapse',\n\t\t\t'change input[name=\"question_points\"]': 'update_points',\n\t\t}, Detachable.events, Editable.events ),\n\n\t\t/**\n\t\t * HTML element wrapper ID attribute\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tid: function() {\n\t\t\treturn 'llms-question-' + this.model.id;\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'li',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-question-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tvar change_events = [\n\t\t\t\t'change:_expanded',\n\t\t\t\t'change:menu_order',\n\t\t\t];\n\t\t\t_.each( change_events, function( event ) {\n\t\t\t\tthis.listenTo( this.model, event, this.render );\n\t\t\t}, this );\n\n\t\t\tthis.listenTo( this.model.get( 'image' ), 'change', this.render );\n\n\t\t\tthis.listenTo( this.model.get_parent(), 'change:_points', this.render_points_percentage );\n\n\t\t\tthis.on( 'multi_choices_toggle', this.multi_choices_toggle, this );\n\n\t\t\tBackbone.pubSub.on( 'del-question-choice', this.del_choice, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 7.8.0 Added support for image upload in tinyMCE editor.\n\t\t *\n\t\t * @return self (for chaining)\n\t\t */\n\t\trender: function() {\n\n\t\t\tthis.$el.html( this.template( this.model ) );\n\n\t\t\tif ( this.model.get( 'question_type').get( 'choices' ) ) {\n\n\t\t\t\tthis.choiceListView = new ChoiceListView( {\n\t\t\t\t\tel: this.$el.find( '.llms-question-choices' ),\n\t\t\t\t\tcollection: this.model.get( 'choices' ),\n\t\t\t\t} );\n\t\t\t\tthis.choiceListView.render();\n\t\t\t\tthis.choiceListView.on( 'sortStart', this.choiceListView.sortable_start );\n\t\t\t\tthis.choiceListView.on( 'sortStop', this.choiceListView.sortable_stop );\n\n\t\t\t}\n\n\t\t\tif ( 'group' === this.model.get( 'question_type' ).get( 'id' ) ) {\n\n\t\t\t\tvar self = this;\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\tself.questionListView = self.collectionListView.quiz.get_question_list( {\n\t\t\t\t\t\tel: self.$el.find( '.llms-quiz-questions' ),\n\t\t\t\t\t\tcollection: self.model.get( 'questions' ),\n\t\t\t\t\t} );\n\t\t\t\t\tself.questionListView.render();\n\t\t\t\t\tself.questionListView.on( 'sortStart', self.questionListView.sortable_start );\n\t\t\t\t\tself.questionListView.on( 'sortStop', self.questionListView.sortable_stop );\n\t\t\t\t}, 1 );\n\n\t\t\t}\n\n\t\t\tif ( this.model.get( 'description_enabled' ) ) {\n\t\t\t\tthis.init_editor( 'question-desc--' + this.model.get( 'id' ) );\n\t\t\t}\n\n\t\t\tif ( this.model.get( 'clarifications_enabled' ) ) {\n\t\t\t\tthis.init_editor( 'question-clarifications--' + this.model.get( 'id' ), {\n\t\t\t\t\tmediaButtons: true,\n\t\t\t\t\ttinymce: {\n\t\t\t\t\t\ttoolbar1: 'bold,italic,strikethrough,bullist,numlist,alignleft,aligncenter,alignright',\n\t\t\t\t\t\ttoolbar2: '',\n\t\t\t\t\t\tsetup: _.bind( this.on_editor_ready, this ),\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tthis.init_formatting_els();\n\t\t\tthis.init_selects();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * rerender points percentage when question points are updated\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender_points_percentage: function() {\n\n\t\t\tthis.$el.find( '.llms-question-points' ).attr( 'data-tip', this.model.get_points_percentage() );\n\n\t\t},\n\n\t\t/**\n\t\t * Click event to duplicate a question within a quiz\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tclone: function( event ) {\n\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tthis.model.collection.add( this._get_question_clone( this.model ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Recursive clone function which will correctly clone children of a question\n\t\t * @param obj question question model\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_get_question_clone: function( question ) {\n\n\t\t\t// create a duplicate\n\t\t\tvar clone = _.clone( question.attributes );\n\n\t\t\t// remove id (we want the duplicate to have a temp id)\n\t\t\tdelete clone.id;\n\n\t\t\tclone.parent_id = question.get( 'id' );\n\n\t\t\t// set the question type ID\n\t\t\tclone.question_type = question.get( 'question_type' ).get( 'id' );\n\n\t\t\t// clone the image attributes separately\n\t\t\tclone.image = _.clone( question.get( 'image' ).attributes );\n\n\t\t\t// if it has choices clone all the choices\n\t\t\tif ( question.get( 'choices' ) ) {\n\n\t\t\t\tclone.choices = [];\n\n\t\t\t\tquestion.get( 'choices' ).each( function ( choice ) {\n\n\t\t\t\t\tvar choice_clone = _.clone( choice.attributes );\n\t\t\t\t\tdelete choice_clone.id;\n\t\t\t\t\tdelete choice_clone.question_id;\n\n\t\t\t\t\tclone.choices.push( choice_clone );\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tif ( 'group' === question.get( 'question_type' ).get( 'id' ) ) {\n\n\t\t\t\tclone.questions = [];\n\t\t\t\tquestion.get( 'questions' ).each( function( child ) {\n\t\t\t\t\tclone.questions.push( this._get_question_clone( child ) );\n\t\t\t\t}, this );\n\n\t\t\t}\n\n\t\t\treturn clone;\n\n\t\t},\n\n\t\t/**\n\t\t * Collapse a question and hide it's settings\n\t\t * @param obj event js event obj.\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.27.0\n\t\t */\n\t\tcollapse: function( event ) {\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tthis.model.set( '_expanded', false );\n\n\t\t},\n\n\t\t/**\n\t\t * Delete the question from a quiz / question group\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tdelete: function( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( window.confirm( LLMS.l10n.translate( 'Are you sure you want to delete this question?' ) ) ) {\n\n\t\t\t\tthis.model.collection.remove( this.model );\n\t\t\t\tBackbone.pubSub.trigger( 'model-trashed', this.model );\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Click event to reveal a question's settings & choices\n\t\t * @param obj event js event obj.\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.27.0\n\t\t */\n\t\texpand: function( event ) {\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tthis.model.set( '_expanded', true );\n\n\t\t},\n\n\t\t/**\n\t\t * When toggling multiple correct answers *off* remove all correct choices except the first correct choice in the list\n\t\t * @param string val value of the question's `multi_choice` attr [yes|no]\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tmulti_choices_toggle: function( val ) {\n\n\t\t\tif ( 'yes' === val ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.model.get( 'choices' ).update_correct( _.first( this.model.get( 'choices' ).get_correct() ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Update the model's points when the value of the points input is updated\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_points: function() {\n\n\t\t\tthis.model.set( 'points', this.$el.find( 'input[name=\"question_points\"]' ).val() * 1 );\n\n\t\t}\n\n\t}, Detachable, Editable ) );\n\n} );\n\n","/**\n * Quiz question bank view\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/QuestionList',[ 'Views/Question' ], function( QuestionView ) {\n\n\treturn Backbone.CollectionView.extend( {\n\n\t\tclassName: 'llms-quiz-questions',\n\n\t\t/**\n\t\t * Parent element\n\t\t * @type {String}\n\t\t */\n\t\t// el: '#llms-quiz-questions',\n\n\t\t/**\n\t\t * Section model\n\t\t * @type {[type]}\n\t\t */\n\t\tmodelView: QuestionView,\n\n\t\t/**\n\t\t * Enable keyboard events\n\t\t * @type {Bool}\n\t\t */\n\t\tprocessKeyEvents: false,\n\n\t\t/**\n\t\t * Are sections selectable?\n\t\t * @type {Bool}\n\t\t */\n\t\tselectable: false,\n\n\t\t/**\n\t\t * Are sections sortable?\n\t\t * @type {Bool}\n\t\t */\n\t\tsortable: true,\n\n\t\tsortableOptions: {\n\t\t\taxis: false,\n\t\t\tconnectWith: '.llms-quiz-questions',\n\t\t\tcursor: 'move',\n\t\t\thandle: '.llms-data-stamp',\n\t\t\titems: '.llms-question',\n\t\t\tplaceholder: 'llms-question llms-sortable-placeholder',\n\t\t},\n\n\t\t/**\n\t\t * Highlight drop areas when dragging starts\n\t\t * @param obj model model being sorted\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tsortable_start: function( model ) {\n\t\t\tvar selector = 'group' === model.get( 'question_type' ).get( 'id' ) ? '.llms-editor-tab > .llms-quiz-questions' : '.llms-quiz-questions';\n\t\t\t$( selector ).addClass( 'dragging' );\n\t\t},\n\n\t\t/**\n\t\t * Remove highlights when dragging stops\n\t\t * @param obj model model being sorted\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tsortable_stop: function() {\n\t\t\t$( '.llms-quiz-questions' ).removeClass( 'dragging' );\n\t\t},\n\n\t\t/**\n\t\t * Overrides receive to ensure that question groups can't be moved into question groups\n\t\t * @param obj event js event object\n\t\t * @param obj ui jQuery UI Sortable ui object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_receive : function( event, ui ) {\n\n\t\t\tevent.stopPropagation();\n\n\t\t\t// prevent moving a question group into a question group\n\t\t\tif ( ui.item.hasClass( 'qtype--group' ) && $( event.target ).closest( '.qtype--group' ).length ) {;\n\t\t\t\tui.sender.sortable( 'cancel' );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar senderListEl = ui.sender;\n\t\t\tvar senderCollectionListView = senderListEl.data( \"view\" );\n\t\t\tif( ! senderCollectionListView || ! senderCollectionListView.collection ) return;\n\n\t\t\tvar newIndex = this._getContainerEl().children().index( ui.item );\n\t\t\tvar modelReceived = senderCollectionListView.collection.get( ui.item.attr( \"data-model-cid\" ) );\n\t\t\tsenderCollectionListView.collection.remove( modelReceived );\n\t\t\tthis.collection.add( modelReceived, { at : newIndex } );\n\t\t\tmodelReceived.collection = this.collection; // otherwise will not get properly set, since modelReceived.collection might already have a value.\n\t\t\tthis.setSelectedModel( modelReceived );\n\t\t},\n\n\t\t/**\n\t\t * Override to allow manipulation of placeholder element\n\t\t * @param {[type]} event [description]\n\t\t * @param {[type]} ui [description]\n\t\t * @return {[type]}\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_sortStart : function( event, ui ) {\n\n\t\t\tvar modelBeingSorted = this.collection.get( ui.item.attr( \"data-model-cid\" ) );\n\n\t\t\tui.placeholder.addClass( 'qtype--' + modelBeingSorted.get( 'question_type' ).get( 'id' ) );\n\n\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\tthis.spawn( \"sortStart\", { modelBeingSorted : modelBeingSorted } );\n\t\t\telse this.trigger( \"sortStart\", modelBeingSorted );\n\t\t},\n\n\t\t/**\n\t\t * Overloads the function from Backbone.CollectionView core because it doesn't send stop events\n\t\t * if moving from one sortable to another... :-(\n\t\t * @param obj event js event object\n\t\t * @param obj ui jQuery UI object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_sortStop : function( event, ui ) {\n\n\t\t\tevent.stopPropagation();\n\n\t\t\tvar modelBeingSorted = this.collection.get( ui.item.attr( 'data-model-cid' ) ),\n\t\t\t\tmodelViewContainerEl = this._getContainerEl(),\n\t\t\t\tnewIndex = modelViewContainerEl.children().index( ui.item );\n\n\t\t\tif ( newIndex == -1 && modelBeingSorted ) {\n\t\t\t\tthis.collection.remove( modelBeingSorted );\n\t\t\t}\n\n\t\t\tthis._reorderCollectionBasedOnHTML();\n\t\t\tthis.updateDependentControls();\n\n\t\t\tif( this._isBackboneCourierAvailable() ) {\n\t\t\t\tthis.spawn( 'sortStop', { modelBeingSorted : modelBeingSorted, newIndex : newIndex } );\n\t\t\t} else {\n\t\t\t\tthis.trigger( 'sortStop', modelBeingSorted, newIndex );\n\t\t\t}\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Single Quiz View.\n *\n * @since 3.16.0\n * @version 5.4.0\n */\ndefine( 'Views/Quiz',[\n\t\t'Models/Quiz',\n\t\t'Views/Popover',\n\t\t'Views/PostSearch',\n\t\t'Views/QuestionBank',\n\t\t'Views/QuestionList',\n\t\t'Views/SettingsFields',\n\t\t'Views/_Detachable',\n\t\t'Views/_Editable',\n\t\t'Views/_Subview',\n\t\t'Views/_Trashable'\n\t], function(\n\t\tQuizModel,\n\t\tPopover,\n\t\tPostSearch,\n\t\tQuestionBank,\n\t\tQuestionList,\n\t\tSettingsFields,\n\t\tDetachable,\n\t\tEditable,\n\t\tSubview,\n\t\tTrashable\n\t) {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * Current view state.\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tstate: 'default',\n\n\t\t/**\n\t\t * Current Subviews.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tviews: {\n\t\t\tsettings: {\n\t\t\t\tclass: SettingsFields,\n\t\t\t\tinstance: null,\n\t\t\t\tstate: 'default',\n\t\t\t},\n\t\t\tbank: {\n\t\t\t\tclass: QuestionBank,\n\t\t\t\tinstance: null,\n\t\t\t\tstate: 'default',\n\t\t\t},\n\t\t\tlist: {\n\t\t\t\tclass: QuestionList,\n\t\t\t\tinstance: null,\n\t\t\t\tstate: 'default',\n\t\t\t},\n\t\t},\n\n\t\tel: '#llms-editor-quiz',\n\n\t\t/**\n\t\t * Events.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tevents: _.defaults( {\n\t\t\t'click #llms-existing-quiz': 'add_existing_quiz_click',\n\t\t\t'click #llms-new-quiz': 'add_new_quiz',\n\t\t\t'click #llms-show-question-bank': 'show_tools',\n\t\t\t'click .bulk-toggle': 'bulk_toggle',\n\t\t\t// 'keyup #llms-question-bank-filter': 'filter_question_types',\n\t\t\t// 'search #llms-question-bank-filter': 'filter_question_types',\n\t\t}, Detachable.events, Editable.events, Trashable.events ),\n\n\t\t/**\n\t\t * Wrapper Tag name.\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'div',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-quiz-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen).\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.19.2 Unknown.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tinitialize: function( data ) {\n\n\t\t\tthis.lesson = data.lesson;\n\n\t\t\t// Initialize the model if the quiz is enabled or it's disabled but we still have data for a quiz.\n\t\t\tif ( 'yes' === this.lesson.get( 'quiz_enabled' ) || ! _.isEmpty( this.lesson.get( 'quiz' ) ) ) {\n\n\t\t\t\tthis.model = this.lesson.get( 'quiz' );\n\n\t\t\t\t/**\n\t\t\t\t * @todo this is a terrible terrible patch\n\t\t\t\t * I've spent nearly 3 days trying to figure out how to not use this line of code\n\t\t\t\t * ISSUE REPRODUCTION:\n\t\t\t\t * Open course builder\n\t\t\t\t * Open a lesson (A) and add a quiz\n\t\t\t\t * Switch to a new lesson (B)\n\t\t\t\t * Add a new quiz\n\t\t\t\t * Return to lesson A and the quizzes parent will be set to LESSON B\n\t\t\t\t * This will happen for *every* quiz in the builder...\n\t\t\t\t * Adding this set_parent on init guarantees that the quizzes correct parent is set\n\t\t\t\t * after adding new quizzes to other lessons\n\t\t\t\t * it's awful and it's gross...\n\t\t\t\t * I'm confused and tired and going to miss release dates again because of it\n\t\t\t\t */\n\t\t\t\tthis.model.set_parent( this.lesson );\n\n\t\t\t\tthis.listenTo( this.model, 'change:_points', this.render_points );\n\n\t\t\t}\n\n\t\t\tthis.on( 'model-trashed', this.on_trashed );\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.19.2 Unknown.\n\t\t *\n\t\t * @return {Self} For chaining.\n\t\t */\n\t\trender: function() {\n\n\t\t\tthis.$el.html( this.template( this.model ) );\n\n\t\t\t// Render the quiz builder.\n\t\t\tif ( this.model ) {\n\n\t\t\t\t// Don't allow interaction until questions are lazy loaded.\n\t\t\t\tLLMS.Spinner.start( this.$el );\n\n\t\t\t\tthis.render_subview( 'settings', {\n\t\t\t\t\tel: '#llms-quiz-settings-fields',\n\t\t\t\t\tmodel: this.model,\n\t\t\t\t} );\n\n\t\t\t\tthis.init_datepickers();\n\t\t\t\tthis.init_selects();\n\n\t\t\t\tthis.render_subview( 'bank', {\n\t\t\t\t\tcollection: window.llms_builder.questions,\n\t\t\t\t} );\n\n\t\t\t\tvar last_group = null,\n\t\t\t\t\tgroup = null;\n\t\t\t\t// Let all the question types reference the quiz for adding questions quickly.\n\t\t\t\tthis.get_subview( 'bank' ).instance.viewManager.each( function( view ) {\n\n\t\t\t\t\tview.quiz = this.model;\n\n\t\t\t\t\tgroup = view.model.get( 'group' ).name;\n\n\t\t\t\t\tif ( last_group !== group ) {\n\t\t\t\t\t\tlast_group = group;\n\t\t\t\t\t\tview.$el.before( '' );\n\t\t\t\t\t}\n\n\t\t\t\t}, this );\n\n\t\t\t\tthis.model.load_questions( _.bind( function( err ) {\n\n\t\t\t\t\tif ( err ) {\n\t\t\t\t\t\talert( LLMS.l10n.translate( 'An error occurred while trying to load the questions. Please refresh the page and try again.' ) );\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t}\n\n\t\t\t\t\tLLMS.Spinner.stop( this.$el );\n\t\t\t\t\tthis.render_subview( 'list', {\n\t\t\t\t\t\tel: '#llms-quiz-questions',\n\t\t\t\t\t\tcollection: this.model.get( 'questions' ),\n\t\t\t\t\t} );\n\t\t\t\t\tvar list = this.get_subview( 'list' ).instance;\n\t\t\t\t\tlist.quiz = this;\n\t\t\t\t\tlist.collection.on( 'add', function() {\n\t\t\t\t\t\tlist.collection.trigger( 'reorder' );\n\t\t\t\t\t}, this );\n\t\t\t\t\tlist.on( 'sortStart', list.sortable_start );\n\t\t\t\t\tlist.on( 'sortStop', list.sortable_stop );\n\n\t\t\t\t}, this ) );\n\n\t\t\t\tthis.model.on( 'new-question-added', function() {\n\t\t\t\t\tvar $questions = this.$el.find( '#llms-quiz-questions' );\n\t\t\t\t\t$questions.animate( { scrollTop: $questions.prop( 'scrollHeight' ) }, 200 );\n\t\t\t\t}, this );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t},\n\n\t\t/**\n\t\t * On quiz points update, update the value of the Total Points area in the header.\n\t\t *\n\t\t * @since 3.17.6\n\t\t *\n\t\t * @param {Object} quiz Instance of the quiz model.\n\t\t * @param {Int} points Updated number of points.\n\t\t * @return {Void}\n\t\t */\n\t\trender_points: function( quiz, points ) {\n\n\t\t\tthis.$el.find( '#llms-quiz-total-points' ).text( points );\n\n\t\t},\n\n\t\t/**\n\t\t * Bulk expand / collapse question buttons.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @param {Object} Event JS event object.\n\t\t * @return {Void}\n\t\t */\n\t\tbulk_toggle: function( event ) {\n\n\t\t\tvar expanded = ( 'expand' === $( event.target ).attr( 'data-action' ) );\n\n\t\t\tthis.model.get( 'questions' ).each( function( question ) {\n\t\t\t\tquestion.set( '_expanded', expanded );\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Adds a new quiz to a lesson which currently has no quiz associated with it.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tadd_new_quiz: function() {\n\n\t\t\tvar quiz = this.lesson.get( 'quiz' );\n\t\t\tif ( _.isEmpty( quiz ) ) {\n\t\t\t\tquiz = this.lesson.add_quiz();\n\t\t\t} else {\n\t\t\t\tthis.lesson.set( 'quiz_enabled', 'yes' );\n\t\t\t}\n\n\t\t\tthis.model = quiz;\n\t\t\tthis.render();\n\n\t\t},\n\n\n\t\t/**\n\t\t * Add an existing quiz to a lesson.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.24.0 Unknown.\n\t\t * @since 5.4.0 Use author id instead of the quiz author object.\n\t\t *\n\t\t * @param {Object} event JS event object.\n\t\t * @return {Void}\n\t\t */\n\t\tadd_existing_quiz: function( event ) {\n\n\t\t\tthis.post_search_popover.hide();\n\n\t\t\tvar quiz = event.data;\n\n\t\t\tif ( 'clone' === event.action ) {\n\n\t\t\t\tquiz = _.prepareQuizObjectForCloning( quiz );\n\n\t\t\t} else {\n\n\t\t\t\t// Use author id instead of the quiz author object.\n\t\t\t\tquiz = _.prepareExistingPostObjectDataForAddingOrCloning( quiz );\n\t\t\t\tquiz._forceSync = true;\n\n\t\t\t}\n\n\t\t\tdelete quiz.lesson_id;\n\n\t\t\tthis.lesson.add_quiz( quiz );\n\t\t\tthis.model = this.lesson.get( 'quiz' );\n\t\t\tthis.render();\n\n\t\t},\n\n\t\t/**\n\t\t * Open add existing quiz popover.\n\t\t *\n\t\t * @since 3.16.12\n\t\t *\n\t\t * @param {Object} event JS event object.\n\t\t * @return {Void}\n\t\t */\n\t\tadd_existing_quiz_click: function( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.post_search_popover = new Popover( {\n\t\t\t\tel: '#llms-existing-quiz',\n\t\t\t\targs: {\n\t\t\t\t\tbackdrop: true,\n\t\t\t\t\tcloseable: true,\n\t\t\t\t\tcontainer: '.wrap.lifterlms.llms-builder',\n\t\t\t\t\tdismissible: true,\n\t\t\t\t\tplacement: 'left',\n\t\t\t\t\twidth: 480,\n\t\t\t\t\ttitle: LLMS.l10n.translate( 'Add Existing Quiz' ),\n\t\t\t\t\tcontent: new PostSearch( {\n\t\t\t\t\t\tpost_type: 'llms_quiz',\n\t\t\t\t\t\tsearching_message: LLMS.l10n.translate( 'Search for existing quizzes...' ),\n\t\t\t\t\t} ).render().$el,\n\t\t\t\t\tonHide: function() {\n\t\t\t\t\t\tBackbone.pubSub.off( 'quiz-search-select' );\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.post_search_popover.show();\n\t\t\tBackbone.pubSub.once( 'quiz-search-select', this.add_existing_quiz, this );\n\n\t\t},\n\n\t\t// filter_question_types: _.debounce( function( event ) {\n\n\t\t// \tvar term = $( event.target ).val();\n\n\t\t// \tthis.QuestionBankView.viewManager.each( function( view ) {\n\t\t// \t\tif ( ! term ) {\n\t\t// \t\t\tview.clear_filter();\n\t\t// \t\t} else {\n\t\t// \t\t\tview.filter( term );\n\t\t// \t\t}\n\t\t// \t} );\n\n\n\t\t// }, 300 ),\n\n\t\t/**\n\t\t * Callback function when the quiz has been deleted.\n\t\t *\n\t\t * @since 3.16.6\n\t\t *\n\t\t * @param {Oject} quiz Quiz Model.\n\t\t * @return {Void}\n\t\t */\n\t\ton_trashed: function( quiz ) {\n\n\t\t\tthis.lesson.set( 'quiz_enabled', 'no' );\n\t\t\tthis.lesson.set( 'quiz', '' );\n\n\t\t\tdelete this.model;\n\n\t\t\tthis.render();\n\n\t\t},\n\n\t\t/**\n\t\t * \"Add Question\" button click event.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * Creates a popover with question type list interface.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tshow_tools: function() {\n\n\t\t\t// Create popover,\n\t\t\tvar pop = new Popover( {\n\t\t\t\tel: '#llms-show-question-bank',\n\t\t\t\targs: {\n\t\t\t\t\tbackdrop: true,\n\t\t\t\t\tcloseable: true,\n\t\t\t\t\tcontainer: '#llms-builder-sidebar',\n\t\t\t\t\tdismissible: true,\n\t\t\t\t\tplacement: 'top-left',\n\t\t\t\t\twidth: 'calc( 100% - 40px )',\n\t\t\t\t\ttitle: LLMS.l10n.translate( 'Add a Question' ),\n\t\t\t\t\turl: '#llms-quiz-tools',\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Show it.\n\t\t\tpop.show();\n\n\t\t\t// If a question is added, hide the popover.\n\t\t\tthis.model.on( 'new-question-added', function() {\n\t\t\t\tpop.hide();\n\t\t\t} );\n\n\t\t},\n\n\t\tget_question_list: function( options ) {\n\t\t\treturn new QuestionList( options );\n\t\t}\n\n\t}, Detachable, Editable, Subview, Trashable, SettingsFields ) );\n\n} );\n\n","/**\n * Single Assignment View.\n *\n * @package LifterLMS/Scripts\n *\n * @since 3.17.0\n * @version 5.4.0\n */\n\ndefine( 'Views/Assignment',[\n\t\t'Views/Popover',\n\t\t'Views/PostSearch',\n\t\t'Views/_Detachable',\n\t\t'Views/_Editable',\n\t\t'Views/_Trashable',\n\t\t'Views/_Subview',\n\t\t'Views/SettingsFields'\n\t], function(\n\t\tPopover,\n\t\tPostSearch,\n\t\tDetachable,\n\t\tEditable,\n\t\tTrashable,\n\t\tSubview,\n\t\tSettingsFields\n\t) {\n\n\t\treturn Backbone.View.extend( _.defaults( {\n\n\t\t\t/**\n\t\t\t * Current view state.\n\t\t\t *\n\t\t\t * @type {String}\n\t\t\t */\n\t\t\tstate: 'default',\n\n\t\t\t/**\n\t\t\t * Current Subviews.\n\t\t\t *\n\t\t\t * @type {Object}\n\t\t\t */\n\t\t\tviews: {\n\t\t\t\tsettings: {\n\t\t\t\t\tclass: SettingsFields,\n\t\t\t\t\tinstance: null,\n\t\t\t\t\tstate: 'default',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tel: '#llms-editor-assignment',\n\n\t\t\t/**\n\t\t\t * DOM Events.\n\t\t\t *\n\t\t\t * @since 3.17.1\n\t\t\t *\n\t\t\t * @return {Object}\n\t\t\t */\n\t\t\tevents: function() {\n\t\t\t\tvar addon_events = this.is_addon_available() ? window.llms_builder.assignments.get_view_events() : {};\n\t\t\t\treturn _.defaults( {\n\t\t\t\t\t'click #llms-existing-assignment': 'add_existing_assignment_click',\n\t\t\t\t\t'click #llms-new-assignment': 'add_new_assignment',\n\t\t\t\t}, Detachable.events, Editable.events, Trashable.events, addon_events );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Wrapper Tag name.\n\t\t\t *\n\t\t\t * @type {String}\n\t\t\t */\n\t\t\ttagName: 'div',\n\n\t\t\t/**\n\t\t\t * Get the underscore template.\n\t\t\t *\n\t\t\t * @type {[type]}\n\t\t\t */\n\t\t\ttemplate: wp.template( 'llms-assignment-template' ),\n\n\t\t\t/**\n\t\t\t * Initialization callback func (renders the element on screen).\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t * @since 3.17.2 Unknown.\n\t\t\t *\n\t\t\t * @return {Void}\n\t\t\t */\n\t\t\tinitialize: function( data ) {\n\n\t\t\t\tthis.lesson = data.lesson;\n\n\t\t\t\t// initialize the model if the assignment is enabled or it's disabled but we still have data for a assignment\n\t\t\t\tif ( 'yes' === this.lesson.get( 'assignment_enabled' ) || ! _.isEmpty( this.lesson.get( 'assignment' ) ) ) {\n\n\t\t\t\t\tthis.model = this.lesson.get( 'assignment' );\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Todo Item.\n\t\t\t\t\t *\n\t\t\t\t\t * @todo this is a terrible terrible patch\n\t\t\t\t\t * I've spent nearly 3 days trying to figure out how to not use this line of code\n\t\t\t\t\t * ISSUE REPRODUCTION:\n\t\t\t\t\t * Open course builder\n\t\t\t\t\t * Open a lesson (A) and add a assignment\n\t\t\t\t\t * Switch to a new lesson (B)\n\t\t\t\t\t * Add a new assignment\n\t\t\t\t\t * Return to lesson A and the assignment's parent will be set to LESSON B\n\t\t\t\t\t * This will happen for *every* assignment in the builder...\n\t\t\t\t\t * Adding this set_parent on init guarantees that the assignment's correct parent is set\n\t\t\t\t\t * after adding new assignment's to other lessons\n\t\t\t\t\t * it's awful and it's gross...\n\t\t\t\t\t * I'm confused and tired and going to miss release dates again because of it\n\t\t\t\t\t */\n\t\t\t\t\tthis.model.set_parent( this.lesson );\n\n\t\t\t\t}\n\n\t\t\t\tthis.on( 'model-trashed', this.on_trashed );\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Compiles the template and renders the view.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t * @since 3.17.7 Unknown.\n\t\t\t *\n\t\t\t * @return {Self} For chaining.\n\t\t\t */\n\t\t\trender: function() {\n\n\t\t\t\tthis.$el.html( this.template( this.model ) );\n\n\t\t\t\tif ( this.model && this.is_addon_available() ) {\n\n\t\t\t\t\tthis.stopListening( this.model, 'change:assignment_type', this.render );\n\n\t\t\t\t\tthis.render_subview( 'settings', {\n\t\t\t\t\t\tel: '#llms-assignment-settings-fields',\n\t\t\t\t\t\tmodel: this.model,\n\t\t\t\t\t} );\n\n\t\t\t\t\t// this.init_datepickers();\n\t\t\t\t\tthis.init_selects();\n\n\t\t\t\t\twindow.llms_builder.assignments.render_editor( this );\n\n\t\t\t\t\tthis.listenTo( this.model, 'change:assignment_type', this.render );\n\n\t\t\t\t}\n\n\t\t\t\treturn this;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Adds a new assignment to a lesson which currently has no assignment associated with it.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t *\n\t\t\t * @return {Void}\n\t\t\t */\n\t\t\tadd_new_assignment: function() {\n\n\t\t\t\tif ( this.is_addon_available() ) {\n\n\t\t\t\t\tthis.model = window.llms_builder.assignments.get_assignment( {\n\t\t\t\t\t\t/* Translators: %1$s = associated lesson title */\n\t\t\t\t\t\ttitle: LLMS.l10n.replace( '%1$s Assignment', {\n\t\t\t\t\t\t\t'%1$s': this.lesson.get( 'title' ),\n\t\t\t\t\t\t} ),\n lesson_id: this.lesson.get( 'id' ),\n\t\t\t\t\t} );\n\n\t\t\t\t\tthis.lesson.set( 'assignment_enabled', 'yes' );\n\t\t\t\t\tthis.lesson.set( 'assignment', this.model );\n\n\t\t\t\t\tthis.render();\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.show_ad_popover( '#llms-new-assignment' );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * When an assignment is selected from the post select popover\n\t\t\t * instantiate it and add it to the current lesson.\n\t\t\t *\n\t\t\t * @param {Object} event Data from the select2 select event.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t * @since 5.4.0 Prepare assignment object for cloning and use author id instead of the quiz author object.\n\t\t\t */\n\t\t\tadd_existing_assignment: function( event ) {\n\n\t\t\t\tthis.post_search_popover.hide();\n\n\t\t\t\tvar assignment = event.data;\n\n\t\t\t\tif ( 'clone' === event.action ) {\n\n\t\t\t\t\tassignment = _.prepareAssignmentObjectForCloning( assignment );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Use author id instead of the assignment author object.\n\t\t\t\t\tassignment = _.prepareExistingPostObjectDataForAddingOrCloning( assignment );\n\t\t\t\t\tassignment._forceSync = true;\n\n\t\t\t\t}\n\n\t\t\t\tassignment.lesson_id = this.lesson.get( 'id' )\n\n\t\t\t\tassignment = window.llms_builder.construct.get_model( 'Assignment', assignment );\n\n\t\t\t\tthis.lesson.set( 'assignment_enabled', 'yes' );\n\t\t\t\tthis.lesson.set( 'assignment', assignment );\n\t\t\t\tthis.model = assignment;\n\n\t\t\t\tthis.render();\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Open add existing assignment popover.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t *\n\t\t\t * @param {Object} event JS event object.\n\t\t\t * @return {Void}\n\t\t\t */\n\t\t\tadd_existing_assignment_click: function( event ) {\n\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( this.is_addon_available() ) {\n\n\t\t\t\t\tthis.post_search_popover = new Popover( {\n\t\t\t\t\t\tel: '#llms-existing-assignment',\n\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\tbackdrop: true,\n\t\t\t\t\t\t\tcloseable: true,\n\t\t\t\t\t\t\tcontainer: '.wrap.lifterlms.llms-builder',\n\t\t\t\t\t\t\tdismissible: true,\n\t\t\t\t\t\t\tplacement: 'left',\n\t\t\t\t\t\t\twidth: 480,\n\t\t\t\t\t\t\ttitle: LLMS.l10n.translate( 'Add Existing Assignment' ),\n\t\t\t\t\t\t\tcontent: new PostSearch( {\n\t\t\t\t\t\t\t\tpost_type: 'llms_assignment',\n\t\t\t\t\t\t\t\tsearching_message: LLMS.l10n.translate( 'Search for existing assignments...' ),\n\t\t\t\t\t\t\t} ).render().$el,\n\t\t\t\t\t\tonHide: function() {\n\t\t\t\t\t\t\tBackbone.pubSub.off( 'assignment-search-select' );\n\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\tthis.post_search_popover.show();\n\t\t\t\t\tBackbone.pubSub.once( 'assignment-search-select', this.add_existing_assignment, this );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.show_ad_popover( '#llms-existing-assignment' );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Determine if Assignments addon is available to use.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t *\n\t\t\t * @return {Boolean}\n\t\t\t */\n\t\t\tis_addon_available: function() {\n\n\t\t\t\treturn ( window.llms_builder.assignments );\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Called when assignment is trashed.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t *\n\t\t\t * @param {Oject} assignment Assignment Model.\n\t\t\t * @return {Void}\n\t\t\t */\n\t\t\ton_trashed: function( assignment ) {\n\n\t\t\t\tthis.lesson.set( 'assignment_enabled', 'no' );\n\t\t\t\tthis.lesson.set( 'assignment', '' );\n\n\t\t\t\tdelete this.model;\n\n\t\t\t\tthis.render();\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Shows a dirty dirty ad popover for advanced assignments.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t *\n\t\t\t * @param {Sring} el The jQuery selector string.\n\t\t\t * @return {Void}\n\t\t\t */\n\t\t\tshow_ad_popover: function( el ) {\n\n\t\t\t\tvar h3 = LLMS.l10n.translate( 'Get Your Students Taking Action' ),\n\t\t\t\tp = 'Great learning content is only half of teaching online. When your learners fully engage, they will take your content and move into action. Remove barriers for your learners by telling them what to do to apply what they just learned. Create graded assignments or simply give them a checklist of action items to complete before moving on.',\n\t\t\t\tbtn = LLMS.l10n.translate( 'Get Assignments Now!' ),\n\t\t\t\turl = 'https://lifterlms.com/product/lifterlms-assignments?utm_source=LifterLMS%20Plugin&utm_medium=Assignment%20Builder%20Button&utm_campaign=Assignment%20Addon%20Upsell&utm_content=3.17.0';\n\n\t\t\t\tthis.ad_popover = new Popover( {\n\t\t\t\t\tel: el,\n\t\t\t\t\targs: {\n\t\t\t\t\t\tbackdrop: true,\n\t\t\t\t\t\tcloseable: true,\n\t\t\t\t\t\tcontainer: '.wrap.lifterlms.llms-builder',\n\t\t\t\t\t\tdismissible: true,\n\t\t\t\t\t\t// placement: 'left',\n\t\t\t\t\t\twidth: 380,\n\t\t\t\t\t\ttitle: LLMS.l10n.translate( 'Unlock LifterLMS Assignments' ),\n\t\t\t\t\t\t// This is here for translation but not actually used by the popover.\n\t\t\t\t\t\tcloseLabel: LLMS.l10n.translate( 'Close' ),\n\t\t\t\t\t\tcontent: '' + h3 + ' ' + p + '
' + btn + '
'\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tthis.ad_popover.show();\n\n\t\t\t},\n\n\t\t}, Detachable, Editable, Trashable, Subview, SettingsFields ) );\n\n\t} );\n\n","/**\n * Sidebar Editor View\n *\n * @since 3.16.0\n * @version 3.27.0\n */\ndefine( 'Views/Editor',[\n\t\t'Views/LessonEditor',\n\t\t'Views/Quiz',\n\t\t'Views/Assignment',\n\t\t'Views/_Subview'\n\t], function(\n\t\tLessonEditor,\n\t\tQuiz,\n\t\tAssignment,\n\t\tSubview\n\t) {\n\n\t\treturn Backbone.View.extend( _.defaults( {\n\n\t\t\t/**\n\t\t\t * Current view state\n\t\t\t *\n\t\t\t * @type {String}\n\t\t\t */\n\t\t\tstate: 'lesson', // [lesson|quiz]\n\n\t\t\t/**\n\t\t\t * Current Subviews\n\t\t\t *\n\t\t\t * @type {Object}\n\t\t\t */\n\t\t\tviews: {\n\t\t\t\tlesson: {\n\t\t\t\t\tclass: LessonEditor,\n\t\t\t\t\tinstance: null,\n\t\t\t\t\tstate: 'lesson',\n\t\t\t\t},\n\t\t\t\tassignment: {\n\t\t\t\t\tclass: Assignment,\n\t\t\t\t\tinstance: null,\n\t\t\t\t\tstate: 'assignment',\n\t\t\t\t},\n\t\t\t\tquiz: {\n\t\t\t\t\tclass: Quiz,\n\t\t\t\t\tinstance: null,\n\t\t\t\t\tstate: 'quiz',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * HTML element selector\n\t\t\t *\n\t\t\t * @type {String}\n\t\t\t */\n\t\t\tel: '#llms-editor',\n\n\t\t\tevents: {\n\t\t\t\t'click .llms-editor-nav a[href=\"#llms-editor-close\"]': 'close_editor',\n\t\t\t\t'click .llms-editor-nav a:not([href=\"#llms-editor-close\"])': 'switch_tab',\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Wrapper Tag name\n\t\t\t *\n\t\t\t * @type {String}\n\t\t\t */\n\t\t\ttagName: 'div',\n\n\t\t\t/**\n\t\t\t * Get the underscore template\n\t\t\t *\n\t\t\t * @type {[type]}\n\t\t\t */\n\t\t\ttemplate: wp.template( 'llms-editor-template' ),\n\n\t\t\t/**\n\t\t\t * Initialization callback func (renders the element on screen)\n\t\t\t *\n\t\t\t * @return void\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tinitialize: function( data ) {\n\n\t\t\t\tthis.SidebarView = data.SidebarView;\n\t\t\t\tif ( data.tab ) {\n\t\t\t\t\tthis.state = data.tab;\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Compiles the template and renders the view\n\t\t\t *\n\t\t\t * @return self (for chaining)\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\trender: function( view_data ) {\n\n\t\t\t\tview_data = view_data || {};\n\n\t\t\t\tthis.$el.html( this.template( this ) );\n\n\t\t\t\tthis.render_subviews( _.extend( view_data, {\n\t\t\t\t\tlesson: this.model,\n\t\t\t\t} ) );\n\n\t\t\t\treturn this;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Click event for close sidebar editor button\n\t\t\t * Sends event to main SidebarView to trigger editor closing events\n\t\t\t *\n\t\t\t * @param obj event js event obj\n\t\t\t * @return void\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.27.0\n\t\t\t */\n\t\t\tclose_editor: function( event ) {\n\n\t\t\t\tevent.preventDefault();\n\t\t\t\tBackbone.pubSub.trigger( 'sidebar-editor-close' );\n\t\t\t\twindow.location.hash = '';\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Click event for switching tabs in the editor navigation\n\t\t\t *\n\t\t\t * @param object event js event object\n\t\t\t * @return void\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.27.0\n\t\t\t */\n\t\t\tswitch_tab: function( event ) {\n\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tvar $btn = $( event.target ),\n\t\t\t\tview = $btn.attr( 'data-view' ),\n\t\t\t\t$tab = this.$el.find( $btn.attr( 'href' ) );\n\n\t\t\t\tthis.set_state( view ).render();\n\t\t\t\tthis.set_hash( view );\n\n\t\t\t\t// Backbone.pubSub.trigger( 'editor-tab-activated', $btn.attr( 'href' ).substring( 1 ) );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Adds a hash for deep linking to a specific lesson tab\n\t\t\t *\n\t\t\t * @param string subtab subtab [quiz|assignment]\n\t\t\t * @return void\n\t\t\t * @since 3.27.0\n\t\t\t * @version 3.27.0\n\t\t\t */\n\t\t\tset_hash: function( subtab ) {\n\n\t\t\t\tvar hash = 'lesson:' + this.model.get( 'id' );\n\n\t\t\t\tif ( 'lesson' !== subtab ) {\n\t\t\t\t\thash += ':' + subtab;\n\t\t\t\t}\n\n\t\t\t\twindow.location.hash = hash;\n\n\t\t\t},\n\n\t\t}, Subview ) );\n\n} );\n\n","/**\n * Sidebar Elements View\n *\n * @since 3.16.0\n * @version 3.16.12\n */\ndefine( 'Views/Elements',[ 'Models/Section', 'Views/Section', 'Models/Lesson', 'Views/Lesson', 'Views/Popover', 'Views/PostSearch' ], function( Section, SectionView, Lesson, LessonView, Popover, LessonSearch ) {\n\n\treturn Backbone.View.extend( {\n\n\t\t/**\n\t\t * HTML element selector\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tel: '#llms-elements',\n\n\t\tevents: {\n\t\t\t'click #llms-new-section': 'add_new_section',\n\t\t\t'click #llms-new-lesson': 'add_new_lesson',\n\t\t\t'click #llms-existing-lesson': 'add_existing_lesson',\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'div',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-elements-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function( data ) {\n\n\t\t\t// save a reference to the main Course view\n\t\t\tthis.SidebarView = data.SidebarView;\n\n\t\t\t// watch course sections and enable/disable lesson buttons conditionally\n\t\t\tthis.listenTo( this.SidebarView.CourseView.model.get( 'sections' ), 'add', this.maybe_disable_buttons );\n\t\t\tthis.listenTo( this.SidebarView.CourseView.model.get( 'sections' ), 'remove', this.maybe_disable_buttons );\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t *\n\t\t * @return self (for chaining)\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender: function() {\n\n\t\t\tthis.$el.html( this.template() );\n\t\t\tthis.draggable();\n\t\t\tthis.maybe_add_initial_section();\n\n\t\t\treturn this;\n\t\t},\n\n\t\tdraggable: function() {\n\n\t\t\t$( '#llms-new-section' ).draggable( {\n\t\t\t\tappendTo: '#llms-sections',\n\t\t\t\tcancel: false,\n\t\t\t\tconnectToSortable: '.llms-sections',\n\t\t\t\thelper: function() {\n\t\t\t\t\treturn new SectionView( { model: new Section() } ).render().$el;\n\t\t\t\t},\n\t\t\t\tstart: function() {\n\t\t\t\t\t$( '.llms-sections' ).addClass( 'dragging' );\n\t\t\t\t},\n\t\t\t\tstop: function() {\n\t\t\t\t\t$( '.llms-sections' ).removeClass( 'dragging' );\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\t$( '#llms-new-lesson' ).draggable( {\n\t\t\t\t// appendTo: '#llms-sections .llms-section:first-child .llms-lessons',\n\t\t\t\tappendTo: '#llms-sections',\n\t\t\t\tcancel: false,\n\t\t\t\tconnectToSortable: '.llms-lessons',\n\t\t\t\thelper: function() {\n\t\t\t\t\treturn new LessonView( { model: new Lesson() } ).render().$el;\n\t\t\t\t},\n\t\t\t\tstart: function() {\n\n\t\t\t\t\t$( '.llms-lessons' ).addClass( 'dragging' );\n\n\t\t\t\t},\n\t\t\t\tstop: function() {\n\t\t\t\t\t$( '.llms-lessons' ).removeClass( 'dragging' );\n\t\t\t\t\t$( '.drag-expanded' ).removeClass( '.drag-expanded' );\n\t\t\t\t},\n\t\t\t} );\n\n\t\t},\n\n\t\tadd_new_section: function( event ) {\n\n\t\t\tevent.preventDefault();\n\t\t\tBackbone.pubSub.trigger( 'add-new-section' );\n\t\t},\n\n\t\tadd_new_lesson: function( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tBackbone.pubSub.trigger( 'add-new-lesson' );\n\t\t},\n\n\t\t/**\n\t\t * Show the popover to add an existing lessons\n\t\t *\n\t\t * @param object event JS Event Object\n\t\t * @return void\n\t\t * @since 3.16.12\n\t\t * @version 3.16.12\n\t\t */\n\t\tadd_existing_lesson: function( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tvar pop = new Popover( {\n\t\t\t\tel: '#llms-existing-lesson',\n\t\t\t\targs: {\n\t\t\t\t\tbackdrop: true,\n\t\t\t\t\tcloseable: true,\n\t\t\t\t\tcontainer: '.wrap.lifterlms.llms-builder',\n\t\t\t\t\tdismissible: true,\n\t\t\t\t\tplacement: 'left',\n\t\t\t\t\twidth: 480,\n\t\t\t\t\ttitle: LLMS.l10n.translate( 'Add Existing Lesson' ),\n\t\t\t\t\tcontent: new LessonSearch( {\n\t\t\t\t\t\tpost_type: 'lesson',\n\t\t\t\t\t\tsearching_message: LLMS.l10n.translate( 'Search for existing lessons...' ),\n\t\t\t\t\t} ).render().$el,\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tpop.show();\n\t\t\tBackbone.pubSub.on( 'lesson-search-select', function() {\n\t\t\t\tpop.hide()\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Disables lesson add buttons if no sections are available to add a lesson to\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tmaybe_add_initial_section: function() {\n\n\t\t\tvar $els = $( '#llms-new-lesson, #llms-existing-lesson' );\n\n\t\t\tif ( ! this.SidebarView.CourseView.model.get( 'sections' ).length ) {\n\t\t\t\tBackbone.pubSub.trigger( 'add-new-section' );\n\t\t\t\tBackbone.pubSub.trigger( 'add-new-lesson' );\n\t\t\t\tBackbone.pubSub.trigger( 'add-new-lesson' );\n\t\t\t\tBackbone.pubSub.trigger( 'add-new-lesson' );\n\t\t\t} else {\n\t\t\t\t$els.removeAttr( 'disabled' );\n\t\t\t}\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Sidebar Utilities View\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/Utilities',[], function() {\n\n\treturn Backbone.View.extend( {\n\n\t\t/**\n\t\t * HTML element selector\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tel: '#llms-utilities',\n\n\t\tevents: {\n\t\t\t'click #llms-collapse-all': 'collapse_all',\n\t\t\t'click #llms-expand-all': 'expand_all'\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'div',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-utilities-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\t// this.render();\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t *\n\t\t * @return self (for chaining)\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender: function() {\n\t\t\tthis.$el.html( this.template() );\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Collapse all sections\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tcollapse_all: function( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tBackbone.pubSub.trigger( 'collapse-all' );\n\t\t},\n\n\t\t/**\n\t\t * Expand all sections\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\texpand_all: function( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tBackbone.pubSub.trigger( 'expand-all' );\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Main sidebar view\n *\n * @since 3.16.0\n * @version 7.2.0\n */\ndefine( 'Views/Sidebar',[\n\t'Views/Editor',\n\t'Views/Elements',\n\t'Views/Utilities',\n\t'Views/_Subview'\n], function(\n\tEditor,\n\tElements,\n\tUtilities,\n\tSubview\n) {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * Current builder state\n\t\t * @type {String}\n\t\t */\n\t\tstate: 'builder', // [builder|editor]\n\n\t\t/**\n\t\t * Current Subviews\n\t\t * @type {Object}\n\t\t */\n\t\tviews: {\n\t\t\telements: {\n\t\t\t\tclass: Elements,\n\t\t\t\tinstance: null,\n\t\t\t\tstate: 'builder',\n\t\t\t},\n\t\t\tutilities: {\n\t\t\t\tclass: Utilities,\n\t\t\t\tinstance: null,\n\t\t\t\tstate: 'builder',\n\t\t\t},\n\t\t\teditor: {\n\t\t\t\tclass: Editor,\n\t\t\t\tinstance: null,\n\t\t\t\tstate: 'editor',\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * HTML element selector\n\t\t * @type {String}\n\t\t */\n\t\tel: '#llms-builder-sidebar',\n\n\t\t/**\n\t\t * DOM events\n\t\t * @type {Object}\n\t\t */\n\t\tevents: {\n\t\t\t'click #llms-save-button': 'save_now',\n\t\t\t'click #llms-exit-button': 'exit_now',\n\t\t\t'click .llms-builder-error': 'clear_errors',\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'aside',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-sidebar-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function( data ) {\n\n\t\t\t// save a reference to the main Course view\n\t\t\tthis.CourseView = data.CourseView;\n\n\t\t\tthis.render();\n\n\t\t\tBackbone.pubSub.on( 'current-save-status', this.changes_made, this );\n\n\t\t\tBackbone.pubSub.on( 'heartbeat-send', this.heartbeat_send, this );\n\t\t\tBackbone.pubSub.on( 'heartbeat-tick', this.heartbeat_tick, this );\n\n\t\t\tBackbone.pubSub.on( 'lesson-selected', this.on_lesson_select, this );\n\t\t\tBackbone.pubSub.on( 'sidebar-editor-close', this.on_editor_close, this );\n\n\t\t\tthis.$saveButton = $( '#llms-save-button' );\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t * @return self (for chaining)\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender: function( view_data ) {\n\n\t\t\tview_data = view_data || {};\n\n\t\t\tthis.$el.html( this.template() );\n\n\t\t\tthis.render_subviews( _.extend( view_data, {\n\t\t\t\tSidebarView: this,\n\t\t\t} ) );\n\n\t\t\tvar $el = $( '.wrap.lifterlms.llms-builder' );\n\t\t\tif ( 'builder' === this.state ) {\n\t\t\t\t$el.removeClass( 'editor-active' );\n\t\t\t} else {\n\t\t\t\t$el.addClass( 'editor-active' );\n\t\t\t}\n\n\t\t\tthis.$saveButton = this.$el.find( '#llms-save-button' );\n\n\t\t\treturn this;\n\n\t\t},\n\n\t\t/**\n\t\t * Adds error message element\n\t\t * @param {[type]} $err [description]\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tadd_error: function( $err ) {\n\n\t\t\tthis.$el.find( '.llms-builder-save' ).prepend( $err );\n\n\t\t},\n\n\t\t/**\n\t\t * Clear any existing error message elements\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tclear_errors: function() {\n\n\t\t\tthis.$el.find( '.llms-builder-save .llms-builder-error' ).remove();\n\n\t\t},\n\n\t\t/**\n\t\t * Update save status button when changes are detected\n\t\t * runs on an interval to check status of course regularly for unsaved changes\n\t\t * @param obj sync instance of the sync controller\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tchanges_made: function( sync ) {\n\n\t\t\t// if a save is currently running, don't do anything\n\t\t\tif ( sync.saving ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( sync.has_unsaved_changes ) {\n\n\t\t\t\tthis.$saveButton.attr( 'data-status', 'unsaved' );\n\t\t\t\tthis.$saveButton.removeAttr( 'disabled' );\n\n\t\t\t} else {\n\n\t\t\t\tthis.$saveButton.attr( 'data-status', 'saved' );\n\t\t\t\tthis.$saveButton.attr( 'disabled', 'disabled' );\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Exit the builder and return to the WP Course Editor\n\t\t * @return void\n\t\t * @since 3.16.7\n\t\t * @version 3.16.7\n\t\t */\n\t\texit_now: function() {\n\n\t\t\twindow.location.href = window.llms_builder.CourseModel.get_edit_post_link();\n\n\t\t},\n\n\t\t/**\n\t\t * Triggered when a heartbeat send event starts containing builder information\n\t\t * @param obj sync instance of the sync controller\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\theartbeat_send: function( sync ) {\n\n\t\t\tif ( sync.saving ) {\n\t\t\t\tLLMS.Spinner.start( this.$saveButton.find( 'i' ), 'small' );\n\t\t\t\tthis.$saveButton.attr( {\n\t\t\t\t\t'data-status': 'saving',\n\t\t\t\t\tdisabled: 'disabled',\n\t\t\t\t} );\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Triggered when a heartbeat tick completes and updates save status or appends errors\n\t\t * @param obj sync instance of the sync controller\n\t\t * @param obj data updated data\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\theartbeat_tick: function( sync, data ) {\n\n\t\t\tif ( ! sync.saving ) {\n\n\t\t\t\tvar status = 'saved';\n\n\t\t\t\tthis.clear_errors();\n\n\t\t\t\tif ( 'error' === data.status ) {\n\n\t\t\t\t\tstatus = 'error';\n\n\t\t\t\t\tvar msg = data.message,\n\t\t\t\t\t\t$err = $( ' ' );\n\n\t\t\t\t\tif ( 'object' === typeof msg ) {\n\t\t\t\t\t\t_.each( msg, function( txt ) {\n\t\t\t\t\t\t\t$err.append( '' + txt + ' ' );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$err = $err.append( '' + msg + ' ' );;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.add_error( $err );\n\n\t\t\t\t}\n\n\t\t\t\tthis.$saveButton.find( '.llms-spinning' ).remove();\n\t\t\t\tthis.$saveButton.attr( {\n\t\t\t\t\t'data-status': status,\n\t\t\t\t\tdisabled: 'disabled',\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if the editor is the currently active state\n\t\t * @return boolean\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tis_editor_active: function() {\n\n\t\t\treturn ( 'editor' === this.state );\n\n\t\t},\n\n\t\t/**\n\t\t * Triggered when the editor closes, updates state to be the course builder view\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ton_editor_close: function() {\n\n\t\t\tthis.set_state( 'builder' ).render();\n\n\t\t},\n\n\t\t/**\n\t\t * When a lesson is selected, opens the sidebar to the editor view\n\t\t * @param obj lesson_model instance of the lesson model which was selected\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ton_lesson_select: function( lesson_model, tab ) {\n\n\t\t\tif ( 'editor' !== this.state ) {\n\t\t\t\tthis.set_state( 'editor' );\n\t\t\t} else {\n\t\t\t\tthis.remove_subview( 'editor' );\n\t\t\t}\n\n\t\t\tthis.render( {\n\t\t\t\tmodel: lesson_model,\n\t\t\t\ttab: tab,\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Save button click event\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tsave_now: function() {\n\n\t\t\twindow.llms_builder.sync.save_now();\n\n\t\t},\n\n\t}, Subview ) );\n\n} );\n\n","/**\n * LifterLMS JS Builder App Bootstrap\n *\n * @since 3.16.0\n * @since 3.37.11 Added `_.getEditor()` helper.\n * @version 5.4.0\n */\nrequire( [\n\t'vendor/wp-hooks',\n\t'vendor/backbone.collectionView',\n\t'vendor/backbone.trackit',\n\t'Controllers/Construct',\n\t'Controllers/Debug',\n\t'Controllers/Schemas',\n\t'Controllers/Sync',\n\t'Models/loader',\n\t'Views/Course',\n\t'Views/Sidebar'\n\t], function(\n\tHooks,\n\tCV,\n\tTrackIt,\n\tConstruct,\n\tDebug,\n\tSchemas,\n\tSync,\n\tModels,\n\tCourseView,\n\tSidebarView\n\t) {\n\n\t\twindow.llms_builder.debug = new Debug( window.llms_builder.debug );\n\t\twindow.llms_builder.construct = new Construct();\n\t\twindow.llms_builder.schemas = new Schemas( window.llms_builder.schemas );\n\n\t\t/**\n\t\t * Compare values, used by _.checked & _.selected mixins.\n\t\t *\n\t\t * @since 3.17.2\n\t\t *\n\t\t * @param {Mixed} expected expected Value, probably a string (the value of a select option or checkbox element).\n\t\t * @param {Mixed} mixed actual Actual value, probably a string (the return of model.get( 'something' ) )\n\t\t * but could be an array like a multiselect.\n\t\t * @return {Bool}\n\t\t */\n\t\tfunction value_compare( expected, actual ) {\n\t\t\treturn ( ( _.isArray( actual ) && -1 !== actual.indexOf( expected ) ) || expected == actual );\n\t\t};\n\n\t\t/**\n\t\t * Underscores templating utilities\n\t\t *\n\t\t * @since 3.17.0\n\t\t * @version 3.27.0\n\t\t */\n\t\t_.mixin( {\n\n\t\t\t/**\n\t\t\t * Determine if two values are equal and output checked attribute if they are.\n\t\t\t *\n\t\t\t * Useful for templating checkboxes & radio elements\n\t\t\t * like WP Core PHP checked() but in JS.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t * @since 3.17.2 Unknown.\n\t\t\t *\n\t\t\t * @param {Mixed} expected Expected element value.\n\t\t\t * @param {Mixed} actual Actual element value.\n\t\t\t * @return {String}\n\t\t\t */\n\t\t\tchecked: function( expected, actual ) {\n\t\t\t\tif ( value_compare( expected, actual ) ) {\n\t\t\t\t\treturn ' checked=\"checked\"';\n\t\t\t\t}\n\t\t\t\treturn '';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Recursively clone an object via _.clone().\n\t\t\t *\n\t\t\t * @since 3.17.7\n\t\t\t *\n\t\t\t * @param {Object} obj Object to clone.\n\t\t\t * @return {Object}\n\t\t\t */\n\t\t\tdeepClone: function( obj ) {\n\n\t\t\t\tvar clone = _.clone( obj );\n\n\t\t\t\t_.each( clone, function( val, key ) {\n\t\t\t\t\tif ( ! _.isFunction( val ) && _.isObject( val ) ) {\n\t\t\t\t\t\tclone[ key ] = _.deepClone( val );\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\treturn clone;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Retrieve the wp.editor instance.\n\t\t\t *\n\t\t\t * Uses `wp.oldEditor` (when available) which was added in WordPress 5.0.\n\t\t\t *\n\t\t\t * Falls back to `wp.editor()` which will usually be the same as `wp.oldEditor` unless\n\t\t\t * the `@wordpress/editor` module has been loaded by another plugin or a theme.\n\t\t\t *\n\t\t\t * @since 3.37.11\n\t\t\t *\n\t\t\t * @return {Object}\n\t\t\t */\n\t\t\tgetEditor: function() {\n\n\t\t\t\tif ( undefined !== wp.oldEditor ) {\n\n\t\t\t\t\tvar ed = wp.oldEditor;\n\n\t\t\t\t\t// Inline scripts added by WordPress are not ported to `wp.oldEditor`, see https://github.com/WordPress/WordPress/blob/641c632b0c9fde4e094b217f50749984ca43a2fa/wp-includes/class-wp-editor.php#L977.\n\t\t\t\t\tif ( undefined !== wp.editor && undefined !== wp.editor.getDefaultSettings ) {\n\t\t\t\t\t\ted.getDefaultSettings = wp.editor.getDefaultSettings;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn ed;\n\n\t\t\t\t} else if ( undefined !== wp.editor && undefined !== wp.editor.autop ){\n\n\t\t\t\t\treturn wp.editor;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Strips IDs & Parent References from quizzes and all quiz questions.\n\t\t\t *\n\t\t\t * @since 3.24.0\n\t\t\t * @since 3.27.0 Unknown.\n\t\t\t * @since 5.4.0 Use author id instead of the question author object.\n\t\t\t *\n\t\t\t * @param {Object} quiz Raw quiz object (not a model).\n\t\t\t * @return {Object}\n\t\t\t */\n\t\t\tprepareQuizObjectForCloning: function( quiz ) {\n\n\t\t\t\tdelete quiz.id;\n\t\t\t\tdelete quiz.lesson_id;\n\n\t\t\t\t_.each( quiz.questions, function( question ) {\n\n\t\t\t\t\tquestion = _.prepareQuestionObjectForCloning( question );\n\n\t\t\t\t} );\n\n\t\t\t\t// Use author id instead of the quiz author object.\n\t\t\t\tquiz = _.prepareExistingPostObjectDataForAddingOrCloning( quiz );\n\n\t\t\t\treturn quiz;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Strips IDs & Parent References from a question.\n\t\t\t *\n\t\t\t * @since 3.27.0\n\t\t\t * @since 5.4.0 Use author id instead of the question author object.\n\t\t\t *\n\t\t\t * @param {Object} question Raw question object (not a model).\n\t\t\t * @return {Object}\n\t\t\t */\n\t\t\tprepareQuestionObjectForCloning: function( question ) {\n\n\t\t\t\tdelete question.id;\n\t\t\t\tdelete question.parent_id;\n\n\t\t\t\tif ( question.image && _.isObject( question.image ) ) {\n\t\t\t\t\tquestion.image._forceSync = true;\n\t\t\t\t}\n\n\t\t\t\tif ( question.choices ) {\n\n\t\t\t\t\t_.each( question.choices, function( choice ) {\n\n\t\t\t\t\t\tdelete choice.question_id;\n\t\t\t\t\t\tdelete choice.id;\n\t\t\t\t\t\tif ( 'image' === choice.choice_type && _.isObject( choice.choice ) ) {\n\t\t\t\t\t\t\tchoice.choice._forceSync = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t// Use author id instead of the question author object.\n\t\t\t\tquestion = _.prepareExistingPostObjectDataForAddingOrCloning( question );\n\n\t\t\t\treturn question;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Strips IDs & Parent References from assignments and all assignment tasks.\n\t\t\t *\n\t\t\t * @since 5.4.0\n\t\t\t *\n\t\t\t * @param {Object} assignment Raw assignment object (not a model).\n\t\t\t * @return {Object}\n\t\t\t */\n\t\t\t prepareAssignmentObjectForCloning: function( assignment ) {\n\n\t\t\t\tdelete assignment.id;\n\t\t\t\tdelete assignment.lesson_id;\n\n\t\t\t\t// Clone tasks.\n\t\t\t\tif ( 'tasklist' === assignment.assignment_type ) {\n\t\t\t\t\t_.each( assignment.tasks, function( task ) {\n\t\t\t\t\t\tdelete task.id;\n\t\t\t\t\t\tdelete task.assignment_id;\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// Use author id instead of the quiz author object.\n\t\t\t\tassignment = _.prepareExistingPostObjectDataForAddingOrCloning( assignment );\n\n\t\t\t\treturn assignment;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Prepare post object data for adding or cloning.\n\t\t\t *\n\t\t\t * Use author id instead of the post type author object.\n\t\t\t *\n\t\t\t * @since 5.4.0\n\t\t\t *\n\t\t\t * @param {Object} quiz Raw post object (not a model).\n\t\t\t * @return {Object}\n\t\t\t */\n\t\t\tprepareExistingPostObjectDataForAddingOrCloning: function( post_data ) {\n\n\t\t\t\tif ( post_data.author && _.isObject( post_data.author ) && post_data.author.id ) {\n\t\t\t\t\tpost_data.author = post_data.author.id;\n\t\t\t\t}\n\n\t\t\t\treturn post_data;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Determine if two values are equal and output selected attribute if they are.\n\t\t\t *\n\t\t\t * Useful for templating select elements\n\t\t\t * like WP Core PHP selected() but in JS.\n\t\t\t *\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t * @since 3.17.2 Unknown.\n\t\t\t *\n\t\t\t * @param {Mixed} expected Expected element value.\n\t\t\t * @param {Mixed} actual Actual element value.\n\t\t\t * @return {String}\n\t\t\t */\n\t\t\tselected: function( expected, actual ) {\n\t\t\t\tif ( value_compare( expected, actual ) ) {\n\t\t\t\t\treturn ' selected=\"selected\"';\n\t\t\t\t}\n\t\t\t\treturn '';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Generic function for stripping HTML tags from a string.\n\t\t\t *\n\t\t\t * @since 3.17.8\n\t\t\t *\n\t\t\t * @param {String} content Raw string.\n\t\t\t * @param {Array} allowed_tags Array of allowed HTML tags.\n\t\t\t * @return {String}\n\t\t\t */\n\t\t\tstripFormatting: function( content, allowed_tags ) {\n\n\t\t\t\tif ( ! allowed_tags ) {\n\t\t\t\t\tallowed_tags = [ 'b', 'i', 'u', 'strong', 'em' ];\n\t\t\t\t}\n\n\t\t\t\tvar $html = $( '' + content + '
' );\n\n\t\t\t\t$html.find( '*' ).not( allowed_tags.join( ',' ) ).each( function( ) {\n\n\t\t\t\t\t$( this ).replaceWith( this.innerHTML );\n\n\t\t\t\t} );\n\n\t\t\t\treturn $html.html();\n\n\t\t\t},\n\n\t\t} );\n\n\t\tBackbone.pubSub = _.extend( {}, Backbone.Events );\n\n\t\t$( document ).trigger( 'llms-builder-pre-init' );\n\n\t\twindow.llms_builder.questions = window.llms_builder.construct.get_collection( 'QuestionTypes', window.llms_builder.questions );\n\n\t\tvar CourseModel = window.llms_builder.construct.get_model( 'Course', window.llms_builder.course );\n\t\twindow.llms_builder.CourseModel = CourseModel;\n\n\t\twindow.llms_builder.sync = new Sync( CourseModel, window.llms_builder.sync );\n\n\t\tvar Course = new CourseView( {\n\t\t\tmodel: CourseModel,\n\t\t} );\n\n\t\tvar Sidebar = new SidebarView( {\n\t\t\tCourseView: Course\n\t\t} );\n\n\t\t$( document ).trigger( 'llms-builder-init', {\n\t\t\tcourse: Course,\n\t\t\tsidebar: Sidebar,\n\t\t} );\n\n\t\t/**\n\t\t * Do deep linking to Lesson / Quiz / Assignments.\n\t\t *\n\t\t * Hash should be in the form of #lesson:{lesson_id}:{subtab}\n\t\t * subtab can be either \"quiz\" or \"assignment\". If none found assumes the \"lesson\" tab.\n\t\t *\n\t\t * @since 3.27.0\n\t\t * @since 3.30.1 Wait for wp.editor & window.tinymce to load before opening deep link tabs.\n\t\t * @since 3.37.11 Use `_.getEditor()` helper when checking for the presence of `wp.editor`.\n\t\t */\n\t\tif ( window.location.hash ) {\n\n\t\t\tvar hash = window.location.hash;\n\t\t\tif ( -1 === hash.indexOf( '#lesson:' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar parts = hash.replace( '#lesson:', '' ).split( ':' ),\n\t\t\t$lesson = $( '#llms-lesson-' + parts[0] );\n\n\t\t\tif ( $lesson.length ) {\n\n\t\t\t\tLLMS.wait_for( function() {\n\t\t\t\t\treturn ( undefined !== _.getEditor() && undefined !== window.tinymce );\n }, function() {\n\t\t\t\t\t$lesson.closest( '.llms-builder-item.llms-section' ).find( 'a.llms-action-icon.expand' ).trigger( 'click' );\n\t\t\t\t\tvar subtab = parts[1] ? parts[1] : 'lesson';\n\t\t\t\t\t$( '#llms-lesson-' + parts[0] ).find( 'a.llms-action-icon.edit-' + subtab ).trigger( 'click' );\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t}\n\n\t} );\n\ndefine(\"main\", function(){});\n\n","}(jQuery));\n"],"sourceRoot":"../../.."}
\ No newline at end of file
diff --git a/assets/maps/js/llms-builder.min.js.map b/assets/maps/js/llms-builder.min.js.map
new file mode 100644
index 0000000000..ca8a8a88f3
--- /dev/null
+++ b/assets/maps/js/llms-builder.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../../config-wrap-start-default.js","vendor/almond.js","vendor/wp-hooks.js","underscore.js","backbone.js","jquery.js","vendor/backbone.collectionView.js","vendor/backbone.trackit.js","Models/Image.js","Models/_Relationships.js","Models/QuestionChoice.js","Collections/QuestionChoices.js","Models/QuestionType.js","Models/_Utilities.js","Models/Question.js","Collections/Questions.js","Schemas/Quiz.js","Models/Quiz.js","Schemas/Lesson.js","Models/Lesson.js","Collections/Lessons.js","Collections/QuestionTypes.js","Models/Section.js","Collections/Sections.js","Collections/loader.js","Models/Abstract.js","Models/Course.js","Models/loader.js","Views/_Detachable.js","Views/_Editable.js","Views/_Receivable.js","Views/_Shiftable.js","Views/_Subview.js","Views/_Trashable.js","Views/_loader.js","Controllers/Construct.js","Controllers/Debug.js","Controllers/Schemas.js","Controllers/Sync.js","Views/Lesson.js","Views/LessonList.js","Views/Section.js","Views/SectionList.js","Views/Course.js","Views/SettingsFields.js","Views/LessonEditor.js","Views/Popover.js","Views/PostSearch.js","Views/QuestionType.js","Views/QuestionBank.js","Views/QuestionChoice.js","Views/QuestionChoiceList.js","Views/Question.js","Views/QuestionList.js","Views/Quiz.js","Views/Assignment.js","Views/Editor.js","Views/Elements.js","Views/Utilities.js","Views/Sidebar.js","main.js"],"names":["$","requirejs","require","define","undef","hasProp","obj","prop","hasOwn","call","normalize","name","baseName","nameParts","nameSegment","mapValue","foundMap","lastIndex","foundI","foundStarMap","starI","i","j","part","normalizedBaseParts","baseParts","split","map","config","starMap","length","nodeIdCompat","jsSuffixRegExp","test","replace","charAt","slice","concat","splice","join","makeRequire","relName","forceSync","args","aps","arguments","push","req","apply","makeNormalize","makeLoad","depName","value","defined","callDep","waiting","defining","main","Error","splitPrefix","prefix","index","indexOf","substring","makeRelParts","makeConfig","makeMap","handlers","Object","prototype","hasOwnProperty","relParts","plugin","parts","relResourceName","f","n","pr","p","exports","e","module","id","uri","deps","callback","cjsModule","ret","usingExports","callbackType","load","undefined","alt","setTimeout","cfg","_defined","amd","jQuery","window","llms","wp","hooks","t","r","o","l","m","c","d","defineProperty","configurable","enumerable","get","__esModule","default","s","209","console","error","u","priority","namespace","a","__current","forEach","currentIndex","runs","b","Array","pop","create","addAction","addFilter","removeAction","removeFilter","hasAction","hasFilter","removeAllActions","removeAllFilters","doAction","applyFilters","currentAction","currentFilter","doingAction","doingFilter","didAction","didFilter","actions","filters","v","A","_","F","g","y","k","x","I","w","O","T","z","Z","h","Backbone","root","factory","Zepto","this","_normalizeOptionDeclarations","optionDeclarations","normalizedOptionDeclarations","isArray","each","thisOptionDeclaration","thisOptionName","thisOptionRequired","thisOptionDefaultValue","isString","isObject","first","keys","isFunction","clone","required","isUndefined","defaultValue","mDefaultModelViewConstructor","View","kOptionsRequiringRerendering","kStylesForEmptyListCaption","background","border","box-shadow","CollectionView","extend","tagName","events","mousedown > li, tbody > tr > td","dblclick > li, tbody > tr > td","click","click ul.collection-view, table.collection-view","keydown","spawnMessages","focus","passMessages","*","initializationOptions","collection","modelView","modelViewOptions","itemTemplate","itemTemplateFunction","selectable","clickToSelect","selectableModelsFilter","visibleModelsFilter","sortableModelsFilter","selectMultiple","clickToToggle","processKeyEvents","sortable","sortableOptions","reuseModelViews","detachedRendering","emptyListCaption","initialize","options","ViewOptions","add","setOptions","Collection","_hasBeenRendered","_isBackboneCourierAvailable","Courier","$el","data","addClass","attr","selectedItems","_updateItemTemplate","_registerCollectionEvents","viewManager","ChildViewContainer","_onOptionsChanged","changedOptions","originalOptions","_this","rerender","changedOptionKey","newVal","oldVal","stopListening","setSelectedModel","by","setSelectedModels","removeAttr","_setupSortable","reapplyFilter","view","remove","contains","render","setOption","optionName","optionValue","optionHash","getSelectedModel","getSelectedModels","referenceBy","items","item","curLineNumber","_getVisibleItemEls","is","findByModel","newSelectedItems","silent","newSelectedCids","thisModel","cid","pluck","model","thisItemEl","oldSelectedModels","oldSelectedCids","_convertStringsToInts","_validateSelection","newSelectedModels","_containSameElements","_addSelectedClassToSelectedItems","spawn","selectedModels","trigger","updateDependentControls","newSelectedItem","getView","reference","itemElements","_saveSelection","modelViewContainerEl","_getContainerEl","oldViewManager","thisModelView","detach","empty","fragmentContainer","document","createDocumentFragment","findByModelCid","_createNewModelView","_getModelViewOptions","_insertAndRenderModelView","append","_showEmptyListCaptionIfAppropriate","_restoreSelection","forceRerenderOnNextSortEvent","_removeEmptyListCaption","emptyListString","$emptyListCaptionEl","$varEl","_isRenderedAsList","wrapAll","parent","css","find","parentElOrDocumentFragment","atIndex","thisModelViewWrapped","_wrapModelView","nodeType","appendChild","numberOfModelViewsCurrentlyInDOM","children","eq","before","hide","hideThisModelView","toggle","toggleClass","whichFilter","notVisible","_modelViewHasWrapperLI","closest","notSortable","notSelectable","_removeModelView","_validateSelectionAndRender","listenTo","_isRenderedAsTable","tbody","_getClickedItemId","theEvent","clickedItemId","clickedItemEl","currentTarget","clickedItem","isNumeric","parseInt","itemTemplateHtml","html","template","modelReferenceIds","models","intersection","filter","thisItemId","savedSelection","offset","oldItemsIdsWithSelectedClass","itemsIdsFromWhichSelectedClassNeedsToBeRemoved","without","removeClass","itemsIdsFromWhichSelectedClassNeedsToBeAdded","_reorderCollectionBasedOnHTML","thisModelCid","sort","comparator","_getModelViewConstructor","modelViewConstructor","newModelView","collectionListView","collectionView","modelViewWrapperEl","theArray","thisEl","thisElAsNumber","arrayA","arrayB","toLowerCase","_charCodes","upArrow","downArrow","axis","distance","forcePlaceholderSize","start","bind","_sortStart","change","_sortChange","stop","_sortStop","receive","_receive","over","_over","result","event","ui","modelBeingSorted","newIndex","senderListEl","sender","senderCollectionListView","modelReceived","at","_onKeydown","trap","currentOffset","which","_listItem_onMousedown","clickedModel","metaKeyPressed","ctrlKey","metaKey","thisMethod","shiftKey","firstSelectedItemIndex","thisItemModel","clickedItemIndex","shiftKeyRootSelectedItemIndex","minSelectedItemIndex","Math","min","maxSelectedItemIndex","max","thisIndex","selection","getSelection","sel","removeAllRanges","union","_listItem_onDoubleClick","_listBackground_onClick","target","setDefaultModelViewConstructor","theConstructor","optionsDeclarationsProperty","optionsThatWereChanged","optionsThatWereChangedPreviousValues","thisOptionProperties","oldValue","newValue","onOptionsChanged","getOptions","optionsNames","pick","Container","views","_views","_indexByModel","_indexByCustom","_updateLength","customIndex","viewCid","modelCid","findByCid","findByCustom","findByIndex","values","findIndexByCid","any","key","method","tail","size","methods","toArray","unsavedModels","updateUnsavedModels","isEmpty","_unsavedChanges","findWhere","getPrompt","fnName","prompt","rest","evaluateModelFn","fn","isBoolean","_unsavedConfig","History","navigate","wrap","oldNav","fragment","confirm","onbeforeunload","Model","unsaved","_trackingChanges","_originalAttrs","startTracking","unloadRouterPrompt","unloadWindowPrompt","_resetTracking","_triggerUnsavedChanges","stopTracking","restartTracking","resetAttributes","attributes","unsavedAttributes","attrs","val","changed","old","isEqual","deepClone","set","oldSet","sync","oldSync","success","oldSuccess","textStatus","jqXHR","defaults","enabled","src","relationship_defaults","relationships","init_relationships","rels","get_relationships","set_parent","child_data","child_key","conditional","child","child_val","lookup","type","llms_builder","construct","get_model","class","get_collection","_maybe_set_parent_reference","child_model","get_child_props","props","get_parent","Image","Relationships","choice","uniqueId","choice_type","correct","marker","question_id","get_trash_id","is_selectable","get_choice_selectable","on","update_order","update_correct","count_correct","get_correct","siblings","question","self","get_choice_markers","choices","clarifications","default_choices","description","icon","image","keywords","placeholder","points","video","get_keywords","_get_choice_option","get_choice_type","get_min_choices","get_max_choices","get_multi_choices","option","fields","matches","match","realAttr","currentVal","get_edit_post_link","has_temp_id","admin_url","get_view_post_link","home_url","get_settings_fields","schema","schemas","isNumber","init_custom_schema","groups","group","flatten","field","attribute","customs","switch_attribute","attribute_prefix","Questions","QuestionChoices","QuestionType","Utilities","questions","question_type","content","description_enabled","multi_choices","menu_order","parent_id","title","video_enabled","video_src","_expanded","_ensure_min_choices","delay","update_points","add_choice","pubSub","before_save","atts","sync_type","get_l10n_type","plural","LLMS","l10n","translate","get_type_index","curr_type","get_type_iterator","get_qid","get_parent_question","is_in_group","get_parent_quiz","get_points","get_points_percentage","total","toFixed","update_parent","toggleable","label","tip","condition","text","url","Lesson","Question","QuizSchema","lesson_id","status","allowed_attempts","limit_attempts","limit_time","passing_percent","random_questions","time_limit","show_correct_answer","can_be_resumed","disable_retake","_points","permalink","_show_settings","_questions_loaded","get_total_points","add_question","load_questions","cb","Ajax","action","action_type","course_id","CourseModel","load_id","xhr","log","debug","res","assignments","label_after","tip_position","is_first_in_course","get_available_prereq_options","get_course","detail","date_format","timepicker","datepicker","Quiz","LessonSchema","parents","quiz","order","parent_course","course","parent_section","edit_url","view_url","audio_embed","has_prerequisite","require_passing_grade","require_assignment_passing_grade","video_embed","free_lesson","assignment","assignment_enabled","quiz_enabled","_forceSync","maybe_init_assignments","parent_section_index","lesson_index_in_section","section","curr_sec_index","%1$d","%2$s","lesson","curr_les_index","add_quiz","%1$s","is_first_in_section","is_last_in_course","is_last_in_section","get_prev","get_sibling","get_next","direction","is_course_limit_reached_f","sibling_index_increment","get_sibling_lesson_in_sibling_section_f","sibling_index","sibling_lesson","cur_section","sibling_section","on_reorder","validate_prereqs","prerequisite","Lessons","lessons","_selected","add_lesson","circular","_get_sibling","last","QuestionTypes","Sections","sections","add_section","add_existing_lesson","prepareQuizObjectForCloning","prepareAssignmentObjectForCloning","prepareExistingPostObjectDataForAddingOrCloning","get_selected_section","selected","lesson_points","Abstract","Course","QuestionChoice","Section","click a[href=\"#llms-detach-model\"]","click button.llms-detach-model","detach_model","preventDefault","stopPropagation","msg","%s","media_lib","click .llms-add-image","click a[href=\"#llms-edit-slug\"]","click a[href=\"#llms-remove-image\"]","change .llms-editable-select select","change .llms-switch input[type=\"checkbox\"]","change .llms-editable-radio input","focusin .llms-input","focusout .llms-input","keydown .llms-input","input .llms-input[type=\"number\"]","paste .llms-input[data-formatting]","get_allowed_tags","tag","trim","get_content","hasClass","stripFormatting","has_changed","is_valid","_validate_url","slug","beforeSend","Spinner","init_datepickers","datetimepicker","format","onClose","current_time","$input","blur","init_formatting_els","formatting","ed","Quill","modules","toolbar","keyboard","bindings","tab","handler","range","context","13","theme","delta","oldDelta","source","init_selects","llmsSelect2","width","on_blur","save_edits","revert_edits","on_focus","on_paste","originalEvent","clipboardData","getData","execCommand","on_select","multi","$selected","on_radio_select","on_keydown","keyCode","shift","open_media_lib","uploader","param","media","frames","file_frame","button","multiple","attachment","state","toJSON","sizes","params","open","remove_image","toggle_switch","init_editor","settings","editor","getEditor","getDefaultSettings","mediaButtons","tinymce","toolbar1","toolbar2","setup","on_editor_ready","make_slug_editable","$btn","$link","prevAll","prev","full_url","short_url","color","pointer-events","text-decoration","show","$ed","$parent","$label","prependTo","getContent","str","createElement","href","host","location","helper","maybe_hide_shiftable_buttons","old_index","new_index","shift_down","shift_up","subscriptions","get_subview","events_subscribe","func","events_unsubscribe","off","remove_subview","instance","remove_subviews","undelegateEvents","render_subviews","view_data","render_subview","set_state","click a[href=\"#llms-trash-model\"]","click button.llms-trash-model","trash_model","Detachable","Editable","Receivable","Shiftable","Subview","Trashable","Collections","Models","Views","extend_view","classname","register_collection","register_model","disable","enable","custom_schemas","custom","model_type","add_error_msg","err","message","check_for_changes","changes","get_unsaved_changes","has_unsaved_changes","saving","do_ajax_save","JSON","stringify","responseText","process_removals","process_updates","get_changed_attributes","exclude","omit","get_changes_to_object","object","changed_atts","model_changes","maybe_restart_tracking","unset","removals","detached","trash","trashed","coll","errors","info","process_object_updates","main_data","orig_id","updates","autosave","check_interval","check_interval_ms","save_now","heartbeat","connectNow","set_check_interval","ms","clearInterval","setInterval","statusText","data-id","data-section-id","className","click .edit-lesson","click .llms-headline","click .edit-quiz","click .edit-assignment","click .section-prev","click .section-next","click .shift-up--lesson","click .shift-down--lesson","open_assignment_editor","set_hash","open_lesson_editor","open_quiz_editor","section_next","_move_to_section","section_prev","subtab","hash","to_section","from_coll","LessonView","connectWith","cursor","handle","sortable_start","sortable_stop","LessonListView","click .expand","click .collapse","click .shift-up--section","click .shift-down--section","click .new-lesson","click .llms-builder-header","mouseenter .llms-lessons","toggle_expanded","lessonListView","on_lesson_add","dragTimeout","expand","collapse","el","active_lesson_change","maybe_hide_trash_button","add_new_lesson","current","previous","update","on_mouseenter","SectionView","mousedown > li.llms-section > .llms-builder-header .llms-headline","click ul.collection-view","SectionListView","sectionListView","active_section_change","on_section_add","on_section_toggle","on_section_select","expand_section","click .new-section","add_new_section","click .llms-settings-group-toggle","get_editor_fields","is_editor_field","get_groups","is_group_hidden","group_id","localStorage","getItem","get_switch_attribute","has_switch","is_default_field","is_switch_condition_met","switch_on","render_editor","wpEditor","render_select_options","option_html","setup_field","orig_field","field_index","classes","input_type","orig_settings","switch_off","has_images","should_rerender_on_toggle","field_type","toggle_group","$group","setItem","removeItem","SettingsFields","change_events","render_points_percentage","placement","style","animation","closeable","backdrop","onShow","onHide","container","webuiPopover","select2:select","post_type","searching_message","add_post","ajax","dataType","ajaxurl","term","page","_ajax_nonce","ajax_nonce","dropdownParent","escapeMarkup","markup","templateResult","render_result","$html","loading","$side","$main","Popover","QuestionSearch","click .llms-add-question","add_existing_question_click","add_new_question","dismissible","offsetLeft","offsetTop","add_existing_question","prepareQuestionObjectForCloning","QuestionView","change input[name=\"correct\"]","click .llms-action-icon[href=\"#llms-add-choice\"]","click .llms-action-icon[href=\"#llms-del-choice\"]","maybe_disable_buttons","del_choice","toggle_correct","ChoiceView","ChoiceListView","click .clone--question","click .delete--question","click .expand--question","click .collapse--question","change input[name=\"question_points\"]","multi_choices_toggle","choiceListView","questionListView","get_question_list","_get_question_clone","choice_clone","delete","selector","QuizModel","PostSearch","QuestionBank","QuestionList","bank","list","click #llms-existing-quiz","click #llms-new-quiz","click #llms-show-question-bank","click .bulk-toggle","render_points","on_trashed","last_group","alert","$questions","animate","scrollTop","bulk_toggle","expanded","add_new_quiz","add_existing_quiz","post_search_popover","add_existing_quiz_click","once","show_tools","addon_events","is_addon_available","get_view_events","click #llms-existing-assignment","click #llms-new-assignment","add_new_assignment","get_assignment","show_ad_popover","add_existing_assignment","add_existing_assignment_click","h3","btn","ad_popover","closeLabel","LessonEditor","Assignment","click .llms-editor-nav a[href=\"#llms-editor-close\"]","click .llms-editor-nav a:not([href=\"#llms-editor-close\"])","SidebarView","close_editor","switch_tab","LessonSearch","click #llms-new-section","click #llms-new-lesson","click #llms-existing-lesson","CourseView","draggable","maybe_add_initial_section","appendTo","cancel","connectToSortable","$els","click #llms-collapse-all","click #llms-expand-all","collapse_all","expand_all","Editor","Elements","elements","utilities","click #llms-save-button","click #llms-exit-button","click .llms-builder-error","changes_made","heartbeat_send","heartbeat_tick","on_lesson_select","on_editor_close","$saveButton","add_error","$err","prepend","clear_errors","exit_now","data-status","disabled","txt","is_editor_active","lesson_model","Hooks","CV","TrackIt","Construct","Debug","Schemas","Sync","value_compare","expected","actual","mixin","checked","oldEditor","autop","assignment_type","tasks","task","assignment_id","post_data","author","allowed_tags","not","replaceWith","innerHTML","Events","Sidebar","sidebar","$lesson","wait_for"],"mappings":"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","file":"../../js/llms-builder.min.js","sourcesContent":["(function($){\n","/**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n\tvar main, req, makeMap, handlers,\n\t\tdefined = {},\n\t\twaiting = {},\n\t\tconfig = {},\n\t\tdefining = {},\n\t\thasOwn = Object.prototype.hasOwnProperty,\n\t\taps = [].slice,\n\t\tjsSuffixRegExp = /\\.js$/;\n\n\tfunction hasProp(obj, prop) {\n\t\treturn hasOwn.call(obj, prop);\n\t}\n\n\t/**\n\t * Given a relative module name, like ./something, normalize it to\n\t * a real name that can be mapped to a path.\n\t * @param {String} name the relative name\n\t * @param {String} baseName a real name that the name arg is relative\n\t * to.\n\t * @returns {String} normalized name\n\t */\n\tfunction normalize(name, baseName) {\n\t\tvar nameParts, nameSegment, mapValue, foundMap, lastIndex,\n\t\t\tfoundI, foundStarMap, starI, i, j, part, normalizedBaseParts,\n\t\t\tbaseParts = baseName && baseName.split(\"/\"),\n\t\t\tmap = config.map,\n\t\t\tstarMap = (map && map['*']) || {};\n\n\t\t//Adjust any relative paths.\n\t\tif (name) {\n\t\t\tname = name.split('/');\n\t\t\tlastIndex = name.length - 1;\n\n\t\t\t// If wanting node ID compatibility, strip .js from end\n\t\t\t// of IDs. Have to do this here, and not in nameToUrl\n\t\t\t// because node allows either .js or non .js to map\n\t\t\t// to same file.\n\t\t\tif (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n\t\t\t\tname[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n\t\t\t}\n\n\t\t\t// Starts with a '.' so need the baseName\n\t\t\tif (name[0].charAt(0) === '.' && baseParts) {\n\t\t\t\t//Convert baseName to array, and lop off the last part,\n\t\t\t\t//so that . matches that 'directory' and not name of the baseName's\n\t\t\t\t//module. For instance, baseName of 'one/two/three', maps to\n\t\t\t\t//'one/two/three.js', but we want the directory, 'one/two' for\n\t\t\t\t//this normalization.\n\t\t\t\tnormalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n\t\t\t\tname = normalizedBaseParts.concat(name);\n\t\t\t}\n\n\t\t\t//start trimDots\n\t\t\tfor (i = 0; i < name.length; i++) {\n\t\t\t\tpart = name[i];\n\t\t\t\tif (part === '.') {\n\t\t\t\t\tname.splice(i, 1);\n\t\t\t\t\ti -= 1;\n\t\t\t\t} else if (part === '..') {\n\t\t\t\t\t// If at the start, or previous value is still ..,\n\t\t\t\t\t// keep them so that when converted to a path it may\n\t\t\t\t\t// still work when converted to a path, even though\n\t\t\t\t\t// as an ID it is less than ideal. In larger point\n\t\t\t\t\t// releases, may be better to just kick out an error.\n\t\t\t\t\tif (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (i > 0) {\n\t\t\t\t\t\tname.splice(i - 1, 2);\n\t\t\t\t\t\ti -= 2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t//end trimDots\n\n\t\t\tname = name.join('/');\n\t\t}\n\n\t\t//Apply map config if available.\n\t\tif ((baseParts || starMap) && map) {\n\t\t\tnameParts = name.split('/');\n\n\t\t\tfor (i = nameParts.length; i > 0; i -= 1) {\n\t\t\t\tnameSegment = nameParts.slice(0, i).join(\"/\");\n\n\t\t\t\tif (baseParts) {\n\t\t\t\t\t//Find the longest baseName segment match in the config.\n\t\t\t\t\t//So, do joins on the biggest to smallest lengths of baseParts.\n\t\t\t\t\tfor (j = baseParts.length; j > 0; j -= 1) {\n\t\t\t\t\t\tmapValue = map[baseParts.slice(0, j).join('/')];\n\n\t\t\t\t\t\t//baseName segment has config, find if it has one for\n\t\t\t\t\t\t//this name.\n\t\t\t\t\t\tif (mapValue) {\n\t\t\t\t\t\t\tmapValue = mapValue[nameSegment];\n\t\t\t\t\t\t\tif (mapValue) {\n\t\t\t\t\t\t\t\t//Match, update name to the new value.\n\t\t\t\t\t\t\t\tfoundMap = mapValue;\n\t\t\t\t\t\t\t\tfoundI = i;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (foundMap) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t//Check for a star map match, but just hold on to it,\n\t\t\t\t//if there is a shorter segment match later in a matching\n\t\t\t\t//config, then favor over this star map.\n\t\t\t\tif (!foundStarMap && starMap && starMap[nameSegment]) {\n\t\t\t\t\tfoundStarMap = starMap[nameSegment];\n\t\t\t\t\tstarI = i;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!foundMap && foundStarMap) {\n\t\t\t\tfoundMap = foundStarMap;\n\t\t\t\tfoundI = starI;\n\t\t\t}\n\n\t\t\tif (foundMap) {\n\t\t\t\tnameParts.splice(0, foundI, foundMap);\n\t\t\t\tname = nameParts.join('/');\n\t\t\t}\n\t\t}\n\n\t\treturn name;\n\t}\n\n\tfunction makeRequire(relName, forceSync) {\n\t\treturn function () {\n\t\t\t//A version of a require function that passes a moduleName\n\t\t\t//value for items that may need to\n\t\t\t//look up paths relative to the moduleName\n\t\t\tvar args = aps.call(arguments, 0);\n\n\t\t\t//If first arg is not require('string'), and there is only\n\t\t\t//one arg, it is the array form without a callback. Insert\n\t\t\t//a null so that the following concat is correct.\n\t\t\tif (typeof args[0] !== 'string' && args.length === 1) {\n\t\t\t\targs.push(null);\n\t\t\t}\n\t\t\treturn req.apply(undef, args.concat([relName, forceSync]));\n\t\t};\n\t}\n\n\tfunction makeNormalize(relName) {\n\t\treturn function (name) {\n\t\t\treturn normalize(name, relName);\n\t\t};\n\t}\n\n\tfunction makeLoad(depName) {\n\t\treturn function (value) {\n\t\t\tdefined[depName] = value;\n\t\t};\n\t}\n\n\tfunction callDep(name) {\n\t\tif (hasProp(waiting, name)) {\n\t\t\tvar args = waiting[name];\n\t\t\tdelete waiting[name];\n\t\t\tdefining[name] = true;\n\t\t\tmain.apply(undef, args);\n\t\t}\n\n\t\tif (!hasProp(defined, name) && !hasProp(defining, name)) {\n\t\t\tthrow new Error('No ' + name);\n\t\t}\n\t\treturn defined[name];\n\t}\n\n\t//Turns a plugin!resource to [plugin, resource]\n\t//with the plugin being undefined if the name\n\t//did not have a plugin prefix.\n\tfunction splitPrefix(name) {\n\t\tvar prefix,\n\t\t\tindex = name ? name.indexOf('!') : -1;\n\t\tif (index > -1) {\n\t\t\tprefix = name.substring(0, index);\n\t\t\tname = name.substring(index + 1, name.length);\n\t\t}\n\t\treturn [prefix, name];\n\t}\n\n\t//Creates a parts array for a relName where first part is plugin ID,\n\t//second part is resource ID. Assumes relName has already been normalized.\n\tfunction makeRelParts(relName) {\n\t\treturn relName ? splitPrefix(relName) : [];\n\t}\n\n\t/**\n\t * Makes a name map, normalizing the name, and using a plugin\n\t * for normalization if necessary. Grabs a ref to plugin\n\t * too, as an optimization.\n\t */\n\tmakeMap = function (name, relParts) {\n\t\tvar plugin,\n\t\t\tparts = splitPrefix(name),\n\t\t\tprefix = parts[0],\n\t\t\trelResourceName = relParts[1];\n\n\t\tname = parts[1];\n\n\t\tif (prefix) {\n\t\t\tprefix = normalize(prefix, relResourceName);\n\t\t\tplugin = callDep(prefix);\n\t\t}\n\n\t\t//Normalize according\n\t\tif (prefix) {\n\t\t\tif (plugin && plugin.normalize) {\n\t\t\t\tname = plugin.normalize(name, makeNormalize(relResourceName));\n\t\t\t} else {\n\t\t\t\tname = normalize(name, relResourceName);\n\t\t\t}\n\t\t} else {\n\t\t\tname = normalize(name, relResourceName);\n\t\t\tparts = splitPrefix(name);\n\t\t\tprefix = parts[0];\n\t\t\tname = parts[1];\n\t\t\tif (prefix) {\n\t\t\t\tplugin = callDep(prefix);\n\t\t\t}\n\t\t}\n\n\t\t//Using ridiculous property names for space reasons\n\t\treturn {\n\t\t\tf: prefix ? prefix + '!' + name : name, //fullName\n\t\t\tn: name,\n\t\t\tpr: prefix,\n\t\t\tp: plugin\n\t\t};\n\t};\n\n\tfunction makeConfig(name) {\n\t\treturn function () {\n\t\t\treturn (config && config.config && config.config[name]) || {};\n\t\t};\n\t}\n\n\thandlers = {\n\t\trequire: function (name) {\n\t\t\treturn makeRequire(name);\n\t\t},\n\t\texports: function (name) {\n\t\t\tvar e = defined[name];\n\t\t\tif (typeof e !== 'undefined') {\n\t\t\t\treturn e;\n\t\t\t} else {\n\t\t\t\treturn (defined[name] = {});\n\t\t\t}\n\t\t},\n\t\tmodule: function (name) {\n\t\t\treturn {\n\t\t\t\tid: name,\n\t\t\t\turi: '',\n\t\t\t\texports: defined[name],\n\t\t\t\tconfig: makeConfig(name)\n\t\t\t};\n\t\t}\n\t};\n\n\tmain = function (name, deps, callback, relName) {\n\t\tvar cjsModule, depName, ret, map, i, relParts,\n\t\t\targs = [],\n\t\t\tcallbackType = typeof callback,\n\t\t\tusingExports;\n\n\t\t//Use name if no relName\n\t\trelName = relName || name;\n\t\trelParts = makeRelParts(relName);\n\n\t\t//Call the callback to define the module, if necessary.\n\t\tif (callbackType === 'undefined' || callbackType === 'function') {\n\t\t\t//Pull out the defined dependencies and pass the ordered\n\t\t\t//values to the callback.\n\t\t\t//Default to [require, exports, module] if no deps\n\t\t\tdeps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n\t\t\tfor (i = 0; i < deps.length; i += 1) {\n\t\t\t\tmap = makeMap(deps[i], relParts);\n\t\t\t\tdepName = map.f;\n\n\t\t\t\t//Fast path CommonJS standard dependencies.\n\t\t\t\tif (depName === \"require\") {\n\t\t\t\t\targs[i] = handlers.require(name);\n\t\t\t\t} else if (depName === \"exports\") {\n\t\t\t\t\t//CommonJS module spec 1.1\n\t\t\t\t\targs[i] = handlers.exports(name);\n\t\t\t\t\tusingExports = true;\n\t\t\t\t} else if (depName === \"module\") {\n\t\t\t\t\t//CommonJS module spec 1.1\n\t\t\t\t\tcjsModule = args[i] = handlers.module(name);\n\t\t\t\t} else if (hasProp(defined, depName) ||\n\t\t\t\t\t\t hasProp(waiting, depName) ||\n\t\t\t\t\t\t hasProp(defining, depName)) {\n\t\t\t\t\targs[i] = callDep(depName);\n\t\t\t\t} else if (map.p) {\n\t\t\t\t\tmap.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n\t\t\t\t\targs[i] = defined[depName];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(name + ' missing ' + depName);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tret = callback ? callback.apply(defined[name], args) : undefined;\n\n\t\t\tif (name) {\n\t\t\t\t//If setting exports via \"module\" is in play,\n\t\t\t\t//favor that over return value and exports. After that,\n\t\t\t\t//favor a non-undefined return value over exports use.\n\t\t\t\tif (cjsModule && cjsModule.exports !== undef &&\n\t\t\t\t\t\tcjsModule.exports !== defined[name]) {\n\t\t\t\t\tdefined[name] = cjsModule.exports;\n\t\t\t\t} else if (ret !== undef || !usingExports) {\n\t\t\t\t\t//Use the return value from the function.\n\t\t\t\t\tdefined[name] = ret;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (name) {\n\t\t\t//May just be an object definition for the module. Only\n\t\t\t//worry about defining if have a module name.\n\t\t\tdefined[name] = callback;\n\t\t}\n\t};\n\n\trequirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n\t\tif (typeof deps === \"string\") {\n\t\t\tif (handlers[deps]) {\n\t\t\t\t//callback in this case is really relName\n\t\t\t\treturn handlers[deps](callback);\n\t\t\t}\n\t\t\t//Just return the module wanted. In this scenario, the\n\t\t\t//deps arg is the module name, and second arg (if passed)\n\t\t\t//is just the relName.\n\t\t\t//Normalize module name, if it contains . or ..\n\t\t\treturn callDep(makeMap(deps, makeRelParts(callback)).f);\n\t\t} else if (!deps.splice) {\n\t\t\t//deps is a config object, not an array.\n\t\t\tconfig = deps;\n\t\t\tif (config.deps) {\n\t\t\t\treq(config.deps, config.callback);\n\t\t\t}\n\t\t\tif (!callback) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (callback.splice) {\n\t\t\t\t//callback is an array, which means it is a dependency list.\n\t\t\t\t//Adjust args if there are dependencies\n\t\t\t\tdeps = callback;\n\t\t\t\tcallback = relName;\n\t\t\t\trelName = null;\n\t\t\t} else {\n\t\t\t\tdeps = undef;\n\t\t\t}\n\t\t}\n\n\t\t//Support require(['a'])\n\t\tcallback = callback || function () {};\n\n\t\t//If relName is a function, it is an errback handler,\n\t\t//so remove it.\n\t\tif (typeof relName === 'function') {\n\t\t\trelName = forceSync;\n\t\t\tforceSync = alt;\n\t\t}\n\n\t\t//Simulate async callback;\n\t\tif (forceSync) {\n\t\t\tmain(undef, deps, callback, relName);\n\t\t} else {\n\t\t\t//Using a non-zero value because of concern for what old browsers\n\t\t\t//do, and latest browsers \"upgrade\" to 4 if lower value is used:\n\t\t\t//http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n\t\t\t//If want a value immediately, use require('id') instead -- something\n\t\t\t//that works in almond on the global level, but not guaranteed and\n\t\t\t//unlikely to work in other AMD implementations.\n\t\t\tsetTimeout(function () {\n\t\t\t\tmain(undef, deps, callback, relName);\n\t\t\t}, 4);\n\t\t}\n\n\t\treturn req;\n\t};\n\n\t/**\n\t * Just drops the config on the floor, but returns req in case\n\t * the config return value is used.\n\t */\n\treq.config = function (cfg) {\n\t\treturn req(cfg);\n\t};\n\n\t/**\n\t * Expose module registry for debugging and tooling\n\t */\n\trequirejs._defined = defined;\n\n\tdefine = function (name, deps, callback) {\n\t\tif (typeof name !== 'string') {\n\t\t\tthrow new Error('See almond README: incorrect module build, no module name');\n\t\t}\n\n\t\t//This module may not have dependencies\n\t\tif (!deps.splice) {\n\t\t\t//deps is not an array, so probably means\n\t\t\t//an object literal or factory function for\n\t\t\t//the value. Adjust args.\n\t\t\tcallback = deps;\n\t\t\tdeps = [];\n\t\t}\n\n\t\tif (!hasProp(defined, name) && !hasProp(waiting, name)) {\n\t\t\twaiting[name] = [name, deps, callback];\n\t\t}\n\t};\n\n\tdefine.amd = {\n\t\tjQuery: true\n\t};\n}());\n\ndefine(\"vendor/almond\", function(){});\n\n","/**\n * This is a slightly modified and forward compatible version of the @wordpress/hooks package\n * as included in the Gutenberg feature plugin version 3.8.0\n */\nwindow.llms=window.llms||{};\n// use the core hooks if available\nif ( 'undefined' !== typeof window.wp && 'undefined' !== typeof window.wp.hooks ) {\n\twindow.llms.hooks = window.wp.hooks;\n// otherwise load our own\n} else {\n\twindow.llms.hooks=function(n){var r={};function e(t){if(r[t])return r[t].exports;var o=r[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,e),o.l=!0,o.exports}return e.m=n,e.c=r,e.d=function(n,r,t){e.o(n,r)||Object.defineProperty(n,r,{configurable:!1,enumerable:!0,get:t})},e.r=function(n){Object.defineProperty(n,\"__esModule\",{value:!0})},e.n=function(n){var r=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(r,\"a\",r),r},e.o=function(n,r){return Object.prototype.hasOwnProperty.call(n,r)},e.p=\"\",e(e.s=209)}({209:function(n,r,e){\"use strict\";e.r(r);var t=function(n){return\"string\"!=typeof n||\"\"===n?(console.error(\"The namespace must be a non-empty string.\"),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\\-\\/]*$/.test(n)||(console.error(\"The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.\"),!1)};var o=function(n){return\"string\"!=typeof n||\"\"===n?(console.error(\"The hook name must be a non-empty string.\"),!1):/^__/.test(n)?(console.error(\"The hook name cannot begin with `__`.\"),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(n)||(console.error(\"The hook name can only contain numbers, letters, dashes, periods and underscores.\"),!1)};var i=function(n){return function(r,e,i){var u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10;if(o(r)&&t(e))if(\"function\"==typeof i)if(\"number\"==typeof u){var c={callback:i,priority:u,namespace:e};if(n[r]){for(var a=n[r].handlers,l=0;lu);)l++;a.splice(l,0,c),(n.__current||[]).forEach(function(n){n.name===r&&n.currentIndex>=l&&n.currentIndex++})}else n[r]={handlers:[c],runs:0};\"hookAdded\"!==r&&b(\"hookAdded\",r,e,i,u)}else console.error(\"If specified, the hook priority must be a number.\");else console.error(\"The hook callback must be a function.\")}};var u=function(n,r){return function(e,i){if(o(e)&&(r||t(i))){if(!n[e])return 0;var u=0;if(r)u=n[e].handlers.length,n[e]={runs:n[e].runs,handlers:[]};else for(var c=n[e].handlers,a=function(r){c[r].namespace===i&&(c.splice(r,1),u++,(n.__current||[]).forEach(function(n){n.name===e&&n.currentIndex>=r&&n.currentIndex--}))},l=c.length-1;l>=0;l--)a(l);return\"hookRemoved\"!==e&&b(\"hookRemoved\",e,i),u}}};var c=function(n){return function(r){return r in n}};var a=function(n,r){return function(e){n[e]||(n[e]={handlers:[],runs:0}),n[e].runs++;for(var t=n[e].handlers,o=arguments.length,i=new Array(o>1?o-1:0),u=1;u li, tbody > tr > td\" : \"_listItem_onMousedown\",\n\t\t\t\"dblclick > li, tbody > tr > td\" : \"_listItem_onDoubleClick\",\n\t\t\t\"click\" : \"_listBackground_onClick\",\n\t\t\t\"click ul.collection-view, table.collection-view\" : \"_listBackground_onClick\",\n\t\t\t\"keydown\" : \"_onKeydown\"\n\t\t},\n\n\t\t// only used if Backbone.Courier is available\n\t\tspawnMessages : {\n\t\t\t\"focus\" : \"focus\"\n\t\t},\n\n\t\t//only used if Backbone.Courier is available\n\t\tpassMessages : { \"*\" : \".\" },\n\n\t\t// viewOption definitions with default values.\n\t\tinitializationOptions : [\n\t\t\t{ \"collection\" : null },\n\t\t\t{ \"modelView\" : null },\n\t\t\t{ \"modelViewOptions\" : {} },\n\t\t\t{ \"itemTemplate\" : null },\n\t\t\t{ \"itemTemplateFunction\" : null },\n\t\t\t{ \"selectable\" : true },\n\t\t\t{ \"clickToSelect\" : true },\n\t\t\t{ \"selectableModelsFilter\" : null },\n\t\t\t{ \"visibleModelsFilter\" : null },\n\t\t\t{ \"sortableModelsFilter\" : null },\n\t\t\t{ \"selectMultiple\" : false },\n\t\t\t{ \"clickToToggle\" : false },\n\t\t\t{ \"processKeyEvents\" : true },\n\t\t\t{ \"sortable\" : false },\n\t\t\t{ \"sortableOptions\" : null },\n\t\t\t{ \"reuseModelViews\" : true },\n\t\t\t{ \"detachedRendering\" : false },\n\t\t\t{ \"emptyListCaption\" : null }\n\t\t],\n\n\t\tinitialize : function( options ) {\n\t\t\tBackbone.ViewOptions.add( this, \"initializationOptions\" ); // setup the ViewOptions functionality.\n\t\t\tthis.setOptions( options ); // and make use of any provided options\n\n\t\t\tif( ! this.collection ) this.collection = new Backbone.Collection();\n\n\t\t\tthis._hasBeenRendered = false;\n\n\t\t\tif( this._isBackboneCourierAvailable() ) {\n\t\t\t\tBackbone.Courier.add( this );\n\t\t\t}\n\n\t\t\tthis.$el.data( \"view\", this ); // needed for connected sortable lists\n\t\t\tthis.$el.addClass( \"collection-view collection-list\" ); // collection-list is in there for legacy purposes\n\t\t\tif( this.selectable ) this.$el.addClass( \"selectable\" );\n\n\t\t\tif( this.selectable && this.processKeyEvents )\n\t\t\t\tthis.$el.attr( \"tabindex\", 0 ); // so we get keyboard events\n\n\t\t\tthis.selectedItems = [];\n\n\t\t\tthis._updateItemTemplate();\n\n\t\t\tif( this.collection )\n\t\t\t\tthis._registerCollectionEvents();\n\n\t\t\tthis.viewManager = new ChildViewContainer();\n\t\t},\n\n\t\t_onOptionsChanged : function( changedOptions, originalOptions ) {\n\t\t\tvar _this = this;\n\t\t\tvar rerender = false;\n\n\t\t\t_.each( _.keys( changedOptions ), function( changedOptionKey ) {\n\t\t\t\tvar newVal = changedOptions[ changedOptionKey ];\n\t\t\t\tvar oldVal = originalOptions[ changedOptionKey ];\n\t\t\t\tswitch( changedOptionKey ) {\n\t\t\t\t\tcase \"collection\" :\n\t\t\t\t\t\tif ( newVal !== oldVal ) {\n\t\t\t\t\t\t\t_this.stopListening( oldVal );\n\t\t\t\t\t\t\t_this._registerCollectionEvents();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"selectMultiple\" :\n\t\t\t\t\t\tif( ! newVal && _this.selectedItems.length > 1 )\n\t\t\t\t\t\t\t_this.setSelectedModel( _.first( _this.selectedItems ), { by : \"cid\" } );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"selectable\" :\n\t\t\t\t\t\tif( ! newVal && _this.selectedItems.length > 0 )\n\t\t\t\t\t\t\t_this.setSelectedModels( [] );\n\n\t\t\t\t\t\tif( newVal && this.processKeyEvents ) _this.$el.attr( \"tabindex\", 0 ); // so we get keyboard events\n\t\t\t\t\t\telse _this.$el.removeAttr( \"tabindex\", 0 );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"sortable\" :\n\t\t\t\t\t\tchangedOptions.sortable ? _this._setupSortable() : _this.$el.sortable( \"destroy\" );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"selectableModelsFilter\" :\n\t\t\t\t\t\t_this.reapplyFilter( 'selectableModels' );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"sortableOptions\" :\n\t\t\t\t\t\t_this.$el.sortable( \"destroy\" );\n\t\t\t\t\t\t_this._setupSortable();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"sortableModelsFilter\" :\n\t\t\t\t\t\t_this.reapplyFilter( 'sortableModels' );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"visibleModelsFilter\" :\n\t\t\t\t\t\t_this.reapplyFilter( 'visibleModels' );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"itemTemplate\" :\n\t\t\t\t\t\t_this._updateItemTemplate();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"processKeyEvents\" :\n\t\t\t\t\t\tif( newVal && this.selectable ) _this.$el.attr( \"tabindex\", 0 ); // so we get keyboard events\n\t\t\t\t\t\telse _this.$el.removeAttr( \"tabindex\", 0 );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"modelView\" :\n\t\t\t\t\t\t//need to remove all old view instances\n\t\t\t\t\t\t_this.viewManager.each( function( view ) {\n\t\t\t\t\t\t\t_this.viewManager.remove( view );\n\t\t\t\t\t\t\t// destroy the View itself\n\t\t\t\t\t\t\tview.remove();\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif( _.contains( kOptionsRequiringRerendering, changedOptionKey ) ) rerender = true;\n\t\t\t} );\n\n\t\t\tif( this._hasBeenRendered && rerender ) {\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t},\n\n\t\tsetOption : function( optionName, optionValue ) { // now is merely a wrapper around backbone.viewOptions' setOptions()\n\t\t\tvar optionHash = {};\n\t\t\toptionHash[ optionName ] = optionValue;\n\t\t\tthis.setOptions( optionHash );\n\t\t},\n\n\t\tgetSelectedModel : function( options ) {\n\t\t\treturn this.selectedItems.length ? _.first( this.getSelectedModels( options ) ) : null;\n\t\t},\n\n\t\tgetSelectedModels : function ( options ) {\n\t\t\tvar _this = this;\n\n\t\t\toptions = _.extend( {}, {\n\t\t\t\tby : kDefaultReferenceBy\n\t\t\t}, options );\n\n\t\t\tvar referenceBy = options.by;\n\t\t\tvar items = [];\n\n\t\t\tswitch( referenceBy ) {\n\t\t\t\tcase \"id\" :\n\t\t\t\t\t_.each( this.selectedItems, function ( item ) {\n\t\t\t\t\t\titems.push( _this.collection.get( item ).id );\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"cid\" :\n\t\t\t\t\titems = items.concat( this.selectedItems );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"offset\" :\n\t\t\t\t\tvar curLineNumber = 0;\n\n\t\t\t\t\tvar itemElements = this._getVisibleItemEls();\n\n\t\t\t\t\titemElements.each( function() {\n\t\t\t\t\t\tvar thisItemEl = $( this );\n\t\t\t\t\t\tif( thisItemEl.is( \".selected\" ) )\n\t\t\t\t\t\t\titems.push( curLineNumber );\n\t\t\t\t\t\tcurLineNumber++;\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"model\" :\n\t\t\t\t\t_.each( this.selectedItems, function ( item ) {\n\t\t\t\t\t\titems.push( _this.collection.get( item ) );\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"view\" :\n\t\t\t\t\t_.each( this.selectedItems, function ( item ) {\n\t\t\t\t\t\titems.push( _this.viewManager.findByModel( _this.collection.get( item ) ) );\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault :\n\t\t\t\t\tthrow new Error( \"Invalid referenceBy option: \" + referenceBy );\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn items;\n\n\t\t},\n\n\t\tsetSelectedModels : function( newSelectedItems, options ) {\n\t\t\tif( ! _.isArray( newSelectedItems ) ) throw \"Invalid parameter value\";\n\t\t\tif( ! this.selectable && newSelectedItems.length > 0 ) return; // used to throw error, but there are some circumstances in which a list can be selectable at times and not at others, don't want to have to worry about catching errors\n\n\t\t\toptions = _.extend( {}, {\n\t\t\t\tsilent : false,\n\t\t\t\tby : kDefaultReferenceBy\n\t\t\t}, options );\n\n\t\t\tvar referenceBy = options.by;\n\t\t\tvar newSelectedCids = [];\n\n\t\t\tswitch( referenceBy ) {\n\t\t\t\tcase \"cid\" :\n\t\t\t\t\tnewSelectedCids = newSelectedItems;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"id\" :\n\t\t\t\t\tthis.collection.each( function( thisModel ) {\n\t\t\t\t\t\tif( _.contains( newSelectedItems, thisModel.id ) ) newSelectedCids.push( thisModel.cid );\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"model\" :\n\t\t\t\t\tnewSelectedCids = _.pluck( newSelectedItems, \"cid\" );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"view\" :\n\t\t\t\t\t_.each( newSelectedItems, function( item ) {\n\t\t\t\t\t\tnewSelectedCids.push( item.model.cid );\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"offset\" :\n\t\t\t\t\tvar curLineNumber = 0;\n\t\t\t\t\tvar selectedItems = [];\n\n\t\t\t\t\tvar itemElements = this._getVisibleItemEls();\n\t\t\t\t\titemElements.each( function() {\n\t\t\t\t\t\tvar thisItemEl = $( this );\n\t\t\t\t\t\tif( _.contains( newSelectedItems, curLineNumber ) )\n\t\t\t\t\t\t\tnewSelectedCids.push( thisItemEl.attr( \"data-model-cid\" ) );\n\t\t\t\t\t\tcurLineNumber++;\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault :\n\t\t\t\t\tthrow new Error( \"Invalid referenceBy option: \" + referenceBy );\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar oldSelectedModels = this.getSelectedModels();\n\t\t\tvar oldSelectedCids = _.clone( this.selectedItems );\n\n\t\t\tthis.selectedItems = this._convertStringsToInts( newSelectedCids );\n\t\t\tthis._validateSelection();\n\n\t\t\tvar newSelectedModels = this.getSelectedModels();\n\n\t\t\tif( ! this._containSameElements( oldSelectedCids, this.selectedItems ) )\n\t\t\t{\n\t\t\t\tthis._addSelectedClassToSelectedItems( oldSelectedCids );\n\n\t\t\t\tif( ! options.silent )\n\t\t\t\t{\n\t\t\t\t\tif( this._isBackboneCourierAvailable() ) {\n\t\t\t\t\t\tthis.spawn( \"selectionChanged\", {\n\t\t\t\t\t\t\tselectedModels : newSelectedModels,\n\t\t\t\t\t\t\toldSelectedModels : oldSelectedModels\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else this.trigger( \"selectionChanged\", newSelectedModels, oldSelectedModels );\n\t\t\t\t}\n\n\t\t\t\tthis.updateDependentControls();\n\t\t\t}\n\t\t},\n\n\t\tsetSelectedModel : function( newSelectedItem, options ) {\n\t\t\tif( ! newSelectedItem && newSelectedItem !== 0 )\n\t\t\t\tthis.setSelectedModels( [], options );\n\t\t\telse\n\t\t\t\tthis.setSelectedModels( [ newSelectedItem ], options );\n\t\t},\n\n\t\tgetView : function( reference, options ) {\n\t\t\toptions = _.extend( {}, {\n\t\t\t\tby : kDefaultReferenceBy\n\t\t\t}, options );\n\n\t\t\tswitch( options.by ) {\n\t\t\t\tcase \"id\" :\n\t\t\t\tcase \"cid\" :\n\t\t\t\t\tvar model = this.collection.get( reference ) || null;\n\t\t\t\t\treturn model && this.viewManager.findByModel( model );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"offset\" :\n\t\t\t\t\tvar itemElements = this._getVisibleItemEls();\n\t\t\t\t\treturn $( itemElements.get( reference ) );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"model\" :\n\t\t\t\t\treturn this.viewManager.findByModel( reference );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault :\n\t\t\t\t\tthrow new Error( \"Invalid referenceBy option: \" + referenceBy );\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\trender : function() {\n\t\t\tvar _this = this;\n\n\t\t\tthis._hasBeenRendered = true;\n\n\t\t\tif( this.selectable ) this._saveSelection();\n\n\t\t\tvar modelViewContainerEl;\n\n\t\t\t// If collection view element is a table and it has a tbody\n\t\t\t// within it, render the model views inside of the tbody\n\t\t\tmodelViewContainerEl = this._getContainerEl();\n\n\t\t\tvar oldViewManager = this.viewManager;\n\t\t\tthis.viewManager = new ChildViewContainer();\n\n\t\t\t// detach each of our subviews that we have already created to represent models\n\t\t\t// in the collection. We are going to re-use the ones that represent models that\n\t\t\t// are still here, instead of creating new ones, so that we don't loose state\n\t\t\t// information in the views.\n\t\t\toldViewManager.each( function( thisModelView ) {\n\t\t\t\t// to boost performance, only detach those views that will be sticking around.\n\t\t\t\t// we won't need the other ones later, so no need to detach them individually.\n\t\t\t\tif( this.reuseModelViews && this.collection.get( thisModelView.model.cid ) ) {\n\t\t\t\t\tthisModelView.$el.detach();\n\t\t\t\t} else thisModelView.remove();\n\t\t\t}, this );\n\n\t\t\tmodelViewContainerEl.empty();\n\t\t\tvar fragmentContainer;\n\n\t\t\tif( this.detachedRendering )\n\t\t\t\tfragmentContainer = document.createDocumentFragment();\n\n\t\t\tthis.collection.each( function( thisModel ) {\n\t\t\t\tvar thisModelView = oldViewManager.findByModelCid( thisModel.cid );\n\t\t\t\tif( ! this.reuseModelViews || _.isUndefined( thisModelView ) ) {\n\t\t\t\t\t// if the model view has not already been created on a\n\t\t\t\t\t// previous render then create and initialize it now.\n\t\t\t\t\tthisModelView = this._createNewModelView( thisModel, this._getModelViewOptions( thisModel ) );\n\t\t\t\t}\n\n\t\t\t\tthis._insertAndRenderModelView( thisModelView, fragmentContainer || modelViewContainerEl );\n\t\t\t}, this );\n\n\t\t\tif( this.detachedRendering )\n\t\t\t\tmodelViewContainerEl.append( fragmentContainer );\n\n\t\t\tif( this.sortable ) this._setupSortable();\n\n\t\t\tthis._showEmptyListCaptionIfAppropriate();\n\n\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\tthis.spawn( \"render\" );\n\t\t\telse this.trigger( \"render\" );\n\n\t\t\tif( this.selectable ) {\n\t\t\t\tthis._restoreSelection();\n\t\t\t\tthis.updateDependentControls();\n\t\t\t}\n\n\t\t\tthis.forceRerenderOnNextSortEvent = false;\n\t\t},\n\n\t\t_showEmptyListCaptionIfAppropriate : function ( ) {\n\t\t\tthis._removeEmptyListCaption();\n\n\t\t\tif( this.emptyListCaption ) {\n\t\t\t\tvar visibleEls = this._getVisibleItemEls();\n\n\t\t\t\tif( visibleEls.length === 0 ) {\n\t\t\t\t\tvar emptyListString;\n\n\t\t\t\t\tif( _.isFunction( this.emptyListCaption ) )\n\t\t\t\t\t\temptyListString = this.emptyListCaption();\n\t\t\t\t\telse\n\t\t\t\t\t\temptyListString = this.emptyListCaption;\n\n\t\t\t\t\tvar $emptyListCaptionEl;\n\t\t\t\t\tvar $varEl = $( \"\" + emptyListString + \" \" );\n\n\t\t\t\t\t// need to wrap the empty caption to make it fit the rendered list structure (either with an li or a tr td)\n\t\t\t\t\tif( this._isRenderedAsList() )\n\t\t\t\t\t\t$emptyListCaptionEl = $varEl.wrapAll( \" \" ).parent().css( kStylesForEmptyListCaption );\n\t\t\t\t\telse\n\t\t\t\t\t\t$emptyListCaptionEl = $varEl.wrapAll( \" \" ).parent().parent().css( kStylesForEmptyListCaption );\n\n\t\t\t\t\tthis._getContainerEl().append( $emptyListCaptionEl );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_removeEmptyListCaption : function( ) {\n\t\t\tif( this._isRenderedAsList() )\n\t\t\t\tthis._getContainerEl().find( \"> li > var.empty-list-caption\" ).parent().remove();\n\t\t\telse\n\t\t\t\tthis._getContainerEl().find( \"> tr > td > var.empty-list-caption\" ).parent().parent().remove();\n\t\t},\n\n\t\t// Render a single model view in container object \"parentElOrDocumentFragment\", which is either\n\t\t// a documentFragment or a jquery object. optional arg atIndex is not support for document fragments.\n\t\t_insertAndRenderModelView : function( modelView, parentElOrDocumentFragment, atIndex ) {\n\t\t\tvar thisModelViewWrapped = this._wrapModelView( modelView );\n\n\t\t\tif( parentElOrDocumentFragment.nodeType === 11 ) // if we are inserting into a document fragment, we need to use the DOM appendChild method\n\t\t\t\tparentElOrDocumentFragment.appendChild( thisModelViewWrapped.get( 0 ) );\n\t\t\telse {\n\t\t\t\tvar numberOfModelViewsCurrentlyInDOM = parentElOrDocumentFragment.children().length;\n\t\t\t\tif( ! _.isUndefined( atIndex ) && atIndex >= 0 && atIndex < numberOfModelViewsCurrentlyInDOM )\n\t\t\t\t\t// note this.collection.length might be greater than parentElOrDocumentFragment.children().length here\n\t\t\t\t\tparentElOrDocumentFragment.children().eq( atIndex ).before( thisModelViewWrapped );\n\t\t\t\telse {\n\t\t\t\t\t// if we are attempting to insert a modelView in an position that is beyond what is currently in the\n\t\t\t\t\t// DOM, then make a note that we need to re-render the collection view on the next sort event. If we dont\n\t\t\t\t\t// force this re-render, we can end up with modelViews in the wrong order when the collection defines\n\t\t\t\t\t// a comparator and multiple models are added at once. See https://github.com/rotundasoftware/backbone.collectionView/issues/69\n\t\t\t\t\tif( ! _.isUndefined( atIndex ) && atIndex > numberOfModelViewsCurrentlyInDOM ) this.forceRerenderOnNextSortEvent = true;\n\n\t\t\t\t\tparentElOrDocumentFragment.append( thisModelViewWrapped );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.viewManager.add( modelView );\n\n\t\t\t// we have to render the modelView after it has been put in context, as opposed to in the\n\t\t\t// initialize function of the modelView, because some rendering might be dependent on\n\t\t\t// the modelView's context in the DOM tree. For example, if the modelView stretch()'s itself,\n\t\t\t// it must be in full context in the DOM tree or else the stretch will not behave as intended.\n\t\t\tvar renderResult = modelView.render();\n\n\t\t\t// return false from the view's render function to hide this item\n\t\t\tif( renderResult === false ) {\n\t\t\t\tthisModelViewWrapped.hide();\n\t\t\t\tthisModelViewWrapped.addClass( \"not-visible\" );\n\t\t\t}\n\n\t\t\tvar hideThisModelView = false;\n\t\t\tif( _.isFunction( this.visibleModelsFilter ) )\n\t\t\t\thideThisModelView = ! this.visibleModelsFilter( modelView.model );\n\n\t\t\tif( thisModelViewWrapped.children().length === 1 )\n\t\t\t\tthisModelViewWrapped.toggle( ! hideThisModelView );\n\t\t\telse modelView.$el.toggle( ! hideThisModelView );\n\n\t\t\tthisModelViewWrapped.toggleClass( \"not-visible\", hideThisModelView );\n\n\t\t\tif( ! hideThisModelView && this.emptyListCaption ) this._removeEmptyListCaption();\n\t\t},\n\n\t\tupdateDependentControls : function() {\n\t\t\tif( this._isBackboneCourierAvailable() ) {\n\t\t\t\tthis.spawn( \"updateDependentControls\", {\n\t\t\t\t\tselectedModels : this.getSelectedModels()\n\t\t\t\t} );\n\t\t\t} else this.trigger( \"updateDependentControls\", this.getSelectedModels() );\n\t\t},\n\n\t\t// Override `Backbone.View.remove` to also destroy all Views in `viewManager`\n\t\tremove : function() {\n\t\t\tthis.viewManager.each( function( view ) {\n\t\t\t\tview.remove();\n\t\t\t} );\n\n\t\t\tBackbone.View.prototype.remove.apply( this, arguments );\n\t\t},\n\n\t\treapplyFilter : function( whichFilter ) {\n\t\t\tvar _this = this;\n\n\t\t\tif( ! _.contains( [ \"selectableModels\", \"sortableModels\", \"visibleModels\" ], whichFilter ) ) {\n\t\t\t\tthrow new Error( \"Invalid filter identifier supplied to reapplyFilter: \" + whichFilter );\n\t\t\t}\n\n\t\t\tswitch( whichFilter ) {\n\t\t\t\tcase \"visibleModels\":\n\t\t\t\t\t_this.viewManager.each( function( thisModelView ) {\n\t\t\t\t\t\tvar notVisible = _this.visibleModelsFilter && ! _this.visibleModelsFilter.call( _this, thisModelView.model );\n\n\t\t\t\t\t\tthisModelView.$el.toggleClass( \"not-visible\", notVisible );\n\t\t\t\t\t\tif( _this._modelViewHasWrapperLI( thisModelView ) ) {\n\t\t\t\t\t\t\tthisModelView.$el.closest( \"li\" ).toggleClass( \"not-visible\", notVisible ).toggle( ! notVisible );\n\t\t\t\t\t\t} else thisModelView.$el.toggle( ! notVisible );\n\t\t\t\t\t} );\n\n\t\t\t\t\tthis._showEmptyListCaptionIfAppropriate();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"sortableModels\":\n\t\t\t\t\t_this.$el.sortable( \"destroy\" );\n\n\t\t\t\t\t_this.viewManager.each( function( thisModelView ) {\n\t\t\t\t\t\tvar notSortable = _this.sortableModelsFilter && ! _this.sortableModelsFilter.call( _this, thisModelView.model );\n\n\t\t\t\t\t\tthisModelView.$el.toggleClass( \"not-sortable\", notSortable );\n\t\t\t\t\t\tif( _this._modelViewHasWrapperLI( thisModelView ) ) {\n\t\t\t\t\t\t\tthisModelView.$el.closest( \"li\" ).toggleClass( \"not-sortable\", notSortable );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\t_this._setupSortable();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"selectableModels\":\n\t\t\t\t\t_this.viewManager.each( function( thisModelView ) {\n\t\t\t\t\t\tvar notSelectable = _this.selectableModelsFilter && ! _this.selectableModelsFilter.call( _this, thisModelView.model );\n\n\t\t\t\t\t\tthisModelView.$el.toggleClass( \"not-selectable\", notSelectable );\n\t\t\t\t\t\tif( _this._modelViewHasWrapperLI( thisModelView ) ) {\n\t\t\t\t\t\t\tthisModelView.$el.closest( \"li\" ).toggleClass( \"not-selectable\", notSelectable );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\t_this._validateSelection();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\t// A method to remove the view relating to model.\n\t\t_removeModelView : function( modelView ) {\n\t\t\tif( this.selectable ) this._saveSelection();\n\n\t\t\tthis.viewManager.remove( modelView ); // Remove the view from the viewManager\n\t\t\tif( this._modelViewHasWrapperLI( modelView ) ) modelView.$el.parent().remove(); // Remove the li wrapper from the DOM\n\t\t\tmodelView.remove(); // Remove the view from the DOM and stop listening to events\n\n\t\t\tif( this.selectable ) this._restoreSelection();\n\n\t\t\tthis._showEmptyListCaptionIfAppropriate();\n\t\t},\n\n\t\t_validateSelectionAndRender : function() {\n\t\t\tthis._validateSelection();\n\t\t\tthis.render();\n\t\t},\n\n\t\t_registerCollectionEvents : function() {\n\n\t\t\tthis.listenTo( this.collection, \"add\", function( model ) {\n\t\t\t\tvar modelView;\n\t\t\t\tif( this._hasBeenRendered ) {\n\t\t\t\t\tmodelView = this._createNewModelView( model, this._getModelViewOptions( model ) );\n\t\t\t\t\tthis._insertAndRenderModelView( modelView, this._getContainerEl(), this.collection.indexOf( model ) );\n\t\t\t\t}\n\n\t\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\t\tthis.spawn( \"add\", modelView );\n\t\t\t\telse this.trigger( \"add\", modelView );\n\t\t\t} );\n\n\t\t\tthis.listenTo( this.collection, \"remove\", function( model ) {\n\t\t\t\tvar modelView;\n\n\t\t\t\tif( this._hasBeenRendered ) {\n\t\t\t\t\tmodelView = this.viewManager.findByModelCid( model.cid );\n\t\t\t\t\tthis._removeModelView( modelView );\n\t\t\t\t}\n\n\t\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\t\tthis.spawn( \"remove\" );\n\t\t\t\telse this.trigger( \"remove\" );\n\t\t\t} );\n\n\t\t\tthis.listenTo( this.collection, \"reset\", function() {\n\t\t\t\tif( this._hasBeenRendered ) this.render();\n\t\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\t\tthis.spawn( \"reset\" );\n\t\t\t\telse this.trigger( \"reset\" );\n\t\t\t} );\n\n\t\t\t// we should not be listening to change events on the model as a default behavior. the models\n\t\t\t// should be responsible for re-rendering themselves if necessary, and if the collection does\n\t\t\t// also need to re-render as a result of a model change, this should be handled by overriding\n\t\t\t// this method. by default the collection view should not re-render in response to model changes\n\t\t\t// this.listenTo( this.collection, \"change\", function( model ) {\n\t\t\t// \tif( this._hasBeenRendered ) this.viewManager.findByModel( model ).render();\n\t\t\t// \tif( this._isBackboneCourierAvailable() )\n\t\t\t// \t\tthis.spawn( \"change\", { model : model } );\n\t\t\t// } );\n\n\t\t\tthis.listenTo( this.collection, \"sort\", function( collection, options ) {\n\t\t\t\tif( this._hasBeenRendered && ( options.add !== true || this.forceRerenderOnNextSortEvent ) ) this.render();\n\t\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\t\tthis.spawn( \"sort\" );\n\t\t\t\telse this.trigger( \"sort\" );\n\t\t\t} );\n\t\t},\n\n\t\t_getContainerEl : function() {\n\t\t\tif ( this._isRenderedAsTable() ) {\n\t\t\t\t// not all tables have a tbody, so we test\n\t\t\t\tvar tbody = this.$el.find( \"> tbody\" );\n\t\t\t\tif ( tbody.length > 0 )\n\t\t\t\t\treturn tbody;\n\t\t\t}\n\t\t\treturn this.$el;\n\t\t},\n\n\t\t_getClickedItemId : function( theEvent ) {\n\t\t\tvar clickedItemId = null;\n\n\t\t\t// important to use currentTarget as opposed to target, since we could be bubbling\n\t\t\t// an event that took place within another collectionList\n\t\t\tvar clickedItemEl = $( theEvent.currentTarget );\n\t\t\tif( clickedItemEl.closest( \".collection-view\" ).get(0) !== this.$el.get(0) ) return;\n\n\t\t\t// determine which list item was clicked. If we clicked in the blank area\n\t\t\t// underneath all the elements, we want to know that too, since in this\n\t\t\t// case we will want to deselect all elements. so check to see if the clicked\n\t\t\t// DOM element is the list itself to find that out.\n\t\t\tvar clickedItem = clickedItemEl.closest( \"[data-model-cid]\" );\n\t\t\tif( clickedItem.length > 0 )\n\t\t\t{\n\t\t\t\tclickedItemId = clickedItem.attr( \"data-model-cid\" );\n\t\t\t\tif( $.isNumeric( clickedItemId ) ) clickedItemId = parseInt( clickedItemId, 10 );\n\t\t\t}\n\n\t\t\treturn clickedItemId;\n\t\t},\n\n\t\t_updateItemTemplate : function() {\n\t\t\tvar itemTemplateHtml;\n\t\t\tif( this.itemTemplate )\n\t\t\t{\n\t\t\t\tif( $( this.itemTemplate ).length === 0 )\n\t\t\t\t\tthrow \"Could not find item template from selector: \" + this.itemTemplate;\n\n\t\t\t\titemTemplateHtml = $( this.itemTemplate ).html();\n\t\t\t}\n\t\t\telse\n\t\t\t\titemTemplateHtml = this.$( \".item-template\" ).html();\n\n\t\t\tif( itemTemplateHtml ) this.itemTemplateFunction = _.template( itemTemplateHtml );\n\n\t\t},\n\n\t\t_validateSelection : function() {\n\t\t\t// note can't use the collection's proxy to underscore because \"cid\" is not an attribute,\n\t\t\t// but an element of the model object itself.\n\t\t\tvar modelReferenceIds = _.pluck( this.collection.models, \"cid\" );\n\t\t\tthis.selectedItems = _.intersection( modelReferenceIds, this.selectedItems );\n\n\t\t\tif( _.isFunction( this.selectableModelsFilter ) )\n\t\t\t{\n\t\t\t\tthis.selectedItems = _.filter( this.selectedItems, function( thisItemId ) {\n\t\t\t\t\treturn this.selectableModelsFilter.call( this, this.collection.get( thisItemId ) );\n\t\t\t\t}, this );\n\t\t\t}\n\t\t},\n\n\t\t_saveSelection : function() {\n\t\t\t// save the current selection. use restoreSelection() to restore the selection to the state it was in the last time saveSelection() was called.\n\t\t\tif( ! this.selectable ) throw \"Attempt to save selection on non-selectable list\";\n\t\t\tthis.savedSelection = {\n\t\t\t\titems : _.clone( this.selectedItems ),\n\t\t\t\toffset : this.getSelectedModel( { by : \"offset\" } )\n\t\t\t};\n\t\t},\n\n\t\t_restoreSelection : function() {\n\t\t\tif( ! this.savedSelection ) throw \"Attempt to restore selection but no selection has been saved!\";\n\n\t\t\t// reset selectedItems to empty so that we \"redraw\" all \"selected\" classes\n\t\t\t// when we set our new selection. We do this because it is likely that our\n\t\t\t// contents have been refreshed, and we have thus lost all old \"selected\" classes.\n\t\t\tthis.setSelectedModels( [], { silent : true } );\n\n\t\t\tif( this.savedSelection.items.length > 0 )\n\t\t\t{\n\t\t\t\t// first try to restore the old selected items using their reference ids.\n\t\t\t\tthis.setSelectedModels( this.savedSelection.items, { by : \"cid\", silent : true } );\n\n\t\t\t\t// all the items with the saved reference ids have been removed from the list.\n\t\t\t\t// ok. try to restore the selection based on the offset that used to be selected.\n\t\t\t\t// this is the expected behavior after a item is deleted from a list (i.e. select\n\t\t\t\t// the line that immediately follows the deleted line).\n\t\t\t\tif( this.selectedItems.length === 0 )\n\t\t\t\t\tthis.setSelectedModel( this.savedSelection.offset, { by : \"offset\" } );\n\n\t\t\t\t// Trigger a selection changed if the previously selected items were not all found\n\t\t\t\tif (this.selectedItems.length !== this.savedSelection.items.length)\n\t\t\t\t{\n\t\t\t\t\tif( this._isBackboneCourierAvailable() ) {\n\t\t\t\t\t\tthis.spawn( \"selectionChanged\", {\n\t\t\t\t\t\t\tselectedModels : this.getSelectedModels(),\n\t\t\t\t\t\t\toldSelectedModels : []\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else this.trigger( \"selectionChanged\", this.getSelectedModels(), [] );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_addSelectedClassToSelectedItems : function( oldItemsIdsWithSelectedClass ) {\n\t\t\tif( _.isUndefined( oldItemsIdsWithSelectedClass ) ) oldItemsIdsWithSelectedClass = [];\n\n\t\t\t// oldItemsIdsWithSelectedClass is used for optimization purposes only. If this info is supplied then we\n\t\t\t// only have to add / remove the \"selected\" class from those items that \"selected\" state has changed.\n\n\t\t\tvar itemsIdsFromWhichSelectedClassNeedsToBeRemoved = oldItemsIdsWithSelectedClass;\n\t\t\titemsIdsFromWhichSelectedClassNeedsToBeRemoved = _.without( itemsIdsFromWhichSelectedClassNeedsToBeRemoved, this.selectedItems );\n\n\t\t\t_.each( itemsIdsFromWhichSelectedClassNeedsToBeRemoved, function( thisItemId ) {\n\t\t\t\tthis._getContainerEl().find( \"[data-model-cid=\" + thisItemId + \"]\" ).removeClass( \"selected\" );\n\n\t\t\t\tif( this._isRenderedAsList() ) {\n\t\t\t\t\tthis._getContainerEl().find( \"li[data-model-cid=\" + thisItemId + \"] > *\" ).removeClass( \"selected\" );\n\t\t\t\t}\n\t\t\t}, this );\n\n\t\t\tvar itemsIdsFromWhichSelectedClassNeedsToBeAdded = this.selectedItems;\n\t\t\titemsIdsFromWhichSelectedClassNeedsToBeAdded = _.without( itemsIdsFromWhichSelectedClassNeedsToBeAdded, oldItemsIdsWithSelectedClass );\n\n\t\t\t_.each( itemsIdsFromWhichSelectedClassNeedsToBeAdded, function( thisItemId ) {\n\t\t\t\tthis._getContainerEl().find( \"[data-model-cid=\" + thisItemId + \"]\" ).addClass( \"selected\" );\n\n\t\t\t\tif( this._isRenderedAsList() ) {\n\t\t\t\t\tthis._getContainerEl().find( \"li[data-model-cid=\" + thisItemId + \"] > *\" ).addClass( \"selected\" );\n\t\t\t\t}\n\t\t\t}, this );\n\t\t},\n\n\t\t_reorderCollectionBasedOnHTML : function() {\n\n\t\t\tvar _this = this;\n\n\t\t\tthis._getContainerEl().children().each( function() {\n\t\t\t\tvar thisModelCid = $( this ).attr( \"data-model-cid\" );\n\n\t\t\t\tif( thisModelCid )\n\t\t\t\t{\n\t\t\t\t\t// remove the current model and then add it back (at the end of the collection).\n\t\t\t\t\t// When we are done looping through all models, they will be in the correct order.\n\t\t\t\t\tvar thisModel = _this.collection.get( thisModelCid );\n\t\t\t\t\tif( thisModel )\n\t\t\t\t\t{\n\t\t\t\t\t\t_this.collection.remove( thisModel, { silent : true } );\n\t\t\t\t\t\t_this.collection.add( thisModel, { silent : true, sort : ! _this.collection.comparator } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tif( this._isBackboneCourierAvailable() ) this.spawn( \"reorder\" );\n\t\t\telse this.collection.trigger( \"reorder\" );\n\n\t\t\tif( this.collection.comparator ) this.collection.sort();\n\n\t\t},\n\n\t\t_getModelViewConstructor : function( thisModel ) {\n\t\t\treturn this.modelView || mDefaultModelViewConstructor;\n\t\t},\n\n\t\t_getModelViewOptions : function( thisModel ) {\n\t\t\tvar modelViewOptions = this.modelViewOptions;\n\t\t\tif( _.isFunction( modelViewOptions ) ) modelViewOptions = modelViewOptions( thisModel );\n\n\t\t\treturn _.extend( { model : thisModel }, modelViewOptions );\n\t\t},\n\n\t\t_createNewModelView : function( model, modelViewOptions ) {\n\t\t\tvar modelViewConstructor = this._getModelViewConstructor( model );\n\t\t\tif( _.isUndefined( modelViewConstructor ) ) throw \"Could not find modelView constructor for model\";\n\n\t\t\tvar newModelView = new( modelViewConstructor )( modelViewOptions );\n\t\t\tnewModelView.collectionListView = newModelView.collectionView = this; // collectionListView for legacy\n\n\t\t\treturn newModelView;\n\t\t},\n\n\t\t_wrapModelView : function( modelView ) {\n\t\t\tvar _this = this;\n\n\t\t\t// we use items client ids as opposed to real ids, since we may not have a representation\n\t\t\t// of these models on the server\n\t\t\tvar modelViewWrapperEl;\n\n\t\t\tif( this._isRenderedAsTable() ) {\n\t\t\t\t// if we are rendering the collection in a table, the template $el is a tr so we just need to set the data-model-cid\n\t\t\t\tmodelViewWrapperEl = modelView.$el;\n\t\t\t\tmodelView.$el.attr( \"data-model-cid\", modelView.model.cid );\n\t\t\t}\n\t\t\telse if( this._isRenderedAsList() ) {\n\t\t\t\t// if we are rendering the collection in a list, we need wrap each item in an (if its not already an )\n\t\t\t\t// and set the data-model-cid\n\t\t\t\tif( modelView.$el.is( \"li\" ) ) {\n\t\t\t\t\tmodelViewWrapperEl = modelView.$el;\n\t\t\t\t\tmodelView.$el.attr( \"data-model-cid\", modelView.model.cid );\n\t\t\t\t} else {\n\t\t\t\t\tmodelViewWrapperEl = modelView.$el.wrapAll( \" \" ).parent();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif( _.isFunction( this.sortableModelsFilter ) )\n\t\t\t\tif( ! this.sortableModelsFilter.call( _this, modelView.model ) ) {\n\t\t\t\t\tmodelViewWrapperEl.addClass( \"not-sortable\" );\n\t\t\t\t\tmodelView.$el.addClass( \"not-selectable\" );\n\t\t\t\t}\n\n\t\t\tif( _.isFunction( this.selectableModelsFilter ) )\n\t\t\t\tif( ! this.selectableModelsFilter.call( _this, modelView.model ) ) {\n\t\t\t\t\tmodelViewWrapperEl.addClass( \"not-selectable\" );\n\t\t\t\t\tmodelView.$el.addClass( \"not-selectable\" );\n\t\t\t\t}\n\n\t\t\treturn modelViewWrapperEl;\n\t\t},\n\n\t\t_convertStringsToInts : function( theArray ) {\n\t\t\treturn _.map( theArray, function( thisEl ) {\n\t\t\t\tif( ! _.isString( thisEl ) ) return thisEl;\n\t\t\t\tvar thisElAsNumber = parseInt( thisEl, 10 );\n\t\t\t\treturn( thisElAsNumber == thisEl ? thisElAsNumber : thisEl );\n\t\t\t} );\n\t\t},\n\n\t\t_containSameElements : function( arrayA, arrayB ) {\n\t\t\tif( arrayA.length != arrayB.length ) return false;\n\t\t\tvar intersectionSize = _.intersection( arrayA, arrayB ).length;\n\t\t\treturn intersectionSize == arrayA.length; // and must also equal arrayB.length, since arrayA.length == arrayB.length\n\t\t},\n\n\t\t_isRenderedAsTable : function() {\n\t\t\treturn this.$el.prop( \"tagName\" ).toLowerCase() === \"table\";\n\t\t},\n\n\t\t_isRenderedAsList : function() {\n\t\t\treturn ! this._isRenderedAsTable();\n\t\t},\n\n\t\t_modelViewHasWrapperLI : function( modelView ) {\n\t\t\treturn this._isRenderedAsList() && ! modelView.$el.is( \"li\" );\n\t\t},\n\n\t\t// Returns the wrapper HTML element for each visible modelView.\n\t\t// When rendering in a table context, the returned elements are the $el of each modelView.\n\t\t// When rendering in a list context,\n\t\t// If the $el of the modelView is an , the returned elements are the $el of each modelView.\n\t\t// Otherwise, the returned elements are the 's the collectionView wrapped around each modelView $el.\n\t\t_getVisibleItemEls : function() {\n\t\t\tvar itemElements = [];\n\t\t\titemElements = this._getContainerEl().find( \"> [data-model-cid]:not(.not-visible)\" );\n\n\t\t\treturn itemElements;\n\t\t},\n\n\t\t_charCodes : {\n\t\t\tupArrow : 38,\n\t\t\tdownArrow : 40\n\t\t},\n\n\t\t_isBackboneCourierAvailable : function() {\n\t\t\treturn !_.isUndefined( Backbone.Courier );\n\t\t},\n\n\t\t_setupSortable : function() {\n\t\t\tvar sortableOptions = _.extend( {\n\t\t\t\taxis : \"y\",\n\t\t\t\tdistance : 10,\n\t\t\t\tforcePlaceholderSize : true,\n\t\t\t\titems : this._isRenderedAsTable() ? \"> tbody > tr:not(.not-sortable)\" : \"> li:not(.not-sortable)\",\n\t\t\t\tstart : _.bind( this._sortStart, this ),\n\t\t\t\tchange : _.bind( this._sortChange, this ),\n\t\t\t\tstop : _.bind( this._sortStop, this ),\n\t\t\t\treceive : _.bind( this._receive, this ),\n\t\t\t\tover : _.bind( this._over, this )\n\t\t\t}, _.result( this, \"sortableOptions\" ) );\n\n\t\t\tthis.$el = this.$el.sortable( sortableOptions );\n\t\t\t//this.$el.sortable( \"enable\" ); // in case it was disabled previously\n\t\t},\n\n\t\t_sortStart : function( event, ui ) {\n\t\t\tvar modelBeingSorted = this.collection.get( ui.item.attr( \"data-model-cid\" ) );\n\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\tthis.spawn( \"sortStart\", { modelBeingSorted : modelBeingSorted } );\n\t\t\telse this.trigger( \"sortStart\", modelBeingSorted );\n\t\t},\n\n\t\t_sortChange : function( event, ui ) {\n\t\t\tvar modelBeingSorted = this.collection.get( ui.item.attr( \"data-model-cid\" ) );\n\n\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\tthis.spawn( \"sortChange\", { modelBeingSorted : modelBeingSorted } );\n\t\t\telse this.trigger( \"sortChange\", modelBeingSorted );\n\t\t},\n\n\t\t_sortStop : function( event, ui ) {\n\t\t\tvar modelBeingSorted = this.collection.get( ui.item.attr( \"data-model-cid\" ) );\n\t\t\tvar modelViewContainerEl = this._getContainerEl();\n\t\t\tvar newIndex = modelViewContainerEl.children().index( ui.item );\n\n\t\t\tif( newIndex == -1 && modelBeingSorted ) {\n\t\t\t\t// the element was removed from this list. can happen if this sortable is connected\n\t\t\t\t// to another sortable, and the item was dropped into the other sortable.\n\t\t\t\tthis.collection.remove( modelBeingSorted );\n\t\t\t}\n\n\t\t\tif( ! modelBeingSorted ) return; // something is wacky. we don't mess with this case, preferring to guarantee that we can always provide a reference to the model\n\n\t\t\tthis._reorderCollectionBasedOnHTML();\n\t\t\tthis.updateDependentControls();\n\n\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\tthis.spawn( \"sortStop\", { modelBeingSorted : modelBeingSorted, newIndex : newIndex } );\n\t\t\telse this.trigger( \"sortStop\", modelBeingSorted, newIndex );\n\t\t},\n\n\t\t_receive : function( event, ui ) {\n\n\t\t\tvar senderListEl = ui.sender;\n\t\t\tvar senderCollectionListView = senderListEl.data( \"view\" );\n\t\t\tif( ! senderCollectionListView || ! senderCollectionListView.collection ) return;\n\n\t\t\tvar newIndex = this._getContainerEl().children().index( ui.item );\n\t\t\tvar modelReceived = senderCollectionListView.collection.get( ui.item.attr( \"data-model-cid\" ) );\n\t\t\tsenderCollectionListView.collection.remove( modelReceived );\n\t\t\tthis.collection.add( modelReceived, { at : newIndex } );\n\t\t\tmodelReceived.collection = this.collection; // otherwise will not get properly set, since modelReceived.collection might already have a value.\n\t\t\tthis.setSelectedModel( modelReceived );\n\t\t},\n\n\t\t_over : function( event, ui ) {\n\t\t\t// when an item is being dragged into the sortable,\n\t\t\t// hide the empty list caption if it exists\n\t\t\tthis._getContainerEl().find( \"> var.empty-list-caption\" ).hide();\n\t\t},\n\n\t\t_onKeydown : function( event ) {\n\t\t\tif( ! this.processKeyEvents ) return true;\n\n\t\t\tvar trap = false;\n\n\t\t\tif( this.getSelectedModels( { by : \"offset\" } ).length == 1 )\n\t\t\t{\n\t\t\t\t// need to trap down and up arrows or else the browser\n\t\t\t\t// will end up scrolling a autoscroll div.\n\n\t\t\t\tvar currentOffset = this.getSelectedModel( { by : \"offset\" } );\n\t\t\t\tif( event.which === this._charCodes.upArrow && currentOffset !== 0 )\n\t\t\t\t{\n\t\t\t\t\tthis.setSelectedModel( currentOffset - 1, { by : \"offset\" } );\n\t\t\t\t\ttrap = true;\n\t\t\t\t}\n\t\t\t\telse if( event.which === this._charCodes.downArrow && currentOffset !== this.collection.length - 1 )\n\t\t\t\t{\n\t\t\t\t\tthis.setSelectedModel( currentOffset + 1, { by : \"offset\" } );\n\t\t\t\t\ttrap = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn ! trap;\n\t\t},\n\n\t\t_listItem_onMousedown : function( theEvent ) {\n\t\t\tvar clickedItemId = this._getClickedItemId( theEvent );\n\n\t\t\tif( clickedItemId ) {\n\t\t\t\tvar clickedModel = this.collection.get( clickedItemId );\n\t\t\t\tif( this._isBackboneCourierAvailable() ) {\n\t\t\t\t\tvar data = {\n\t\t\t\t\t\tclickedModel : clickedModel,\n\t\t\t\t\t\tmetaKeyPressed : theEvent.ctrlKey || theEvent.metaKey\n\t\t\t\t\t};\n\n\t\t\t\t\t_.each( [ 'preventDefault', 'stopPropagation', 'stopImmediatePropagation' ], function( thisMethod ) {\n\t\t\t\t\t\tdata[ thisMethod ] = function() {\n\t\t\t\t\t\t\ttheEvent[ thisMethod ]();\n\t\t\t\t\t\t};\n\t\t\t\t\t} );\n\n\t\t\t\t\tthis.spawn( \"click\", data );\n\t\t\t\t}\n\t\t\t\telse this.trigger( \"click\", clickedModel );\n\t\t\t}\n\n\t\t\tif( ! this.selectable || ! this.clickToSelect ) return;\n\n\t\t\tif( clickedItemId )\n\t\t\t{\n\t\t\t\t// Exit if an unselectable item was clicked\n\t\t\t\tif( _.isFunction( this.selectableModelsFilter ) &&\n\t\t\t\t\t! this.selectableModelsFilter.call( this, this.collection.get( clickedItemId ) ) )\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// a selectable list item was clicked\n\t\t\t\tif( this.selectMultiple && theEvent.shiftKey )\n\t\t\t\t{\n\t\t\t\t\tvar firstSelectedItemIndex = -1;\n\n\t\t\t\t\tif( this.selectedItems.length > 0 )\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.collection.find( function( thisItemModel ) {\n\t\t\t\t\t\t\tfirstSelectedItemIndex++;\n\n\t\t\t\t\t\t\t// exit when we find our first selected element\n\t\t\t\t\t\t\treturn _.contains( this.selectedItems, thisItemModel.cid );\n\t\t\t\t\t\t}, this );\n\t\t\t\t\t}\n\n\t\t\t\t\tvar clickedItemIndex = -1;\n\t\t\t\t\tthis.collection.find( function( thisItemModel ) {\n\t\t\t\t\t\tclickedItemIndex++;\n\n\t\t\t\t\t\t// exit when we find the clicked element\n\t\t\t\t\t\treturn thisItemModel.cid == clickedItemId;\n\t\t\t\t\t}, this );\n\n\t\t\t\t\tvar shiftKeyRootSelectedItemIndex = firstSelectedItemIndex == -1 ? clickedItemIndex : firstSelectedItemIndex;\n\t\t\t\t\tvar minSelectedItemIndex = Math.min( clickedItemIndex, shiftKeyRootSelectedItemIndex );\n\t\t\t\t\tvar maxSelectedItemIndex = Math.max( clickedItemIndex, shiftKeyRootSelectedItemIndex );\n\n\t\t\t\t\tvar newSelectedItems = [];\n\t\t\t\t\tfor( var thisIndex = minSelectedItemIndex; thisIndex <= maxSelectedItemIndex; thisIndex ++ )\n\t\t\t\t\t\tnewSelectedItems.push( this.collection.at( thisIndex ).cid );\n\t\t\t\t\tthis.setSelectedModels( newSelectedItems, { by : \"cid\" } );\n\n\t\t\t\t\t// shift clicking will usually highlight selectable text, which we do not want.\n\t\t\t\t\t// this is a cross browser (hopefully) snippet that deselects all text selection.\n\t\t\t\t\tif( document.selection && document.selection.empty )\n\t\t\t\t\t\tdocument.selection.empty();\n\t\t\t\t\telse if(window.getSelection) {\n\t\t\t\t\t\tvar sel = window.getSelection();\n\t\t\t\t\t\tif( sel && sel.removeAllRanges )\n\t\t\t\t\t\t\tsel.removeAllRanges();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( ( this.selectMultiple || _.contains( this.selectedItems, clickedItemId ) ) && ( this.clickToToggle || theEvent.metaKey || theEvent.ctrlKey ) )\n\t\t\t\t{\n\t\t\t\t\tif( _.contains( this.selectedItems, clickedItemId ) )\n\t\t\t\t\t\tthis.setSelectedModels( _.without( this.selectedItems, clickedItemId ), { by : \"cid\" } );\n\t\t\t\t\telse this.setSelectedModels( _.union( this.selectedItems, [clickedItemId] ), { by : \"cid\" } );\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tthis.setSelectedModels( [ clickedItemId ], { by : \"cid\" } );\n\t\t\t}\n\t\t\telse\n\t\t\t\t// the blank area of the list was clicked\n\t\t\t\tthis.setSelectedModels( [] );\n\n\t\t},\n\n\t\t_listItem_onDoubleClick : function( theEvent ) {\n\n\t\t\tvar clickedItemId = this._getClickedItemId( theEvent );\n\n\t\t\tif( clickedItemId )\n\t\t\t{\n\t\t\t\tvar clickedModel = this.collection.get( clickedItemId );\n\n\t\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\t\tthis.spawn( \"doubleClick\", { clickedModel : clickedModel, metaKeyPressed : theEvent.ctrlKey || theEvent.metaKey } );\n\t\t\t\telse this.trigger( \"doubleClick\", clickedModel );\n\t\t\t}\n\t\t},\n\n\t\t_listBackground_onClick : function( theEvent ) {\n\t\t\tif( ! this.selectable || ! this.clickToSelect ) return;\n\t\t\tif( ! $( theEvent.target ).is( \".collection-view\" ) ) return;\n\n\t\t\tthis.setSelectedModels( [] );\n\t\t}\n\n\t}, {\n\t\tsetDefaultModelViewConstructor : function( theConstructor ) {\n\t\t\tmDefaultModelViewConstructor = theConstructor;\n\t\t}\n\t});\n\n\t/*\n\t* Backbone.ViewOptions, v0.2.4\n\t* Copyright (c)2014 Rotunda Software, LLC.\n\t* Distributed under MIT license\n\t* http://github.com/rotundasoftware/backbone.viewOptions\n\t*/\n\n\tBackbone.ViewOptions = {};\n\n\tBackbone.ViewOptions.add = function( view, optionsDeclarationsProperty ) {\n\t\tif( _.isUndefined( optionsDeclarationsProperty ) ) optionsDeclarationsProperty = \"options\";\n\n\t\t// ****************** Public methods added to view ******************\n\n\t\tview.setOptions = function( options ) {\n\t\t\tvar _this = this;\n\t\t\tvar optionsThatWereChanged = {};\n\t\t\tvar optionsThatWereChangedPreviousValues = {};\n\n\t\t\tvar optionDeclarations = _.result( this, optionsDeclarationsProperty );\n\n\t\t\tif( ! _.isUndefined( optionDeclarations ) ) {\n\t\t\t\tvar normalizedOptionDeclarations = _normalizeOptionDeclarations( optionDeclarations );\n\n\t\t\t\t_.each( normalizedOptionDeclarations, function( thisOptionProperties, thisOptionName ) {\n\t\t\t\t\tvar thisOptionRequired = thisOptionProperties.required;\n\t\t\t\t\tvar thisOptionDefaultValue = thisOptionProperties.defaultValue;\n\n\t\t\t\t\tif( thisOptionRequired ) {\n\t\t\t\t\t\t// note we do not throw an error if a required option is not supplied, but it is\n\t\t\t\t\t\t// found on the object itself (due to a prior call of view.setOptions, most likely)\n\n\t\t\t\t\t\tif( ( ! options || ! _.contains( _.keys( options ), thisOptionName ) ) && _.isUndefined( _this[ thisOptionName ] ) )\n\t\t\t\t\t\t\tthrow new Error( \"Required option \\\"\" + thisOptionName + \"\\\" was not supplied.\" );\n\n\t\t\t\t\t\tif( options && _.contains( _.keys( options ), thisOptionName ) && _.isUndefined( options[ thisOptionName ] ) )\n\t\t\t\t\t\t\tthrow new Error( \"Required option \\\"\" + thisOptionName + \"\\\" can not be set to undefined.\" );\n\t\t\t\t\t}\n\n\t\t\t\t\t// attach the supplied value of this option, or the appropriate default value, to the view object\n\t\t\t\t\tif( options && thisOptionName in options && ! _.isUndefined( options[ thisOptionName ] ) ) {\n\t\t\t\t\t\tvar oldValue = _this[ thisOptionName ];\n\t\t\t\t\t\tvar newValue = options[ thisOptionName ];\n\t\t\t\t\t\t// if this option already exists on the view, and the new value is different,\n\t\t\t\t\t\t// make a note that we will be changing it\n\t\t\t\t\t\tif( ! _.isUndefined( oldValue ) && oldValue !== newValue ) {\n\t\t\t\t\t\t\toptionsThatWereChangedPreviousValues[ thisOptionName ] = oldValue;\n\t\t\t\t\t\t\toptionsThatWereChanged[ thisOptionName ] = newValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_this[ thisOptionName ] = newValue;\n\t\t\t\t\t\t// note we do NOT delete the option off the options object here so that\n\t\t\t\t\t\t// multiple views can be passed the same options object without issue.\n\t\t\t\t\t}\n\t\t\t\t\telse if( _.isUndefined( _this[ thisOptionName ] ) ) {\n\t\t\t\t\t\t// note defaults do not write over any existing properties on the view itself.\n\t\t\t\t\t\t_this[ thisOptionName ] = thisOptionDefaultValue;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif( _.keys( optionsThatWereChanged ).length > 0 ) {\n\t\t\t\tif( _.isFunction( _this.onOptionsChanged ) )\n\t\t\t\t\t_this.onOptionsChanged( optionsThatWereChanged, optionsThatWereChangedPreviousValues );\n\t\t\t\telse if( _.isFunction( _this._onOptionsChanged ) )\n\t\t\t\t\t_this._onOptionsChanged( optionsThatWereChanged, optionsThatWereChangedPreviousValues );\n\t\t\t}\n\t\t};\n\n\t\tview.getOptions = function() {\n\t\t\tvar optionDeclarations = _.result( this, optionsDeclarationsProperty );\n\t\t\tif( _.isUndefined( optionDeclarations ) ) return {};\n\n\t\t\tvar normalizedOptionDeclarations = _normalizeOptionDeclarations( optionDeclarations );\n\t\t\tvar optionsNames = _.keys( normalizedOptionDeclarations );\n\n\t\t\treturn _.pick( this, optionsNames );\n\t\t};\n\t};\n\n\t// ****************** Private Utility Functions ******************\n\n\tfunction _normalizeOptionDeclarations( optionDeclarations ) {\n\t\t// convert our short-hand option syntax (with exclamation marks, etc.)\n\t\t// to a simple array of standard option declaration objects.\n\n\t\tvar normalizedOptionDeclarations = {};\n\n\t\tif( ! _.isArray( optionDeclarations ) ) throw new Error( \"Option declarations must be an array.\" );\n\n\t\t_.each( optionDeclarations, function( thisOptionDeclaration ) {\n\t\t\tvar thisOptionName, thisOptionRequired, thisOptionDefaultValue;\n\n\t\t\tthisOptionRequired = false;\n\t\t\tthisOptionDefaultValue = undefined;\n\n\t\t\tif( _.isString( thisOptionDeclaration ) )\n\t\t\t\tthisOptionName = thisOptionDeclaration;\n\t\t\telse if( _.isObject( thisOptionDeclaration ) ) {\n\t\t\t\tthisOptionName = _.first( _.keys( thisOptionDeclaration ) );\n\t\t\t\tif( _.isFunction( thisOptionDeclaration[ thisOptionName ] ) )\n\t\t\t\t\tthisOptionDefaultValue = thisOptionDeclaration[ thisOptionName ];\n\t\t\t\telse\n\t\t\t\t\tthisOptionDefaultValue = _.clone( thisOptionDeclaration[ thisOptionName ] );\n\t\t\t}\n\t\t\telse throw new Error( \"Each element in the option declarations array must be either a string or an object.\" );\n\n\t\t\tif( thisOptionName[ thisOptionName.length - 1 ] === \"!\" ) {\n\t\t\t\tthisOptionRequired = true;\n\t\t\t\tthisOptionName = thisOptionName.slice( 0, thisOptionName.length - 1 );\n\t\t\t}\n\n\t\t\tnormalizedOptionDeclarations[ thisOptionName ] = normalizedOptionDeclarations[ thisOptionName ] || {};\n\t\t\tnormalizedOptionDeclarations[ thisOptionName ].required = thisOptionRequired;\n\t\t\tif( ! _.isUndefined( thisOptionDefaultValue ) ) normalizedOptionDeclarations[ thisOptionName ].defaultValue = thisOptionDefaultValue;\n\t\t} );\n\n\t\treturn normalizedOptionDeclarations;\n\t}\n\n\n\t// Backbone.BabySitter\n\t// -------------------\n\t// v0.0.6\n\t//\n\t// Copyright (c)2013 Derick Bailey, Muted Solutions, LLC.\n\t// Distributed under MIT license\n\t//\n\t// http://github.com/babysitterjs/backbone.babysitter\n\n\t// Backbone.ChildViewContainer\n\t// ---------------------------\n\t//\n\t// Provide a container to store, retrieve and\n\t// shut down child views.\n\n\tChildViewContainer = (function(Backbone, _){\n\n\t\t// Container Constructor\n\t\t// ---------------------\n\n\t\tvar Container = function(views){\n\t\t\tthis._views = {};\n\t\t\tthis._indexByModel = {};\n\t\t\tthis._indexByCustom = {};\n\t\t\tthis._updateLength();\n\n\t\t\t_.each(views, this.add, this);\n\t\t};\n\n\t\t// Container Methods\n\t\t// -----------------\n\n\t\t_.extend(Container.prototype, {\n\n\t\t\t// Add a view to this container. Stores the view\n\t\t\t// by `cid` and makes it searchable by the model\n\t\t\t// cid (and model itself). Optionally specify\n\t\t\t// a custom key to store an retrieve the view.\n\t\t\tadd: function(view, customIndex){\n\t\t\t\tvar viewCid = view.cid;\n\n\t\t\t\t// store the view\n\t\t\t\tthis._views[viewCid] = view;\n\n\t\t\t\t// index it by model\n\t\t\t\tif (view.model){\n\t\t\t\t\tthis._indexByModel[view.model.cid] = viewCid;\n\t\t\t\t}\n\n\t\t\t\t// index by custom\n\t\t\t\tif (customIndex){\n\t\t\t\t\tthis._indexByCustom[customIndex] = viewCid;\n\t\t\t\t}\n\n\t\t\t\tthis._updateLength();\n\t\t\t},\n\n\t\t\t// Find a view by the model that was attached to\n\t\t\t// it. Uses the model's `cid` to find it.\n\t\t\tfindByModel: function(model){\n\t\t\t\treturn this.findByModelCid(model.cid);\n\t\t\t},\n\n\t\t\t// Find a view by the `cid` of the model that was attached to\n\t\t\t// it. Uses the model's `cid` to find the view `cid` and\n\t\t\t// retrieve the view using it.\n\t\t\tfindByModelCid: function(modelCid){\n\t\t\t\tvar viewCid = this._indexByModel[modelCid];\n\t\t\t\treturn this.findByCid(viewCid);\n\t\t\t},\n\n\t\t\t// Find a view by a custom indexer.\n\t\t\tfindByCustom: function(index){\n\t\t\t\tvar viewCid = this._indexByCustom[index];\n\t\t\t\treturn this.findByCid(viewCid);\n\t\t\t},\n\n\t\t\t// Find by index. This is not guaranteed to be a\n\t\t\t// stable index.\n\t\t\tfindByIndex: function(index){\n\t\t\t\treturn _.values(this._views)[index];\n\t\t\t},\n\n\t\t\t// retrieve a view by it's `cid` directly\n\t\t\tfindByCid: function(cid){\n\t\t\t\treturn this._views[cid];\n\t\t\t},\n\n\t\t\tfindIndexByCid : function( cid ) {\n\t\t\t\tvar index = -1;\n\t\t\t\tvar view = _.find( this._views, function ( view ) {\n\t\t\t\t\tindex++;\n\t\t\t\t\tif( view.model.cid == cid )\n\t\t\t\t\t\treturn view;\n\t\t\t\t} );\n\t\t\t\treturn ( view ) ? index : -1;\n\t\t\t},\n\n\t\t\t// Remove a view\n\t\t\tremove: function(view){\n\t\t\t\tvar viewCid = view.cid;\n\n\t\t\t\t// delete model index\n\t\t\t\tif (view.model){\n\t\t\t\t\tdelete this._indexByModel[view.model.cid];\n\t\t\t\t}\n\n\t\t\t\t// delete custom index\n\t\t\t\t_.any(this._indexByCustom, function(cid, key) {\n\t\t\t\t\tif (cid === viewCid) {\n\t\t\t\t\t\tdelete this._indexByCustom[key];\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\n\t\t\t\t// remove the view from the container\n\t\t\t\tdelete this._views[viewCid];\n\n\t\t\t\t// update the length\n\t\t\t\tthis._updateLength();\n\t\t\t},\n\n\t\t\t// Call a method on every view in the container,\n\t\t\t// passing parameters to the call method one at a\n\t\t\t// time, like `function.call`.\n\t\t\tcall: function(method){\n\t\t\t\tthis.apply(method, _.tail(arguments));\n\t\t\t},\n\n\t\t\t// Apply a method on every view in the container,\n\t\t\t// passing parameters to the call method one at a\n\t\t\t// time, like `function.apply`.\n\t\t\tapply: function(method, args){\n\t\t\t\t_.each(this._views, function(view){\n\t\t\t\t\tif (_.isFunction(view[method])){\n\t\t\t\t\t\tview[method].apply(view, args || []);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t// Update the `.length` attribute on this container\n\t\t\t_updateLength: function(){\n\t\t\t\tthis.length = _.size(this._views);\n\t\t\t}\n\t\t});\n\n\t\t// Borrowing this code from Backbone.Collection:\n\t\t// http://backbonejs.org/docs/backbone.html#section-106\n\t\t//\n\t\t// Mix in methods from Underscore, for iteration, and other\n\t\t// collection related features.\n\t\tvar methods = ['forEach', 'each', 'map', 'find', 'detect', 'filter',\n\t\t\t 'select', 'reject', 'every', 'all', 'some', 'any', 'include',\n\t\t\t 'contains', 'invoke', 'toArray', 'first', 'initial', 'rest',\n\t\t\t 'last', 'without', 'isEmpty', 'pluck'];\n\n\t\t_.each(methods, function(method) {\n\t\t\tContainer.prototype[method] = function() {\n\t\t\t\tvar views = _.values(this._views);\n\t\t\t\tvar args = [views].concat(_.toArray(arguments));\n\t\t\t\treturn _[method].apply(_, args);\n\t\t\t};\n\t\t});\n\n\t\t// return the public API\n\t\treturn Container;\n\t})(Backbone, _);\n\n\treturn Backbone.CollectionView;\n} ) );\n\n","/**\n * backbone.trackit - 0.1.0\n *\n * The MIT License\n * Copyright (c) 2013 The New York Times, CMS Group, Matthew DeLambo \n *\n * @since 7.4.0 Added support for deep models (attributes that are objects themselves).\n */\n(function() {\n\n\t// Unsaved Record Keeping\n\t// ----------------------\n\n\t// Collection of all models in an app that have unsaved changes.\n\tvar unsavedModels = [];\n\n\t// If the given model has unsaved changes then add it to\n\t// the `unsavedModels` collection, otherwise remove it.\n\tvar updateUnsavedModels = function(model) {\n\t\tif (!_.isEmpty(model._unsavedChanges)) {\n\t\t\tif (!_.findWhere(unsavedModels, {cid:model.cid})) unsavedModels.push(model);\n\t\t} else {\n\t\t\tunsavedModels = _.filter(unsavedModels, function(m) { return model.cid != m.cid; });\n\t\t}\n\t};\n\n\t// Unload Handlers\n\t// ---------------\n\n\t// Helper which returns a prompt message for an unload handler.\n\t// Uses the given function name (one of the callback names\n\t// from the `model.unsaved` configuration hash) to evaluate\n\t// whether a prompt is needed/returned.\n\tvar getPrompt = function(fnName) {\n\t\tvar prompt, args = _.rest(arguments);\n\t\t// Evaluate and return a boolean result. The given `fn` may be a\n\t\t// boolean value, a function, or the name of a function on the model.\n\t\tvar evaluateModelFn = function(model, fn) {\n\t\t\tif (_.isBoolean(fn)) return fn;\n\t\t\treturn (_.isString(fn) ? model[fn] : fn).apply(model, args);\n\t\t};\n\t\t_.each(unsavedModels, function(model) {\n\t\t\tif (!prompt && evaluateModelFn(model, model._unsavedConfig[fnName]))\n\t\t\t\tprompt = model._unsavedConfig.prompt;\n\t\t});\n\t\treturn prompt;\n\t};\n\n\t// Wrap Backbone.History.navigate so that in-app routing\n\t// (`router.navigate('/path')`) can be intercepted with a\n\t// confirmation if there are any unsaved models.\n\tBackbone.History.prototype.navigate = _.wrap(Backbone.History.prototype.navigate, function(oldNav, fragment, options) {\n\t\tvar prompt = getPrompt('unloadRouterPrompt', fragment, options);\n\t\tif (prompt) {\n\t\t\tif (confirm(prompt + ' \\n\\nAre you sure you want to leave this page?')) {\n\t\t\t\toldNav.call(this, fragment, options);\n\t\t\t}\n\t\t} else {\n\t\t\toldNav.call(this, fragment, options);\n\t\t}\n\t});\n\n\t// Create a browser unload handler which is triggered\n\t// on the refresh, back, or forward button.\n\twindow.onbeforeunload = function(e) {\n\t\treturn getPrompt('unloadWindowPrompt', e);\n\t};\n\n\t// Backbone.Model API\n\t// ------------------\n\n\t_.extend(Backbone.Model.prototype, {\n\n\t\tunsaved: {},\n\t\t_trackingChanges: false,\n\t\t_originalAttrs: {},\n\t\t_unsavedChanges: {},\n\n\t\t// Opt in to tracking attribute changes\n\t\t// between saves.\n\t\tstartTracking: function() {\n\t\t\tthis._unsavedConfig = _.extend({}, {\n\t\t\t\tprompt: 'You have unsaved changes!',\n\t\t\t\tunloadRouterPrompt: false,\n\t\t\t\tunloadWindowPrompt: false\n\t\t\t}, this.unsaved || {});\n\t\t\tthis._trackingChanges = true;\n\t\t\tthis._resetTracking();\n\t\t\tthis._triggerUnsavedChanges();\n\t\t\treturn this;\n\t\t},\n\n\t\t// Resets the default tracking values\n\t\t// and stops tracking attribute changes.\n\t\tstopTracking: function() {\n\t\t\tthis._trackingChanges = false;\n\t\t\tthis._originalAttrs = {};\n\t\t\tthis._unsavedChanges = {};\n\t\t\tthis._triggerUnsavedChanges();\n\t\t\treturn this;\n\t\t},\n\n\t\t// Gets rid of accrued changes and\n\t\t// resets state.\n\t\trestartTracking: function() {\n\t\t\tthis._resetTracking();\n\t\t\tthis._triggerUnsavedChanges();\n\t\t\treturn this;\n\t\t},\n\n\t\t// Restores this model's attributes to\n\t\t// their original values since tracking\n\t\t// started, the last save, or last restart.\n\t\tresetAttributes: function() {\n\t\t\tif (!this._trackingChanges) return;\n\t\t\tthis.attributes = this._originalAttrs;\n\t\t\tthis._resetTracking();\n\t\t\tthis._triggerUnsavedChanges();\n\t\t\treturn this;\n\t\t},\n\n\t\t// Symmetric to Backbone's `model.changedAttributes()`,\n\t\t// except that this returns a hash of the model's attributes that\n\t\t// have changed since the last save, or `false` if there are none.\n\t\t// Like `changedAttributes`, an external attributes hash can be\n\t\t// passed in, returning the attributes in that hash which differ\n\t\t// from the model.\n\t\tunsavedAttributes: function(attrs) {\n\t\t\tif (!attrs) return _.isEmpty(this._unsavedChanges) ? false : _.clone(this._unsavedChanges);\n\t\t\tvar val, changed = false, old = this._unsavedChanges;\n\t\t\tfor (var attr in attrs) {\n\t\t\t\tif (_.isEqual(old[attr], (val = attrs[attr]))) continue;\n\t\t\t\t(changed || (changed = {}))[attr] = val;\n\t\t\t}\n\t\t\treturn changed;\n\t\t},\n\n\t\t/**\n\t\t * Reset tracking.\n\t\t *\n\t\t * @since 7.4.0 Added support for deep models (attributes that are objects themselves),\n\t\t * by using `_.deepClone` in place of `_.clone`.\n\t\t */\n\t\t_resetTracking: function() {\n\t\t\tthis._originalAttrs = _.deepClone(this.attributes);\n\t\t\tthis._unsavedChanges = {};\n\t\t},\n\n\t\t// Trigger an `unsavedChanges` event on this model,\n\t\t// supplying the result of whether there are unsaved\n\t\t// changes and a changed attributes hash.\n\t\t_triggerUnsavedChanges: function() {\n\t\t\tthis.trigger('unsavedChanges', !_.isEmpty(this._unsavedChanges), _.clone(this._unsavedChanges));\n\t\t\tif (this.unsaved) updateUnsavedModels(this);\n\t\t}\n\t});\n\n\t// Wrap `model.set()` and update the internal\n\t// unsaved changes record keeping.\n\tBackbone.Model.prototype.set = _.wrap(Backbone.Model.prototype.set, function(oldSet, key, val, options) {\n\t\tvar attrs, ret;\n\t\tif (key == null) return this;\n\t\t// Handle both `\"key\", value` and `{key: value}` -style arguments.\n\t\tif (typeof key === 'object') {\n\t\t\tattrs = key;\n\t\t\toptions = val;\n\t\t} else {\n\t\t\t(attrs = {})[key] = val;\n\t\t}\n\t\toptions || (options = {});\n\n\t\t// Delegate to Backbone's set.\n\t\tret = oldSet.call(this, attrs, options);\n\n\t\tif (this._trackingChanges && !options.silent) {\n\t\t\t_.each(attrs, _.bind(function(val, key) {\n\t\t\t\tif (_.isEqual(this._originalAttrs[key], val))\n\t\t\t\t\tdelete this._unsavedChanges[key];\n\t\t\t\telse\n\t\t\t\t\tthis._unsavedChanges[key] = val;\n\t\t\t}, this));\n\t\t\tthis._triggerUnsavedChanges();\n\t\t}\n\t\treturn ret;\n\t});\n\n\t// Intercept `model.save()` and reset tracking/unsaved\n\t// changes if it was successful.\n\tBackbone.sync = _.wrap(Backbone.sync, function(oldSync, method, model, options) {\n\t\toptions || (options = {});\n\n\t\tif (method == 'update') {\n\t\t\toptions.success = _.wrap(options.success, _.bind(function(oldSuccess, data, textStatus, jqXHR) {\n\t\t\t\tvar ret;\n\t\t\t\tif (oldSuccess) ret = oldSuccess.call(this, data, textStatus, jqXHR);\n\t\t\t\tif (model._trackingChanges) {\n\t\t\t\t\tmodel._resetTracking();\n\t\t\t\t\tmodel._triggerUnsavedChanges();\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}, this));\n\t\t}\n\t\treturn oldSync(method, model, options);\n\t});\n\n})();\n\ndefine(\"vendor/backbone.trackit\", function(){});\n\n","/**\n * Image object model for use in various models for the 'image' attribute\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Models/Image',[], function() {\n\n\treturn Backbone.Model.extend( {\n\n\t\tdefaults: {\n\t\t\tenabled: 'no',\n\t\t\tid: '',\n\t\t\tsize: 'full',\n\t\t\tsrc: '',\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tthis.startTracking();\n\t\t},\n\n\t} );\n} );\n\n","/**\n * Model relationships mixin\n *\n * @since 3.16.0\n * @version 3.16.11\n */\ndefine( 'Models/_Relationships',[], function() {\n\n\treturn {\n\n\t\t/**\n\t\t * Default relationship settings object\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\trelationship_defaults: {\n\t\t\tparent: {},\n\t\t\tchildren: {},\n\t\t},\n\n\t\t/**\n\t\t * Relationship settings object\n\t\t * Should be overridden in the model\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\trelationships: {},\n\n\t\t/**\n\t\t * Initialize all parent and child relationships\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinit_relationships: function( options ) {\n\n\t\t\tvar rels = this.get_relationships();\n\n\t\t\t// initialize parent relationships\n\t\t\t// useful when adding a model to ensure parent is initialized\n\t\t\tif ( rels.parent && options && options.parent ) {\n\t\t\t\tthis.set_parent( options.parent );\n\t\t\t}\n\n\t\t\t// initialize all children relationships\n\t\t\t_.each( rels.children, function( child_data, child_key ) {\n\n\t\t\t\tif ( ! child_data.conditional || true === child_data.conditional( this ) ) {\n\n\t\t\t\t\tvar child_val = this.get( child_key ),\n\t\t\t\t\t\tchild;\n\n\t\t\t\t\tif ( child_data.lookup ) {\n\t\t\t\t\t\tchild = child_data.lookup( child_val );\n\t\t\t\t\t} else if ( 'model' === child_data.type ) {\n\t\t\t\t\t\tchild = window.llms_builder.construct.get_model( child_data.class, child_val );\n\t\t\t\t\t} else if ( 'collection' === child_data.type ) {\n\t\t\t\t\t\tchild = window.llms_builder.construct.get_collection( child_data.class, child_val );\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.set( child_key, child );\n\n\t\t\t\t\t// if the child defines a parent, save a reference to the parent on the child\n\t\t\t\t\tif ( 'model' === child_data.type ) {\n\t\t\t\t\t\tthis._maybe_set_parent_reference( child );\n\n\t\t\t\t\t\t// save directly to each model in the collection\n\t\t\t\t\t} else if ( 'collection' === child_data.type ) {\n\n\t\t\t\t\t\tchild.parent = this;\n\t\t\t\t\t\tchild.each( function( child_model ) {\n\n\t\t\t\t\t\t\tthis._maybe_set_parent_reference( child_model );\n\n\t\t\t\t\t\t}, this );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the property names for all children of the model\n\t\t *\n\t\t * @return array\n\t\t * @since 3.16.11\n\t\t * @version 3.16.11\n\t\t */\n\t\tget_child_props: function() {\n\n\t\t\tvar props = [];\n\n\t\t\t_.each( this.get_relationships().children, function( data, key ) {\n\n\t\t\t\tif ( ! data.conditional || true === data.conditional( this ) ) {\n\t\t\t\t\tprops.push( key );\n\t\t\t\t}\n\n\t\t\t}, this );\n\n\t\t\treturn props;\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the model's parent (if set)\n\t\t *\n\t\t * @return obj|false\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_parent: function() {\n\n\t\t\tvar rels = this.get_relationships();\n\n\t\t\tif ( rels.parent ) {\n\t\t\t\treturn rels.parent.reference;\n\t\t\t}\n\n\t\t\treturn false;\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve relationships for the model\n\t\t * Extends with defaults\n\t\t *\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_relationships: function() {\n\n\t\t\treturn $.extend( true, this.relationships, this.relationship_defaults );\n\n\t\t},\n\n\t\t/**\n\t\t * Set the parent reference for the given model\n\t\t *\n\t\t * @param obj obj parent model obj\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tset_parent: function( obj ) {\n\t\t\tthis.relationships.parent.reference = obj;\n\t\t},\n\n\t\t/**\n\t\t * Set up the parent relationships for qualifying children during relationship initialization\n\t\t *\n\t\t * @param obj model child model\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_maybe_set_parent_reference: function( model ) {\n\n\t\t\tif ( ! model || ! model.get_relationships ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar rels = model.get_relationships();\n\t\t\tif ( rels.parent && rels.parent.model === this.get( 'type' ) ) {\n\t\t\t\tmodel.set_parent( this );\n\t\t\t}\n\n\t\t},\n\n\t};\n\n} );\n\n","/**\n * Quiz Question Choice\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Models/QuestionChoice',[ 'Models/Image', 'Models/_Relationships' ], function( Image, Relationships ) {\n\n\treturn Backbone.Model.extend( _.defaults( {\n\n\t\t/**\n\t\t * Model relationships\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\trelationships: {\n\t\t\tparent: {\n\t\t\t\tmodel: 'llms_question',\n\t\t\t\ttype: 'model',\n\t\t\t},\n\t\t\tchildren: {\n\t\t\t\tchoice: {\n\t\t\t\t\tconditional: function( model ) {\n\t\t\t\t\t\treturn ( 'image' === model.get( 'choice_type' ) );\n\t\t\t\t\t},\n\t\t\t\t\tclass: 'Image',\n\t\t\t\t\tmodel: 'image',\n\t\t\t\t\ttype: 'model',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Model defaults\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tdefaults: function() {\n\t\t\treturn {\n\t\t\t\tid: _.uniqueId( 'temp_' ),\n\t\t\t\tchoice: '',\n\t\t\t\tchoice_type: 'text',\n\t\t\t\tcorrect: false,\n\t\t\t\tmarker: 'A',\n\t\t\t\tquestion_id: '',\n\t\t\t\ttype: 'choice',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Initializer\n\t\t *\n\t\t * @param obj data object of model attributes\n\t\t * @param obj options additional options\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function( data, options ) {\n\n\t\t\tthis.startTracking();\n\t\t\tthis.init_relationships( options );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the choice's parent question\n\t\t *\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_parent: function() {\n\t\t\treturn this.collection.parent;\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the ID used when trashing the model\n\t\t *\n\t\t * @return string\n\t\t * @since 3.17.1\n\t\t * @version 3.17.1\n\t\t */\n\t\tget_trash_id: function() {\n\t\t\treturn this.get( 'question_id' ) + ':' + this.get( 'id' );\n\t\t},\n\n\t\t/**\n\t\t * Determine if \"selection\" is enabled for the question type\n\t\t * Choice type questions are selectable by reorder type questions are not but still use choices\n\t\t *\n\t\t * @return {Boolean}\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tis_selectable: function() {\n\t\t\treturn this.get_parent().get( 'question_type' ).get_choice_selectable();\n\t\t},\n\n\t}, Relationships ) );\n\n} );\n\n","/**\n * Question Choice Collection\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Collections/QuestionChoices',[ 'Models/QuestionChoice' ], function( model ) {\n\n\treturn Backbone.Collection.extend( {\n\n\t\t/**\n\t\t * Model for collection items\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\tmodel: model,\n\n\t\tinitialize: function() {\n\n\t\t\t// reorder called by QuestionList view when sortable drops occur\n\t\t\tthis.on( 'reorder', this.update_order );\n\n\t\t\t// when a choice is added or removed, update order\n\t\t\tthis.on( 'add', this.update_order );\n\t\t\tthis.on( 'remove', this.update_order );\n\n\t\t\t// when a choice is added or remove, ensure min/max correct answers exist\n\t\t\tthis.on( 'add', this.update_correct );\n\t\t\tthis.on( 'remove', this.update_correct );\n\n\t\t\t// when a choice is toggled, ensure min/max correct exist\n\t\t\tthis.on( 'correct-update', this.update_correct );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the number of correct choices in the collection\n\t\t *\n\t\t * @return int\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tcount_correct: function() {\n\n\t\t\treturn _.size( this.get_correct() );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the collection reduced to only correct choices\n\t\t *\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_correct: function() {\n\t\t\treturn this.filter( function( choice ) {\n\t\t\t\treturn choice.get( 'correct' );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Ensure min/max correct choices exist in the collection based on the question's settings\n\t\t *\n\t\t * @param obj choice model of the choice that was toggled\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_correct: function( choice ) {\n\n\t\t\tif ( ! this.parent.get( 'question_type' ).get_choice_selectable() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar siblings = this.without( choice ), // exclude the toggled choice from loops\n\t\t\t\tquestion = this.parent;\n\n\t\t\t// if multiple choices aren't enabled turn all other choices to incorrect\n\t\t\tif ( 'no' === question.get( 'multi_choices' ) ) {\n\t\t\t\t_.each( siblings, function( model ) {\n\t\t\t\t\tmodel.set( 'correct', false );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// if we don't have a single correct answer & the question has points, set one\n\t\t\t// allows users to create quizzes / questions with no points and therefore no correct answers are allowed\n\t\t\tif ( 0 === this.count_correct() && question.get( 'points' ) > 0 ) {\n\t\t\t\tvar models = 1 === this.size() ? this.models : siblings;\n\t\t\t\t_.first( models ).set( 'correct', true );\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Update the marker attr of each choice in the list to reflect the order of the collection\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_order: function() {\n\n\t\t\tvar self = this,\n\t\t\t\tquestion = this.parent;\n\n\t\t\tthis.each( function( choice ) {\n\t\t\t\tchoice.set( 'marker', question.get( 'question_type' ).get_choice_markers()[ self.indexOf( choice ) ] );\n\t\t\t} );\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Quiz Question Type\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Models/QuestionType',[], function() {\n\n\treturn Backbone.Model.extend( {\n\n\t\t/**\n\t\t * Get model default attributes\n\t\t *\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tdefaults: function() {\n\t\t\treturn {\n\t\t\t\tchoices: false,\n\t\t\t\tclarifications: true,\n\t\t\t\tdefault_choices: [],\n\t\t\t\tdescription: true,\n\t\t\t\ticon: 'question',\n\t\t\t\tid: 'generic',\n\t\t\t\timage: true,\n\t\t\t\tkeywords: [],\n\t\t\t\tname: 'Generic',\n\t\t\t\tplaceholder: '',\n\t\t\t\tpoints: true,\n\t\t\t\tvideo: true,\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Retrieve an array of keywords for the question type\n\t\t * Used for filtering questions by search term in the quiz builder\n\t\t *\n\t\t * @return array\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_keywords: function() {\n\n\t\t\tvar name = this.get( 'name' ),\n\t\t\t\twords = [ name ];\n\n\t\t\treturn words.concat( this.get( 'keywords' ) ).concat( name.split( ' ' ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Get marker array for the question choices\n\t\t *\n\t\t * @return array\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_choice_markers: function() {\n\n\t\t\treturn this._get_choice_option( 'markers' );\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if the question's choices are selectable\n\t\t *\n\t\t * @return bool\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_choice_selectable: function() {\n\n\t\t\treturn this._get_choice_option( 'selectable' );\n\n\t\t},\n\n\t\t/**\n\t\t * Get the choice type (text,image)\n\t\t *\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_choice_type: function() {\n\n\t\t\treturn this._get_choice_option( 'type' );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve defined min. choices\n\t\t *\n\t\t * @return int\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_min_choices: function() {\n\n\t\t\treturn this._get_choice_option( 'min' );\n\n\t\t},\n\n\t\t/**\n\t\t * Get type-defined max choices\n\t\t *\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_max_choices: function() {\n\n\t\t\treturn this._get_choice_option( 'max' );\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if multi-choice selection is enabled\n\t\t *\n\t\t * @return bool\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_multi_choices: function() {\n\n\t\t\tvar choices = this.get( 'choices' );\n\n\t\t\tif ( ! choices ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this._get_choice_option( 'multi' );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve data from the type's \"choices\" attribute\n\t\t * Allows quick handling of types with no choice definitions w/o additional checks\n\t\t *\n\t\t * @param string option name of the choice option to retrieve\n\t\t * @return mixed\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_get_choice_option: function( option ) {\n\n\t\t\tvar choices = this.get( 'choices' );\n\n\t\t\tif ( ! choices || ! choices[ option ] ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn choices[ option ];\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Utility functions for Models.\n *\n * @since 3.16.0\n * @version 7.4.0\n */\ndefine( 'Models/_Utilities',[], function() {\n\n\treturn {\n\n\t\tfields: [],\n\n\t\t/**\n\t\t * Override Backbone `set` method.\n\t\t *\n\t\t * Takes into account attributes of the form object[prop].\n\t\t *\n\t\t * @since 7.4.0\n\t\t *\n\t\t * @param {Mixed} attr The attribute to be set.\n\t\t * @param {Mixed} val The value to set.\n\t\t */\n\t\tset: function ( attr, val ) {\n\n\t\t\tif ( 'string' === typeof attr ) {\n\n\t\t\t\tconst matches = attr.match( /(.*?)\\[(.*?)\\]/ );\n\t\t\t\tif ( matches && 3 === matches.length ) {\n\n\t\t\t\t\tconst\n\t\t\t\t\t\trealAttr = matches[1],\n\t\t\t\t\t\tcurrentVal = Backbone.Model.prototype.get.call( this, realAttr );\n\n\t\t\t\t\tvar newVal = undefined !== currentVal ? currentVal : {};\n\n\t\t\t\t\tnewVal[ matches[2] ] = val;\n\n\t\t\t\t\targuments[0] = realAttr;\n\t\t\t\t\targuments[1] = newVal;\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Continue with Backbone default `set` behavior.\n\t\t\tBackbone.Model.prototype.set.apply( this, arguments );\n\n\t\t},\n\n\t\t/**\n\t\t * Override Backbone `get` method.\n\t\t *\n\t\t * Takes into account attributes of the form object[prop].\n\t\t *\n\t\t * @since 7.4.0\n\t\t *\n\t\t * @param {Mixed} attr The attribute name.\n\t\t */\n\t\tget: function( attr ) {\n\n\t\t\tconst matches = attr.match( /(.*?)\\[(.*?)\\]/ );\n\t\t\tif ( matches && 3 === matches.length ) {\n\t\t\t\tconst val = Backbone.Model.prototype.get.call( this, matches[1] );\n\t\t\t\tif ( val && undefined !== val[ matches[2] ] ) {\n\t\t\t\t\treturn val[ matches[2] ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Continue with Backbone default `get` behavior.\n\t\t\treturn Backbone.Model.prototype.get.call( this, attr );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the edit post link for the current model.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return string\n\t\t */\n\t\tget_edit_post_link: function() {\n\n\t\t\tif ( this.has_temp_id() ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn window.llms_builder.admin_url + 'post.php?post=' + this.get( 'id' ) + '&action=edit';\n\n\t\t},\n\n\t\tget_view_post_link: function() {\n\t\t\tif ( this.has_temp_id() ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif ( this.get( 'permalink' ) ) {\n\t\t\t\treturn this.get( 'permalink' );\n\t\t\t}\n\n\t\t\tif ( this.get( 'status' ) === 'publish' ) {\n\t\t\t\treturn window.llms_builder.home_url + '?p=' + this.get( 'id' );\n\t\t\t}\n\n\t\t\treturn window.llms_builder.home_url + '?p=' + this.get( 'id' ) + '&preview=true&post_type=' + this.get( 'type' );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve schema fields defined for the model\n\t\t *\n\t\t * @return object\n\t\t * @since 3.17.0\n\t\t * @version 3.17.1\n\t\t */\n\t\tget_settings_fields: function() {\n\n\t\t\tvar schema = this.schema || {};\n\t\t\treturn window.llms_builder.schemas.get( schema, this.get( 'type' ).replace( 'llms_', '' ), this );\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if the model has a temporary ID\n\t\t *\n\t\t * @return {Boolean}\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\thas_temp_id: function() {\n\n\t\t\treturn ( ! _.isNumber( this.get( 'id' ) ) && 0 === this.get( 'id' ).indexOf( 'temp_' ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Initializes 3rd party custom schema (field) data for a model\n\t\t *\n\t\t * @return void\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tinit_custom_schema: function() {\n\n\t\t\tvar groups = _.filter( this.get_settings_fields(), function( group ) {\n\t\t\t\treturn ( group.custom );\n\t\t\t} );\n\n\t\t\t_.each( groups, function( group ) {\n\t\t\t\t_.each( _.flatten( group.fields ), function( field ) {\n\n\t\t\t\t\tvar keys = [ field.attribute ],\n\t\t\t\t\t\tcustoms = this.get( 'custom' );\n\n\t\t\t\t\tif ( field.switch_attribute ) {\n\t\t\t\t\t\tkeys.push( field.switch_attribute );\n\t\t\t\t\t}\n\n\t\t\t\t\t_.each( keys, function( key ) {\n\t\t\t\t\t\tvar attr = field.attribute_prefix ? field.attribute_prefix + key : key;\n\t\t\t\t\t\tif ( customs && customs[ attr ] ) {\n\t\t\t\t\t\t\tthis.set( key, customs[ attr ][0] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this );\n\n\t\t\t\t}, this );\n\t\t\t}, this );\n\n\t\t},\n\n\t};\n\n} );\n\n","/**\n * Quiz Question\n *\n * @since 3.16.0\n * @version 3.27.0\n */\ndefine( 'Models/Question',[\n\t\t'Models/Image',\n\t\t'Collections/Questions',\n\t\t'Collections/QuestionChoices',\n\t\t'Models/QuestionType',\n\t\t'Models/_Relationships',\n\t\t'Models/_Utilities'\n\t], function(\n\t\tImage,\n\t\tQuestions,\n\t\tQuestionChoices,\n\t\tQuestionType,\n\t\tRelationships,\n\t\tUtilities\n\t) {\n\n\t\treturn Backbone.Model.extend( _.defaults( {\n\n\t\t\t/**\n\t\t\t * Model relationships\n\t\t\t *\n\t\t\t * @type {Object}\n\t\t\t */\n\t\t\trelationships: {\n\t\t\t\tparent: {\n\t\t\t\t\tmodel: 'llms_quiz',\n\t\t\t\t\ttype: 'model',\n\t\t\t\t},\n\t\t\t\tchildren: {\n\t\t\t\t\tchoices: {\n\t\t\t\t\t\tclass: 'QuestionChoices',\n\t\t\t\t\t\tmodel: 'choice',\n\t\t\t\t\t\ttype: 'collection',\n\t\t\t\t\t},\n\t\t\t\t\timage: {\n\t\t\t\t\t\tclass: 'Image',\n\t\t\t\t\t\tmodel: 'image',\n\t\t\t\t\t\ttype: 'model',\n\t\t\t\t\t},\n\t\t\t\t\tquestions: {\n\t\t\t\t\t\tclass: 'Questions',\n\t\t\t\t\t\tconditional: function( model ) {\n\t\t\t\t\t\t\tvar type = model.get( 'question_type' ),\n\t\t\t\t\t\t\ttype_id = _.isString( type ) ? type : type.get( 'id' );\n\t\t\t\t\t\t\treturn ( 'group' === type_id );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmodel: 'llms_question',\n\t\t\t\t\t\ttype: 'collection',\n\t\t\t\t\t},\n\t\t\t\t\tquestion_type: {\n\t\t\t\t\t\tclass: 'QuestionType',\n\t\t\t\t\t\tlookup: function( val ) {\n\t\t\t\t\t\t\tif ( _.isString( val ) ) {\n\t\t\t\t\t\t\t\treturn window.llms_builder.questions.get( val );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn val;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmodel: 'question_type',\n\t\t\t\t\t\ttype: 'model',\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Model defaults\n\t\t\t *\n\t\t\t * @return obj\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tdefaults: function() {\n\t\t\t\treturn {\n\t\t\t\t\tid: _.uniqueId( 'temp_' ),\n\t\t\t\t\tchoices: [],\n\t\t\t\t\tcontent: '',\n\t\t\t\t\tdescription_enabled: 'no',\n\t\t\t\t\timage: {},\n\t\t\t\t\tmulti_choices: 'no',\n\t\t\t\t\tmenu_order: 1,\n\t\t\t\t\tpoints: 1,\n\t\t\t\t\tquestion_type: 'generic',\n\t\t\t\t\tquestions: [], // for question groups\n\t\t\t\t\tparent_id: '',\n\t\t\t\t\ttitle: '',\n\t\t\t\t\ttype: 'llms_question',\n\t\t\t\t\tvideo_enabled: 'no',\n\t\t\t\t\tvideo_src: '',\n\n\t\t\t\t\t_expanded: false,\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Initializer\n\t\t\t *\n\t\t\t * @param obj data object of data for the model\n\t\t\t * @param obj options additional options\n\t\t\t * @return void\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tinitialize: function( data, options ) {\n\n\t\t\t\tvar self = this;\n\n\t\t\t\tthis.startTracking();\n\t\t\t\tthis.init_relationships( options );\n\n\t\t\t\tif ( false !== this.get( 'question_type' ).choices ) {\n\n\t\t\t\t\tthis._ensure_min_choices();\n\n\t\t\t\t\t// when a choice is removed, maybe add back some defaults so we always have the minimum\n\t\t\t\t\tthis.listenTo( this.get( 'choices' ), 'remove', function() {\n\t\t\t\t\t\t// new items are added at index 0 when there's only 1 item in the collection, not sure why exactly...\n\t\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t\tself._ensure_min_choices();\n\t\t\t\t\t\t}, 0 );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t// ensure question types that don't support points don't record default 1 point in database\n\t\t\t\tif ( ! this.get( 'question_type' ).get( 'points' ) ) {\n\t\t\t\t\tthis.set( 'points', 0 );\n\t\t\t\t}\n\n\t\t\t\t_.delay( function( self ) {\n\t\t\t\t\tself.on( 'change:points', self.get_parent().update_points, self.get_parent() );\n\t\t\t\t}, 1, this );\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Add a new question choice\n\t\t\t *\n\t\t\t * @param obj data object of choice data\n\t\t\t * @param obj options additional options\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tadd_choice: function( data, options ) {\n\n\t\t\t\tvar max = this.get( 'question_type' ).get_max_choices();\n\t\t\t\tif ( this.get( 'choices' ).size() >= max ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tdata = data || {};\n\t\t\t\toptions = options || {};\n\n\t\t\t\tdata.choice_type = this.get( 'question_type' ).get_choice_type();\n\t\t\t\tdata.question_id = this.get( 'id' );\n\t\t\t\toptions.parent = this;\n\n\t\t\t\tvar choice = this.get( 'choices' ).add( data, options );\n\n\t\t\t\tBackbone.pubSub.trigger( 'question-add-choice', choice, this );\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Collapse question_type attribute during full syncs to save to database\n\t\t\t * Not needed because question types cannot be adjusted after question creation\n\t\t\t * Called from sync controller\n\t\t\t *\n\t\t\t * @param obj atts flat object of attributes to be saved to db\n\t\t\t * @param string sync_type full or partial\n\t\t\t * full indicates a force resync or that the model isn't persisted yet\n\t\t\t * @return obj\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tbefore_save: function( atts, sync_type ) {\n\t\t\t\tif ( 'full' === sync_type ) {\n\t\t\t\t\tatts.question_type = this.get( 'question_type' ).get( 'id' );\n\t\t\t\t}\n\t\t\t\treturn atts;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Retrieve the model's parent (if set)\n\t\t\t *\n\t\t\t * @return obj|false\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tget_parent: function() {\n\n\t\t\t\tvar rels = this.get_relationships();\n\n\t\t\t\tif ( rels.parent ) {\n\t\t\t\t\tif ( this.collection && this.collection.parent ) {\n\t\t\t\t\t\treturn this.collection.parent;\n\t\t\t\t\t} else if ( rels.parent.reference ) {\n\t\t\t\t\t\treturn rels.parent.reference;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Retrieve the translated post type name for the model's type\n\t\t\t *\n\t\t\t * @param bool plural if true, returns the plural, otherwise returns singular\n\t\t\t * @return string\n\t\t\t * @since 3.27.0\n\t\t\t * @version 3.27.0\n\t\t\t */\n\t\t\tget_l10n_type: function( plural ) {\n\n\t\t\t\tif ( plural ) {\n\t\t\t\t\treturn LLMS.l10n.translate( 'questions' );\n\t\t\t\t}\n\n\t\t\t\treturn LLMS.l10n.translate( 'question' );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Gets the index of the question within it's parent\n\t\t\t * Question numbers skip content elements\n\t\t\t * & content elements skip questions\n\t\t\t *\n\t\t\t * @return int\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tget_type_index: function() {\n\n\t\t\t\t// current models type, used to check the predicate in the filter function below\n\t\t\t\tvar curr_type = this.get( 'question_type' ).get( 'id' ),\n\t\t\t\tquestions;\n\n\t\t\t\tquestions = this.collection.filter( function( question ) {\n\n\t\t\t\t\tvar type = question.get( 'question_type' ).get( 'id' );\n\n\t\t\t\t\t// if current model is not content, return all non-content questions\n\t\t\t\t\tif ( curr_type !== 'content' ) {\n\t\t\t\t\t\treturn ( 'content' !== type );\n\t\t\t\t\t}\n\n\t\t\t\t\t// current model is content, return only content questions\n\t\t\t\t\treturn 'content' === type;\n\n\t\t\t\t} );\n\n\t\t\t\treturn questions.indexOf( this );\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Gets iterator for the given type\n\t\t\t * Questions use numbers and content uses alphabet\n\t\t\t *\n\t\t\t * @return mixed\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tget_type_iterator: function() {\n\n\t\t\t\tvar index = this.get_type_index();\n\n\t\t\t\tif ( -1 === index ) {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\n\t\t\t\tif ( 'content' === this.get( 'question_type' ).get( 'id' ) ) {\n\t\t\t\t\tvar alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split( '' );\n\t\t\t\t\treturn alphabet[ index ];\n\t\t\t\t}\n\n\t\t\t\treturn index + 1;\n\n\t\t\t},\n\n\t\t\tget_qid: function() {\n\n\t\t\t\tvar parent = this.get_parent_question(),\n\t\t\t\tprefix = '';\n\n\t\t\t\tif ( parent ) {\n\n\t\t\t\t\tprefix = parent.get_qid() + '.';\n\n\t\t\t\t}\n\n\t\t\t\t// return short_id + this.get_type_iterator();\n\t\t\t\treturn prefix + this.get_type_iterator();\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Retrieve the parent question (if the question is in a question group)\n\t\t\t *\n\t\t\t * @return obj|false\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tget_parent_question: function() {\n\n\t\t\t\tif ( this.is_in_group() ) {\n\n\t\t\t\t\treturn this.collection.parent;\n\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Retrieve the parent quiz\n\t\t\t *\n\t\t\t * @return obj\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tget_parent_quiz: function() {\n\t\t\t\treturn this.get_parent();\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Points getter\n\t\t\t * ensures that 0 is always returned if the question type doesn't support points\n\t\t\t *\n\t\t\t * @return int\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tget_points: function() {\n\n\t\t\t\tif ( ! this.get( 'question_type' ).get( 'points' ) ) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn this.get( 'points' );\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Retrieve the questions percentage value within the quiz\n\t\t\t *\n\t\t\t * @return string\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tget_points_percentage: function() {\n\n\t\t\t\tvar total = this.get_parent().get( '_points' ),\n\t\t\t\tpoints = this.get( 'points' );\n\n\t\t\t\tif ( 0 === total ) {\n\t\t\t\t\treturn '0%';\n\t\t\t\t}\n\n\t\t\t\treturn ( ( points / total ) * 100 ).toFixed( 2 ) + '%';\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Determine if the question belongs to a question group\n\t\t\t *\n\t\t\t * @return {Boolean}\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tis_in_group: function() {\n\n\t\t\t\treturn ( 'question' === this.collection.parent.get( 'type' ) );\n\n\t\t\t},\n\n\t\t\t_ensure_min_choices: function() {\n\n\t\t\t\tvar choices = this.get( 'choices' );\n\t\t\t\twhile ( choices.size() < this.get( 'question_type' ).get_min_choices() ) {\n\t\t\t\t\tthis.add_choice();\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t}, Relationships, Utilities ) );\n\n} );\n\n","/**\n * Questions Collection\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Collections/Questions',[ 'Models/Question' ], function( model ) {\n\n\treturn Backbone.Collection.extend( {\n\n\t\t/**\n\t\t * Model for collection items\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\tmodel: model,\n\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\t// reorder called by QuestionList view when sortable drops occur\n\t\t\tthis.on( 'reorder', this.update_order );\n\n\t\t\t// when a question is added or removed, update order\n\t\t\tthis.on( 'add', this.update_order );\n\t\t\tthis.on( 'remove', this.update_order );\n\n\t\t\tthis.on( 'add', this.update_parent );\n\n\t\t},\n\n\t\t/**\n\t\t * Update the order attr of each question in the list to reflect the order of the collection\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_order: function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.each( function( question ) {\n\n\t\t\t\tquestion.set( 'menu_order', self.indexOf( question ) + 1 );\n\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * When adding a question to a question list, update the question's parent\n\t\t * Will ensure that questions moved into and out of groups always have the correct parent_id\n\t\t *\n\t\t * @param obj model instance of the question model\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_parent: function( model ) {\n\n\t\t\tmodel.set( 'parent_id', this.parent.get( 'id' ) );\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Quiz Schema.\n *\n * @since 3.17.6\n * @since 7.4.0 Added upsell for Question Bank and condition in `random_questions` schema.\n * @since 7.6.2 Added `disable_retake` schema.\n * @since 7.8.0 Added `can_be_resumed` option.\n * @version 7.8.0\n\n */\ndefine( 'Schemas/Quiz',[], function() {\n\n\treturn window.llms.hooks.applyFilters( 'llms_define_quiz_schema', {\n\n\t\tdefault: {\n\t\t\ttitle: LLMS.l10n.translate( 'General Settings' ),\n\t\t\ttoggleable: true,\n\t\t\tfields: [\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'permalink',\n\t\t\t\t\t\tid: 'permalink',\n\t\t\t\t\t\ttype: 'permalink',\n\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'content',\n\t\t\t\t\t\tid: 'description',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Description' ),\n\t\t\t\t\t\ttype: 'editor',\n\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'passing_percent',\n\t\t\t\t\t\tid: 'passing-percent',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Passing Percentage' ),\n\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\tmax: 100,\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Minimum percentage of total points required to pass the quiz' ),\n\t\t\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'allowed_attempts',\n\t\t\t\t\t\tid: 'allowed-attempts',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Limit Attempts' ),\n\t\t\t\t\t\tswitch_attribute: 'limit_attempts',\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Limit the maximum number of times a student can take this quiz' ),\n\t\t\t\t\t\ttype: 'switch-number',\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'time_limit',\n\t\t\t\t\t\tid: 'time-limit',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Time Limit' ),\n\t\t\t\t\t\tmin: 1,\n\t\t\t\t\t\tmax: 360,\n\t\t\t\t\t\tswitch_attribute: 'limit_time',\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Enforce a maximum number of minutes a student can spend on each attempt' ),\n\t\t\t\t\t\ttype: 'switch-number',\n\t\t\t},\n\t\t\t\t], [\n\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'can_be_resumed',\n\t\t\t\t\t\tid: 'resume',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Can be resumed' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Allow a new attempt on this quiz to be resumed' ),\n\t\t\t\t\t\ttype: 'switch',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn 'yes' === this.get( 'limit_time' ) ? false : true;\n\t\t\t\t\t\t}\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'show_correct_answer',\n\t\t\t\t\t\tid: 'show-correct-answer',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Show Correct Answers' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'When enabled, students will be shown the correct answer to any question they answered incorrectly.' ),\n\t\t\t\t\t\ttype: 'switch',\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'random_questions',\n\t\t\t\t\t\tid: 'random-questions',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Randomize Question Order' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Display questions in a random order for each attempt. Content questions are locked into their defined positions.' ),\n\t\t\t\t\t\ttype: 'switch',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn 'yes' === this.get( 'question_bank' ) ? false : true;\n\t\t\t\t\t\t}\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'disable_retake',\n\t\t\t\t\t\tid: 'disable-retake',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Disable Retake' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Prevent quiz retake after student passed the quiz.' ),\n\t\t\t\t\t\ttype: 'switch',\n\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'question-bank',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Question Bank' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'A question bank helps prevent cheating and reinforces learning by allowing instructors to create assessments with randomized questions pulled from a bank of questions. (Available in Advanced Quizzes addon)' ),\n\t\t\t\t\t\ttype: 'upsell',\n\t\t\t\t\t\ttext: LLMS.l10n.translate( 'Get LifterLMS Advanced Quizzes' ),\n\t\t\t\t\t\turl: 'https://lifterlms.com/product/advanced-quizzes/?utm_source=LifterLMS%20Plugin&utm_medium=Quiz%20Builder%20Button&utm_campaign=Advanced%20Question%20Upsell&utm_content=3.16.0&utm_term=Questions%20Bank'\n\t\t\t\t\t}\n\t\t\t\t]\n\n\t\t\t],\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Quiz Model.\n *\n * @since 3.16.0\n * @version 7.5.0\n */\ndefine( 'Models/Quiz',[\n\t\t'Collections/Questions',\n\t\t'Models/Lesson',\n\t\t'Models/Question',\n\t\t'Models/_Relationships',\n\t\t'Models/_Utilities',\n\t\t'Schemas/Quiz',\n\t], function(\n\t\tQuestions,\n\t\tLesson,\n\t\tQuestion,\n\t\tRelationships,\n\t\tUtilities,\n\t\tQuizSchema\n\t) {\n\n\treturn Backbone.Model.extend( _.defaults( {\n\n\t\t/**\n\t\t * model relationships\n\t\t * @type {Object}\n\t\t */\n\t\trelationships: {\n\t\t\tparent: {\n\t\t\t\tmodel: 'lesson',\n\t\t\t\ttype: 'model',\n\t\t\t},\n\t\t\tchildren: {\n\t\t\t\tquestions: {\n\t\t\t\t\tclass: 'Questions',\n\t\t\t\t\tmodel: 'llms_question',\n\t\t\t\t\ttype: 'collection',\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Lesson Settings Schema\n\t\t * @type {Object}\n\t\t */\n\t\tschema: QuizSchema,\n\n\t\t/**\n\t\t * New quiz defaults.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 7.4.0 Added filter for filtering defaults.\n\t\t * @since 7.5.0 Replaced unused `random_answers` property with `random_questions`.\n\t\t * @since 7.8.0 Added filter for filtering defaults and `can_be_resumed` property.\n\t\t *\n\t\t * @return {Object}\n\t\t */\n\t\tdefaults: function() {\n\n\t\t\treturn window.llms.hooks.applyFilters( 'llms_quiz_model_defaults', {\n\t\t\t\tid: _.uniqueId( 'temp_' ),\n\t\t\t\ttitle: LLMS.l10n.translate( 'New Quiz' ),\n\t\t\t\ttype: 'llms_quiz',\n\t\t\t\tlesson_id: '',\n\n\t\t\t\tstatus: 'draft',\n\n\t\t\t\t// editable fields.\n\t\t\t\tcontent: '',\n\t\t\t\tallowed_attempts: 5,\n\t\t\t\tlimit_attempts: 'no',\n\t\t\t\tlimit_time: 'no',\n\t\t\t\tpassing_percent: 65,\n\t\t\t\tname: '',\n\t\t\t\trandom_questions: 'no',\n\t\t\t\ttime_limit: 30,\n\t\t\t\tshow_correct_answer: 'no',\n\t\t\t\tcan_be_resumed: 'no',\n\t\t\t\tdisable_retake: 'no',\n\n\t\t\t\tquestions: [],\n\n\t\t\t\t// calculated.\n\t\t\t\t_points: 0,\n\n\t\t\t\t// display.\n\t\t\t\tpermalink: '',\n\t\t\t\t_show_settings: false,\n\t\t\t\t_questions_loaded: false,\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Initializer\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.24.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.init_custom_schema();\n\t\t\tthis.startTracking();\n\t\t\tthis.init_relationships();\n\n\t\t\tthis.listenTo( this.get( 'questions' ), 'add', this.update_points );\n\t\t\tthis.listenTo( this.get( 'questions' ), 'remove', this.update_points );\n\n\t\t\tthis.set( '_points', this.get_total_points() );\n\n\t\t\t// when a quiz is published, ensure the parent lesson is marked as \"Enabled\" for quizzing\n\t\t\tthis.on( 'change:status', function() {\n\t\t\t\tif ( 'publish' === this.get( 'status' ) ) {\n\t\t\t\t\tthis.get_parent().set( 'quiz_enabled', 'yes' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\twindow.llms.hooks.doAction( 'llms_quiz_model_init', this );\n\n\t\t},\n\n\t\t/**\n\t\t * Add a new question to the quiz\n\t\t * @param obj data question data\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tadd_question: function( data ) {\n\n\t\t\tdata.parent_id = this.get( 'id' );\n\t\t\tvar question = this.get( 'questions' ).add( data, {\n\t\t\t\tparent: this,\n\t\t\t} );\n\t\t\tBackbone.pubSub.trigger( 'quiz-add-question', question, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the translated post type name for the model's type\n\t\t * @param bool plural if true, returns the plural, otherwise returns singular\n\t\t * @return string\n\t\t * @since 3.16.12\n\t\t * @version 3.16.12\n\t\t */\n\t\tget_l10n_type: function( plural ) {\n\n\t\t\tif ( plural ) {\n\t\t\t\treturn LLMS.l10n.translate( 'quizzes' );\n\t\t\t}\n\n\t\t\treturn LLMS.l10n.translate( 'quiz' );\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the quiz's total points\n\t\t * @return int\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_total_points: function() {\n\n\t\t\tvar points = 0;\n\n\t\t\tthis.get( 'questions' ).each( function( question ) {\n\t\t\t\tpoints += question.get_points();\n\t\t\t} );\n\n\t\t\treturn points;\n\n\t\t},\n\n\t\t/**\n\t\t * Lazy load questions via AJAX\n\t\t * @param {Function} cb callback function\n\t\t * @return void\n\t\t * @since 3.19.2\n\t\t * @version 3.19.2\n\t\t */\n\t\tload_questions: function( cb ) {\n\n\t\t\tif ( this.get( '_questions_loaded' ) ) {\n\n\t\t\t\tcb();\n\n\t\t\t} else {\n\n\t\t\t\tvar self = this;\n\n\t\t\t\tLLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'llms_builder',\n\t\t\t\t\t\taction_type: 'lazy_load',\n\t\t\t\t\t\tcourse_id: window.llms_builder.CourseModel.get( 'id' ),\n\t\t\t\t\t\tload_id: this.get( 'id' ),\n\t\t\t\t\t},\n\t\t\t\t\terror: function( xhr, status, error ) {\n\n\t\t\t\t\t\tconsole.log( xhr, status, error );\n\t\t\t\t\t\twindow.llms_builder.debug.log( '==== start load_questions error ====', xhr, status, error, '==== finish load_questions error ====' );\n\t\t\t\t\t\tcb( true );\n\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( res ) {\n\t\t\t\t\t\tif ( res && res.questions ) {\n\t\t\t\t\t\t\tself.set( '_questions_loaded', true );\n\t\t\t\t\t\t\tif ( res.questions ) {\n\t\t\t\t\t\t\t\t_.each( res.questions, self.add_question, self );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcb();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcb( true );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\n\t\t},\n\n\t\t/**\n\t\t * Update total number of points calculated property\n\t\t * @return int\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_points: function() {\n\n\t\t\tthis.set( '_points', this.get_total_points() );\n\n\t\t},\n\n\t}, Relationships, Utilities ) );\n\n} );\n\n","/**\n * Lesson Schemas\n *\n * @since 3.17.0\n * @version 3.25.4\n */\ndefine( 'Schemas/Lesson',[], function() {\n\n\treturn window.llms.hooks.applyFilters( 'llms_define_lesson_schema', {\n\n\t\tdefault: {\n\t\t\ttitle: LLMS.l10n.translate( 'General Settings' ),\n\t\t\ttoggleable: true,\n\t\t\tfields: [\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'permalink',\n\t\t\t\t\t\tid: 'permalink',\n\t\t\t\t\t\ttype: 'permalink',\n\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'video_embed',\n\t\t\t\t\t\tid: 'video-embed',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Video Embed URL' ),\n\t\t\t\t\t\ttype: 'video_embed',\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'audio_embed',\n\t\t\t\t\t\tid: 'audio-embed',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Audio Embed URL' ),\n\t\t\t\t\t\ttype: 'audio_embed',\n\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'free_lesson',\n\t\t\t\t\t\tid: 'free-lesson',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Free Lesson' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Free lessons can be accessed without enrollment.' ),\n\t\t\t\t\t\ttype: 'switch',\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'require_passing_grade',\n\t\t\t\t\t\tid: 'require-passing-grade',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Require Passing Grade on Quiz' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'When enabled, students must pass this quiz before the lesson can be completed.' ),\n\t\t\t\t\t\ttype: 'switch',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn ( 'yes' === this.get( 'quiz_enabled' ) );\n\t\t\t\t\t\t},\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'require_assignment_passing_grade',\n\t\t\t\t\t\tid: 'require-assignment-passing-grade',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Require Passing Grade on Assignment' ),\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'When enabled, students must pass this assignment before the lesson can be completed.' ),\n\t\t\t\t\t\ttype: 'switch',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn ( 'undefined' !== window.llms_builder.assignments && 'yes' === this.get( 'assignment_enabled' ) );\n\t\t\t\t\t\t},\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'points',\n\t\t\t\t\t\tid: 'points',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Lesson Weight' ),\n\t\t\t\t\t\tlabel_after: LLMS.l10n.translate( 'POINTS' ),\n\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\tmax: 99,\n\t\t\t\t\t\ttip: LLMS.l10n.translate( 'Determines the weight of the lesson when calculating the overall grade of the course.' ),\n\t\t\t\t\t\ttip_position: 'top-left',\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn ( ( 'yes' === this.get( 'quiz_enabled' ) ) || ( 'undefined' !== window.llms_builder.assignments && 'yes' === this.get( 'assignment_enabled' ) ) );\n\t\t\t\t\t\t},\n\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'prerequisite',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn ( false === this.is_first_in_course() );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tid: 'prerequisite',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Prerequisite' ),\n\t\t\t\t\t\tswitch_attribute: 'has_prerequisite',\n\t\t\t\t\t\ttype: 'switch-select',\n\t\t\t\t\t\toptions: function() {\n\t\t\t\t\t\t\treturn this.get_available_prereq_options();\n\t\t\t\t\t\t},\n\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Course Drip Method' ),\n\t\t\t\t\t\tid: 'course-drip',\n\t\t\t\t\t\ttype: 'heading',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn ( this.get_course() && 'yes' === this.get_course().get( 'lesson_drip' ) && this.get_course().get( 'drip_method' ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdetail: LLMS.l10n.translate( 'Drip settings are currently set at the course level, under the Restrictions settings tab. Disable to allow lesson level drip settings.' ) + ' ' + LLMS.l10n.translate( 'Edit Course' ) + ' ',\n\t\t\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Course Drip Method' ),\n\t\t\t\t\t\tid: 'course-drip',\n\t\t\t\t\t\ttype: 'heading',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn ( ! this.get_course() || 'yes' !== this.get_course().get( 'lesson_drip' ) || ! this.get_course().get( 'drip_method' ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdetail: LLMS.l10n.translate( 'Drip settings can be set at the course level to release course content at a specified interval, in the Restrictions settings tab.' ) + ' ' + LLMS.l10n.translate( 'Edit Course' ) + ' ',\n\t\t\t\t\t},\n\t\t\t\t], [\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'drip_method',\n\t\t\t\t\t\tid: 'drip-method',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Drip Method' ),\n\t\t\t\t\t\tswitch_attribute: 'drip_method',\n\t\t\t\t\t\ttype: 'select',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\treturn ( ! this.get_course() || 'yes' !== this.get_course().get( 'lesson_drip' ) || ! this.get_course().get( 'drip_method' ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t\toptions: function() {\n\n\t\t\t\t\t\t\tvar options = [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tkey: '',\n\t\t\t\t\t\t\t\t\tval: LLMS.l10n.translate( 'None' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tkey: 'date',\n\t\t\t\t\t\t\t\t\tval: LLMS.l10n.translate( 'On a specific date' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tkey: 'enrollment',\n\t\t\t\t\t\t\t\t\tval: LLMS.l10n.translate( '# of days after course enrollment' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\tif ( this.get_course() && this.get_course().get( 'start_date' ) ) {\n\t\t\t\t\t\t\t\toptions.push( {\n\t\t\t\t\t\t\t\t\tkey: 'start',\n\t\t\t\t\t\t\t\t\tval: LLMS.l10n.translate( '# of days after course start date' ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( 'yes' === this.get( 'has_prerequisite' ) ) {\n\t\t\t\t\t\t\t\toptions.push( {\n\t\t\t\t\t\t\t\t\tkey: 'prerequisite',\n\t\t\t\t\t\t\t\t\tval: LLMS.l10n.translate( '# of days after prerequisite lesson completion' ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn options;\n\n\t\t\t\t\t\t},\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'days_before_available',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\tif ( this.get_course() && 'yes' === this.get_course().get( 'lesson_drip' ) && this.get_course().get( 'drip_method' ) ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ( -1 !== [ 'enrollment', 'start', 'prerequisite' ].indexOf( this.get( 'drip_method' ) ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tid: 'days-before-available',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( '# of days' ),\n\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'date_available',\n\t\t\t\t\t\tdate_format: 'Y-m-d',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\tif ( this.get_course() && 'yes' === this.get_course().get( 'lesson_drip' ) && this.get_course().get( 'drip_method' ) ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ( 'date' === this.get( 'drip_method' ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tid: 'date-available',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Date' ),\n\t\t\t\t\t\ttimepicker: 'false',\n\t\t\t\t\t\ttype: 'datepicker',\n\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tattribute: 'time_available',\n\t\t\t\t\t\tcondition: function() {\n\t\t\t\t\t\t\tif ( this.get_course() && 'yes' === this.get_course().get( 'lesson_drip' ) && this.get_course().get( 'drip_method' ) ) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ( 'date' === this.get( 'drip_method' ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdatepicker: 'false',\n\t\t\t\t\t\tdate_format: 'h:i A',\n\t\t\t\t\t\tid: 'time-available',\n\t\t\t\t\t\tlabel: LLMS.l10n.translate( 'Time' ),\n\t\t\t\t\t\ttype: 'datepicker',\n\t\t\t},\n\t\t\t\t],\n\t\t\t],\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Lesson Model\n *\n * @since 3.13.0\n * @version 4.20.0\n */\ndefine( 'Models/Lesson',[ 'Models/Quiz', 'Models/_Relationships', 'Models/_Utilities', 'Schemas/Lesson' ], function( Quiz, Relationships, Utilities, LessonSchema ) {\n\n\treturn Backbone.Model.extend( _.defaults( {\n\n\t\t/**\n\t\t * Model relationships\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\trelationships: {\n\t\t\tparents: {\n\t\t\t\tmodel: 'section',\n\t\t\t\ttype: 'model',\n\t\t\t},\n\t\t\tchildren: {\n\t\t\t\tquiz: {\n\t\t\t\t\tclass: 'Quiz',\n\t\t\t\t\tconditional: function( model ) {\n\t\t\t\t\t\t// if quiz is enabled OR not enabled but we have some quiz data as an obj\n\t\t\t\t\t\treturn ( 'yes' === model.get( 'quiz_enabled' ) || ! _.isEmpty( model.get( 'quiz' ) ) );\n\t\t\t\t\t},\n\t\t\t\t\tmodel: 'llms_quiz',\n\t\t\t\t\ttype: 'model',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Lesson Settings Schema\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tschema: LessonSchema,\n\n\t\t/**\n\t\t * New lesson defaults\n\t\t *\n\t\t * @since 3.13.0\n\t\t * @since 3.24.0 Unknown.\n\t\t *\n\t\t * @return {Object} Default options associative array (js object).\n\t\t */\n\t\tdefaults: function() {\n\t\t\treturn {\n\t\t\t\tid: _.uniqueId( 'temp_' ),\n\t\t\t\ttitle: LLMS.l10n.translate( 'New Lesson' ),\n\t\t\t\ttype: 'lesson',\n\t\t\t\torder: this.collection ? this.collection.length + 1 : 1,\n\t\t\t\tparent_course: window.llms_builder.course.id,\n\t\t\t\tparent_section: '',\n\n\t\t\t\t// Urls.\n\t\t\t\tedit_url: '',\n\t\t\t\tview_url: '',\n\n\t\t\t\t// Editable fields.\n\t\t\t\tcontent: '',\n\t\t\t\taudio_embed: '',\n\t\t\t\thas_prerequisite: 'no',\n\t\t\t\trequire_passing_grade: 'yes',\n\t\t\t\trequire_assignment_passing_grade: 'yes',\n\t\t\t\tvideo_embed: '',\n\t\t\t\tfree_lesson: '',\n\t\t\t\tpoints: 1,\n\n\t\t\t\t// Other fields.\n\t\t\t\tassignment: {}, // Assignment model/data.\n\t\t\t\tassignment_enabled: 'no',\n\n\t\t\t\tquiz: {}, // Quiz model/data.\n\t\t\t\tquiz_enabled: 'no',\n\n\t\t\t\t_forceSync: false,\n\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Initializer\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.17.0 Unknown\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.init_custom_schema();\n\t\t\tthis.startTracking();\n\t\t\tthis.maybe_init_assignments();\n\t\t\tthis.init_relationships();\n\n\t\t\t// If the lesson ID isn't set on a quiz, set it.\n\t\t\tvar quiz = this.get( 'quiz' );\n\t\t\tif ( ! _.isEmpty( quiz ) && ! quiz.get( 'lesson_id' ) ) {\n\t\t\t\tquiz.set( 'lesson_id', this.get( 'id' ) );\n\t\t\t}\n\n\t\t\twindow.llms.hooks.doAction( 'llms_lesson_model_init', this );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve a reference to the parent course of the lesson\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 4.14.0 Use Section.get_course() in favor of Section.get_parent().\n\t\t *\n\t\t * @return {Object} The parent course model of the lesson.\n\t\t */\n\t\tget_course: function() {\n\t\t\treturn this.get_parent().get_course();\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the translated post type name for the model's type\n\t\t *\n\t\t * @since 3.16.12\n\t\t *\n\t\t * @param bool plural If true, returns the plural, otherwise returns singular.\n\t\t * @return string The translated post type name.\n\t\t */\n\t\tget_l10n_type: function( plural ) {\n\n\t\t\tif ( plural ) {\n\t\t\t\treturn LLMS.l10n.translate( 'lessons' );\n\t\t\t}\n\n\t\t\treturn LLMS.l10n.translate( 'lesson' );\n\t\t},\n\n\t\t/**\n\t\t * Override default get_parent to grab from collection if models parent isn't set\n\t\t *\n\t\t * @since 3.17.0\n\t\t *\n\t\t * @return {Object}|false The parent model or false if not available.\n\t\t */\n\t\tget_parent: function() {\n\n\t\t\tvar rels = this.get_relationships();\n\t\t\tif ( rels.parent && rels.parent.reference ) {\n\t\t\t\treturn rels.parent.reference;\n\t\t\t} else if ( this.collection && this.collection.parent ) {\n\t\t\t\treturn this.collection.parent;\n\t\t\t}\n\t\t\treturn false;\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the questions percentage value within the quiz\n\t\t *\n\t\t * @since 3.24.0\n\t\t *\n\t\t * @return {String} Questions percentage value within the quiz.\n\t\t */\n\t\tget_points_percentage: function() {\n\n\t\t\tvar total = this.get_course().get_total_points(),\n\t\t\t\tpoints = this.get( 'points' ) * 1;\n\n\t\t\tif ( ! _.isNumber( points ) ) {\n\t\t\t\tpoints = 0;\n\t\t\t}\n\n\t\t\tif ( 0 === total ) {\n\t\t\t\treturn '0%';\n\t\t\t}\n\n\t\t\treturn ( ( points / total ) * 100 ).toFixed( 2 ) + '%';\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve an array of prerequisite options available for the current lesson\n\t\t *\n\t\t * @since 3.17.0\n\t\t *\n\t\t * @return {Object} Prerequisite options.\n\t\t */\n\t\tget_available_prereq_options: function() {\n\n\t\t\tvar parent_section_index = this.get_parent().collection.indexOf( this.get_parent() ),\n\t\t\t\tlesson_index_in_section = this.collection.indexOf( this ),\n\t\t\t\toptions = [];\n\n\t\t\tthis.get_course().get( 'sections' ).each( function( section, curr_sec_index ) {\n\t\t\t\tif ( curr_sec_index <= parent_section_index ) {\n\t\t\t\t\tvar group = {\n\t\t\t\t\t\t\t// Translators: %1$d = section order number, %2$s = section title.\n\t\t\t\t\t\tlabel: LLMS.l10n.replace( 'Section %1$d: %2$s', {\n\t\t\t\t\t\t\t'%1$d': section.get( 'order' ),\n\t\t\t\t\t\t\t'%2$s': section.get( 'title' )\n\t\t\t\t\t\t} ),\n\t\t\t\t\toptions: [],\n\t\t\t\t\t};\n\n\t\t\t\t\tsection.get( 'lessons' ).each( function( lesson, curr_les_index ) {\n\t\t\t\t\t\tif ( curr_sec_index !== parent_section_index || curr_les_index < lesson_index_in_section ) {\n\t\t\t\t\t\t\t// Translators: %1$d = lesson order number, %2$s = lesson title.\n\t\t\t\t\t\t\tgroup.options.push( {\n\t\t\t\t\t\t\t\tkey: lesson.get( 'id' ),\n\t\t\t\t\t\t\t\tval: LLMS.l10n.replace( 'Lesson %1$d: %2$s', {\n\t\t\t\t\t\t\t\t\t'%1$d': lesson.get( 'order' ),\n\t\t\t\t\t\t\t\t\t'%2$s': lesson.get( 'title' )\n\t\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this );\n\n\t\t\t\t\toptions.push( group );\n\t\t\t\t}\n\t\t\t}, this );\n\n\t\t\treturn options;\n\n\t\t},\n\n\t\t/**\n\t\t * Add a new quiz to the lesson\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.27.0 Unknown.\n\t\t *\n\t\t * @param {Object} data Object of quiz data used to construct a new quiz model.\n\t\t * @return {Object} Model for the created quiz.\n\t\t */\n\t\tadd_quiz: function( data ) {\n\n\t\t\tdata = data || {};\n\n\t\t\tdata.lesson_id = this.id;\n\t\t\tdata._questions_loaded = true;\n\n\t\t\tif ( ! data.title ) {\n\n\t\t\t\tdata.title = LLMS.l10n.replace( '%1$s Quiz', {\n\t\t\t\t\t'%1$s': this.get( 'title' ),\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tthis.set( 'quiz', data );\n\t\t\tthis.init_relationships();\n\n\t\t\tvar quiz = this.get( 'quiz' );\n\t\t\tthis.set( 'quiz_enabled', 'yes' );\n\n\t\t\twindow.llms.hooks.doAction( 'llms_lesson_add_quiz', quiz, this );\n\n\t\t\treturn quiz;\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if this is the first lesson\n\t\t *\n\t\t * @since 3.17.0\n\t\t * @since 4.20.0 Use is_first_in_section() new method.\n\t\t *\n\t\t * @return {Boolean} Whether this is the first lesson of its course.\n\t\t */\n\t\tis_first_in_course: function() {\n\n\t\t\t// If it's not the first item in the section it cant be the first lesson.\n\t\t\tif ( ! this.is_first_in_section() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// If it's not the first section it cant' be first lesson.\n\t\t\tvar section = this.get_parent();\n\t\t\tif ( section.collection.indexOf( section ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// It's first lesson in first section.\n\t\t\treturn true;\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if this is the last lesson of the course\n\t\t *\n\t\t * @since 4.20.0\n\t\t *\n\t\t * @return {Boolean} Whether this is the last lesson of its course.\n\t\t */\n\t\t is_last_in_course: function() {\n\n\t\t\t// If it's not last item in the section it cant be the last lesson.\n\t\t\tif ( ! this.is_last_in_section() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// If it's not the last section it cant' be last lesson.\n\t\t\tvar section = this.get_parent();\n\t\t\tif ( section.collection.indexOf( section ) < ( section.collection.size() - 1 ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// It's last lesson in last section.\n\t\t\treturn true;\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if this is the first lesson within its section\n\t\t *\n\t\t * @since 4.20.0\n\t\t *\n\t\t * @return {Boolean} Whether this is the first lesson of its section.\n\t\t */\n\t\tis_first_in_section: function() {\n\t\t\treturn 0 === this.collection.indexOf( this );\n\t\t},\n\n\t\t/**\n\t\t * Determine if this is the last lesson within its section\n\t\t *\n\t\t * @since 4.20.0\n\t\t *\n\t\t * @return {Boolean} Whether this is the last lesson of its section.\n\t\t */\n\t\tis_last_in_section: function() {\n\t\t\treturn this.collection.indexOf( this ) === ( this.collection.size() - 1 );\n\t\t},\n\n\t\t/**\n\t\t * Get prev lesson in a course\n\t\t *\n\t\t * @since 4.20.0\n\t\t *\n\t\t * @param {String} status Prev lesson post status. If not specified any status will be taken into account.\n\t\t * @return {Object}|false Previous lesson model or `false` if no previous lesson could be found.\n\t\t */\n\t\tget_prev: function( status ) {\n\t\t\treturn this.get_sibling( 'prev', status );\n\t\t},\n\n\t\t/**\n\t\t * Get next lesson in a course\n\t\t *\n\t\t * @since 4.20.0\n\t\t *\n\t\t * @param {String} status Next lesson post status. If not specified any status will be taken into account.\n\t\t * @return {Object}|false Next lesson model or `false` if no next lesson could be found.\n\t\t */\n\t\tget_next: function( status ) {\n\t\t\treturn this.get_sibling( 'next', status );\n\t\t},\n\n\t\t/**\n\t\t * Get a sibling lesson\n\t\t *\n\t\t * @param {String} direction Siblings direction [next|prev]. If not specified will fall back on 'prev'.\n\t\t * @param {String} status Sibling lesson post status. If not specified any status will be taken into account.\n\t\t * @return {Object}|false Sibling lesson model, in the specified direction, or `false` if no sibling lesson could be found.\n\t\t */\n\t\tget_sibling: function( direction, status ) {\n\n\t\t\tdirection = 'next' === direction ? direction : 'prev';\n\n\t\t\t// Functions and vars to use when direction is 'prev' (default).\n\t\t\tvar is_course_limit_reached_f = 'is_first_in_course',\n\t\t\t\tis_section_limit_reached_f = 'is_first_in_section',\n\t\t\t\tsibling_index_increment = -1,\n\t\t\t\tget_sibling_lesson_in_sibling_section_f = 'last';\n\n\t\t\tif ( 'next' === direction ) {\n\t\t\t\tis_course_limit_reached_f = 'is_last_in_course';\n\t\t\t\tis_section_limit_reached_f = 'is_last_in_section';\n\t\t\t\tsibling_index_increment = 1,\n\t\t\t\tget_sibling_lesson_in_sibling_section_f = 'first';\n\t\t\t}\n\n\t\t\tif ( this[ is_course_limit_reached_f ]() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar sibling_index = this.collection.indexOf( this ) + sibling_index_increment,\n\t\t\t\tsibling_lesson = this.collection.at( sibling_index );\n\n\t\t\tif ( this[ 'next' === direction ? 'is_last_in_section' : 'is_first_in_section' ]() ) {\n\t\t\t\tvar cur_section = this.get_parent(),\n\t\t\t\t\tsibling_section = cur_section[ 'get_' + direction ]( false );\n\n\t\t\t\t// Skip sibling empty sections.\n\t\t\t\twhile ( sibling_section && ! sibling_section.get( 'lessons' ).size() ) {\n\t\t\t\t\tsibling_section = sibling_section[ 'get_' + direction ]( false );\n\t\t\t\t}\n\n\t\t\t\t// Couldn't find any suitable lesson.\n\t\t\t\tif ( ! sibling_section || ! sibling_section.get( 'lessons' ).size() ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tsibling_lesson = sibling_section.get( 'lessons' )[ get_sibling_lesson_in_sibling_section_f ]();\n\n\t\t\t}\n\n\t\t\t// If we need a specific lesson status.\n\t\t\tif ( status && status !== sibling_lesson.get( 'status' ) ) {\n\t\t\t\treturn sibling_lesson.get_sibling( direction, status );\n\t\t\t}\n\n\t\t\treturn sibling_lesson;\n\n\t\t},\n\n\t\t/**\n\t\t * Initialize lesson assignments *if* the assignments addon is available and enabled\n\t\t *\n\t\t * @since 3.17.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tmaybe_init_assignments: function() {\n\n\t\t\tif ( ! window.llms_builder.assignments ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.relationships.children.assignment = {\n\t\t\t\tclass: 'Assignment',\n\t\t\t\tconditional: function( model ) {\n\t\t\t\t\t// If assignment is enabled OR not enabled but we have some assignment data as an obj.\n\t\t\t\t\treturn ( 'yes' === model.get( 'assignment_enabled' ) || ! _.isEmpty( model.get( 'assignment' ) ) );\n\t\t\t\t},\n\t\t\t\tmodel: 'llms_assignment',\n\t\t\t\ttype: 'model',\n\t\t\t};\n\n\t\t},\n\n\t}, Relationships, Utilities ) );\n\n} );\n\n","/**\n * Lessons Collection\n *\n * @since 3.13.0\n * @version 3.17.0\n */\ndefine( 'Collections/Lessons',[ 'Models/Lesson' ], function( model ) {\n\n\treturn Backbone.Collection.extend( {\n\n\t\t/**\n\t\t * Model for collection items\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\tmodel: model,\n\n\t\t/**\n\t\t * Initializer\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\t// reorder called by LessonList view when sortable drops occur\n\t\t\tthis.on( 'reorder', this.on_reorder );\n\n\t\t\t// when a lesson is added or removed, update order\n\t\t\tthis.on( 'add', this.on_reorder );\n\t\t\tthis.on( 'remove', this.on_reorder );\n\n\t\t},\n\n\t\t/**\n\t\t * On lesson reorder callback\n\t\t *\n\t\t * Update the order attr of each lesson to reflect the new lesson order\n\t\t * Validate prerequisite (if set) and unset it if it's no longer a valid prereq\n\t\t *\n\t\t * @return void\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\ton_reorder: function() {\n\t\t\tthis.update_order();\n\t\t\tthis.validate_prereqs();\n\t\t},\n\n\t\t/**\n\t\t * Update lesson order attribute of all lessons when lessons are reordered\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tupdate_order: function() {\n\n\t\t\tthis.each( function( lesson ) {\n\t\t\t\tlesson.set( 'order', this.indexOf( lesson ) + 1 );\n\t\t\t}, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Validate prerequisite (if set) and unset it if it's no longer a valid prereq\n\t\t *\n\t\t * @return void\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tvalidate_prereqs: function() {\n\n\t\t\tthis.each( function( lesson ) {\n\n\t\t\t\t// validate prereqs\n\t\t\t\tif ( 'yes' === lesson.get( 'has_prerequisite' ) ) {\n\t\t\t\t\tvar valid = _.pluck( _.flatten( _.pluck( lesson.get_available_prereq_options(), 'options' ) ), 'key' );\n\t\t\t\t\tif ( -1 === valid.indexOf( lesson.get( 'prerequisite' ) * 1 ) ) {\n\t\t\t\t\t\tlesson.set( {\n\t\t\t\t\t\t\tprerequisite: 0,\n\t\t\t\t\t\t\thas_prerequisite: 'no',\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}, this );\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Quiz Question Type Collection\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Collections/QuestionTypes',[ 'Models/QuestionType' ], function( model ) {\n\n\treturn Backbone.Collection.extend( {\n\n\t\t/**\n\t\t * Model for collection items\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\tmodel: model,\n\n\t\t/**\n\t\t * Initializer\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.on( 'add', this.comparator );\n\t\t\tthis.on( 'remove', this.comparator );\n\n\t\t},\n\n\t\t/**\n\t\t * Comparator (sorts collection)\n\t\t *\n\t\t * @param obj model QuestionType model\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tcomparator: function( model ) {\n\n\t\t\treturn model.get( 'group' ).order;\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Section Model\n *\n * @since 3.16.0\n * @version 4.20.0\n */\ndefine( 'Models/Section',[ 'Collections/Lessons', 'Models/_Relationships' ], function( Lessons, Relationships ) {\n\n\treturn Backbone.Model.extend( _.defaults( {\n\n\t\trelationships: {\n\t\t\tparent: {\n\t\t\t\tmodel: 'course',\n\t\t\t\ttype: 'model',\n\t\t\t},\n\t\t\tchildren: {\n\t\t\t\tlessons: {\n\t\t\t\t\tclass: 'Lessons',\n\t\t\t\t\tmodel: 'lesson',\n\t\t\t\t\ttype: 'collection',\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * New section defaults\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Object}\n\t\t */\n\t\tdefaults: function() {\n\t\t\treturn {\n\t\t\t\tid: _.uniqueId( 'temp_' ),\n\t\t\t\tlessons: [],\n\t\t\t\torder: this.collection ? this.collection.length + 1 : 1,\n\t\t\t\tparent_course: window.llms_builder.course.id,\n\t\t\t\ttitle: LLMS.l10n.translate( 'New Section' ),\n\t\t\t\ttype: 'section',\n\n\t\t\t\t// Expand the first 100 sections by default to avoid timeout issues.\n\t\t\t\t_expanded: ! this.collection || this.collection.length <= 100 ? true : false,\n\t\t\t\t_selected: false,\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.startTracking();\n\t\t\tthis.init_relationships();\n\n\t\t},\n\n\t\t/**\n\t\t * Add a lesson to the section\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.16.11 Unknown.\n\t\t *\n\t\t * @param {Object} data Hash of lesson data (creates new lesson)\n\t\t * or existing lesson as a Backbone.Model.\n\t\t * @param {Object} options Hash of options.\n\t\t * @return {Object} Backbone.Model of the new/updated lesson.\n\t\t */\n\t\tadd_lesson: function( data, options ) {\n\n\t\t\tdata = data || {};\n\t\t\toptions = options || {};\n\n\t\t\tif ( data instanceof Backbone.Model ) {\n\t\t\t\tdata.set( 'status', 'publish' );\n\t\t\t\tdata.set( 'parent_section', this.get( 'id' ) );\n\t\t\t\tdata.set_parent( this );\n\t\t\t} else {\n\t\t\t\tdata.status = 'publish';\n\t\t\t\tdata.parent_section = this.get( 'id' );\n\t\t\t}\n\n\t\t\treturn this.get( 'lessons' ).add( data, options );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the translated post type name for the model's type\n\t\t *\n\t\t * @since 3.16.12\n\t\t *\n\t\t * @param {Boolean} plural If true, returns the plural, otherwise returns singular.\n\t\t * @return {String}\n\t\t */\n\t\tget_l10n_type: function( plural ) {\n\n\t\t\tif ( plural ) {\n\t\t\t\treturn LLMS.l10n.translate( 'sections' );\n\t\t\t}\n\n\t\t\treturn LLMS.l10n.translate( 'section' );\n\t\t},\n\n\t\t/**\n\t\t * Get next section in the collection\n\t\t *\n\t\t * @since 3.16.11\n\t\t *\n\t\t * @param {boolean} circular If true handles the collection in a circle.\n\t\t * If current is the last section, returns the first section.\n\t\t * @return {Object}|false\n\t\t */\n\t\tget_next: function( circular ) {\n\t\t\treturn this._get_sibling( 'next', circular );\n\t\t},\n\n\t\t/**\n\t\t * Retrieve a reference to the parent course of the section\n\t\t *\n\t\t * @since 4.14.0\n\t\t *\n\t\t * @return {Object}\n\t\t */\n\t\tget_course: function() {\n\n\t\t\t// When working with an unsaved draft course the parent isn't properly set on the creation of a section.\n\t\t\tif ( ! this.get_parent() ) {\n\t\t\t\tthis.set_parent( window.llms_builder.CourseModel );\n\t\t\t}\n\n\t\t\treturn this.get_parent();\n\n\t\t},\n\n\t\t/**\n\t\t * Get prev section in the collection\n\t\t *\n\t\t * @since 3.16.11\n\t\t *\n\t\t * @param {Boolean} circular If true handles the collection in a circle.\n\t\t * If current is the first section, returns the last section.\n\t\t * @return {Object}|false\n\t\t */\n\t\tget_prev: function( circular ) {\n\t\t\treturn this._get_sibling( 'prev', circular );\n\t\t},\n\n\t\t/**\n\t\t * Get a sibling section\n\t\t *\n\t\t * @since 3.16.11\n\t\t * @since 4.20.0 Fix case when the last section was returned when looking for the prev of the first section and not `circular`.\n\t\t *\n\t\t * @param {String} direction Siblings direction [next|prev].\n\t\t * @param {Boolean} circular If true handles the collection in a circle.\n\t\t * If current is the last section, returns the first section.\n\t\t * If current is the first section, returns the last section.\n\t\t * @return {Object}|false\n\t\t */\n\t\t_get_sibling: function( direction, circular ) {\n\n\t\t\tcircular = ( 'undefined' === circular ) ? true : circular;\n\n\t\t\tvar max = this.collection.size() - 1,\n\t\t\t\tindex = this.collection.indexOf( this ),\n\t\t\t\tsibling_index;\n\n\t\t\tif ( 'next' === direction ) {\n\t\t\t\tsibling_index = index + 1;\n\t\t\t} else if ( 'prev' === direction ) {\n\t\t\t\tsibling_index = index - 1;\n\t\t\t}\n\n\t\t\t// Don't retrieve greater than max or less than min.\n\t\t\tif ( sibling_index <= max || sibling_index >= 0 ) {\n\n\t\t\t\treturn this.collection.at( sibling_index );\n\n\t\t\t} else if ( circular ) {\n\n\t\t\t\tif ( 'next' === direction ) {\n\t\t\t\t\treturn this.collection.first();\n\t\t\t\t} else if ( 'prev' === direction ) {\n\t\t\t\t\treturn this.collection.last();\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn false;\n\n\t\t},\n\n\t}, Relationships ) );\n\n} );\n\n","/**\n * Sections Collection\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Collections/Sections',[ 'Models/Section' ], function( model ) {\n\n\treturn Backbone.Collection.extend( {\n\n\t\t/**\n\t\t * Model for collection items\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\tmodel: model,\n\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tvar self = this;\n\n\t\t\t// reorder called by SectionList view when sortable drops occur\n\t\t\tthis.on( 'reorder', this.update_order );\n\n\t\t\t// when a section is added or removed, update order\n\t\t\tthis.on( 'add', this.update_order );\n\t\t\tthis.on( 'remove', this.update_order );\n\n\t\t},\n\n\t\t/**\n\t\t * Update the order attr of each section in the list to reflect the order of the collection\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_order: function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.each( function( section ) {\n\n\t\t\t\tsection.set( 'order', self.indexOf( section ) + 1 );\n\n\t\t\t} );\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Lessons Collection\n *\n * @since 3.13.0\n * @version 3.16.0\n */\ndefine( 'Collections/loader',[\n\t\t'Collections/Lessons',\n\t\t'Collections/QuestionChoices',\n\t\t'Collections/Questions',\n\t\t'Collections/QuestionTypes',\n\t\t'Collections/Sections'\n\t], function(\n\t\tLessons,\n\t\tQuestionChoices,\n\t\tQuestions,\n\t\tQuestionTypes,\n\t\tSections\n\t) {\n\n\t\treturn {\n\t\t\tLessons: Lessons,\n\t\t\tQuestionChoices: QuestionChoices,\n\t\t\tQuestions: Questions,\n\t\t\tQuestionTypes: QuestionTypes,\n\t\t\tSections: Sections,\n\t\t};\n\n} );\n\n","/**\n * Abstract LifterLMS Model\n *\n * @since 3.17.0\n * @version 3.17.0\n */\ndefine( 'Models/Abstract',[ 'Models/_Relationships', 'Models/_Utilities' ], function( Relationships, Utilities ) {\n\n\treturn Backbone.Model.extend( _.defaults( {}, Relationships, Utilities ) );\n\n} );\n\n","/**\n * Course Model.\n *\n * @since 3.16.0\n * @since 3.24.0 Added `get_total_points()` method.\n * @since 3.37.11 Use lesson author ID instead of author object when adding existing lessons to a course.\n * @version 5.4.0\n */\ndefine( 'Models/Course',[ 'Collections/Sections', 'Models/_Relationships', 'Models/_Utilities' ], function( Sections, Relationships, Utilities ) {\n\n\treturn Backbone.Model.extend( _.defaults( {\n\n\t\trelationships: {\n\t\t\tchildren: {\n\t\t\t\tsections: {\n\t\t\t\t\tclass: 'Sections',\n\t\t\t\t\tmodel: 'section',\n\t\t\t\t\ttype: 'collection',\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * New Course Defaults.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Object}\n\t\t */\n\t\tdefaults: function() {\n\t\t\treturn {\n\t\t\t\tedit_url: '',\n\t\t\t\tsections: [],\n\t\t\t\ttitle: 'New Course',\n\t\t\t\ttype: 'course',\n\t\t\t\tview_url: '',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Init.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.startTracking();\n\t\t\tthis.init_relationships();\n\n\t\t\t// Sidebar \"New Section\" button broadcast.\n\t\t\tBackbone.pubSub.on( 'add-new-section', this.add_section, this );\n\n\t\t\t// Sidebar \"New Lesson\" button broadcast.\n\t\t\tBackbone.pubSub.on( 'add-new-lesson', this.add_lesson, this );\n\n\t\t\tBackbone.pubSub.on( 'lesson-search-select', this.add_existing_lesson, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Add an existing lesson to the course.\n\t\t *\n\t\t * Duplicate a lesson from this or another course or attach an orphaned lesson.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.24.0 Unknown.\n\t\t * @since 3.37.11 Use the author id instead of the author object.\n\t\t * @since 5.4.0 Added filter hook 'llms_adding_existing_lesson_data'.\n\t\t * On cloning, duplicate assignments too, if assignment add-on active and assignment attached.\n\t\t *\n\t\t * @param {Object} lesson Lesson data obj.\n\t\t * @return {Void}\n\t\t */\n\t\tadd_existing_lesson: function( lesson ) {\n\n\t\t\tvar data = lesson.data;\n\n\t\t\tif ( 'clone' === lesson.action ) {\n\n\t\t\t\tdelete data.id;\n\n\t\t\t\t// If a quiz is attached, duplicate the quiz also.\n\t\t\t\tif ( data.quiz ) {\n\t\t\t\t\tdata.quiz = _.prepareQuizObjectForCloning( data.quiz );\n\t\t\t\t\tdata.quiz._questions_loaded = true;\n\t\t\t\t}\n\n\t\t\t\t// If assignment add-on active and assignment attached, duplicate the assignment too.\n\t\t\t\tif ( window.llms_builder.assignments && data.assignment ) {\n\t\t\t\t\tdata.assignment = _.prepareAssignmentObjectForCloning( data.assignment );\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tdata._forceSync = true;\n\n\t\t\t}\n\n\t\t\tdelete data.order;\n\t\t\tdelete data.parent_course;\n\t\t\tdelete data.parent_section;\n\n\t\t\t// Use author id instead of the lesson author object.\n\t\t\tdata = _.prepareExistingPostObjectDataForAddingOrCloning( data );\n\n\t\t\t/**\n\t\t\t * Filters the data of the existing lesson being added.\n\t\t\t *\n\t\t\t * @since 5.4.0\n\t\t\t *\n\t\t\t * @param {Object} data Lesson data.\n\t\t\t * @param {String} action Action being performed. [clone|attach].\n\t\t\t * @param {Object} course The lesson's course parent model.\n\t\t\t */\n\t\t\tdata = window.llms.hooks.applyFilters( 'llms_adding_existing_lesson_data', data, lesson.action, this );\n\n\t\t\tthis.add_lesson( data );\n\n\t\t},\n\n\t\t/**\n\t\t * Add a new lesson to the course.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @param {Object} data Lesson data.\n\t\t * @return {Object} Backbone.Model of the lesson.\n\t\t */\n\t\tadd_lesson: function( data ) {\n\n\t\t\tdata = data || {};\n\t\t\tvar options = {},\n\t\t\t\tsection;\n\n\t\t\tif ( ! data.parent_section ) {\n\t\t\t\tsection = this.get_selected_section();\n\t\t\t\tif ( ! section ) {\n\t\t\t\t\tsection = this.get( 'sections' ).last();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsection = this.get( 'sections' ).get( data.parent_section );\n\t\t\t}\n\n\t\t\tdata._selected = true;\n\n\t\t\tdata.parent_course = this.get( 'id' );\n\n\t\t\tvar lesson = section.add_lesson( data, options );\n\t\t\tBackbone.pubSub.trigger( 'new-lesson-added', lesson );\n\n\t\t\t// Expand the section.\n\t\t\tsection.set( '_expanded', true );\n\n\t\t\treturn lesson;\n\n\t\t},\n\n\t\t/**\n\t\t * Add a new section to the course.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @param {Object} data Section data.\n\t\t * @return {Void}\n\t\t */\n\t\tadd_section: function( data ) {\n\n\t\t\tdata = data || {};\n\t\t\tvar sections = this.get( 'sections' ),\n\t\t\t\toptions = {},\n\t\t\t\tselected = this.get_selected_section();\n\n\t\t\t// If a section is selected, add the new section after the currently selected one.\n\t\t\tif ( selected ) {\n\t\t\t\toptions.at = sections.indexOf( selected ) + 1;\n\t\t\t}\n\n\t\t\tsections.add( data, options );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the currently selected section in the course.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Object|undefined}\n\t\t */\n\t\tget_selected_section: function() {\n\n\t\t\treturn this.get( 'sections' ).find( function( model ) {\n\t\t\t\treturn model.get( '_selected' );\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the total number of points in the course.\n\t\t *\n\t\t * @since 3.24.0\n\t\t *\n\t\t * @return {Integer}\n\t\t */\n\t\tget_total_points: function() {\n\n\t\t\tvar points = 0;\n\n\t\t\tthis.get( 'sections' ).each( function( section ) {\n\t\t\t\tsection.get( 'lessons' ).each( function( lesson ) {\n\t\t\t\t\tvar lesson_points = lesson.get( 'points' );\n\t\t\t\t\tif ( ! _.isNumber( lesson_points ) ) {\n\t\t\t\t\t\tlesson_points = 0;\n\t\t\t\t\t}\n\t\t\t\t\tpoints += lesson_points * 1;\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\treturn points;\n\n\t\t},\n\n\t}, Relationships, Utilities ) );\n\n} );\n\n","/**\n * Load all models\n *\n * @return obj\n * @since 3.16.0\n * @version 3.17.0\n */\ndefine( 'Models/loader',[\n\t\t'Models/Abstract',\n\t\t'Models/Course',\n\t\t'Models/Image',\n\t\t'Models/Lesson',\n\t\t'Models/Question',\n\t\t'Models/QuestionChoice',\n\t\t'Models/QuestionType',\n\t\t'Models/Quiz',\n\t\t'Models/Section'\n\t],\n\tfunction(\n\t\tAbstract,\n\t\tCourse,\n\t\tImage,\n\t\tLesson,\n\t\tQuestion,\n\t\tQuestionChoice,\n\t\tQuestionType,\n\t\tQuiz,\n\t\tSection\n\t) {\n\n\t\treturn {\n\t\t\tAbstract: Abstract,\n\t\t\tCourse: Course,\n\t\t\tImage: Image,\n\t\t\tLesson: Lesson,\n\t\t\tQuestion: Question,\n\t\t\tQuestionChoice: QuestionChoice,\n\t\t\tQuestionType: QuestionType,\n\t\t\tQuiz: Quiz,\n\t\t\tSection: Section,\n\t\t};\n\n} );\n\n","/**\n * Detachable model\n *\n * @package LifterLMS/Scripts\n *\n * @since 3.16.12\n * @version 3.16.12\n */\n\ndefine( 'Views/_Detachable',[], function() {\n\n\treturn {\n\n\t\t/**\n\t\t * DOM Events\n\t\t *\n\t\t * @type {Object}\n\t\t * @since 3.16.12\n\t\t * @version 3.16.12\n\t\t */\n\t\tevents: {\n\t\t\t'click a[href=\"#llms-detach-model\"]': 'detach_model',\n\t\t\t'click button.llms-detach-model': 'detach_model',\n\t\t},\n\n\t\t/**\n\t\t * Detaches a model from it's parent (doesn't delete)\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.12\n\t\t * @version 3.16.12\n\t\t */\n\t\tdetach_model: function( event ) {\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\n\t\t\tvar msg = LLMS.l10n.replace( 'Are you sure you want to detach this %s?', {\n\t\t\t\t'%s': this.model.get_l10n_type(),\n\t\t\t} );\n\n\t\t\tif ( window.confirm( msg ) ) {\n\n\t\t\t\tif ( this.model.collection ) {\n\t\t\t\t\tthis.model.collection.remove( this.model );\n\t\t\t\t}\n\n\t\t\t\t// publish global event\n\t\t\t\tBackbone.pubSub.trigger( 'model-detached', this.model );\n\n\t\t\t\t// trigger local event so extending views can run other actions where necessary\n\t\t\t\tthis.trigger( 'model-trashed', this.model );\n\n\t\t\t}\n\n\t\t},\n\n\t}\n\n} );\n\n","/**\n * Handles UX and Events for inline editing of views\n *\n * Use with a Model's View\n * Allows editing model.title field via .llms-editable-title elements\n *\n * @package LifterLMS/Scripts\n *\n * @since 3.16.0\n * @since 3.25.4 Unknown\n * @since 3.37.11 Replace reference to `wp.editor` with `_.getEditor()` helper.\n * @version 3.37.11\n */\ndefine( 'Views/_Editable',[], function() {\n\n\treturn {\n\n\t\tmedia_lib: null,\n\n\t\t/**\n\t\t * DOM Events\n\t\t *\n\t\t * @type {Object}\n\t\t * @since 3.16.0\n\t\t * @version 3.17.8\n\t\t */\n\t\tevents: {\n\t\t\t'click .llms-add-image': 'open_media_lib',\n\t\t\t'click a[href=\"#llms-edit-slug\"]': 'make_slug_editable',\n\t\t\t'click a[href=\"#llms-remove-image\"]': 'remove_image',\n\t\t\t'change .llms-editable-select select': 'on_select',\n\t\t\t'change .llms-switch input[type=\"checkbox\"]': 'toggle_switch',\n\t\t\t'change .llms-editable-radio input': 'on_radio_select',\n\t\t\t'focusin .llms-input': 'on_focus',\n\t\t\t'focusout .llms-input': 'on_blur',\n\t\t\t'keydown .llms-input': 'on_keydown',\n\t\t\t'input .llms-input[type=\"number\"]': 'on_blur',\n\t\t\t'paste .llms-input[data-formatting]': 'on_paste',\n\t\t},\n\n\t\t/**\n\t\t * Retrieve a list of allowed tags for a given element\n\t\t *\n\t\t * @param obj $el jQuery selector for the element\n\t\t * @return array\n\t\t * @since 3.16.0\n\t\t * @version 3.17.8\n\t\t */\n\t\tget_allowed_tags: function( $el ) {\n\n\t\t\tif ( $el.attr( 'data-formatting' ) ) {\n\t\t\t\treturn _.map( $el.attr( 'data-formatting' ).split( ',' ), function( tag ) {\n\t\t\t\t\treturn tag.trim();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn [ 'b', 'i', 'u', 'strong', 'em' ];\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the content of an element\n\t\t *\n\t\t * @param obj $el jQuery object of the element\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.17.8\n\t\t */\n\t\tget_content: function( $el ) {\n\n\t\t\tif ( 'INPUT' === $el[0].tagName ) {\n\t\t\t\treturn $el.val();\n\t\t\t}\n\n\t\t\tif ( ! $el.attr( 'data-formatting' ) && ! $el.hasClass( 'ql-editor' ) ) {\n\t\t\t\treturn $el.text();\n\t\t\t}\n\n\t\t\treturn _.stripFormatting( $el.html(), this.get_allowed_tags( $el ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if changes have been made to the element\n\t\t *\n\t\t * @param {[obj]} event js event object\n\t\t * @return {Boolean} true when changes have been made, false otherwise\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\thas_changed: function( event ) {\n\t\t\tvar $el = $( event.target );\n\t\t\treturn ( $el.attr( 'data-original-content' ) !== this.get_content( $el ) );\n\t\t},\n\n\t\t/**\n\t\t * Ensure that new content is at least 1 character long\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return boolean\n\t\t * @since 3.16.0\n\t\t * @version 3.17.2\n\t\t */\n\t\tis_valid: function( event ) {\n\n\t\t\tvar self = this,\n\t\t\t\t$el = $( event.target ),\n\t\t\t\tcontent = this.get_content( $el ),\n\t\t\t\ttype = $el.attr( 'data-type' );\n\n\t\t\tif ( ( $el.attr( 'required' ) || $el.attr( 'data-required' ) ) && content.length < 1 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif ( 'url' === type || 'video' === type ) {\n\t\t\t\tif ( ! this._validate_url( this.get_content( $el ) ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t} else if ( 'permalink' === type ) {\n\n\t\t\t\tLLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'llms_builder',\n\t\t\t\t\t\taction_type: 'get_permalink',\n\t\t\t\t\t\tcourse_id: window.llms_builder.CourseModel.get( 'id' ),\n\t\t\t\t\t\tid: self.model.get( 'id' ),\n\t\t\t\t\t\ttitle: self.model.get( 'title' ),\n\t\t\t\t\t\tslug: content,\n\t\t\t\t\t},\n\t\t\t\t\tbeforeSend: function() {\n\t\t\t\t\t\tLLMS.Spinner.start( $el.closest( '.llms-editable-toggle-group' ), 'small' );\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\t\tif ( r.permalink && r.slug ) {\n\t\t\t\t\t\t\tself.model.set( 'permalink', r.permalink );\n\t\t\t\t\t\t\tself.model.set( 'name', r.slug );\n\t\t\t\t\t\t\tself.render();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t},\n\n\t\t/**\n\t\t * Initialize datepicker elements\n\t\t *\n\t\t * @return void\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tinit_datepickers: function() {\n\n\t\t\tthis.$el.find( '.llms-editable-date input' ).each( function() {\n\n\t\t\t\t$( this ).datetimepicker( {\n\t\t\t\t\tformat: $( this ).attr( 'data-date-format' ) || 'Y-m-d h:i A',\n\t\t\t\t\tdatepicker: ( undefined === $( this ).attr( 'data-date-datepicker' ) ) ? true : ( 'true' == $( this ).attr( 'data-date-datepicker' ) ),\n\t\t\t\t\ttimepicker: ( undefined === $( this ).attr( 'data-date-timepicker' ) ) ? true : ( 'true' == $( this ).attr( 'data-date-timepicker' ) ),\n\t\t\t\t\tonClose: function( current_time, $input ) {\n\t\t\t\t\t\t$input.blur();\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Initialize elements that allow inline formatting\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinit_formatting_els: function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.$el.find( '.llms-input-formatting[data-formatting]' ).each( function() {\n\n\t\t\t\tvar formatting = $( this ).attr( 'data-formatting' ).split( ',' ),\n\t\t\t\t\tattr = $( this ).attr( 'data-attribute' );\n\n\t\t\t\tvar ed = new Quill( this, {\n\t\t\t\t\tmodules: {\n\t\t\t\t\t\ttoolbar: [ formatting ],\n\t\t\t\t\t\tkeyboard: {\n\t\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\t\ttab: {\n\t\t\t\t\t\t\t\t\tkey: 9,\n\t\t\t\t\t\t\t\t\thandler: function( range, context ) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t13: {\n\t\t\t\t\t\t\t\t\tkey: 13,\n\t\t\t\t\t\t\t\t\thandler: function( range, context ) {\n\t\t\t\t\t\t\t\t\t\ted.root.blur();\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tplaceholder: $( this ).attr( 'data-placeholder' ),\n\t\t\t\t\ttheme: 'bubble',\n\t\t\t\t} );\n\n\t\t\t\ted.on( 'text-change', function( delta, oldDelta, source ) {\n\t\t\t\t\tself.model.set( attr, self.get_content( $( ed.root ) ) );\n\t\t\t\t} );\n\n\t\t\t\tBackbone.pubSub.trigger( 'formatting-ed-init', ed, $( this ), self );\n\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Initialize editable select elements\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.25.4\n\t\t */\n\t\tinit_selects: function() {\n\n\t\t\tthis.$el.find( '.llms-editable-select select' ).llmsSelect2( {\n\t\t\t\twidth: '100%',\n\t\t\t} ).trigger( 'change' );\n\n\t\t},\n\n\t\t/**\n\t\t * Blur/focusout function for .llms-editable-title elements\n\t\t * Automatically saves changes if changes have been made\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.6\n\t\t */\n\t\ton_blur: function( event ) {\n\n\t\t\tevent.stopPropagation();\n\n\t\t\tthis.model.set( '_has_focus', false, { silent: true } );\n\n\t\t\tvar self = this,\n\t\t\t\t$el = $( event.target ),\n\t\t\t\tchanged = this.has_changed( event );\n\n\t\t\tif ( changed ) {\n\n\t\t\t\tif ( ! self.is_valid( event ) ) {\n\t\t\t\t\tself.revert_edits( event );\n\t\t\t\t} else {\n\t\t\t\t\tthis.save_edits( event );\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Focus event for editable inputs\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.6\n\t\t * @version 3.16.6\n\t\t */\n\t\ton_focus: function( event ) {\n\n\t\t\tevent.stopPropagation();\n\t\t\tthis.model.set( '_has_focus', true, { silent: true } );\n\n\t\t},\n\n\t\t/**\n\t\t * Handle content pasted into contenteditable fields\n\t\t * This will ensure that HTML from RTF editors isn't pasted into the dom\n\t\t *\n\t\t * @param obj event js event obj\n\t\t * @return void\n\t\t * @since 3.17.8\n\t\t * @version 3.17.8\n\t\t */\n\t\ton_paste: function( event ) {\n\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\n\t\t\tvar text = ( event.originalEvent || event ).clipboardData.getData( 'text/plain' );\n\t\t\twindow.document.execCommand( 'insertText', false, text );\n\n\t\t},\n\n\t\t/**\n\t\t * Change event for selectables\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ton_select: function( event ) {\n\n\t\t\tvar $el = $( event.target ),\n\t\t\t\tmulti = ( $el.attr( 'multiple' ) ),\n\t\t\t\tattr = $el.attr( 'name' ),\n\t\t\t\t$selected = $el.find( 'option:selected' ),\n\t\t\t\tval;\n\n\t\t\tif ( multi ) {\n\t\t\t\tval = [];\n\t\t\t\tval = $selected.map( function() {\n\t\t\t\t\treturn this.value;\n\t\t\t\t} ).get();\n\t\t\t} else {\n\t\t\t\tval = $selected[0].value;\n\t\t\t}\n\n\t\t\tthis.model.set( attr, val );\n\n\t\t},\n\n\t\t/**\n\t\t * Change event for radio element groups\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.17.6\n\t\t * @version 3.17.6\n\t\t */\n\t\ton_radio_select: function( event ) {\n\n\t\t\tvar $el = $( event.target ),\n\t\t\t\tattr = $el.attr( 'name' ),\n\t\t\t\tval = $el.val();\n\n\t\t\tthis.model.set( attr, val );\n\n\t\t},\n\n\t\t/**\n\t\t * Keydown function for .llms-editable-title elements\n\t\t * Blurs\n\t\t *\n\t\t * @param {obj} event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.17.8\n\t\t */\n\t\ton_keydown: function( event ) {\n\n\t\t\tevent.stopPropagation();\n\n\t\t\tvar self = this,\n\t\t\t\tkey = event.which || event.keyCode,\n\t\t\t\tshift = event.shiftKey;\n\t\t\t\t// ctrl = event.metaKey || event.ctrlKey;\n\n\t\t\tswitch ( key ) {\n\n\t\t\t\tcase 13: // enter\n\t\t\t\t\t// shift + enter should add a return\n\t\t\t\t\tif ( ! shift ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tevent.target.blur();\n\t\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t\tcase 27: // escape\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.revert_edits( event );\n\t\t\t\t\tevent.target.blur();\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Open the WP media lib\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.6\n\t\t */\n\t\topen_media_lib: function( event ) {\n\n\t\t\tevent.stopPropagation();\n\n\t\t\tvar self = this,\n\t\t\t\t$el = $( event.currentTarget );\n\n\t\t\tif ( self.media_lib ) {\n\n\t\t\t\tself.media_lib.uploader.uploader.param( 'post_id' );\n\n\t\t\t} else {\n\n\t\t\t\tself.media_lib = wp.media.frames.file_frame = wp.media( {\n\t\t\t\t\ttitle: LLMS.l10n.translate( 'Select an image' ),\n\t\t\t\t\tbutton: {\n\t\t\t\t\t\ttext: LLMS.l10n.translate( 'Use this image' ),\n\t\t\t\t\t},\n\t\t\t\t\tmultiple: false\t// Set to true to allow multiple files to be selected\n\t\t\t\t} );\n\n\t\t\t\tself.media_lib.on( 'select', function() {\n\n\t\t\t\t\tvar size = $el.attr( 'data-image-size' ),\n\t\t\t\t\t\tattachment = self.media_lib.state().get( 'selection' ).first().toJSON(),\n\t\t\t\t\t\timage = self.model.get( $el.attr( 'data-attribute' ) ),\n\t\t\t\t\t\turl;\n\n\t\t\t\t\tif ( size && attachment.sizes[ size ] ) {\n\t\t\t\t\t\turl = attachment.sizes[ size ].url;\n\t\t\t\t\t} else {\n\t\t\t\t\t\turl = attachment.url;\n\t\t\t\t\t}\n\n\t\t\t\t\timage.set( {\n\t\t\t\t\t\tid: attachment.id,\n\t\t\t\t\t\tsrc: url,\n\t\t\t\t\t} );\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\t// This flag is used to protect the media files uploaded via places like the Quiz questions (Picture type)\n\t\t\tself.media_lib.uploader.options.uploader.params.llms = 1;\n\n\t\t\tself.media_lib.open();\n\n\t\t},\n\n\t\t/**\n\t\t * Click event to remove an image\n\t\t *\n\t\t * @param obj event js event obj\n\t\t * @return voids\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tremove_image: function( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.model.get( $( event.currentTarget ).attr( 'data-attribute' ) ).set( {\n\t\t\t\tid: '',\n\t\t\t\tsrc: '',\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Helper to undo changes\n\t\t * Bound to \"escape\" key via on_keydown function\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trevert_edits: function( event ) {\n\t\t\tvar $el = $( event.target ),\n\t\t\t\tval = $el.attr( 'data-original-content' );\n\t\t\t$el.html( val );\n\t\t},\n\n\t\t/**\n\t\t * Sync changes to the model and DB\n\t\t *\n\t\t * @param {obj} event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tsave_edits: function( event ) {\n\n\t\t\tvar $el = $( event.target ),\n\t\t\t\tval = this.get_content( $el );\n\n\t\t\tthis.model.set( $el.attr( 'data-attribute' ), val );\n\n\t\t},\n\n\t\t/**\n\t\t * Change event for a switch element\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.17.0\n\t\t */\n\t\ttoggle_switch: function( event ) {\n\n\t\t\tevent.stopPropagation();\n\t\t\tvar $el = $( event.target ),\n\t\t\t\tattr = $el.attr( 'name' ),\n\t\t\t\trerender = $el.attr( 'data-rerender' ),\n\t\t\t\tval;\n\n\t\t\tif ( $el.is( ':checked' ) ) {\n\t\t\t\tval = $el.attr( 'data-on' ) ? $el.attr( 'data-on' ) : 'yes';\n\t\t\t} else {\n\t\t\t\tval = $el.attr( 'data-off' ) ? $el.attr( 'data-off' ) : 'no';\n\t\t\t}\n\n\t\t\tif ( -1 !== attr.indexOf( '.' ) ) {\n\n\t\t\t\tvar split = attr.split( '.' );\n\n\t\t\t\tif ( 'parent' === split[0] ) {\n\t\t\t\t\tthis.model.get_parent().set( split[1], val );\n\t\t\t\t} else {\n\t\t\t\t\tthis.model.get( split[0] ).set( split[1], val );\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tthis.model.set( attr, val );\n\n\t\t\t}\n\n\t\t\tthis.trigger( attr.replace( '.', '-' ) + '_toggle', val );\n\n\t\t\tif ( ! rerender || 'yes' === rerender ) {\n\t\t\t\tvar self = this;\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\tself.render();\n\t\t\t\t}, 100 );\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Initializes a WP Editor on a textarea\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.37.11 Replace reference to `wp.editor` with `_.getEditor()` helper.\n\t\t *\n\t\t * @param {String} id CSS ID of the editor (don't include #).\n\t\t * @param {Object} settings Optional object of settings to pass to wp.oldEditor.initialize().\n\t\t * @return {Void}\n\t\t */\n\t\tinit_editor: function( id, settings ) {\n\n\t\t\tsettings = settings || {};\n\n\t\t\tvar editor = _.getEditor();\n\n\t\t\teditor.remove( id );\n\n\t\t\teditor.initialize( id, $.extend( true, editor.getDefaultSettings(), {\n\t\t\t\tmediaButtons: true,\n\t\t\t\ttinymce: {\n\t\t\t\t\ttoolbar1: 'bold,italic,strikethrough,bullist,numlist,blockquote,hr,alignleft,aligncenter,alignright,link,unlink,wp_adv',\n\t\t\t\t\ttoolbar2: 'formatselect,underline,alignjustify,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help',\n\t\t\t\t\tsetup: _.bind( this.on_editor_ready, this ),\n\t\t\t\t}\n\t\t\t}, settings ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Setup a permalink editor to allow editing of a permalink\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.6\n\t\t * @version 3.16.6\n\t\t */\n\t\tmake_slug_editable: function( event ) {\n\n\t\t\tvar self = this,\n\t\t\t\t$btn = $( event.currentTarget ),\n\t\t\t\t$link = $btn.prevAll( 'a' ),\n\t\t\t\t$input = $btn.prev( 'input.permalink' ),\n\t\t\t\tfull_url = $link.attr( 'href' ),\n\t\t\t\tslug = $input.val(),\n\t\t\t\tshort_url = full_url.replace( slug, '' );\n\n\t\t\t// hide the button\n\t\t\t$btn.hide();\n\n\t\t\t// make the link not clickable\n\t\t\t$link.css( {\n\t\t\t\tcolor: '#999',\n\t\t\t\t'pointer-events': 'none',\n\t\t\t\t'text-decoration': 'none',\n\t\t\t} );\n\n\t\t\t// remove the current slug & trailing slash from the URL\n\t\t\t$link.text( short_url.substring( 0, short_url.length - 1 ) );\n\n\t\t\t// focus in on the field\n\t\t\t$input.show().focus();\n\n\t\t},\n\n\t\t/**\n\t\t * Callback function called after initialization of an editor\n\t\t *\n\t\t * Updates UI if a label is present.\n\t\t *\n\t\t * Binds a change event to ensure editor changes are saved to the model.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.17.1 Uknown.\n\t\t * @since 3.37.11 Replace references to `wp.editor` with `_.getEditor()` helper.\n\t\t *\n\t\t * @param {Object} editor TinyMCE Editor instance.\n\t\t * @return {Void}\n\t\t */\n\t\ton_editor_ready: function( editor ) {\n\n\t\t\tvar self = this,\n\t\t\t\t$ed = $( '#' + editor.id ),\n\t\t\t\t$parent = $ed.closest( '.llms-editable-editor' ),\n\t\t\t\t$label = $parent.find( '.llms-label' ),\n\t\t\t\tprop = $ed.attr( 'data-attribute' )\n\n\t\t\tif ( $label.length ) {\n\t\t\t\t$label.prependTo( $parent.find( '.wp-editor-tools' ) );\n\t\t\t}\n\n\t\t\t// save changes to the model via Visual ed\n\t\t\teditor.on( 'change', function( event ) {\n\t\t\t\tself.model.set( prop, _.getEditor().getContent( editor.id ) );\n\t\t\t} );\n\n\t\t\t// save changes via Text ed\n\t\t\t$ed.on( 'input', function( event ) {\n\t\t\t\tself.model.set( prop, $ed.val() );\n\t\t\t} );\n\n\t\t\t// trigger an input on the Text ed when quicktags buttons are clicked\n\t\t\t$parent.on( 'click', '.quicktags-toolbar .ed_button', function() {\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t$ed.trigger( 'input' );\n\t\t\t\t}, 10 );\n\t\t\t} );\n\n\t\t},\n\n\t\t_validate_url: function( str ) {\n\n\t\t\tvar a = document.createElement( 'a' );\n\t\t\ta.href = str;\n\t\t\treturn ( a.host && a.host !== window.location.host );\n\n\t\t}\n\n\t};\n\n} );\n\n","/**\n * _receive override for Backbone.CollectionView core\n * enables connection with jQuery UI draggable buttons\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/_Receivable',[], function() {\n\n\treturn {\n\n\t\t/**\n\t\t * Overloads the function from Backbone.CollectionView core because it doesn't properly handle\n\t\t * receives from a jQuery UI draggable object\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @param obj ui jQuery UI object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_receive : function( event, ui ) {\n\n\t\t\t// came from sidebar drag\n\t\t\tif ( ui.sender.hasClass( 'ui-draggable' ) ) {\n\t\t\t\tvar index = this._getContainerEl().children().index( ui.helper );\n\t\t\t\tui.helper.remove(); // remove the helper\n\t\t\t\tthis.collection.add( {}, { at: index } );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar senderListEl = ui.sender;\n\t\t\tvar senderCollectionListView = senderListEl.data( 'view' );\n\t\t\tif ( ! senderCollectionListView || ! senderCollectionListView.collection ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar newIndex = this._getContainerEl().children().index( ui.item );\n\t\t\tvar modelReceived = senderCollectionListView.collection.get( ui.item.attr( 'data-model-cid' ) );\n\t\t\tsenderCollectionListView.collection.remove( modelReceived );\n\t\t\tthis.collection.add( modelReceived, { at : newIndex } );\n\t\t\tmodelReceived.collection = this.collection; // otherwise will not get properly set, since modelReceived.collection might already have a value.\n\t\t\tthis.setSelectedModel( modelReceived );\n\t\t},\n\n\t}\n\n} );\n\n","/**\n * Shiftable view mixin function\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/_Shiftable',[], function() {\n\n\treturn {\n\n\t\t/**\n\t\t * Conditionally hide action buttons based on section position in collection\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tmaybe_hide_shiftable_buttons: function() {\n\n\t\t\tif ( ! this.model.collection ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar type = this.model.get( 'type' );\n\n\t\t\tif ( this.model.collection.first() === this.model ) {\n\t\t\t\tthis.$el.find( '.shift-up--' + type ).hide();\n\t\t\t} else if ( this.model.collection.last() === this.model ) {\n\t\t\t\tthis.$el.find( '.shift-down--' + type ).hide();\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Move an item in a collection from one position to another\n\t\t *\n\t\t * @param int old_index current (old) index within the collection\n\t\t * @param int new_index desired (new) index within the collection\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tshift: function( old_index, new_index ) {\n\n\t\t\tvar collection = this.model.collection;\n\n\t\t\tcollection.remove( this.model );\n\t\t\tcollection.add( this.model, { at: new_index } );\n\t\t\tcollection.trigger( 'reorder' );\n\n\t\t},\n\n\t\t/**\n\t\t * Move an item down the tree one position\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tshift_down: function( e ) {\n\n\t\t\te.preventDefault();\n\t\t\tvar index = this.model.collection.indexOf( this.model );\n\t\t\tthis.shift( index, index + 1 );\n\n\t\t},\n\n\t\t/**\n\t\t * Move an item up the tree one position\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tshift_up: function( e ) {\n\n\t\t\te.preventDefault();\n\t\t\tvar index = this.model.collection.indexOf( this.model );\n\t\t\tthis.shift( index, index - 1 );\n\n\t\t},\n\n\t};\n\n} );\n\n","/**\n * Subview utility mixin\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/_Subview',[], function() {\n\n\treturn {\n\n\t\tsubscriptions: {},\n\n\t\t/**\n\t\t * Name of the current subview\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tstate: '',\n\n\t\t/**\n\t\t * Object of subview data\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tviews: {},\n\n\t\t/**\n\t\t * Retrieve a subview by name from this.views\n\t\t *\n\t\t * @param string name name of the subview\n\t\t * @return obl|false\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_subview: function( name ) {\n\n\t\t\tif ( this.views[ name ] ) {\n\t\t\t\treturn this.views[ name ];\n\t\t\t}\n\n\t\t\treturn false;\n\n\t\t},\n\n\t\tevents_subscribe: function( events ) {\n\n\t\t\t_.each( events, function( func, event ) {\n\n\t\t\t\tthis.subscriptions[ event ] = func;\n\t\t\t\tBackbone.pubSub.on( event, func, this );\n\n\t\t\t}, this );\n\n\t\t},\n\n\t\tevents_unsubscribe: function() {\n\n\t\t\t_.each( this.subscriptions, function( func, event ) {\n\n\t\t\t\tBackbone.pubSub.off( event, func, this );\n\t\t\t\tdelete this.subscriptions[ event ];\n\n\t\t\t}, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Remove a single subview (and all it's subviews) by name\n\t\t *\n\t\t * @param string name name of the subview\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tremove_subview: function( name ) {\n\n\t\t\tvar view = this.get_subview( name );\n\n\t\t\tif ( ! view ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( view.instance ) {\n\n\t\t\t\t// remove the subviews if the view has subviews\n\t\t\t\tif ( ! _.isEmpty( view.instance.views ) ) {\n\t\t\t\t\tview.instance.events_unsubscribe();\n\t\t\t\t\tview.instance.remove_subviews();\n\t\t\t\t}\n\n\t\t\t\tview.instance.off();\n\t\t\t\tview.instance.off( null, null, null );\n\t\t\t\tview.instance.remove();\n\t\t\t\tview.instance.undelegateEvents();\n\n\t\t\t\t// _.each( view.instance, function( val, key ) {\n\t\t\t\t// delete view.instance[ key ];\n\t\t\t\t// } );\n\n\t\t\t\tview.instance = null;\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Remove all subviews (and all the subviews of those subviews)\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tremove_subviews: function() {\n\n\t\t\t_.each( this.views, function( data, name ) {\n\n\t\t\t\tthis.remove_subview( name );\n\n\t\t\t}, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Render subviews based on current state\n\t\t *\n\t\t * @param obj view_data additional data to pass to the subviews\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender_subviews: function( view_data ) {\n\n\t\t\tview_data = view_data || {};\n\n\t\t\t_.each( this.views, function( data, name ) {\n\n\t\t\t\tif ( this.state === data.state ) {\n\n\t\t\t\t\tthis.render_subview( name, view_data );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.remove_subview( name );\n\n\t\t\t\t}\n\n\t\t\t}, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Render a single subview by name\n\t\t *\n\t\t * @param string name name of the subview\n\t\t * @param obj view_data additional data to pass to the subview initializer\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender_subview: function( name, view_data ) {\n\n\t\t\tvar view = this.get_subview( name );\n\n\t\t\tif ( ! view ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.remove_subview( name );\n\n\t\t\tif ( ! view.instance ) {\n\t\t\t\tview.instance = new view.class( view_data );\n\t\t\t}\n\n\t\t\tview.instance.render();\n\n\t\t},\n\n\t\t/**\n\t\t * Set the current subview\n\t\t * Must call render after!\n\t\t *\n\t\t * @param string state name of the state [builder|editor]\n\t\t * @return obj this for chaining\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tset_state: function ( state ) {\n\n\t\t\tthis.state = state;\n\t\t\treturn this;\n\n\t\t},\n\n\t}\n\n} );\n\n","/**\n * Trashable model\n *\n * @type {Object}\n * @since 3.16.12\n * @version 3.16.12\n */\ndefine( 'Views/_Trashable',[], function() {\n\n\treturn {\n\n\t\t/**\n\t\t * DOM Events\n\t\t *\n\t\t * @type {Object}\n\t\t * @since 3.16.12\n\t\t * @version 3.16.12\n\t\t */\n\t\tevents: {\n\t\t\t'click a[href=\"#llms-trash-model\"]': 'trash_model',\n\t\t\t'click button.llms-trash-model': 'trash_model',\n\t\t},\n\n\t\t/**\n\t\t * Remove a model from it's parent and delete it\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.12\n\t\t * @version 3.16.12\n\t\t */\n\t\ttrash_model: function( event ) {\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\n\t\t\tvar msg = LLMS.l10n.replace( 'Are you sure you want to move this %s to the trash?', {\n\t\t\t\t'%s': this.model.get_l10n_type(),\n\t\t\t} );\n\n\t\t\tif ( window.confirm( msg ) ) {\n\n\t\t\t\tif ( this.model.collection ) {\n\t\t\t\t\tthis.model.collection.remove( this.model );\n\t\t\t\t}\n\n\t\t\t\t// publish event\n\t\t\t\tBackbone.pubSub.trigger( 'model-trashed', this.model );\n\n\t\t\t\t// trigger local event so extending views can run other actions where necessary\n\t\t\t\tthis.trigger( 'model-trashed', this.model );\n\n\t\t\t}\n\n\t\t},\n\n\t}\n\n} );\n\n","/**\n * Load view mixins\n *\n * @package LifterLMS/Scripts\n *\n * @since 3.17.1\n * @version 3.17.1\n */\n\ndefine( 'Views/_loader',[\n\t\t'Views/_Detachable',\n\t\t'Views/_Editable',\n\t\t'Views/_Receivable',\n\t\t'Views/_Shiftable',\n\t\t'Views/_Subview',\n\t\t'Views/_Trashable'\n\t],\n\tfunction(\n\t\tDetachable,\n\t\tEditable,\n\t\tReceivable,\n\t\tShiftable,\n\t\tSubview,\n\t\tTrashable\n\t) {\n\n\t\treturn {\n\t\t\tDetachable: Detachable,\n\t\t\tEditable: Editable,\n\t\t\tReceivable: Receivable,\n\t\t\tShiftable: Shiftable,\n\t\t\tSubview: Subview,\n\t\t\tTrashable: Trashable,\n\t\t};\n\n} );\n\n","/**\n * Constructor functions for constructing models, views, and collections\n *\n * @since 3.16.0\n * @version 3.17.1\n */\ndefine( 'Controllers/Construct',[\n\t\t'Collections/loader',\n\t\t'Models/loader',\n\t\t'Views/_loader'\n\t], function(\n\t\tCollections,\n\t\tModels,\n\t\tViews\n\t) {\n\n\t\treturn function() {\n\n\t\t\t/**\n\t\t\t * Internal getter\n\t\t\t * Constructs new Collections, Models, and Views\n\t\t\t *\n\t\t\t * @param obj type type of object to construct [Collection,Model,View]\n\t\t\t * @param string name name of the object to construct\n\t\t\t * @param obj data object data to pass into the object's constructor\n\t\t\t * @param obj options object options to pass into the constructor\n\t\t\t * @return obj\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tfunction get( type, name, data, options ) {\n\n\t\t\t\tif ( ! type[ name ] ) {\n\t\t\t\t\tconsole.log( '\"' + name + '\" not found.' );\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn new type[ name ]( data, options );\n\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Instantiate a collection\n\t\t *\n\t\t\t * @param string name Collection class name (EG: \"Sections\")\n\t\t\t * @param array data Array of model objects to pass to the constructor\n\t\t\t * @param obj options Object of options to pass to the constructor\n\t\t\t * @return obj\n\t\t\t * @since 3.17.0\n\t\t\t * @version 3.17.0\n\t\t\t */\n\t\t\tthis.get_collection = function( name, data, options ) {\n\n\t\t\t\treturn get( Collections, name, data, options );\n\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Instantiate a model\n\t\t\t *\n\t\t\t * @param string name Model class name (EG: \"Section\")\n\t\t\t * @param obj data Object of model attributes to pass to the constructor\n\t\t\t * @param obj options Object of options to pass to the constructor\n\t\t\t * @return obj\n\t\t\t * @since 3.17.0\n\t\t\t * @version 3.17.0\n\t\t\t */\n\t\t\tthis.get_model = function( name, data, options ) {\n\n\t\t\t\treturn get( Models, name, data, options );\n\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Let 3rd parties extend a view using any of the mixin (_) views\n\t\t\t *\n\t\t\t * @param {obj} view base object used for the view\n\t\t\t * @param... {string} extends any number of strings that should be mixed into the view\n\t\t\t * @return obj\n\t\t\t * @since 3.17.1\n\t\t\t * @version 3.17.1\n\t\t\t */\n\t\t\tthis.extend_view = function() {\n\n\t\t\t\tvar view = arguments[0],\n\t\t\t\ti = 1;\n\n\t\t\t\twhile ( arguments[ i ] ) {\n\n\t\t\t\t\tvar classname = arguments[ i ];\n\t\t\t\t\tif ( Views[ classname ] ) {\n\n\t\t\t\t\t\tif ( view.events && Views[ classname ].events ) {\n\t\t\t\t\t\t\tview.events = _.defaults( view.events, Views[ classname ].events );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tview = _.defaults( view, Views[ classname ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\ti++;\n\t\t\t\t}\n\n\t\t\t\treturn Backbone.View.extend( view );\n\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Allows custom collection registration by extending the default BackBone collection\n\t\t\t *\n\t\t\t * @param string name model name\n\t\t\t * @param obj props properties to extend the collection with\n\t\t\t * @return void\n\t\t\t * @since 3.17.1\n\t\t\t * @version 3.17.1\n\t\t\t */\n\t\t\tthis.register_collection = function( name, props ) {\n\n\t\t\t\tCollections[ name ] = Backbone.Collection.extend( props );\n\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * Allows custom model registration by extending the default abstract model\n\t\t\t *\n\t\t\t * @param string name model name\n\t\t\t * @param obj props properties to extend the abstract model with\n\t\t\t * @return void\n\t\t\t * @since 3.17.0\n\t\t\t * @version 3.17.0\n\t\t\t */\n\t\t\tthis.register_model = function( name, props ) {\n\n\t\t\t\tModels[ name ] = Models['Abstract'].extend( props );\n\n\t\t\t};\n\n\t\t\treturn this;\n\n\t\t};\n\n} );\n\n","/**\n * LifterLMS Builder Debugging suite\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Controllers/Debug',[], function() {\n\n\treturn function( settings ) {\n\n\t\tvar self = this,\n\t\t\tenabled = settings.enabled || false;\n\n\t\t/**\n\t\t * Disable debugging\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tthis.disable = function() {\n\n\t\t\tself.log( 'LifterLMS Builder debugging disabled' );\n\t\t\tenabled = false;\n\n\t\t};\n\n\t\t/**\n\t\t * Enable debugging\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tthis.enable = function() {\n\n\t\t\tenabled = true;\n\t\t\tself.log( 'LifterLMS Builder debugging enabled' );\n\n\t\t};\n\n\t\t/**\n\t\t * General logging function\n\t\t * Logs to the js console only if logging is enabled\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tthis.log = function() {\n\n\t\t\tif ( ! enabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.each( arguments, function( data ) {\n\t\t\t\tconsole.log( data );\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Toggles current state of the logger on or off\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tthis.toggle = function() {\n\n\t\t\tif ( enabled ) {\n\t\t\t\tself.disable();\n\t\t\t} else {\n\t\t\t\tself.enable();\n\t\t\t}\n\n\t\t};\n\n\t\t// on startup, log a message if logging is enabled\n\t\tif ( enabled ) {\n\t\t\tself.enable();\n\t\t}\n\n\t}\n\n} );\n\n","/**\n * Model schema functions\n *\n * @since 3.17.0\n * @version 3.17.0\n */\ndefine( 'Controllers/Schemas',[], function() {\n\n\t/**\n\t * Main Schemas class\n\t *\n\t * @param obj schemas schemas definitions initialized via PHP filters\n\t * @return obj\n\t * @since 3.17.0\n\t * @version 3.17.0\n\t */\n\treturn function( schemas ) {\n\n\t\t// initialize any custom schemas defined via PHP\n\t\tvar custom_schemas = schemas;\n\t\t_.each( custom_schemas, function( type ) {\n\t\t\t_.each( type, function( schema ) {\n\t\t\t\tschema.custom = true;\n\t\t\t} );\n\t\t} );\n\n\t\t/**\n\t\t * Retrieve a schema for a given model by type\n\t\t * Extends default schemas definitions with custom 3rd party definitions\n\t\t *\n\t\t * @param obj schema default schema definition from the model (or empty object if none defined)\n\t\t * @param string model_type the model type ('lesson', 'quiz', etc)\n\t\t * @param obj model Instance of the Backbone.Model for the given model\n\t\t * @return obj\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tthis.get = function( schema, model_type, model ) {\n\n\t\t\t// extend the default schema with custom php schemas for the type if they exist\n\t\t\tif ( custom_schemas[ model_type ] ) {\n\t\t\t\tschema = _.extend( schema, custom_schemas[ model_type ] );\n\t\t\t}\n\n\t\t\treturn schema;\n\n\t\t};\n\n\t\treturn this;\n\n\t};\n\n} );\n\n","/**\n * Sync builder data to the server\n *\n * @since 3.16.0\n * @version 4.17.0\n */\ndefine( 'Controllers/Sync',[], function() {\n\n\treturn function( Course, settings ) {\n\n\t\tthis.saving = false;\n\n\t\tvar self = this,\n\t\t\tautosave = ( 'yes' === window.llms_builder.autosave ),\n\t\t\tcheck_interval = null,\n\t\t\tcheck_interval_ms = settings.check_interval_ms || ( ( 'yes' === window.llms_builder.autosave ) ? 10000 : 1000 ),\n\t\t\tdetached = new Backbone.Collection(),\n\t\t\ttrashed = new Backbone.Collection();\n\n\t\t/**\n\t\t * init\n\t\t *\n\t\t * @since 3.16.7\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tfunction init() {\n\n\t\t\t// determine if autosaving is possible\n\t\t\tif ( 'undefined' === typeof wp.heartbeat ) {\n\n\t\t\t\twindow.llms_builder.debug.log( 'WordPress Heartbeat disabled. Autosaving is disabled!' );\n\t\t\t\tautosave = false;\n\n\t\t\t}\n\n\t\t\t// setup the check interval\n\t\t\tif ( check_interval_ms ) {\n\t\t\t\tself.set_check_interval( check_interval_ms );\n\t\t\t}\n\n\t\t\t// warn when users attempt to leave the page\n\t\t\t$( window ).on( 'beforeunload', function() {\n\n\t\t\t\tif ( self.has_unsaved_changes() ) {\n\t\t\t\t\tcheck_for_changes();\n\t\t\t\t\treturn 'Are you sure you want to abandon your changes?';\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/*\n\t\t\t /$$ /$$ /$$ /$$\n\t\t\t |__/ | $$ | $$ |__/\n\t\t\t /$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$ | $$ /$$$$$$ /$$$$$$ /$$\n\t\t\t | $$| $$__ $$|_ $$_/ /$$__ $$ /$$__ $$| $$__ $$ |____ $$| $$ |____ $$ /$$__ $$| $$\n\t\t\t | $$| $$ \\ $$ | $$ | $$$$$$$$| $$ \\__/| $$ \\ $$ /$$$$$$$| $$ /$$$$$$$| $$ \\ $$| $$\n\t\t\t | $$| $$ | $$ | $$ /$$| $$_____/| $$ | $$ | $$ /$$__ $$| $$ /$$__ $$| $$ | $$| $$\n\t\t\t | $$| $$ | $$ | $$$$/| $$$$$$$| $$ | $$ | $$| $$$$$$$| $$ | $$$$$$$| $$$$$$$/| $$\n\t\t\t |__/|__/ |__/ \\___/ \\_______/|__/ |__/ |__/ \\_______/|__/ \\_______/| $$____/ |__/\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | $$\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | $$\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t |__/\n\t\t */\n\n\t\t/**\n\t\t * Adds error message(s) to the data object returned by heartbeat-tick\n\t\t *\n\t\t * @param obj data llms_builder data object from heartbeat-tick\n\t\t * @param string|array err error messages array or string\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tfunction add_error_msg( data, err ) {\n\n\t\t\tif ( 'success' === data.status ) {\n\t\t\t\tdata.message = [];\n\t\t\t}\n\n\t\t\tdata.status = 'error';\n\t\t\tif ( 'string' === typeof err ) {\n\t\t\t\terr = [ err ];\n\t\t\t}\n\t\t\tdata.message = data.message.concat( err );\n\n\t\t\treturn data;\n\n\t\t};\n\n\t\t/**\n\t\t * Publish sync status so other areas of the application can see what's happening here\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tfunction check_for_changes() {\n\n\t\t\tvar data = {};\n\t\t\tdata.changes = self.get_unsaved_changes();\n\t\t\tdata.has_unsaved_changes = self.has_unsaved_changes( data.changes );\n\t\t\tdata.saving = self.saving;\n\n\t\t\twindow.llms_builder.debug.log( '==== start changes check ====', data, '==== finish changes check ====' );\n\n\t\t\tBackbone.pubSub.trigger( 'current-save-status', data );\n\n\t\t};\n\n\t\t/**\n\t\t * Manually Save data via Admin AJAX when the heartbeat API has been disabled\n\t\t *\n\t\t * @since 3.16.7\n\t\t * @since 4.17.0 Fixed undefined variable error when logging an error response.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tfunction do_ajax_save() {\n\n\t\t\t// prevent simultaneous saves\n\t\t\tif ( self.saving ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar changes = self.get_unsaved_changes();\n\n\t\t\t// only send data if we have data to send\n\t\t\tif ( self.has_unsaved_changes( changes ) ) {\n\n\t\t\t\tchanges.id = Course.get( 'id' );\n\n\t\t\t\tLLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'llms_builder',\n\t\t\t\t\t\taction_type: 'ajax_save',\n\t\t\t\t\t\tcourse_id: changes.id,\n\t\t\t\t\t\tllms_builder: JSON.stringify( changes ),\n\t\t\t\t\t},\n\t\t\t\t\tbeforeSend: function() {\n\n\t\t\t\t\t\twindow.llms_builder.debug.log( '==== start do_ajax_save before ====', changes, '==== finish do_ajax_save before ====' );\n\n\t\t\t\t\t\tself.saving = true;\n\n\t\t\t\t\t\tBackbone.pubSub.trigger( 'heartbeat-send', self );\n\n\t\t\t\t\t},\n\t\t\t\t\terror: function( xhr, status, error ) {\n\n\t\t\t\t\t\twindow.llms_builder.debug.log( '==== start do_ajax_save error ====', xhr, '==== finish do_ajax_save error ====' );\n\n\t\t\t\t\t\tself.saving = false;\n\n\t\t\t\t\t\tBackbone.pubSub.trigger( 'heartbeat-tick', self, {\n\t\t\t\t\t\t\tstatus: 'error',\n\t\t\t\t\t\t\tmessage: xhr.responseText + ' (' + error + ' ' + status + ')',\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( res ) {\n\n\t\t\t\t\t\tif ( ! res.llms_builder ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twindow.llms_builder.debug.log( '==== start do_ajax_save success ====', res, '==== finish do_ajax_save success ====' );\n\n\t\t\t\t\t\tres.llms_builder = process_removals( res.llms_builder );\n\t\t\t\t\t\tres.llms_builder = process_updates( res.llms_builder );\n\n\t\t\t\t\t\tself.saving = false;\n\n\t\t\t\t\t\tBackbone.pubSub.trigger( 'heartbeat-tick', self, res.llms_builder );\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Retrieve all the attributes changed on a model since the last sync\n\t\t *\n\t\t * For a new model (a model with a temp ID) or a model where _forceSync has been defined ALL atts will be returned\n\t\t * For an existing model (without a temp ID) only retrieves changed attributes as tracked by Backbone.TrackIt\n\t\t *\n\t\t * This function excludes any attributes defined as child attributes via the models relationship settings\n\t\t *\n\t\t * @param obj model instance of a Backbone.Model\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.6\n\t\t */\n\t\tfunction get_changed_attributes( model ) {\n\n\t\t\tvar atts = {},\n\t\t\t\tsync_type;\n\n\t\t\t// don't save mid editing\n\t\t\tif ( model.get( '_has_focus' ) ) {\n\t\t\t\treturn atts;\n\t\t\t}\n\n\t\t\t// model hasn't been persisted to the database to get a real ID yet\n\t\t\t// send *all* of it's atts\n\t\t\tif ( has_temp_id( model ) || true === model.get( '_forceSync' ) ) {\n\n\t\t\t\tatts = _.clone( model.attributes );\n\t\t\t\tsync_type = 'full';\n\n\t\t\t\t// only send the changed atts\n\t\t\t} else {\n\n\t\t\t\tatts = model.unsavedAttributes();\n\t\t\t\tsync_type = 'partial';\n\n\t\t\t}\n\n\t\t\tvar exclude = ( model.get_relationships ) ? model.get_child_props() : [];\n\t\t\tatts = _.omit( atts, function( val, key ) {\n\n\t\t\t\t// exclude keys that start with an underscore which are used by the\n\t\t\t\t// application but don't need to be stored in the database\n\t\t\t\tif ( 0 === key.indexOf( '_' ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else if ( -1 !== exclude.indexOf( key ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\n\t\t\t} );\n\n\t\t\tif ( model.before_save ) {\n\t\t\t\tatts = model.before_save( atts, sync_type );\n\t\t\t}\n\n\t\t\treturn atts;\n\n\t\t};\n\n\t\t/**\n\t\t * Get all the changes to an object (either a Model or a Collection of models)\n\t\t * Returns only changes to models and the IDs of that model (should changes exist)\n\t\t * Uses get_changed_attributes() to determine if all atts or only changed atts are needed\n\t\t * Processes children intelligently to only return changed children rather than the entire collection of children\n\t\t *\n\t\t * @param obj object instance of a Backbone.Model or Backbone.Collection\n\t\t * @return obj|array\t \t\tif object is a model, returns an object\n\t\t * \tif object is a collection, returns an array of objects\n\t\t * @since 3.16.0\n\t\t * @version 3.16.11\n\t\t */\n\t\tfunction get_changes_to_object( object ) {\n\n\t\t\tvar changed_atts;\n\n\t\t\tif ( object instanceof Backbone.Model ) {\n\n\t\t\t\tchanged_atts = get_changed_attributes( object );\n\n\t\t\t\tif ( object.get_relationships ) {\n\n\t\t\t\t\t_.each( object.get_child_props(), function( prop ) {\n\n\t\t\t\t\t\tvar children = get_changes_to_object( object.get( prop ) );\n\t\t\t\t\t\tif ( ! _.isEmpty( children ) ) {\n\t\t\t\t\t\t\tchanged_atts[ prop ] = children;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t// if we have any data, add the id to the model\n\t\t\t\tif ( ! _.isEmpty( changed_atts ) ) {\n\t\t\t\t\tchanged_atts.id = object.get( 'id' );\n\t\t\t\t}\n\n\t\t\t} else if ( object instanceof Backbone.Collection ) {\n\n\t\t\t\tchanged_atts = [];\n\t\t\t\tobject.each( function( model ) {\n\t\t\t\t\tvar model_changes = get_changes_to_object( model );\n\t\t\t\t\tif ( ! _.isEmpty( model_changes ) ) {\n\t\t\t\t\t\tchanged_atts.push( model_changes );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn changed_atts;\n\n\t\t};\n\n\t\t/**\n\t\t * Determines if a model has a temporary ID or a real persisted ID\n\t\t *\n\t\t * @param obj model instance of a model\n\t\t * @return boolean\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tfunction has_temp_id( model ) {\n\n\t\t\treturn ( ! _.isNumber( model.id ) && 0 === model.id.indexOf( 'temp_' ) );\n\n\t\t};\n\n\t\t/**\n\t\t * Compares changes synced to the server against current model and restarts\n\t\t * tracking on elements that haven't changed since the last sync\n\t\t *\n\t\t * @param obj model instance of a Backbone.Model\n\t\t * @param obj data data set that was processed by the server\n\t\t * @return void\n\t\t * @since 3.16.11\n\t\t * @version 3.19.4\n\t\t */\n\t\tfunction maybe_restart_tracking( model, data ) {\n\n\t\t\tBackbone.pubSub.trigger( model.get( 'type' ) + '-maybe-restart-tracking', model, data );\n\n\t\t\tvar omit = [ 'id', 'orig_id' ];\n\n\t\t\tif ( model.get_relationships ) {\n\t\t\t\tomit.concat( model.get_child_props() );\n\t\t\t}\n\n\t\t\t_.each( _.omit( data, omit ), function( val, prop ) {\n\n\t\t\t\tif ( _.isEqual( model.get( prop ), val ) ) {\n\t\t\t\t\tdelete model._unsavedChanges[ prop ];\n\t\t\t\t\tmodel._originalAttrs[ prop ] = val;\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t// if syncing was forced, allow tracking to move forward as normal moving forward\n\t\t\tmodel.unset( '_forceSync' );\n\n\t\t};\n\n\t\t/**\n\t\t * Processes response data from heartbeat-tick related to trashing & detaching models\n\t\t * On success, removes from local removal collection\n\t\t * On error, appends error messages to the data object returned to UI for on-screen feedback\n\t\t *\n\t\t * @param obj data data.llms_builder object from heartbeat-tick response\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.17.1\n\t\t */\n\t\tfunction process_removals( data ) {\n\n\t\t\t// check removals for errors\n\t\t\tvar removals = {\n\t\t\t\tdetach: detached,\n\t\t\t\ttrash: trashed,\n\t\t\t};\n\n\t\t\t_.each( removals, function( coll, key ) {\n\n\t\t\t\tif ( data[ key ] ) {\n\n\t\t\t\t\tvar errors = [];\n\n\t\t\t\t\t_.each( data[ key ] , function( info ) {\n\n\t\t\t\t\t\t// successfully detached, remove it from the detached collection\n\t\t\t\t\t\tif ( ! info.error ) {\n\n\t\t\t\t\t\t\tcoll.remove( info.id );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\terrors.push( info.error );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( errors.length ) {\n\t\t\t\t\t\t_.extend( data, add_error_msg( data, errors ) );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\treturn data;\n\t\t}\n\n\t\t/**\n\t\t * Processes response data from heartbeat-tick related to creating / updating a single object\n\t\t * Handles both collections and models as a recursive function\n\t\t *\n\t\t * @param {[type]} data [description]\n\t\t * @param {[type]} type [description]\n\t\t * @param {[type]} parent [description]\n\t\t * @param {[type]} main_data [description]\n\t\t * @return {[type]}\n\t\t * @since 3.16.0\n\t\t * @version 3.16.11\n\t\t */\n\t\tfunction process_object_updates( data, type, parent, main_data ) {\n\n\t\t\tif ( ! data[ type ] ) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tif ( parent.get( type ) instanceof Backbone.Model ) {\n\n\t\t\t\tvar info = data[ type ];\n\n\t\t\t\tif ( info.error ) {\n\n\t\t\t\t\t_.extend( main_data, add_error_msg( main_data, info.error ) );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tvar model = parent.get( type );\n\n\t\t\t\t\t// update temp ids with the real id\n\t\t\t\t\tif ( info.id != info.orig_id ) {\n\t\t\t\t\t\tmodel.set( 'id', info.id );\n\t\t\t\t\t\tdelete model._unsavedChanges.id;\n\t\t\t\t\t}\n\t\t\t\t\tmaybe_restart_tracking( model, info );\n\n\t\t\t\t\t// check children\n\t\t\t\t\tif ( model.get_relationships ) {\n\n\t\t\t\t\t\t_.each( model.get_child_props(), function( child_key ) {\n\t\t\t\t\t\t\t_.extend( data[ type ], process_object_updates( data[ type ], child_key, model, main_data ) );\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( parent.get( type ) instanceof Backbone.Collection ) {\n\n\t\t\t\t_.each( data[ type ], function( info, index ) {\n\n\t\t\t\t\tif ( info.error ) {\n\n\t\t\t\t\t\t_.extend( main_data, add_error_msg( main_data, info.error ) );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tvar model = parent.get( type ).get( info.orig_id );\n\n\t\t\t\t\t\t// update temp ids with the real id\n\t\t\t\t\t\tif ( info.id != info.orig_id ) {\n\t\t\t\t\t\t\tmodel.set( 'id', info.id );\n\t\t\t\t\t\t\tdelete model._unsavedChanges.id;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaybe_restart_tracking( model, info );\n\n\t\t\t\t\t\t// check children\n\t\t\t\t\t\tif ( model.get_relationships ) {\n\n\t\t\t\t\t\t\t_.each( model.get_child_props(), function( child_key ) {\n\t\t\t\t\t\t\t\t_.extend( data[ type ], process_object_updates( data[ type ][ index ], child_key, model, main_data ) );\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn main_data;\n\n\t\t};\n\n\t\t/**\n\t\t * Processes response data from heartbeat-tick related to updating & creating new models\n\t\t * On success, removes from local removal collection\n\t\t * On error, appends error messages to the data object returned to UI for on-screen feedback\n\t\t *\n\t\t * @param obj data data.llms_builder object from heartbeat-tick response\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tfunction process_updates( data ) {\n\n\t\t\t// only mess with updates data\n\t\t\tif ( ! data.updates ) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tif ( data.updates ) {\n\t\t\t\tdata = process_object_updates( data.updates, 'sections', Course, data );\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t};\n\n\t\t/*\n\t\t\t\t\t\t\t\t /$$ /$$ /$$ /$$\n\t\t\t\t\t\t\t\t| $$ | $$|__/ |__/\n\t\t\t /$$$$$$ /$$ /$$| $$$$$$$ | $$ /$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$\n\t\t\t /$$__ $$| $$ | $$| $$__ $$| $$| $$ /$$_____/ |____ $$ /$$__ $$| $$\n\t\t\t| $$ \\ $$| $$ | $$| $$ \\ $$| $$| $$| $$ /$$$$$$$| $$ \\ $$| $$\n\t\t\t| $$ | $$| $$ | $$| $$ | $$| $$| $$| $$ /$$__ $$| $$ | $$| $$\n\t\t\t| $$$$$$$/| $$$$$$/| $$$$$$$/| $$| $$| $$$$$$$ | $$$$$$$| $$$$$$$/| $$\n\t\t\t| $$____/ \\______/ |_______/ |__/|__/ \\_______/ \\_______/| $$____/ |__/\n\t\t\t| $$ | $$\n\t\t\t| $$ | $$\n\t\t\t|__/ |__/\n\t\t*/\n\n\t\t/**\n\t\t * Retrieve all unsaved changes for the builder instance\n\t\t *\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.17.1\n\t\t */\n\t\tthis.get_unsaved_changes = function() {\n\n\t\t\treturn {\n\t\t\t\tdetach: detached.pluck( 'id' ),\n\t\t\t\ttrash: trashed.pluck( 'id' ),\n\t\t\t\tupdates: get_changes_to_object( Course ),\n\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Check if the builder instance has unsaved changes\n\t\t *\n\t\t * @param obj changes optionally pass in an object from the return of this.get_unsaved_changes()\n\t\t * save some resources by not running the check twice during heartbeats\n\t\t * @return boolean\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tthis.has_unsaved_changes = function( changes ) {\n\n\t\t\tif ( 'undefined' === typeof changes ) {\n\t\t\t\tchanges = self.get_unsaved_changes();\n\t\t\t}\n\n\t\t\t// check all possible keys, once we find one with content we have some changes to persist\n\t\t\tvar found = _.find( changes, function( data ) {\n\n\t\t\t\treturn ( false === _.isEmpty( data ) );\n\n\t\t\t} );\n\n\t\t\treturn found ? true : false;\n\n\t\t};\n\n\t\t/**\n\t\t * Save changes right now.\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.7\n\t\t */\n\t\tthis.save_now = function() {\n\t\t\tif ( autosave ) {\n\t\t\t\twp.heartbeat.connectNow();\n\t\t\t} else {\n\t\t\t\tdo_ajax_save();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Update the interval that checks for changes to the builder instance\n\t\t *\n\t\t * @param int ms time (in milliseconds) to run the check on\n\t\t * pass 0 to disable the check\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tthis.set_check_interval = function( ms ) {\n\t\t\tcheck_interval_ms = ms;\n\t\t\tif ( check_interval ) {\n\t\t\t\tclearInterval( check_interval );\n\t\t\t}\n\t\t\tif ( check_interval_ms ) {\n\t\t\t\tcheck_interval = setInterval( check_for_changes, check_interval_ms );\n\t\t\t}\n\t\t};\n\n\t\t/*\n\t\t\t /$$ /$$ /$$\n\t\t\t| $$|__/ | $$\n\t\t\t| $$ /$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$\n\t\t\t| $$| $$ /$$_____/|_ $$_/ /$$__ $$| $$__ $$ /$$__ $$ /$$__ $$ /$$_____/\n\t\t\t| $$| $$| $$$$$$ | $$ | $$$$$$$$| $$ \\ $$| $$$$$$$$| $$ \\__/| $$$$$$\n\t\t\t| $$| $$ \\____ $$ | $$ /$$| $$_____/| $$ | $$| $$_____/| $$ \\____ $$\n\t\t\t| $$| $$ /$$$$$$$/ | $$$$/| $$$$$$$| $$ | $$| $$$$$$$| $$ /$$$$$$$/\n\t\t\t|__/|__/|_______/ \\___/ \\_______/|__/ |__/ \\_______/|__/ |_______/\n\t\t*/\n\n\t\t/**\n\t\t * Listen for detached models and send them to the server for persistence\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tBackbone.pubSub.on( 'model-detached', function( model ) {\n\n\t\t\t// detached models with temp ids haven't been persisted so we don't care\n\t\t\tif ( has_temp_id( model ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdetached.add( _.clone( model.attributes ) );\n\n\t\t} );\n\n\t\t/**\n\t\t * Listen for trashed models and send them to the server for deletion\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @version 3.17.1\n\t\t */\n\t\tBackbone.pubSub.on( 'model-trashed', function( model ) {\n\n\t\t\t// if the model has a temp ID we don't have to persist the deletion\n\t\t\tif ( has_temp_id( model ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar data = _.clone( model.attributes );\n\n\t\t\tif ( model.get_trash_id ) {\n\t\t\t\tdata.id = model.get_trash_id();\n\t\t\t}\n\n\t\t\ttrashed.add( data );\n\n\t\t} );\n\n\t\t/*\n\t\t\t /$$ /$$ /$$ /$$\n\t\t\t| $$ | $$ | $$ | $$\n\t\t\t| $$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ | $$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$\n\t\t\t| $$__ $$ /$$__ $$ |____ $$ /$$__ $$|_ $$_/ | $$__ $$ /$$__ $$ |____ $$|_ $$_/\n\t\t\t| $$ \\ $$| $$$$$$$$ /$$$$$$$| $$ \\__/ | $$ | $$ \\ $$| $$$$$$$$ /$$$$$$$ | $$\n\t\t\t| $$ | $$| $$_____/ /$$__ $$| $$ | $$ /$$| $$ | $$| $$_____/ /$$__ $$ | $$ /$$\n\t\t\t| $$ | $$| $$$$$$$| $$$$$$$| $$ | $$$$/| $$$$$$$/| $$$$$$$| $$$$$$$ | $$$$/\n\t\t\t|__/ |__/ \\_______/ \\_______/|__/ \\___/ |_______/ \\_______/ \\_______/ \\___/\n\t\t*/\n\n\n\t\t/**\n\t\t * Add data to the WP heartbeat to persist new models, changes, and deletions to the DB\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.16.7 Unknown\n\t\t * @since 4.14.0 Return early when autosaving is disabled.\n\t\t */\n\t\t$( document ).on( 'heartbeat-send', function( event, data ) {\n\n\t\t\t// Autosaving is disabled.\n\t\t\tif ( ! autosave ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// prevent simultaneous saves\n\t\t\tif ( self.saving ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar changes = self.get_unsaved_changes();\n\n\t\t\t// only send data if we have data to send\n\t\t\tif ( self.has_unsaved_changes( changes ) ) {\n\n\t\t\t\tchanges.id = Course.get( 'id' );\n\t\t\t\tself.saving = true;\n\t\t\t\tdata.llms_builder = JSON.stringify( changes );\n\n\t\t\t}\n\n\t\t\twindow.llms_builder.debug.log( '==== start heartbeat-send ====', data, '==== finish heartbeat-send ====' );\n\n\t\t\tBackbone.pubSub.trigger( 'heartbeat-send', self );\n\n\t\t} );\n\n\t\t/**\n\t\t * Confirm detachments & deletions and replace temp IDs with new persisted IDs\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 4.14.0 Return early when autosaving is disabled.\n\t\t */\n\t\t$( document ).on( 'heartbeat-tick', function( event, data ) {\n\n\t\t\t// Autosaving is disabled.\n\t\t\tif ( ! autosave ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( ! data.llms_builder ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twindow.llms_builder.debug.log( '==== start heartbeat-tick ====', data, '==== finish heartbeat-tick ====' );\n\n\t\t\tdata.llms_builder = process_removals( data.llms_builder );\n\t\t\tdata.llms_builder = process_updates( data.llms_builder );\n\n\t\t\tself.saving = false;\n\n\t\t\tBackbone.pubSub.trigger( 'heartbeat-tick', self, data.llms_builder );\n\n\t\t} );\n\n\t\t/**\n\t\t * On heartbeat errors publish an error to the main builder application\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 4.14.0 Return early when autosaving is disabled.\n\t\t */\n\t\t$( document ).on( 'heartbeat-error', function( event, data ) {\n\n\t\t\t// Autosaving is disabled.\n\t\t\tif ( ! autosave ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twindow.llms_builder.debug.log( '==== start heartbeat-error ====', data, '==== finish heartbeat-error ====' );\n\n\t\t\tself.saving = false;\n\n\t\t\tBackbone.pubSub.trigger( 'heartbeat-tick', self, {\n\t\t\t\tstatus: 'error',\n\t\t\t\tmessage: data.responseText + ' (' + data.status + ' ' + data.statusText + ')',\n\t\t\t} );\n\n\t\t} );\n\n\t\t/*\n\t\t\t /$$ /$$ /$$\n\t\t\t|__/ |__/ | $$\n\t\t\t /$$ /$$$$$$$ /$$ /$$$$$$\n\t\t\t| $$| $$__ $$| $$|_ $$_/\n\t\t\t| $$| $$ \\ $$| $$ | $$\n\t\t\t| $$| $$ | $$| $$ | $$ /$$\n\t\t\t| $$| $$ | $$| $$ | $$$$/\n\t\t\t|__/|__/ |__/|__/ \\___/\n\t\t*/\n\t\tinit();\n\n\t\treturn this;\n\n\t};\n\n} );\n\n","/**\n * Single Lesson View\n * @since 3.16.0\n * @version 3.27.0\n */\ndefine( 'Views/Lesson',[\n\t\t'Views/_Detachable',\n\t\t'Views/_Editable',\n\t\t'Views/_Shiftable',\n\t\t'Views/_Trashable'\n\t], function(\n\t\tDetachable,\n\t\tEditable,\n\t\tShiftable,\n\t\tTrashable\n\t) {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * Get default attributes for the html wrapper element\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tattributes: function() {\n\t\t\treturn {\n\t\t\t\t'data-id': this.model.id,\n\t\t\t\t'data-section-id': this.model.get( 'parent_section' ),\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * HTML class names\n\t\t * @type {String}\n\t\t */\n\t\tclassName: 'llms-builder-item llms-lesson',\n\n\t\t/**\n\t\t * Events\n\t\t * @type {Object}\n\t\t * @since 3.16.0\n\t\t * @version 3.16.12\n\t\t */\n\t\tevents: _.defaults( {\n\t\t\t'click .edit-lesson': 'open_lesson_editor',\n\t\t\t'click .llms-headline': 'open_lesson_editor',\n\t\t\t'click .edit-quiz': 'open_quiz_editor',\n\t\t\t'click .edit-assignment': 'open_assignment_editor',\n\t\t\t'click .section-prev': 'section_prev',\n\t\t\t'click .section-next': 'section_next',\n\t\t\t'click .shift-up--lesson': 'shift_up',\n\t\t\t'click .shift-down--lesson': 'shift_down',\n\t\t}, Detachable.events, Editable.events, Trashable.events ),\n\n\t\t/**\n\t\t * HTML element wrapper ID attribute\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tid: function() {\n\t\t\treturn 'llms-lesson-' + this.model.id;\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'li',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-lesson-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t * @return void\n\t\t * @since 3.14.1\n\t\t * @version 3.14.1\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.render();\n\n\t\t\tthis.listenTo( this.model, 'change', this.render );\n\n\t\t\tBackbone.pubSub.on( 'lesson-selected', this.on_select, this );\n\t\t\tBackbone.pubSub.on( 'new-lesson-added', this.on_select, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t * @return self (for chaining)\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender: function() {\n\n\t\t\tthis.$el.html( this.template( this.model ) );\n\t\t\tthis.maybe_hide_shiftable_buttons();\n\t\t\tif ( this.model.get( '_selected' ) ) {\n\t\t\t\tthis.$el.addClass( 'selected' );\n\t\t\t} else {\n\t\t\t\tthis.$el.removeClass( 'selected' );\n\t\t\t}\n\t\t\treturn this;\n\n\t\t},\n\n\t\t/**\n\t\t * Click event for the assignment editor action icon\n\t\t * Opens sidebar to the assignment editor tab\n\t\t * @param obj event JS Event obj.\n\t\t * @return void\n\t\t * @since 3.17.0\n\t\t * @version 3.27.0\n\t\t */\n\t\topen_assignment_editor: function( event ) {\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tBackbone.pubSub.trigger( 'lesson-selected', this.model, 'assignment' );\n\t\t\tthis.model.set( '_selected', true );\n\t\t\tthis.set_hash( 'assignment' );\n\n\t\t},\n\n\t\t/**\n\t\t * Click event for lesson settings action icon\n\t\t * Opens sidebar to the lesson editor tab\n\t\t * @param obj event JS Event obj.\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.27.0\n\t\t */\n\t\topen_lesson_editor: function( event ) {\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tBackbone.pubSub.trigger( 'lesson-selected', this.model, 'lesson' );\n\t\t\tthis.model.set( '_selected', true );\n\t\t\tthis.set_hash( false );\n\n\t\t},\n\n\t\t/**\n\t\t * Click event for the quiz editor action icon\n\t\t * Opens sidebar to the quiz editor tab\n\t\t * @param obj event JS Event obj.\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.27.0\n\t\t */\n\t\topen_quiz_editor: function( event ) {\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tBackbone.pubSub.trigger( 'lesson-selected', this.model, 'quiz' );\n\t\t\tthis.model.set( '_selected', true );\n\t\t\tthis.set_hash( 'quiz' );\n\n\t\t},\n\n\t\t/**\n\t\t * When a lesson is selected mark it as selected in the hidden prop\n\t\t * Allows views to re-render and reflect current state properly\n\t\t * @param obj model lesson model that's been selected\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ton_select: function( model ) {\n\n\t\t\tif ( this.model.id !== model.id ) {\n\t\t\t\tthis.model.set( '_selected', false );\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Click event for the \"Next Section\" button\n\t\t * @param obj event js event obj\n\t\t * @return void\n\t\t * @since 3.16.11\n\t\t * @version 3.16.11\n\t\t */\n\t\tsection_next: function( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._move_to_section( 'next' );\n\t\t},\n\n\t\t/**\n\t\t * Click event for the \"Previous Section\" button\n\t\t * @param obj event js event obj\n\t\t * @return void\n\t\t * @since 3.16.11\n\t\t * @version 3.16.11\n\t\t */\n\t\tsection_prev: function( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._move_to_section( 'prev' );\n\t\t},\n\n\t\t/**\n\t\t * Adds a hash for deep linking to a specific lesson tab\n\t\t * @param string subtab subtab [quiz|assignment]\n\t\t * @return void\n\t\t * @since 3.27.0\n\t\t * @version 3.27.0\n\t\t */\n\t\tset_hash: function( subtab ) {\n\n\t\t\tvar hash = 'lesson:' + this.model.get( 'id' );\n\n\t\t\tif ( subtab ) {\n\t\t\t\thash += ':' + subtab;\n\t\t\t}\n\n\t\t\twindow.location.hash = hash;\n\n\t\t},\n\n\t\t/**\n\t\t * Move the lesson into a new section\n\t\t * @param string direction direction [prev|next]\n\t\t * @return void\n\t\t * @since 3.16.11\n\t\t * @version 3.16.11\n\t\t */\n\t\t_move_to_section: function( direction ) {\n\n\t\t\tvar from_coll = this.model.collection,\n\t\t\t\tto_section;\n\n\t\t\tif ( 'next' === direction ) {\n\t\t\t\tto_section = from_coll.parent.get_next();\n\t\t\t} else if ( 'prev' === direction ) {\n\t\t\t\tto_section = from_coll.parent.get_prev();\n\t\t\t}\n\n\t\t\tif ( to_section ) {\n\n\t\t\t\tfrom_coll.remove( this.model );\n\t\t\t\tto_section.add_lesson( this.model );\n\t\t\t\tto_section.set( '_expanded', true );\n\n\t\t\t}\n\n\t\t},\n\n\t}, Detachable, Editable, Shiftable, Trashable ) );\n\n} );\n\n","/**\n * Single Section View\n *\n * @since 3.13.0\n * @version 3.16.0\n */\ndefine( 'Views/LessonList',[ 'Views/Lesson', 'Views/_Receivable' ], function( LessonView, Receivable ) {\n\n\treturn Backbone.CollectionView.extend( _.defaults( {\n\n\t\tclassName: 'llms-lessons',\n\n\t\t/**\n\t\t * Section model\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\tmodelView: LessonView,\n\n\t\t/**\n\t\t * Are sections selectable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tselectable: false,\n\n\t\t/**\n\t\t * Are sections sortable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tsortable: true,\n\n\t\tsortableOptions: {\n\t\t\taxis: false,\n\t\t\tconnectWith: '.llms-lessons',\n\t\t\tcursor: 'move',\n\t\t\thandle: '.drag-lesson',\n\t\t\titems: '.llms-lesson',\n\t\t\tplaceholder: 'llms-lesson llms-sortable-placeholder',\n\t\t},\n\n\t\tsortable_start: function( collection ) {\n\t\t\t$( '.llms-lessons' ).addClass( 'dragging' );\n\t\t},\n\n\t\tsortable_stop: function( collection ) {\n\t\t\t$( '.llms-lessons' ).removeClass( 'dragging' );\n\t\t},\n\n\t\t/**\n\t\t * Overloads the function from Backbone.CollectionView core because it doesn't send stop events\n\t\t * if moving from one sortable to another... :-(\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @param obj ui jQuery UI object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_sortStop : function( event, ui ) {\n\n\t\t\tvar modelBeingSorted = this.collection.get( ui.item.attr( 'data-model-cid' ) ),\n\t\t\t\tmodelViewContainerEl = this._getContainerEl(),\n\t\t\t\tnewIndex = modelViewContainerEl.children().index( ui.item );\n\n\t\t\tif ( newIndex == -1 && modelBeingSorted ) {\n\t\t\t\tthis.collection.remove( modelBeingSorted );\n\t\t\t}\n\n\t\t\tthis._reorderCollectionBasedOnHTML();\n\t\t\tthis.updateDependentControls();\n\n\t\t\tif ( this._isBackboneCourierAvailable() ) {\n\t\t\t\tthis.spawn( 'sortStop', { modelBeingSorted : modelBeingSorted, newIndex : newIndex } );\n\t\t\t} else {\n\t\t\t\tthis.trigger( 'sortStop', modelBeingSorted, newIndex );\n\t\t\t}\n\n\t\t},\n\n\t}, Receivable ) );\n\n} );\n\n","/**\n * Single Section View\n * @since 3.13.0\n * @version 3.16.12\n */\ndefine( 'Views/Section',[\n\t\t'Views/LessonList',\n\t\t'Views/_Editable',\n\t\t'Views/_Shiftable',\n\t\t'Views/_Trashable'\n\t], function(\n\t\tLessonListView,\n\t\tEditable,\n\t\tShiftable,\n\t\tTrashable\n\t) {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * Get default attributes for the html wrapper element\n\t\t * @return obj\n\t\t * @since 3.13.0\n\t\t * @version 3.13.0\n\t\t */\n\t\tattributes: function() {\n\t\t\treturn {\n\t\t\t\t'data-id': this.model.id,\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Element class names\n\t\t * @type {String}\n\t\t */\n\t\tclassName: 'llms-builder-item llms-section',\n\n\t\t/**\n\t\t * Events\n\t\t * @type {Object}\n\t\t * @since 3.16.0\n\t\t * @version 3.16.12\n\t\t */\n\t\tevents: _.defaults( {\n\n\t\t\t'click': 'select',\n\t\t\t'click .expand': 'expand',\n\t\t\t'click .collapse': 'collapse',\n\t\t\t'click .shift-up--section': 'shift_up',\n\t\t\t'click .shift-down--section': 'shift_down',\n\t\t\t'click .new-lesson': 'add_new_lesson',\n\t\t\t'click .llms-builder-header': 'toggle',\n\t\t\t'mouseenter .llms-lessons': 'on_mouseenter',\n\n\t\t}, Editable.events, Trashable.events ),\n\n\t\t/**\n\t\t * HTML element wrapper ID attribute\n\t\t * @return string\n\t\t * @since 3.13.0\n\t\t * @version 3.13.0\n\t\t */\n\t\tid: function() {\n\t\t\treturn 'llms-section-' + this.model.id;\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'li',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-section-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t * @return void\n\t\t * @since 3.13.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.render();\n\t\t\tthis.listenTo( this.model, 'change', this.render );\n\t\t\tthis.listenTo( this.model, 'change:_expanded', this.toggle_expanded );\n\t\t\tthis.lessonListView.collection.on( 'add', this.on_lesson_add, this );\n\n\t\t\tthis.dragTimeout = null;\n\n\t\t\tBackbone.pubSub.on( 'expand-all', this.expand, this );\n\t\t\tBackbone.pubSub.on( 'collapse-all', this.collapse, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Render the section\n\t\t * Initializes a new collection and views for all lessons in the section\n\t\t * @return void\n\t\t * @since 3.13.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender: function() {\n\n\t\t\tthis.$el.html( this.template( this.model.toJSON() ) );\n\n\t\t\tthis.maybe_hide_shiftable_buttons();\n\n\t\t\tthis.lessonListView = new LessonListView( {\n\t\t\t\tel: this.$el.find( '.llms-lessons' ),\n\t\t\t\tcollection: this.model.get( 'lessons' ),\n\t\t\t} );\n\t\t\tthis.lessonListView.render();\n\t\t\tthis.lessonListView.on( 'sortStart', this.lessonListView.sortable_start );\n\t\t\tthis.lessonListView.on( 'sortStop', this.lessonListView.sortable_stop );\n\n\t\t\t// selection changes\n\t\t\tthis.lessonListView.on( 'selectionChanged', this.active_lesson_change, this );\n\n\t\t\tthis.maybe_hide_trash_button();\n\n\t\t\treturn this;\n\n\t\t},\n\n\t\tadd_new_lesson: function( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tBackbone.pubSub.trigger( 'section-select', this.model );\n\t\t\tBackbone.pubSub.trigger( 'add-new-lesson' );\n\n\t\t},\n\n\t\tactive_lesson_change: function( current, previous ) {\n\n\t\t\tBackbone.pubSub.trigger( 'active-lesson-change', {\n\t\t\t\tcurrent: current,\n\t\t\t\tprevious: previous,\n\t\t\t} );\n\n\t\t},\n\n\t\ttoggle: function( event, update ) {\n\n\t\t\t// We only want to expand/collapse when the actual header div is clicked, not an element inside it.\n\t\t\tif ( 'llms-builder-header' !== event.target.className ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( this.model.get( '_expanded' ) ) {\n\t\t\t\tthis.collapse( event, update );\n\t\t\t} else {\n\t\t\t\tthis.expand( event, update );\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Collapse lessons within the section\n\t\t * @param obj event js event object\n\t\t * @param bool update if true, updates the model to reflect the new state\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tcollapse: function( event, update ) {\n\n\t\t\tif ( 'undefined' === typeof update ) {\n\t\t\t\tupdate = true;\n\t\t\t}\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tthis.$el.removeClass( 'expanded' ).find( '.drag-expanded' ).removeClass( 'drag-expanded' );\n\t\t\tif ( update ) {\n\t\t\t\tthis.model.set( '_expanded', false );\n\t\t\t}\n\t\t\tBackbone.pubSub.trigger( 'section-toggle', this.model );\n\n\t\t},\n\n\t\t/**\n\t\t * Expand lessons within the section\n\t\t * @param obj event js event object\n\t\t * @param bool update if true, updates the model to reflect the new state\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\texpand: function( event, update ) {\n\n\t\t\tif ( 'undefined' === typeof update ) {\n\t\t\t\tupdate = true;\n\t\t\t}\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tthis.$el.addClass( 'expanded' );\n\t\t\tif ( update ) {\n\t\t\t\tthis.model.set( '_expanded', true );\n\t\t\t}\n\t\t\tBackbone.pubSub.trigger( 'section-toggle', this.model );\n\n\t\t},\n\n\t\tmaybe_hide_trash_button: function() {\n\n\t\t\tvar $btn = this.$el.find( '.trash--section' );\n\n\t\t\tif ( this.model.get( 'lessons' ).isEmpty() ) {\n\n\t\t\t\t$btn.show();\n\n\t\t\t} else {\n\n\t\t\t\t$btn.hide()\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * When a lesson is added to the section trigger a collection reorder & update the lesson's id\n\t\t * @param obj model Lesson model\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ton_lesson_add: function( model ) {\n\n\t\t\tthis.lessonListView.collection.trigger( 'reorder' );\n\t\t\tmodel.set( 'parent_section', this.model.get( 'id' ) );\n\t\t\tthis.expand();\n\n\t\t},\n\n\t\ton_mouseenter: function( event ) {\n\n\n\t\t\tif ( $( event.target ).hasClass( 'dragging' ) ) {\n\n\t\t\t\t$( '.drag-expanded' ).removeClass( 'drag-expanded' );\n\t\t\t\t$( event.target ).addClass( 'drag-expanded' );\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Expand\n\t\t * @param {[type]} model [description]\n\t\t * @param {[type]} value [description]\n\t\t * @return {[type]}\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ttoggle_expanded: function( model, value ) {\n\n\t\t\tif ( value ) {\n\t\t\t\tthis.expand( null, false );\n\t\t\t} else {\n\t\t\t\tthis.collapse( null, false );\n\t\t\t}\n\n\t\t},\n\n\t}, Editable, Shiftable, Trashable ) );\n\n} );\n\n","/**\n * Single Section View\n *\n * @since 3.13.0\n * @version 3.16.0\n */\ndefine( 'Views/SectionList',[ 'Views/Section', 'Views/_Receivable' ], function( SectionView, Receivable ) {\n\n\treturn Backbone.CollectionView.extend( _.defaults( {\n\n\t\t/**\n\t\t * Parent element\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tel: '#llms-sections',\n\n\t\tevents : {\n\t\t\t'mousedown > li.llms-section > .llms-builder-header .llms-headline' : '_listItem_onMousedown',\n\t\t\t// 'dblclick > li, tbody > tr > td' : '_listItem_onDoubleClick',\n\t\t\t'click' : '_listBackground_onClick',\n\t\t\t'click ul.collection-view' : '_listBackground_onClick',\n\t\t\t'keydown' : '_onKeydown'\n\t\t},\n\n\t\t/**\n\t\t * Section model\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\tmodelView: SectionView,\n\n\t\t/**\n\t\t * Enable keyboard events\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tprocessKeyEvents: false,\n\n\t\t/**\n\t\t * Are sections selectable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tselectable: true,\n\n\t\t/**\n\t\t * Are sections sortable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tsortable: true,\n\n\t\tsortableOptions: {\n\t\t\taxis: false,\n\t\t\tcursor: 'move',\n\t\t\thandle: '.drag-section',\n\t\t\titems: '.llms-section',\n\t\t\tplaceholder: 'llms-section llms-sortable-placeholder',\n\t\t},\n\n\t\tsortable_start: function( collection ) {\n\t\t\tthis.$el.addClass( 'dragging' );\n\t\t},\n\n\t\tsortable_stop: function( collection ) {\n\t\t\tthis.$el.removeClass( 'dragging' );\n\t\t},\n\n\t}, Receivable ) );\n\n} );\n\n","/**\n * Single Course View\n *\n * @since 3.13.0\n * @version 3.16.0\n */\ndefine( 'Views/Course',[\n\t'Views/SectionList',\n\t'Views/_Detachable',\n\t'Views/_Editable',\n\t'Views/_Shiftable',\n\t'Views/_Trashable'\n], function(\n\t SectionListView,\n\t Detachable,\n\t Editable,\n\t Shiftable,\n\t Trashable\n) {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * Get default attributes for the html wrapper element\n\t\t *\n\t\t * @return obj\n\t\t * @since 3.13.0\n\t\t * @version 3.13.0\n\t\t */\n\t\tattributes: function() {\n\t\t\treturn {\n\t\t\t\t'data-id': this.model.id,\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * HTML element selector\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tel: '#llms-builder-main',\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'div',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-course-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t *\n\t\t * @return void\n\t\t * @since 3.13.0\n\t\t * @version 3.13.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tvar self = this;\n\n\t\t\t// this.listenTo( this.model, 'sync', this.render );\n\t\t\tthis.render();\n\n\t\t\tthis.sectionListView = new SectionListView( {\n\t\t\t\tcollection: this.model.get( 'sections' ),\n\t\t\t} );\n\t\t\tthis.sectionListView.render();\n\t\t\t// drag and drop start\n\t\t\tthis.sectionListView.on( 'sortStart', this.sectionListView.sortable_start );\n\t\t\t// drag and drop stop\n\t\t\tthis.sectionListView.on( 'sortStop', this.sectionListView.sortable_stop );\n\t\t\t// selection changes\n\t\t\tthis.sectionListView.on( 'selectionChanged', this.active_section_change );\n\t\t\t// \"select\" a section when it's added to the course\n\t\t\tthis.listenTo( this.model.get( 'sections' ), 'add', this.on_section_add );\n\n\t\t\tBackbone.pubSub.on( 'section-toggle', this.on_section_toggle, this );\n\n\t\t\tBackbone.pubSub.on( 'section-select', this.on_section_select, this );\n\n\t\t\tBackbone.pubSub.on( 'expand-section', this.expand_section, this );\n\n\t\t\tBackbone.pubSub.on( 'lesson-selected', this.active_lesson_change, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Events\n\t\t * @type {Object}\n\t\t * @version 7.6.0\n\t\t */\n\t\tevents: _.defaults( {\n\t\t\t'click .new-section': 'add_new_section',\n\t\t}, Detachable.events, Editable.events, Trashable.events ),\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t *\n\t\t * @return self (for chaining)\n\t\t * @since 3.13.0\n\t\t * @version 3.13.0\n\t\t */\n\t\trender: function() {\n\t\t\tthis.$el.html( this.template( this.model ) );\n\t\t\treturn this;\n\t\t},\n\n\t\tactive_lesson_change: function( model ) {\n\n\t\t\t// set parent section to be active\n\t\t\tvar section = this.model.get( 'sections' ).get( model.get( 'parent_section' ) );\n\t\t\tthis.sectionListView.setSelectedModel( section );\n\n\t\t},\n\n\t\t/**\n\t\t * When a section \"selection\" changes in the list\n\t\t * Update each section model so we can figure out which one is selected from other views\n\t\t *\n\t\t * @param array current array of selected models\n\t\t * @param array previous array of previously selected models\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tactive_section_change: function( current, previous ) {\n\n\t\t\t_.each( current, function( model ) {\n\t\t\t\tmodel.set( '_selected', true );\n\t\t\t} );\n\n\t\t\t_.each( previous, function( model ) {\n\t\t\t\tmodel.set( '_selected', false );\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * \"Selects\" the new section when it's added to the course\n\t\t *\n\t\t * @param obj model Section model that's just been added\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ton_section_add: function( model ) {\n\n\t\t\tthis.sectionListView.setSelectedModel( model );\n\n\t\t},\n\n\t\t/**\n\t\t * When expanding/collapsing sections\n\t\t * if collapsing, unselect, if expanding, select\n\t\t *\n\t\t * @param obj model toggled section\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ton_section_toggle: function( model ) {\n\n\t\t\tvar selected = model.get( '_expanded' ) ? [ model ] : [];\n\t\t\tthis.sectionListView.setSelectedModels( selected );\n\n\t\t},\n\n\n\t\t/**\n\t\t * When doing things like adding a lesson, seelct the section.\n\t\t *\n\t\t * @param obj model toggled section\n\t\t * @return void\n\t\t * @since 7.6.0\n\t\t * @version 7.6.0\n\t\t */\n\t\ton_section_select: function( model ) {\n\n\t\t\tthis.sectionListView.setSelectedModel( model );\n\n\t\t},\n\n\t\tadd_new_section: function( event ) {\n\n\t\t\tevent.preventDefault();\n\t\t\tBackbone.pubSub.trigger( 'add-new-section' );\n\t\t},\n\n\n\t}, Editable ) );\n\n} );\n\n","/**\n * Model settings fields view\n *\n * @since 3.17.0\n * @version 4.7.0\n */\ndefine( 'Views/SettingsFields',[], function() {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * DOM events\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tevents: {\n\t\t\t'click .llms-settings-group-toggle': 'toggle_group',\n\t\t},\n\n\t\t/**\n\t\t * Processed fields data\n\t\t * Allows access by ID without traversing the schema\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tfields: {},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'div',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-settings-fields-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t *\n\t\t * @return void\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\t// initialize: function() {},\n\n\t\t/**\n\t\t * Retrieve an array of all editor fields in all groups\n\t\t *\n\t\t * @return array\n\t\t * @since 3.17.1\n\t\t * @version 3.17.1\n\t\t */\n\t\tget_editor_fields: function() {\n\t\t\treturn _.filter( this.fields, function( field ) {\n\t\t\t\treturn this.is_editor_field( field.type );\n\t\t\t}, this );\n\t\t},\n\n\t\t/**\n\t\t * Get settings group data from a model\n\t\t *\n\t\t * @return {[type]}\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tget_groups: function() {\n\n\t\t\treturn this.model.get_settings_fields();\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if a settings group is hidden in localStorage\n\t\t *\n\t\t * @param string group_id id of the group\n\t\t * @return {Boolean}\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tis_group_hidden: function( group_id ) {\n\n\t\t\tvar id = 'llms-' + this.model.get( 'type' ) + '-settings-group--' + group_id;\n\n\t\t\tif ( 'undefined' !== window.localStorage ) {\n\t\t\t\treturn ( 'hidden' === window.localStorage.getItem( id ) );\n\t\t\t}\n\n\t\t\treturn false;\n\n\t\t},\n\n\t\t/**\n\t\t * Get the switch attribute for a field with switches\n\t\t *\n\t\t * @param obj field field data obj\n\t\t * @return string\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tget_switch_attribute: function( field ) {\n\n\t\t\treturn field.switch_attribute ? field.switch_attribute : field.attribute;\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if a field has a switch\n\t\t *\n\t\t * @param string type field type string\n\t\t * @return {Boolean}\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\thas_switch: function( type ) {\n\t\t\treturn ( -1 !== type.indexOf( 'switch' ) );\n\t\t},\n\n\t\t/**\n\t\t * Determine if a field is a default (text) field\n\t\t *\n\t\t * @param string type field type string\n\t\t * @return {Boolean}\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tis_default_field: function( type ) {\n\n\t\t\tvar types = [ 'audio_embed', 'datepicker', 'number', 'text', 'video_embed' ];\n\t\t\treturn ( -1 !== types.indexOf( type.replace( 'switch-', '' ) ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if a field is a WYSIWYG editor field\n\t\t *\n\t\t * @param string type field type string\n\t\t * @return {Boolean}\n\t\t * @since 3.17.1\n\t\t * @version 3.17.1\n\t\t */\n\t\tis_editor_field: function( type ) {\n\n\t\t\tvar types = [ 'editor', 'switch-editor' ];\n\t\t\treturn ( -1 !== types.indexOf( type.replace( 'switch-', '' ) ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if a switch is enabled for a field\n\t\t *\n\t\t * @param obj field field data object\n\t\t * @return {Boolean}\n\t\t * @since 3.17.0\n\t\t * @version 3.17.6\n\t\t */\n\t\tis_switch_condition_met: function( field ) {\n\n\t\t\treturn ( field.switch_on === this.model.get( field.switch_attribute ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t *\n\t\t * @return self (for chaining)\n\t\t * @since 3.17.0\n\t\t * @version 3.17.1\n\t\t */\n\t\trender: function() {\n\n\t\t\tthis.$el.html( this.template( this ) );\n\n\t\t\t// if editors exist, render them\n\t\t\t_.each( this.get_editor_fields(), function( field ) {\n\t\t\t\tthis.render_editor( field );\n\t\t\t}, this );\n\n\t\t\treturn this;\n\n\t\t},\n\n\t\t/**\n\t\t * Renders an editor field\n\t\t *\n\t\t * @since 3.17.1\n\t\t * @since 3.37.11 Replace references to `wp.editor` with `_.getEditor()` helper.\n\t\t *\n\t\t * @param {Object} field Field data object.\n\t\t * @return {Void}\n\t\t */\n\t\trender_editor: function( field ) {\n\n\t\t\tvar self = this,\n\t\t\t\twpEditor = _.getEditor();\n\n\t\t\t// Exit early if there's no editor to work with.\n\t\t\tif ( undefined === wpEditor ) {\n\t\t\t\tconsole.error( 'Unable to access `wp.oldEditor` or `wp.editor`.' );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twpEditor.remove( field.id );\n\t\t\tfield.settings.tinymce.setup = function( editor ) {\n\n\t\t\t\tvar $ed = $( '#' + editor.id ),\n\t\t\t\t\t$parent = $ed.closest( '.llms-editable-editor' ),\n\t\t\t\t\t$label = $parent.find( '.llms-label' ),\n\t\t\t\t\tprop = $ed.attr( 'data-attribute' )\n\n\t\t\t\tif ( $label.length ) {\n\t\t\t\t\t$label.prependTo( $parent.find( '.wp-editor-tools' ) );\n\t\t\t\t}\n\n\t\t\t\t// save changes to the model via Visual ed\n\t\t\t\teditor.on( 'change', function( event ) {\n\t\t\t\t\tself.model.set( prop, wpEditor.getContent( editor.id ) );\n\t\t\t\t} );\n\n\t\t\t\t// save changes via Text ed\n\t\t\t\t$ed.on( 'input', function( event ) {\n\t\t\t\t\tself.model.set( prop, $ed.val() );\n\t\t\t\t} );\n\n\t\t\t\t// trigger an input on the Text ed when quicktags buttons are clicked\n\t\t\t\t$parent.on( 'click', '.quicktags-toolbar .ed_button', function() {\n\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t$ed.trigger( 'input' );\n\t\t\t\t\t}, 10 );\n\t\t\t\t} );\n\t\t\t};\n\n\t\t\twpEditor.initialize( field.id, field.settings );\n\n\t\t},\n\n\t\t/**\n\t\t * Get the HTML for a select field\n\t\t *\n\t\t * @param obj options flat or multi-dimensional options object\n\t\t * @param string attribute name of the select field's attribute\n\t\t * @return string\n\t\t * @since 3.17.0\n\t\t * @version 3.17.2\n\t\t */\n\t\trender_select_options: function( options, attribute ) {\n\n\t\t\tvar html = '',\n\t\t\t\tselected = this.model.get( attribute );\n\n\t\t\tfunction option_html( label, val ) {\n\n\t\t\t\treturn '' + label.substring( 0, 100 ) + ( label.length > 100 ? '...' : '' ) + ' ';\n\n\t\t\t}\n\n\t\t\t_.each( options, function( option, index ) {\n\n\t\t\t\t// this will be an key:val object\n\t\t\t\tif ( 'string' === typeof option ) {\n\t\t\t\t\thtml += option_html( option, index );\n\t\t\t\t\t// either option group or array of key,val objects\n\t\t\t\t} else if ( 'object' === typeof option ) {\n\t\t\t\t\t// option group\n\t\t\t\t\tif ( option.label && option.options ) {\n\t\t\t\t\t\thtml += '';\n\t\t\t\t\t\thtml += this.render_select_options( option.options, attribute );\n\t\t\t\t\t} else {\n\t\t\t\t\t\thtml += option_html( option.val, option.key );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}, this );\n\n\t\t\treturn html;\n\n\t\t},\n\n\t\t/**\n\t\t * Setup and fill fields with default data based on field type\n\t\t *\n\t\t * @since 3.17.0\n\t\t * @since 3.24.0 Unknown.\n\t\t * @since 3.37.11 Replace reference to `wp.editor` with `_.getEditor()` helper.\n\t\t * @since 4.7.0 Ensure `switch-number` fields are set with the `number` type attribute.\n\t\t *\n\t\t * @param {Object} orig_field Original field as defined in the settings.\n\t\t * @param {Integer} field_index Index of the field in the current row.\n\t\t * @return {Object}\n\t\t */\n\t\tsetup_field: function( orig_field, field_index ) {\n\n\t\t\tvar defaults = {\n\t\t\t\tclasses: [],\n\t\t\t\tid: _.uniqueId( orig_field.attribute + '_' ),\n\t\t\t\tinput_type: 'text',\n\t\t\t\tlabel: '',\n\t\t\t\toptions: {},\n\t\t\t\tplaceholder: '',\n\t\t\t\ttip: '',\n\t\t\t\ttip_position: 'top-right',\n\t\t\t\tsettings: {},\n\t\t\t};\n\n\t\t\t// check the field condition if set\n\t\t\tif ( orig_field.condition && false === _.bind( orig_field.condition, this.model )() ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tswitch ( orig_field.type ) {\n\n\t\t\t\tcase 'audio_embed':\n\t\t\t\t\tdefaults.classes.push( 'llms-editable-audio' );\n\t\t\t\t\tdefaults.placeholder = 'https://';\n\t\t\t\t\tdefaults.tip = LLMS.l10n.translate( 'Use SoundCloud or Spotify audio URLS.' );\n\t\t\t\t\tdefaults.input_type = 'url';\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'datepicker':\n\t\t\t\t\tdefaults.classes.push( 'llms-editable-date' );\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'editor':\n\t\t\t\tcase 'switch-editor':\n\t\t\t\t\tvar orig_settings = orig_field.settings || {};\n\t\t\t\t\tdefaults.settings = $.extend( true, _.getEditor().getDefaultSettings(), {\n\t\t\t\t\t\tmediaButtons: true,\n\t\t\t\t\t\ttinymce: {\n\t\t\t\t\t\t\ttoolbar1: 'bold,italic,strikethrough,bullist,numlist,blockquote,hr,alignleft,aligncenter,alignright,link,unlink,wp_adv',\n\t\t\t\t\t\t\ttoolbar2: 'formatselect,underline,alignjustify,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help',\n\t\t\t\t\t\t}\n\t\t\t\t\t}, orig_settings );\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'number':\n\t\t\t\tcase 'switch-number':\n\t\t\t\t\tdefaults.input_type = 'number';\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'permalink':\n\t\t\t\t\tdefaults.label = LLMS.l10n.translate( 'Permalink' );\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'video_embed':\n\t\t\t\t\tdefaults.classes.push( 'llms-editable-video' );\n\t\t\t\t\tdefaults.placeholder = 'https://';\n\t\t\t\t\tdefaults.tip = LLMS.l10n.translate( 'Use YouTube, Vimeo, or Wistia video URLS.' );\n\t\t\t\t\tdefaults.input_type = 'url';\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( this.has_switch( orig_field.type ) ) {\n\t\t\t\tdefaults.switch_on = 'yes';\n\t\t\t\tdefaults.switch_off = 'no';\n\t\t\t}\n\n\t\t\tvar field = _.defaults( _.deepClone( orig_field ), defaults );\n\n\t\t\t// if options is a function run it\n\t\t\tif ( _.isFunction( field.options ) ) {\n\t\t\t\tfield.options = _.bind( field.options, this.model )();\n\t\t\t}\n\n\t\t\t// if it's a radio field options values can be submitted as images\n\t\t\t// this will transform those images into html\n\t\t\tif ( -1 !== [ 'radio', 'switch-radio' ].indexOf( orig_field.type ) ) {\n\n\t\t\t\tvar has_images = false;\n\t\t\t\t_.each( orig_field.options, function( val, key ) {\n\t\t\t\t\tif ( -1 !== val.indexOf( '.png' ) || -1 !== val.indexOf( '.jpg' ) ) {\n\t\t\t\t\t\tfield.options[key] = ' ';\n\t\t\t\t\t\thas_images = true;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\tif ( has_images ) {\n\t\t\t\t\tfield.classes.push( 'has-images' );\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// transform classes array to a css class string\n\t\t\tif ( field.classes.length ) {\n\t\t\t\tfield.classes = ' ' + field.classes.join( ' ' );\n\t\t\t}\n\n\t\t\tthis.fields[ field.id ] = field;\n\n\t\t\treturn field;\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if toggling a switch select should rerender the view\n\t\t *\n\t\t * @param string field_type field type string\n\t\t * @return boolean\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tshould_rerender_on_toggle: function( field_type ) {\n\n\t\t\treturn ( -1 !== field_type.indexOf( 'switch-' ) ) ? 'yes' : 'no';\n\n\t\t},\n\n\t\t/**\n\t\t * Click event for toggling visibility of settings groups\n\t\t * If localStorage is available, persist state\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.17.0\n\t\t * @version 3.17.0\n\t\t */\n\t\ttoggle_group: function( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tvar $el = $( event.currentTarget ),\n\t\t\t\t$group = $el.closest( '.llms-model-settings' );\n\n\t\t\t$group.toggleClass( 'hidden' );\n\n\t\t\tif ( 'undefined' !== window.localStorage ) {\n\n\t\t\t\tvar id = $group.attr( 'id' );\n\t\t\t\tif ( $group.hasClass( 'hidden' ) ) {\n\t\t\t\t\twindow.localStorage.setItem( id, 'hidden' );\n\t\t\t\t} else {\n\t\t\t\t\twindow.localStorage.removeItem( id );\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t},\n\n\t} ) );\n\n} );\n\n","/**\n * Lesson Editor (Sidebar) View\n *\n * @package LifterLMS/Scripts/Builder\n *\n * @since 3.17.0\n * @since 3.35.2 Added filter `llms_lesson_rerender_change_events` to view re-render change events.\n * @version 3.35.2\n */\ndefine( 'Views/LessonEditor',[\n\t\t'Views/_Detachable',\n\t\t'Views/_Editable',\n\t\t'Views/_Trashable',\n\t\t'Views/_Subview',\n\t\t'Views/SettingsFields'\n\t], function(\n\t\tDetachable,\n\t\tEditable,\n\t\tTrashable,\n\t\tSubview,\n\t\tSettingsFields\n\t) {\n\n\t\treturn Backbone.View.extend( _.defaults( {\n\n\t\t\t/**\n\t\t\t * Current view state\n\t\t\t *\n\t\t\t * @type {String}\n\t\t\t */\n\t\t\tstate: 'default',\n\n\t\t\t/**\n\t\t\t * Current Subviews\n\t\t\t *\n\t\t\t * @type {Object}\n\t\t\t */\n\t\t\tviews: {\n\t\t\t\tsettings: {\n\t\t\t\t\tclass: SettingsFields,\n\t\t\t\t\tinstance: null,\n\t\t\t\t\tstate: 'default',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tel: '#llms-editor-lesson',\n\n\t\t\t/**\n\t\t\t * Events\n\t\t\t *\n\t\t\t * @type {Object}\n\t\t\t */\n\t\t\tevents: _.defaults( {}, Detachable.events, Editable.events, Trashable.events ),\n\n\t\t\t/**\n\t\t\t * Template function\n\t\t\t *\n\t\t\t * @type {[type]}\n\t\t\t */\n\t\t\ttemplate: wp.template( 'llms-lesson-settings-template' ),\n\n\t\t\t/**\n\t\t\t * Init\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t * @since 3.24.0 Unknown\n\t\t\t * @since 3.35.2 Added filter to change events.\n\t\t\t *\n\t\t\t * @param {obj} data Parent template data.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tinitialize: function( data ) {\n\n\t\t\t\tthis.model = data.lesson;\n\n\t\t\t\tvar change_events = window.llms.hooks.applyFilters( 'llms_lesson_rerender_change_events', [\n\t\t\t\t\t'change:date_available',\n\t\t\t\t\t'change:drip_method',\n\t\t\t\t\t'change:time_available',\n\t\t\t\t] );\n\t\t\t\t_.each( change_events, function( event ) {\n\t\t\t\t\tthis.listenTo( this.model, event, this.render );\n\t\t\t\t}, this );\n\n\t\t\t\t// render only the tooltip for points percentage when points change\n\t\t\t\tthis.listenTo( this.model, 'change:points', this.render_points_percentage );\n\n\t\t\t\t// when the \"has_prerequisite\" attr is toggled ON\n\t\t\t\t// trigger the prereq select object to set the default (first available) prereq for the lesson\n\t\t\t\tthis.listenTo( this.model, 'change:has_prerequisite', function( lesson, val ) {\n\t\t\t\t\tif ( 'yes' === val ) {\n\t\t\t\t\t\tthis.$el.find( 'select[name=\"prerequisite\"]' ).trigger( 'change' );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Render the view\n\t\t\t *\n\t\t\t * @return obj\n\t\t\t * @since 3.17.0\n\t\t\t * @version 3.24.0\n\t\t\t */\n\t\t\trender: function() {\n\n\t\t\t\tthis.$el.html( this.template( this.model ) );\n\n\t\t\t\tthis.remove_subview( 'settings' );\n\n\t\t\t\tthis.render_subview( 'settings', {\n\t\t\t\t\tel: '#llms-lesson-settings-fields',\n\t\t\t\t\tmodel: this.model,\n\t\t\t\t} );\n\n\t\t\t\tthis.init_datepickers();\n\t\t\t\tthis.init_selects();\n\n\t\t\t\tthis.render_points_percentage();\n\n\t\t\t\treturn this;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Render the portion of the template which displays the points percentage\n\t\t\t *\n\t\t\t * @return void\n\t\t\t * @since 3.24.0\n\t\t\t * @version 3.24.0\n\t\t\t */\n\t\t\trender_points_percentage: function() {\n\t\t\t\tthis.$el.find( '#llms-model-settings-field--points .llms-editable-input' )\n\t\t\t\t.addClass( 'tip--top-left' )\n\t\t\t\t.attr( 'data-tip', this.model.get_points_percentage() );\n\t\t\t}\n\n\t\t}, Detachable, Editable, Trashable, Subview, SettingsFields ) );\n\n} );\n\n","/**\n * Popover View\n *\n * @since 3.16.0\n * @version 4.0.0\n */\ndefine( 'Views/Popover',[], function() {\n\n\treturn Backbone.View.extend( {\n\n\t\t/**\n\t\t * Default Properties\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tdefaults: {\n\t\t\tplacement: 'auto',\n\t\t\t// container: document.body,\n\t\t\twidth: 'auto',\n\t\t\ttrigger: 'manual',\n\t\t\tstyle: 'light',\n\t\t\tanimation: 'pop',\n\t\t\ttitle: '',\n\t\t\tcontent: '',\n\t\t\tcloseable: false,\n\t\t\tbackdrop: false,\n\t\t\tonShow: function( $el ) {},\n\t\t\tonHide: function( $el ) {},\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'div',\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t *\n\t\t * @since 3.14.1\n\t\t * @since 4.0.0 Add RTL support for popovers.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tinitialize: function( data ) {\n\n\t\t\tif ( this.$el.length ) {\n\t\t\t\tthis.defaults.container = this.$el.parent();\n\t\t\t}\n\n\t\t\tthis.args = _.defaults( data.args, this.defaults );\n\n\t\t\t// Reverse directions for RTL sites.\n\t\t\tif ( $( 'body' ).hasClass( 'rtl' ) ) {\n\n\t\t\t\tif ( -1 !== this.args.placement.indexOf( 'left' ) ) {\n\t\t\t\t\tthis.args.placement = this.args.placement.replace( 'left', 'right' );\n\t\t\t\t} else if ( -1 !== this.args.placement.indexOf( 'right' ) ) {\n\t\t\t\t\tthis.args.placement = this.args.placement.replace( 'right', 'left' );\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.render();\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Object} Instance of the Backbone.view.\n\t\t */\n\t\trender: function() {\n\n\t\t\tthis.$el.webuiPopover( this.args );\n\t\t\treturn this;\n\n\t\t},\n\n\t\t/**\n\t\t * Hide the popover\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.16.12 Unknown.\n\t\t *\n\t\t * @return {Object} Instance of the Backbone.view.\n\t\t */\n\t\thide: function() {\n\n\t\t\tthis.$el.webuiPopover( 'hide' );\n\t\t\treturn this;\n\n\t\t},\n\n\t\t/**\n\t\t * Show the popover\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.16.12 Unknown.\n\t\t *\n\t\t * @return {Object} Instance of the Backbone.view.\n\t\t */\n\t\tshow: function() {\n\n\t\t\tthis.$el.webuiPopover( 'show' );\n\t\t\treturn this;\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Post Popover Search content View\n *\n * @since 3.16.0\n * @version 4.4.0\n */\ndefine( 'Views/PostSearch',[], function() {\n\n\treturn Backbone.View.extend( {\n\n\t\t/**\n\t\t * DOM Events\n\t\t *\n\t\t * @type obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tevents: {\n\t\t\t'select2:select': 'add_post',\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'select',\n\n\t\t/**\n\t\t * Initializer\n\t\t *\n\t\t * @param obj data customize the search box with data\n\t\t * @return void\n\t\t * @since 3.16.12\n\t\t * @version 3.16.12\n\t\t */\n\t\tinitialize: function( data ) {\n\n\t\t\tthis.post_type = data.post_type;\n\t\t\tthis.searching_message = data.searching_message || LLMS.l10n.translate( 'Searching...' );\n\n\t\t},\n\n\t\t/**\n\t\t * Select event, adds the existing lesson to the course\n\t\t *\n\t\t * @param obj event select2:select event object\n\t\t * @since 3.16.0\n\t\t * @version 3.17.0\n\t\t */\n\t\tadd_post: function( event ) {\n\n\t\t\tvar type = this.$el.attr( 'data-post-type' );\n\n\t\t\tBackbone.pubSub.trigger( type.replace( 'llms_', '' ) + '-search-select', event.params.data, event );\n\t\t\tthis.$el.val( null ).trigger( 'change' );\n\n\t\t},\n\n\t\t/**\n\t\t * Render the section\n\t\t *\n\t\t * Initializes a new collection and views for all lessons in the section.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.16.12 Unknown.\n\t\t * @since 4.4.0 Update ajax nonce source.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\trender: function() {\n\t\t\tvar self = this;\n\t\t\tsetTimeout( function () {\n\t\t\t\tself.$el.llmsSelect2( {\n\t\t\t\t\tajax: {\n\t\t\t\t\t\tdataType: 'JSON',\n\t\t\t\t\t\tdelay: 250,\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\turl: window.ajaxurl,\n\t\t\t\t\t\tdata: function( params ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\taction: 'llms_builder',\n\t\t\t\t\t\t\t\taction_type: 'search',\n\t\t\t\t\t\t\t\tcourse_id: window.llms_builder.course.id,\n\t\t\t\t\t\t\t\tpost_type: self.post_type,\n\t\t\t\t\t\t\t\tterm: params.term,\n\t\t\t\t\t\t\t\tpage: params.page,\n\t\t\t\t\t\t\t\t_ajax_nonce: window.llms.ajax_nonce,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tdropdownParent: $( '.wrap.lifterlms.llms-builder' ),\n\t\t\t\t\t// Don't escape html from render_result.\n\t\t\t\t\tescapeMarkup: function( markup ) {\n\t\t\t\t\t\treturn markup;\n\t\t\t\t\t},\n\t\t\t\t\tplaceholder: self.searching_message,\n\t\t\t\t\ttemplateResult: self.render_result,\n\t\t\t\t\twidth: '100%',\n\t\t\t\t} );\n\t\t\t\tself.$el.attr( 'data-post-type', self.post_type );\n\t\t\t}, 0 );\n\t\t\treturn this;\n\n\t\t},\n\n\t\t/**\n\t\t * Render a nicer UI for each search result in the in the Select2 search results\n\t\t *\n\t\t * @param object res result data\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.16.12\n\t\t */\n\t\trender_result: function( res ) {\n\n\t\t\tvar $html = $( '
' );\n\n\t\t\tif ( res.loading ) {\n\t\t\t\treturn $html.append( res.text );\n\t\t\t}\n\n\t\t\tvar $side = $( '' ),\n\t\t\t\t$main = $( '
' );\n\t\t\t\ticon = ( 'attach' === res.action ) ? 'paperclip' : 'clone',\n\t\t\t\ttext = ( 'attach' === res.action ) ? LLMS.l10n.translate( 'Attach' ) : LLMS.l10n.translate( 'Clone' );\n\n\t\t\t$side.append( '' + text + ' ' );\n\n\t\t\t$main.append( '' + res.data.title + ' ' );\n\t\t\t$main.append( '' + LLMS.l10n.translate( 'ID' ) + ': ' + res.data.id + ' ' );\n\n\t\t\t_.each( res.parents, function( parent ) {\n\t\t\t\t$main.append( '' + parent + ' ' );\n\t\t\t} );\n\n\t\t\treturn $html.append( $side ).append( $main );\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Question Type View\n *\n * @since 3.16.0\n * @since 3.30.1 Fixed issue causing multiple binds for add_existing_question events.\n * @version 5.4.0\n */\ndefine( 'Views/QuestionType',[ 'Views/Popover', 'Views/PostSearch' ], function( Popover, QuestionSearch ) {\n\n\treturn Backbone.View.extend( {\n\n\t\t/**\n\t\t * HTML class names.\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tclassName: 'llms-question-type',\n\n\t\tevents: {\n\t\t\t'click .llms-add-question': 'add_question',\n\t\t},\n\n\t\t/**\n\t\t * HTML element wrapper ID attribute.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {String}\n\t\t */\n\t\tid: function() {\n\t\t\treturn 'llms-question-type-' + this.model.id;\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name.\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'li',\n\n\t\t/**\n\t\t * Get the underscore template.\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-question-type-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen).\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.render();\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Self} For chaining.\n\t\t */\n\t\trender: function() {\n\t\t\tthis.$el.html( this.template( this.model ) );\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Add a question of the selected type to the current quiz.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.27.0 Unknown.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tadd_question: function() {\n\n\t\t\tif ( 'existing' === this.model.get( 'id' ) ) {\n\t\t\t\tthis.add_existing_question_click();\n\t\t\t} else {\n\t\t\t\tthis.add_new_question();\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Add a new question to the quiz.\n\t\t *\n\t\t * @since 3.27.0\n\t\t * @since 3.30.1 Fixed issue causing multiple binds.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tadd_existing_question_click: function() {\n\n\t\t\tvar pop = new Popover( {\n\t\t\t\tel: '#llms-add-question--existing',\n\t\t\t\targs: {\n\t\t\t\t\tbackdrop: true,\n\t\t\t\t\tcloseable: true,\n\t\t\t\t\tcontainer: '#llms-builder-sidebar',\n\t\t\t\t\tdismissible: true,\n\t\t\t\t\tplacement: 'top-left',\n\t\t\t\t\twidth: 'calc( 100% - 40px )',\n\t\t\t\t\toffsetLeft: 250,\n\t\t\t\t\toffsetTop: 60,\n\t\t\t\t\ttitle: LLMS.l10n.translate( 'Add Existing Question' ),\n\t\t\t\t\tcontent: new QuestionSearch( {\n\t\t\t\t\t\tpost_type: 'llms_question',\n\t\t\t\t\t\tsearching_message: LLMS.l10n.translate( 'Search for existing questions...' ),\n\t\t\t\t\t} ).render().$el,\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tpop.show();\n\t\t\tBackbone.pubSub.on( 'question-search-select', this.add_existing_question, this );\n\t\t\tBackbone.pubSub.on( 'question-search-select', function( event ) {\n\t\t\t\tpop.hide();\n\t\t\t\tBackbone.pubSub.off( 'question-search-select', this.add_existing_question, this );\n\t\t\t}, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Callback event fired when a question is selected from the Add Existing Question popover interface.\n\t\t *\n\t\t * @since 3.27.0\n\t\t * @since 5.4.0 Use author id instead of the question author object.\n\t\t *\n\t\t * @param {Object} event JS event object.\n\t\t * @return {Void}\n\t\t */\n\t\tadd_existing_question: function( event ) {\n\n\t\t\tvar question = event.data;\n\n\t\t\tif ( 'clone' === event.action ) {\n\t\t\t\tquestion = _.prepareQuestionObjectForCloning( question );\n\t\t\t} else {\n\t\t\t\t// Use author id instead of the question author object.\n\t\t\t\tquestion = _.prepareExistingPostObjectDataForAddingOrCloning( question );\n\t\t\t\tquestion._forceSync = true;\n\t\t\t}\n\n\t\t\tquestion._expanded = true;\n\t\t\tthis.quiz.add_question( question );\n\n\t\t\tthis.quiz.trigger( 'new-question-added' );\n\n\t\t},\n\n\t\t/**\n\t\t * Add a new question to the quiz.\n\t\t *\n\t\t * @since 3.27.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tadd_new_question: function() {\n\n\t\t\tthis.quiz.add_question( {\n\t\t\t\t_expanded: true,\n\t\t\t\tchoices: this.model.get( 'default_choices' ) ? this.model.get( 'default_choices' ) : null,\n\t\t\t\tquestion_type: this.model,\n\t\t\t} );\n\n\t\t\tthis.quiz.trigger( 'new-question-added' );\n\n\t\t},\n\n\t\t// filter: function( term ) {\n\n\t\t// var words = this.model.get_keywords().map( function( word ) {\n\t\t// return word.toLowerCase();\n\t\t// } );\n\n\t\t// term = term.toLowerCase();\n\n\t\t// if ( -1 === words.indexOf( term ) ) {\n\t\t// this.$el.addClass( 'filtered' );\n\t\t// } else {\n\t\t// this.$el.removeClass( 'filtered' );\n\t\t// }\n\n\t\t// },\n\n\t\t// clear_filter: function() {\n\t\t// this.$el.removeClass( 'filtered' );\n\t\t// }\n\n\t} );\n\n} );\n\n","/**\n * Quiz question bank view\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/QuestionBank',[ 'Views/QuestionType' ], function( QuestionView ) {\n\n\treturn Backbone.CollectionView.extend( {\n\n\t\tclassName: 'llms-question',\n\n\t\t/**\n\t\t * Parent element\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tel: '#llms-question-bank',\n\n\t\t/**\n\t\t * Section model\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\tmodelView: QuestionView,\n\n\t\t/**\n\t\t * Are sections selectable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tselectable: false,\n\n\t\t/**\n\t\t * Are sections sortable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tsortable: false,\n\n\t} );\n\n} );\n\n","/**\n * Single Question Choice View\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/QuestionChoice',[ 'Views/_Editable', ], function( Editable ) {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * HTML class names\n\t\t * @type {String}\n\t\t */\n\t\tclassName: 'llms-question-choice',\n\n\t\tevents: _.defaults( {\n\t\t\t'change input[name=\"correct\"]': 'toggle_correct',\n\t\t\t'click .llms-action-icon[href=\"#llms-add-choice\"]': 'add_choice',\n\t\t\t'click .llms-action-icon[href=\"#llms-del-choice\"]': 'del_choice',\n\t\t}, Editable.events ),\n\n\t\t/**\n\t\t * HTML element wrapper ID attribute\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tid: function() {\n\t\t\treturn 'llms-question-choice-' + this.model.id;\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'li',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-question-choice-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t * @return void\n\t\t * @since 3.14.1\n\t\t * @version 3.14.1\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tthis.render();\n\n\t\t\tthis.listenTo( this.model.collection, 'add', this.maybe_disable_buttons );\n\t\t\tthis.listenTo( this.model, 'change', this.render );\n\n\t\t\tif ( 'image' === this.model.get( 'choice_type' ) ) {\n\t\t\t\tthis.listenTo( this.model.get( 'choice' ), 'change', this.render );\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t * @return self (for chaining)\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender: function() {\n\t\t\tthis.$el.html( this.template( this.model ) );\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Add a new choice to the current choice list\n\t\t * Adds *after* the clicked choice\n\t\t * @param obj event JS event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tadd_choice: function( event ) {\n\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n\t\t\tvar index = this.model.collection.indexOf( this.model );\n\t\t\tthis.model.collection.parent.add_choice( {}, {\n\t\t\t\tat: index + 1,\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Delete the choice from the choice list & ensure there's at least one correct choice\n\t\t * @param obj event js event obj\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tdel_choice: function( event ) {\n\n\t\t\tevent.preventDefault();\n\t\t\tBackbone.pubSub.trigger( 'model-trashed', this.model );\n\t\t\tthis.model.collection.remove( this.model );\n\n\t\t},\n\n\t\t/**\n\t\t * When the correct answer input changes sync status to model\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ttoggle_correct: function() {\n\n\t\t\tvar correct = this.$el.find( 'input[name=\"correct\"]' ).is( ':checked' );\n\t\t\tthis.model.set( 'correct', correct );\n\t\t\tthis.model.collection.trigger( 'correct-update', this.model );\n\n\t\t},\n\n\t}, Editable ) );\n\n} );\n\n","/**\n * Quiz question bank view\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/QuestionChoiceList',[ 'Views/QuestionChoice' ], function( ChoiceView ) {\n\n\treturn Backbone.CollectionView.extend( {\n\n\t\tclassName: 'llms-quiz-questions',\n\n\t\t/**\n\t\t * Choice model view\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\tmodelView: ChoiceView,\n\n\t\t/**\n\t\t * Enable keyboard events\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tprocessKeyEvents: false,\n\n\t\t/**\n\t\t * Are sections selectable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tselectable: false,\n\n\t\t/**\n\t\t * Are sections sortable?\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tsortable: true,\n\n\t\tsortableOptions: {\n\t\t\taxis: false,\n\t\t\t// connectWith: '.llms-lessons',\n\t\t\tcursor: 'move',\n\t\t\thandle: '.llms-choice-id',\n\t\t\titems: '.llms-question-choice',\n\t\t\tplaceholder: 'llms-question-choice llms-sortable-placeholder',\n\t\t},\n\n\t\tsortable_start: function( model ) {\n\t\t\tthis.$el.addClass( 'dragging' );\n\t\t},\n\n\t\tsortable_stop: function( model ) {\n\t\t\tthis.$el.removeClass( 'dragging' );\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Single Question View.\n *\n * @since 3.16.0\n * @version 7.8.0\n */\ndefine( 'Views/Question',[\n\t\t'Views/_Detachable',\n\t\t'Views/_Editable',\n\t\t'Views/QuestionChoiceList'\n\t], function(\n\t\tDetachable,\n\t\tEditable,\n\t\tChoiceListView\n\t) {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * Generate CSS classes for the question\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tclassName: function() {\n\t\t\treturn 'llms-question qtype--' + this.model.get( 'question_type' ).get( 'id' );\n\t\t},\n\n\t\tevents: _.defaults( {\n\t\t\t'click .clone--question': 'clone',\n\t\t\t'click .delete--question': 'delete',\n\t\t\t'click .expand--question': 'expand',\n\t\t\t'click .collapse--question': 'collapse',\n\t\t\t'change input[name=\"question_points\"]': 'update_points',\n\t\t}, Detachable.events, Editable.events ),\n\n\t\t/**\n\t\t * HTML element wrapper ID attribute\n\t\t * @return string\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tid: function() {\n\t\t\treturn 'llms-question-' + this.model.id;\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'li',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-question-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tvar change_events = [\n\t\t\t\t'change:_expanded',\n\t\t\t\t'change:menu_order',\n\t\t\t];\n\t\t\t_.each( change_events, function( event ) {\n\t\t\t\tthis.listenTo( this.model, event, this.render );\n\t\t\t}, this );\n\n\t\t\tthis.listenTo( this.model.get( 'image' ), 'change', this.render );\n\n\t\t\tthis.listenTo( this.model.get_parent(), 'change:_points', this.render_points_percentage );\n\n\t\t\tthis.on( 'multi_choices_toggle', this.multi_choices_toggle, this );\n\n\t\t\tBackbone.pubSub.on( 'del-question-choice', this.del_choice, this );\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 7.8.0 Added support for image upload in tinyMCE editor.\n\t\t *\n\t\t * @return self (for chaining)\n\t\t */\n\t\trender: function() {\n\n\t\t\tthis.$el.html( this.template( this.model ) );\n\n\t\t\tif ( this.model.get( 'question_type').get( 'choices' ) ) {\n\n\t\t\t\tthis.choiceListView = new ChoiceListView( {\n\t\t\t\t\tel: this.$el.find( '.llms-question-choices' ),\n\t\t\t\t\tcollection: this.model.get( 'choices' ),\n\t\t\t\t} );\n\t\t\t\tthis.choiceListView.render();\n\t\t\t\tthis.choiceListView.on( 'sortStart', this.choiceListView.sortable_start );\n\t\t\t\tthis.choiceListView.on( 'sortStop', this.choiceListView.sortable_stop );\n\n\t\t\t}\n\n\t\t\tif ( 'group' === this.model.get( 'question_type' ).get( 'id' ) ) {\n\n\t\t\t\tvar self = this;\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\tself.questionListView = self.collectionListView.quiz.get_question_list( {\n\t\t\t\t\t\tel: self.$el.find( '.llms-quiz-questions' ),\n\t\t\t\t\t\tcollection: self.model.get( 'questions' ),\n\t\t\t\t\t} );\n\t\t\t\t\tself.questionListView.render();\n\t\t\t\t\tself.questionListView.on( 'sortStart', self.questionListView.sortable_start );\n\t\t\t\t\tself.questionListView.on( 'sortStop', self.questionListView.sortable_stop );\n\t\t\t\t}, 1 );\n\n\t\t\t}\n\n\t\t\tif ( this.model.get( 'description_enabled' ) ) {\n\t\t\t\tthis.init_editor( 'question-desc--' + this.model.get( 'id' ) );\n\t\t\t}\n\n\t\t\tif ( this.model.get( 'clarifications_enabled' ) ) {\n\t\t\t\tthis.init_editor( 'question-clarifications--' + this.model.get( 'id' ), {\n\t\t\t\t\tmediaButtons: true,\n\t\t\t\t\ttinymce: {\n\t\t\t\t\t\ttoolbar1: 'bold,italic,strikethrough,bullist,numlist,alignleft,aligncenter,alignright',\n\t\t\t\t\t\ttoolbar2: '',\n\t\t\t\t\t\tsetup: _.bind( this.on_editor_ready, this ),\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tthis.init_formatting_els();\n\t\t\tthis.init_selects();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * rerender points percentage when question points are updated\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender_points_percentage: function() {\n\n\t\t\tthis.$el.find( '.llms-question-points' ).attr( 'data-tip', this.model.get_points_percentage() );\n\n\t\t},\n\n\t\t/**\n\t\t * Click event to duplicate a question within a quiz\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tclone: function( event ) {\n\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tthis.model.collection.add( this._get_question_clone( this.model ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Recursive clone function which will correctly clone children of a question\n\t\t * @param obj question question model\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_get_question_clone: function( question ) {\n\n\t\t\t// create a duplicate\n\t\t\tvar clone = _.clone( question.attributes );\n\n\t\t\t// remove id (we want the duplicate to have a temp id)\n\t\t\tdelete clone.id;\n\n\t\t\tclone.parent_id = question.get( 'id' );\n\n\t\t\t// set the question type ID\n\t\t\tclone.question_type = question.get( 'question_type' ).get( 'id' );\n\n\t\t\t// clone the image attributes separately\n\t\t\tclone.image = _.clone( question.get( 'image' ).attributes );\n\n\t\t\t// if it has choices clone all the choices\n\t\t\tif ( question.get( 'choices' ) ) {\n\n\t\t\t\tclone.choices = [];\n\n\t\t\t\tquestion.get( 'choices' ).each( function ( choice ) {\n\n\t\t\t\t\tvar choice_clone = _.clone( choice.attributes );\n\t\t\t\t\tdelete choice_clone.id;\n\t\t\t\t\tdelete choice_clone.question_id;\n\n\t\t\t\t\tclone.choices.push( choice_clone );\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tif ( 'group' === question.get( 'question_type' ).get( 'id' ) ) {\n\n\t\t\t\tclone.questions = [];\n\t\t\t\tquestion.get( 'questions' ).each( function( child ) {\n\t\t\t\t\tclone.questions.push( this._get_question_clone( child ) );\n\t\t\t\t}, this );\n\n\t\t\t}\n\n\t\t\treturn clone;\n\n\t\t},\n\n\t\t/**\n\t\t * Collapse a question and hide it's settings\n\t\t * @param obj event js event obj.\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.27.0\n\t\t */\n\t\tcollapse: function( event ) {\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tthis.model.set( '_expanded', false );\n\n\t\t},\n\n\t\t/**\n\t\t * Delete the question from a quiz / question group\n\t\t * @param obj event js event object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tdelete: function( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( window.confirm( LLMS.l10n.translate( 'Are you sure you want to delete this question?' ) ) ) {\n\n\t\t\t\tthis.model.collection.remove( this.model );\n\t\t\t\tBackbone.pubSub.trigger( 'model-trashed', this.model );\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Click event to reveal a question's settings & choices\n\t\t * @param obj event js event obj.\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.27.0\n\t\t */\n\t\texpand: function( event ) {\n\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\tthis.model.set( '_expanded', true );\n\n\t\t},\n\n\t\t/**\n\t\t * When toggling multiple correct answers *off* remove all correct choices except the first correct choice in the list\n\t\t * @param string val value of the question's `multi_choice` attr [yes|no]\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tmulti_choices_toggle: function( val ) {\n\n\t\t\tif ( 'yes' === val ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.model.get( 'choices' ).update_correct( _.first( this.model.get( 'choices' ).get_correct() ) );\n\n\t\t},\n\n\t\t/**\n\t\t * Update the model's points when the value of the points input is updated\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_points: function() {\n\n\t\t\tthis.model.set( 'points', this.$el.find( 'input[name=\"question_points\"]' ).val() * 1 );\n\n\t\t}\n\n\t}, Detachable, Editable ) );\n\n} );\n\n","/**\n * Quiz question bank view\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/QuestionList',[ 'Views/Question' ], function( QuestionView ) {\n\n\treturn Backbone.CollectionView.extend( {\n\n\t\tclassName: 'llms-quiz-questions',\n\n\t\t/**\n\t\t * Parent element\n\t\t * @type {String}\n\t\t */\n\t\t// el: '#llms-quiz-questions',\n\n\t\t/**\n\t\t * Section model\n\t\t * @type {[type]}\n\t\t */\n\t\tmodelView: QuestionView,\n\n\t\t/**\n\t\t * Enable keyboard events\n\t\t * @type {Bool}\n\t\t */\n\t\tprocessKeyEvents: false,\n\n\t\t/**\n\t\t * Are sections selectable?\n\t\t * @type {Bool}\n\t\t */\n\t\tselectable: false,\n\n\t\t/**\n\t\t * Are sections sortable?\n\t\t * @type {Bool}\n\t\t */\n\t\tsortable: true,\n\n\t\tsortableOptions: {\n\t\t\taxis: false,\n\t\t\tconnectWith: '.llms-quiz-questions',\n\t\t\tcursor: 'move',\n\t\t\thandle: '.llms-data-stamp',\n\t\t\titems: '.llms-question',\n\t\t\tplaceholder: 'llms-question llms-sortable-placeholder',\n\t\t},\n\n\t\t/**\n\t\t * Highlight drop areas when dragging starts\n\t\t * @param obj model model being sorted\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tsortable_start: function( model ) {\n\t\t\tvar selector = 'group' === model.get( 'question_type' ).get( 'id' ) ? '.llms-editor-tab > .llms-quiz-questions' : '.llms-quiz-questions';\n\t\t\t$( selector ).addClass( 'dragging' );\n\t\t},\n\n\t\t/**\n\t\t * Remove highlights when dragging stops\n\t\t * @param obj model model being sorted\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tsortable_stop: function() {\n\t\t\t$( '.llms-quiz-questions' ).removeClass( 'dragging' );\n\t\t},\n\n\t\t/**\n\t\t * Overrides receive to ensure that question groups can't be moved into question groups\n\t\t * @param obj event js event object\n\t\t * @param obj ui jQuery UI Sortable ui object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_receive : function( event, ui ) {\n\n\t\t\tevent.stopPropagation();\n\n\t\t\t// prevent moving a question group into a question group\n\t\t\tif ( ui.item.hasClass( 'qtype--group' ) && $( event.target ).closest( '.qtype--group' ).length ) {;\n\t\t\t\tui.sender.sortable( 'cancel' );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar senderListEl = ui.sender;\n\t\t\tvar senderCollectionListView = senderListEl.data( \"view\" );\n\t\t\tif( ! senderCollectionListView || ! senderCollectionListView.collection ) return;\n\n\t\t\tvar newIndex = this._getContainerEl().children().index( ui.item );\n\t\t\tvar modelReceived = senderCollectionListView.collection.get( ui.item.attr( \"data-model-cid\" ) );\n\t\t\tsenderCollectionListView.collection.remove( modelReceived );\n\t\t\tthis.collection.add( modelReceived, { at : newIndex } );\n\t\t\tmodelReceived.collection = this.collection; // otherwise will not get properly set, since modelReceived.collection might already have a value.\n\t\t\tthis.setSelectedModel( modelReceived );\n\t\t},\n\n\t\t/**\n\t\t * Override to allow manipulation of placeholder element\n\t\t * @param {[type]} event [description]\n\t\t * @param {[type]} ui [description]\n\t\t * @return {[type]}\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_sortStart : function( event, ui ) {\n\n\t\t\tvar modelBeingSorted = this.collection.get( ui.item.attr( \"data-model-cid\" ) );\n\n\t\t\tui.placeholder.addClass( 'qtype--' + modelBeingSorted.get( 'question_type' ).get( 'id' ) );\n\n\t\t\tif( this._isBackboneCourierAvailable() )\n\t\t\t\tthis.spawn( \"sortStart\", { modelBeingSorted : modelBeingSorted } );\n\t\t\telse this.trigger( \"sortStart\", modelBeingSorted );\n\t\t},\n\n\t\t/**\n\t\t * Overloads the function from Backbone.CollectionView core because it doesn't send stop events\n\t\t * if moving from one sortable to another... :-(\n\t\t * @param obj event js event object\n\t\t * @param obj ui jQuery UI object\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\t_sortStop : function( event, ui ) {\n\n\t\t\tevent.stopPropagation();\n\n\t\t\tvar modelBeingSorted = this.collection.get( ui.item.attr( 'data-model-cid' ) ),\n\t\t\t\tmodelViewContainerEl = this._getContainerEl(),\n\t\t\t\tnewIndex = modelViewContainerEl.children().index( ui.item );\n\n\t\t\tif ( newIndex == -1 && modelBeingSorted ) {\n\t\t\t\tthis.collection.remove( modelBeingSorted );\n\t\t\t}\n\n\t\t\tthis._reorderCollectionBasedOnHTML();\n\t\t\tthis.updateDependentControls();\n\n\t\t\tif( this._isBackboneCourierAvailable() ) {\n\t\t\t\tthis.spawn( 'sortStop', { modelBeingSorted : modelBeingSorted, newIndex : newIndex } );\n\t\t\t} else {\n\t\t\t\tthis.trigger( 'sortStop', modelBeingSorted, newIndex );\n\t\t\t}\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Single Quiz View.\n *\n * @since 3.16.0\n * @version 5.4.0\n */\ndefine( 'Views/Quiz',[\n\t\t'Models/Quiz',\n\t\t'Views/Popover',\n\t\t'Views/PostSearch',\n\t\t'Views/QuestionBank',\n\t\t'Views/QuestionList',\n\t\t'Views/SettingsFields',\n\t\t'Views/_Detachable',\n\t\t'Views/_Editable',\n\t\t'Views/_Subview',\n\t\t'Views/_Trashable'\n\t], function(\n\t\tQuizModel,\n\t\tPopover,\n\t\tPostSearch,\n\t\tQuestionBank,\n\t\tQuestionList,\n\t\tSettingsFields,\n\t\tDetachable,\n\t\tEditable,\n\t\tSubview,\n\t\tTrashable\n\t) {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * Current view state.\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tstate: 'default',\n\n\t\t/**\n\t\t * Current Subviews.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tviews: {\n\t\t\tsettings: {\n\t\t\t\tclass: SettingsFields,\n\t\t\t\tinstance: null,\n\t\t\t\tstate: 'default',\n\t\t\t},\n\t\t\tbank: {\n\t\t\t\tclass: QuestionBank,\n\t\t\t\tinstance: null,\n\t\t\t\tstate: 'default',\n\t\t\t},\n\t\t\tlist: {\n\t\t\t\tclass: QuestionList,\n\t\t\t\tinstance: null,\n\t\t\t\tstate: 'default',\n\t\t\t},\n\t\t},\n\n\t\tel: '#llms-editor-quiz',\n\n\t\t/**\n\t\t * Events.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tevents: _.defaults( {\n\t\t\t'click #llms-existing-quiz': 'add_existing_quiz_click',\n\t\t\t'click #llms-new-quiz': 'add_new_quiz',\n\t\t\t'click #llms-show-question-bank': 'show_tools',\n\t\t\t'click .bulk-toggle': 'bulk_toggle',\n\t\t\t// 'keyup #llms-question-bank-filter': 'filter_question_types',\n\t\t\t// 'search #llms-question-bank-filter': 'filter_question_types',\n\t\t}, Detachable.events, Editable.events, Trashable.events ),\n\n\t\t/**\n\t\t * Wrapper Tag name.\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'div',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-quiz-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen).\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.19.2 Unknown.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tinitialize: function( data ) {\n\n\t\t\tthis.lesson = data.lesson;\n\n\t\t\t// Initialize the model if the quiz is enabled or it's disabled but we still have data for a quiz.\n\t\t\tif ( 'yes' === this.lesson.get( 'quiz_enabled' ) || ! _.isEmpty( this.lesson.get( 'quiz' ) ) ) {\n\n\t\t\t\tthis.model = this.lesson.get( 'quiz' );\n\n\t\t\t\t/**\n\t\t\t\t * @todo this is a terrible terrible patch\n\t\t\t\t * I've spent nearly 3 days trying to figure out how to not use this line of code\n\t\t\t\t * ISSUE REPRODUCTION:\n\t\t\t\t * Open course builder\n\t\t\t\t * Open a lesson (A) and add a quiz\n\t\t\t\t * Switch to a new lesson (B)\n\t\t\t\t * Add a new quiz\n\t\t\t\t * Return to lesson A and the quizzes parent will be set to LESSON B\n\t\t\t\t * This will happen for *every* quiz in the builder...\n\t\t\t\t * Adding this set_parent on init guarantees that the quizzes correct parent is set\n\t\t\t\t * after adding new quizzes to other lessons\n\t\t\t\t * it's awful and it's gross...\n\t\t\t\t * I'm confused and tired and going to miss release dates again because of it\n\t\t\t\t */\n\t\t\t\tthis.model.set_parent( this.lesson );\n\n\t\t\t\tthis.listenTo( this.model, 'change:_points', this.render_points );\n\n\t\t\t}\n\n\t\t\tthis.on( 'model-trashed', this.on_trashed );\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.19.2 Unknown.\n\t\t *\n\t\t * @return {Self} For chaining.\n\t\t */\n\t\trender: function() {\n\n\t\t\tthis.$el.html( this.template( this.model ) );\n\n\t\t\t// Render the quiz builder.\n\t\t\tif ( this.model ) {\n\n\t\t\t\t// Don't allow interaction until questions are lazy loaded.\n\t\t\t\tLLMS.Spinner.start( this.$el );\n\n\t\t\t\tthis.render_subview( 'settings', {\n\t\t\t\t\tel: '#llms-quiz-settings-fields',\n\t\t\t\t\tmodel: this.model,\n\t\t\t\t} );\n\n\t\t\t\tthis.init_datepickers();\n\t\t\t\tthis.init_selects();\n\n\t\t\t\tthis.render_subview( 'bank', {\n\t\t\t\t\tcollection: window.llms_builder.questions,\n\t\t\t\t} );\n\n\t\t\t\tvar last_group = null,\n\t\t\t\t\tgroup = null;\n\t\t\t\t// Let all the question types reference the quiz for adding questions quickly.\n\t\t\t\tthis.get_subview( 'bank' ).instance.viewManager.each( function( view ) {\n\n\t\t\t\t\tview.quiz = this.model;\n\n\t\t\t\t\tgroup = view.model.get( 'group' ).name;\n\n\t\t\t\t\tif ( last_group !== group ) {\n\t\t\t\t\t\tlast_group = group;\n\t\t\t\t\t\tview.$el.before( '' );\n\t\t\t\t\t}\n\n\t\t\t\t}, this );\n\n\t\t\t\tthis.model.load_questions( _.bind( function( err ) {\n\n\t\t\t\t\tif ( err ) {\n\t\t\t\t\t\talert( LLMS.l10n.translate( 'An error occurred while trying to load the questions. Please refresh the page and try again.' ) );\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t}\n\n\t\t\t\t\tLLMS.Spinner.stop( this.$el );\n\t\t\t\t\tthis.render_subview( 'list', {\n\t\t\t\t\t\tel: '#llms-quiz-questions',\n\t\t\t\t\t\tcollection: this.model.get( 'questions' ),\n\t\t\t\t\t} );\n\t\t\t\t\tvar list = this.get_subview( 'list' ).instance;\n\t\t\t\t\tlist.quiz = this;\n\t\t\t\t\tlist.collection.on( 'add', function() {\n\t\t\t\t\t\tlist.collection.trigger( 'reorder' );\n\t\t\t\t\t}, this );\n\t\t\t\t\tlist.on( 'sortStart', list.sortable_start );\n\t\t\t\t\tlist.on( 'sortStop', list.sortable_stop );\n\n\t\t\t\t}, this ) );\n\n\t\t\t\tthis.model.on( 'new-question-added', function() {\n\t\t\t\t\tvar $questions = this.$el.find( '#llms-quiz-questions' );\n\t\t\t\t\t$questions.animate( { scrollTop: $questions.prop( 'scrollHeight' ) }, 200 );\n\t\t\t\t}, this );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t},\n\n\t\t/**\n\t\t * On quiz points update, update the value of the Total Points area in the header.\n\t\t *\n\t\t * @since 3.17.6\n\t\t *\n\t\t * @param {Object} quiz Instance of the quiz model.\n\t\t * @param {Int} points Updated number of points.\n\t\t * @return {Void}\n\t\t */\n\t\trender_points: function( quiz, points ) {\n\n\t\t\tthis.$el.find( '#llms-quiz-total-points' ).text( points );\n\n\t\t},\n\n\t\t/**\n\t\t * Bulk expand / collapse question buttons.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @param {Object} Event JS event object.\n\t\t * @return {Void}\n\t\t */\n\t\tbulk_toggle: function( event ) {\n\n\t\t\tvar expanded = ( 'expand' === $( event.target ).attr( 'data-action' ) );\n\n\t\t\tthis.model.get( 'questions' ).each( function( question ) {\n\t\t\t\tquestion.set( '_expanded', expanded );\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Adds a new quiz to a lesson which currently has no quiz associated with it.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tadd_new_quiz: function() {\n\n\t\t\tvar quiz = this.lesson.get( 'quiz' );\n\t\t\tif ( _.isEmpty( quiz ) ) {\n\t\t\t\tquiz = this.lesson.add_quiz();\n\t\t\t} else {\n\t\t\t\tthis.lesson.set( 'quiz_enabled', 'yes' );\n\t\t\t}\n\n\t\t\tthis.model = quiz;\n\t\t\tthis.render();\n\n\t\t},\n\n\n\t\t/**\n\t\t * Add an existing quiz to a lesson.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.24.0 Unknown.\n\t\t * @since 5.4.0 Use author id instead of the quiz author object.\n\t\t *\n\t\t * @param {Object} event JS event object.\n\t\t * @return {Void}\n\t\t */\n\t\tadd_existing_quiz: function( event ) {\n\n\t\t\tthis.post_search_popover.hide();\n\n\t\t\tvar quiz = event.data;\n\n\t\t\tif ( 'clone' === event.action ) {\n\n\t\t\t\tquiz = _.prepareQuizObjectForCloning( quiz );\n\n\t\t\t} else {\n\n\t\t\t\t// Use author id instead of the quiz author object.\n\t\t\t\tquiz = _.prepareExistingPostObjectDataForAddingOrCloning( quiz );\n\t\t\t\tquiz._forceSync = true;\n\n\t\t\t}\n\n\t\t\tdelete quiz.lesson_id;\n\n\t\t\tthis.lesson.add_quiz( quiz );\n\t\t\tthis.model = this.lesson.get( 'quiz' );\n\t\t\tthis.render();\n\n\t\t},\n\n\t\t/**\n\t\t * Open add existing quiz popover.\n\t\t *\n\t\t * @since 3.16.12\n\t\t *\n\t\t * @param {Object} event JS event object.\n\t\t * @return {Void}\n\t\t */\n\t\tadd_existing_quiz_click: function( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.post_search_popover = new Popover( {\n\t\t\t\tel: '#llms-existing-quiz',\n\t\t\t\targs: {\n\t\t\t\t\tbackdrop: true,\n\t\t\t\t\tcloseable: true,\n\t\t\t\t\tcontainer: '.wrap.lifterlms.llms-builder',\n\t\t\t\t\tdismissible: true,\n\t\t\t\t\tplacement: 'left',\n\t\t\t\t\twidth: 480,\n\t\t\t\t\ttitle: LLMS.l10n.translate( 'Add Existing Quiz' ),\n\t\t\t\t\tcontent: new PostSearch( {\n\t\t\t\t\t\tpost_type: 'llms_quiz',\n\t\t\t\t\t\tsearching_message: LLMS.l10n.translate( 'Search for existing quizzes...' ),\n\t\t\t\t\t} ).render().$el,\n\t\t\t\t\tonHide: function() {\n\t\t\t\t\t\tBackbone.pubSub.off( 'quiz-search-select' );\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.post_search_popover.show();\n\t\t\tBackbone.pubSub.once( 'quiz-search-select', this.add_existing_quiz, this );\n\n\t\t},\n\n\t\t// filter_question_types: _.debounce( function( event ) {\n\n\t\t// \tvar term = $( event.target ).val();\n\n\t\t// \tthis.QuestionBankView.viewManager.each( function( view ) {\n\t\t// \t\tif ( ! term ) {\n\t\t// \t\t\tview.clear_filter();\n\t\t// \t\t} else {\n\t\t// \t\t\tview.filter( term );\n\t\t// \t\t}\n\t\t// \t} );\n\n\n\t\t// }, 300 ),\n\n\t\t/**\n\t\t * Callback function when the quiz has been deleted.\n\t\t *\n\t\t * @since 3.16.6\n\t\t *\n\t\t * @param {Oject} quiz Quiz Model.\n\t\t * @return {Void}\n\t\t */\n\t\ton_trashed: function( quiz ) {\n\n\t\t\tthis.lesson.set( 'quiz_enabled', 'no' );\n\t\t\tthis.lesson.set( 'quiz', '' );\n\n\t\t\tdelete this.model;\n\n\t\t\tthis.render();\n\n\t\t},\n\n\t\t/**\n\t\t * \"Add Question\" button click event.\n\t\t *\n\t\t * @since 3.16.0\n\t\t *\n\t\t * Creates a popover with question type list interface.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tshow_tools: function() {\n\n\t\t\t// Create popover,\n\t\t\tvar pop = new Popover( {\n\t\t\t\tel: '#llms-show-question-bank',\n\t\t\t\targs: {\n\t\t\t\t\tbackdrop: true,\n\t\t\t\t\tcloseable: true,\n\t\t\t\t\tcontainer: '#llms-builder-sidebar',\n\t\t\t\t\tdismissible: true,\n\t\t\t\t\tplacement: 'top-left',\n\t\t\t\t\twidth: 'calc( 100% - 40px )',\n\t\t\t\t\ttitle: LLMS.l10n.translate( 'Add a Question' ),\n\t\t\t\t\turl: '#llms-quiz-tools',\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Show it.\n\t\t\tpop.show();\n\n\t\t\t// If a question is added, hide the popover.\n\t\t\tthis.model.on( 'new-question-added', function() {\n\t\t\t\tpop.hide();\n\t\t\t} );\n\n\t\t},\n\n\t\tget_question_list: function( options ) {\n\t\t\treturn new QuestionList( options );\n\t\t}\n\n\t}, Detachable, Editable, Subview, Trashable, SettingsFields ) );\n\n} );\n\n","/**\n * Single Assignment View.\n *\n * @package LifterLMS/Scripts\n *\n * @since 3.17.0\n * @version 5.4.0\n */\n\ndefine( 'Views/Assignment',[\n\t\t'Views/Popover',\n\t\t'Views/PostSearch',\n\t\t'Views/_Detachable',\n\t\t'Views/_Editable',\n\t\t'Views/_Trashable',\n\t\t'Views/_Subview',\n\t\t'Views/SettingsFields'\n\t], function(\n\t\tPopover,\n\t\tPostSearch,\n\t\tDetachable,\n\t\tEditable,\n\t\tTrashable,\n\t\tSubview,\n\t\tSettingsFields\n\t) {\n\n\t\treturn Backbone.View.extend( _.defaults( {\n\n\t\t\t/**\n\t\t\t * Current view state.\n\t\t\t *\n\t\t\t * @type {String}\n\t\t\t */\n\t\t\tstate: 'default',\n\n\t\t\t/**\n\t\t\t * Current Subviews.\n\t\t\t *\n\t\t\t * @type {Object}\n\t\t\t */\n\t\t\tviews: {\n\t\t\t\tsettings: {\n\t\t\t\t\tclass: SettingsFields,\n\t\t\t\t\tinstance: null,\n\t\t\t\t\tstate: 'default',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tel: '#llms-editor-assignment',\n\n\t\t\t/**\n\t\t\t * DOM Events.\n\t\t\t *\n\t\t\t * @since 3.17.1\n\t\t\t *\n\t\t\t * @return {Object}\n\t\t\t */\n\t\t\tevents: function() {\n\t\t\t\tvar addon_events = this.is_addon_available() ? window.llms_builder.assignments.get_view_events() : {};\n\t\t\t\treturn _.defaults( {\n\t\t\t\t\t'click #llms-existing-assignment': 'add_existing_assignment_click',\n\t\t\t\t\t'click #llms-new-assignment': 'add_new_assignment',\n\t\t\t\t}, Detachable.events, Editable.events, Trashable.events, addon_events );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Wrapper Tag name.\n\t\t\t *\n\t\t\t * @type {String}\n\t\t\t */\n\t\t\ttagName: 'div',\n\n\t\t\t/**\n\t\t\t * Get the underscore template.\n\t\t\t *\n\t\t\t * @type {[type]}\n\t\t\t */\n\t\t\ttemplate: wp.template( 'llms-assignment-template' ),\n\n\t\t\t/**\n\t\t\t * Initialization callback func (renders the element on screen).\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t * @since 3.17.2 Unknown.\n\t\t\t *\n\t\t\t * @return {Void}\n\t\t\t */\n\t\t\tinitialize: function( data ) {\n\n\t\t\t\tthis.lesson = data.lesson;\n\n\t\t\t\t// initialize the model if the assignment is enabled or it's disabled but we still have data for a assignment\n\t\t\t\tif ( 'yes' === this.lesson.get( 'assignment_enabled' ) || ! _.isEmpty( this.lesson.get( 'assignment' ) ) ) {\n\n\t\t\t\t\tthis.model = this.lesson.get( 'assignment' );\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Todo Item.\n\t\t\t\t\t *\n\t\t\t\t\t * @todo this is a terrible terrible patch\n\t\t\t\t\t * I've spent nearly 3 days trying to figure out how to not use this line of code\n\t\t\t\t\t * ISSUE REPRODUCTION:\n\t\t\t\t\t * Open course builder\n\t\t\t\t\t * Open a lesson (A) and add a assignment\n\t\t\t\t\t * Switch to a new lesson (B)\n\t\t\t\t\t * Add a new assignment\n\t\t\t\t\t * Return to lesson A and the assignment's parent will be set to LESSON B\n\t\t\t\t\t * This will happen for *every* assignment in the builder...\n\t\t\t\t\t * Adding this set_parent on init guarantees that the assignment's correct parent is set\n\t\t\t\t\t * after adding new assignment's to other lessons\n\t\t\t\t\t * it's awful and it's gross...\n\t\t\t\t\t * I'm confused and tired and going to miss release dates again because of it\n\t\t\t\t\t */\n\t\t\t\t\tthis.model.set_parent( this.lesson );\n\n\t\t\t\t}\n\n\t\t\t\tthis.on( 'model-trashed', this.on_trashed );\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Compiles the template and renders the view.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t * @since 3.17.7 Unknown.\n\t\t\t *\n\t\t\t * @return {Self} For chaining.\n\t\t\t */\n\t\t\trender: function() {\n\n\t\t\t\tthis.$el.html( this.template( this.model ) );\n\n\t\t\t\tif ( this.model && this.is_addon_available() ) {\n\n\t\t\t\t\tthis.stopListening( this.model, 'change:assignment_type', this.render );\n\n\t\t\t\t\tthis.render_subview( 'settings', {\n\t\t\t\t\t\tel: '#llms-assignment-settings-fields',\n\t\t\t\t\t\tmodel: this.model,\n\t\t\t\t\t} );\n\n\t\t\t\t\t// this.init_datepickers();\n\t\t\t\t\tthis.init_selects();\n\n\t\t\t\t\twindow.llms_builder.assignments.render_editor( this );\n\n\t\t\t\t\tthis.listenTo( this.model, 'change:assignment_type', this.render );\n\n\t\t\t\t}\n\n\t\t\t\treturn this;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Adds a new assignment to a lesson which currently has no assignment associated with it.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t *\n\t\t\t * @return {Void}\n\t\t\t */\n\t\t\tadd_new_assignment: function() {\n\n\t\t\t\tif ( this.is_addon_available() ) {\n\n\t\t\t\t\tthis.model = window.llms_builder.assignments.get_assignment( {\n\t\t\t\t\t\t/* Translators: %1$s = associated lesson title */\n\t\t\t\t\t\ttitle: LLMS.l10n.replace( '%1$s Assignment', {\n\t\t\t\t\t\t\t'%1$s': this.lesson.get( 'title' ),\n\t\t\t\t\t\t} ),\n lesson_id: this.lesson.get( 'id' ),\n\t\t\t\t\t} );\n\n\t\t\t\t\tthis.lesson.set( 'assignment_enabled', 'yes' );\n\t\t\t\t\tthis.lesson.set( 'assignment', this.model );\n\n\t\t\t\t\tthis.render();\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.show_ad_popover( '#llms-new-assignment' );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * When an assignment is selected from the post select popover\n\t\t\t * instantiate it and add it to the current lesson.\n\t\t\t *\n\t\t\t * @param {Object} event Data from the select2 select event.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t * @since 5.4.0 Prepare assignment object for cloning and use author id instead of the quiz author object.\n\t\t\t */\n\t\t\tadd_existing_assignment: function( event ) {\n\n\t\t\t\tthis.post_search_popover.hide();\n\n\t\t\t\tvar assignment = event.data;\n\n\t\t\t\tif ( 'clone' === event.action ) {\n\n\t\t\t\t\tassignment = _.prepareAssignmentObjectForCloning( assignment );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Use author id instead of the assignment author object.\n\t\t\t\t\tassignment = _.prepareExistingPostObjectDataForAddingOrCloning( assignment );\n\t\t\t\t\tassignment._forceSync = true;\n\n\t\t\t\t}\n\n\t\t\t\tassignment.lesson_id = this.lesson.get( 'id' )\n\n\t\t\t\tassignment = window.llms_builder.construct.get_model( 'Assignment', assignment );\n\n\t\t\t\tthis.lesson.set( 'assignment_enabled', 'yes' );\n\t\t\t\tthis.lesson.set( 'assignment', assignment );\n\t\t\t\tthis.model = assignment;\n\n\t\t\t\tthis.render();\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Open add existing assignment popover.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t *\n\t\t\t * @param {Object} event JS event object.\n\t\t\t * @return {Void}\n\t\t\t */\n\t\t\tadd_existing_assignment_click: function( event ) {\n\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tif ( this.is_addon_available() ) {\n\n\t\t\t\t\tthis.post_search_popover = new Popover( {\n\t\t\t\t\t\tel: '#llms-existing-assignment',\n\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\tbackdrop: true,\n\t\t\t\t\t\t\tcloseable: true,\n\t\t\t\t\t\t\tcontainer: '.wrap.lifterlms.llms-builder',\n\t\t\t\t\t\t\tdismissible: true,\n\t\t\t\t\t\t\tplacement: 'left',\n\t\t\t\t\t\t\twidth: 480,\n\t\t\t\t\t\t\ttitle: LLMS.l10n.translate( 'Add Existing Assignment' ),\n\t\t\t\t\t\t\tcontent: new PostSearch( {\n\t\t\t\t\t\t\t\tpost_type: 'llms_assignment',\n\t\t\t\t\t\t\t\tsearching_message: LLMS.l10n.translate( 'Search for existing assignments...' ),\n\t\t\t\t\t\t\t} ).render().$el,\n\t\t\t\t\t\tonHide: function() {\n\t\t\t\t\t\t\tBackbone.pubSub.off( 'assignment-search-select' );\n\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\tthis.post_search_popover.show();\n\t\t\t\t\tBackbone.pubSub.once( 'assignment-search-select', this.add_existing_assignment, this );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.show_ad_popover( '#llms-existing-assignment' );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Determine if Assignments addon is available to use.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t *\n\t\t\t * @return {Boolean}\n\t\t\t */\n\t\t\tis_addon_available: function() {\n\n\t\t\t\treturn ( window.llms_builder.assignments );\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Called when assignment is trashed.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t *\n\t\t\t * @param {Oject} assignment Assignment Model.\n\t\t\t * @return {Void}\n\t\t\t */\n\t\t\ton_trashed: function( assignment ) {\n\n\t\t\t\tthis.lesson.set( 'assignment_enabled', 'no' );\n\t\t\t\tthis.lesson.set( 'assignment', '' );\n\n\t\t\t\tdelete this.model;\n\n\t\t\t\tthis.render();\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Shows a dirty dirty ad popover for advanced assignments.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t *\n\t\t\t * @param {Sring} el The jQuery selector string.\n\t\t\t * @return {Void}\n\t\t\t */\n\t\t\tshow_ad_popover: function( el ) {\n\n\t\t\t\tvar h3 = LLMS.l10n.translate( 'Get Your Students Taking Action' ),\n\t\t\t\tp = 'Great learning content is only half of teaching online. When your learners fully engage, they will take your content and move into action. Remove barriers for your learners by telling them what to do to apply what they just learned. Create graded assignments or simply give them a checklist of action items to complete before moving on.',\n\t\t\t\tbtn = LLMS.l10n.translate( 'Get Assignments Now!' ),\n\t\t\t\turl = 'https://lifterlms.com/product/lifterlms-assignments?utm_source=LifterLMS%20Plugin&utm_medium=Assignment%20Builder%20Button&utm_campaign=Assignment%20Addon%20Upsell&utm_content=3.17.0';\n\n\t\t\t\tthis.ad_popover = new Popover( {\n\t\t\t\t\tel: el,\n\t\t\t\t\targs: {\n\t\t\t\t\t\tbackdrop: true,\n\t\t\t\t\t\tcloseable: true,\n\t\t\t\t\t\tcontainer: '.wrap.lifterlms.llms-builder',\n\t\t\t\t\t\tdismissible: true,\n\t\t\t\t\t\t// placement: 'left',\n\t\t\t\t\t\twidth: 380,\n\t\t\t\t\t\ttitle: LLMS.l10n.translate( 'Unlock LifterLMS Assignments' ),\n\t\t\t\t\t\t// This is here for translation but not actually used by the popover.\n\t\t\t\t\t\tcloseLabel: LLMS.l10n.translate( 'Close' ),\n\t\t\t\t\t\tcontent: '' + h3 + ' ' + p + '
' + btn + '
'\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tthis.ad_popover.show();\n\n\t\t\t},\n\n\t\t}, Detachable, Editable, Trashable, Subview, SettingsFields ) );\n\n\t} );\n\n","/**\n * Sidebar Editor View\n *\n * @since 3.16.0\n * @version 3.27.0\n */\ndefine( 'Views/Editor',[\n\t\t'Views/LessonEditor',\n\t\t'Views/Quiz',\n\t\t'Views/Assignment',\n\t\t'Views/_Subview'\n\t], function(\n\t\tLessonEditor,\n\t\tQuiz,\n\t\tAssignment,\n\t\tSubview\n\t) {\n\n\t\treturn Backbone.View.extend( _.defaults( {\n\n\t\t\t/**\n\t\t\t * Current view state\n\t\t\t *\n\t\t\t * @type {String}\n\t\t\t */\n\t\t\tstate: 'lesson', // [lesson|quiz]\n\n\t\t\t/**\n\t\t\t * Current Subviews\n\t\t\t *\n\t\t\t * @type {Object}\n\t\t\t */\n\t\t\tviews: {\n\t\t\t\tlesson: {\n\t\t\t\t\tclass: LessonEditor,\n\t\t\t\t\tinstance: null,\n\t\t\t\t\tstate: 'lesson',\n\t\t\t\t},\n\t\t\t\tassignment: {\n\t\t\t\t\tclass: Assignment,\n\t\t\t\t\tinstance: null,\n\t\t\t\t\tstate: 'assignment',\n\t\t\t\t},\n\t\t\t\tquiz: {\n\t\t\t\t\tclass: Quiz,\n\t\t\t\t\tinstance: null,\n\t\t\t\t\tstate: 'quiz',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * HTML element selector\n\t\t\t *\n\t\t\t * @type {String}\n\t\t\t */\n\t\t\tel: '#llms-editor',\n\n\t\t\tevents: {\n\t\t\t\t'click .llms-editor-nav a[href=\"#llms-editor-close\"]': 'close_editor',\n\t\t\t\t'click .llms-editor-nav a:not([href=\"#llms-editor-close\"])': 'switch_tab',\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Wrapper Tag name\n\t\t\t *\n\t\t\t * @type {String}\n\t\t\t */\n\t\t\ttagName: 'div',\n\n\t\t\t/**\n\t\t\t * Get the underscore template\n\t\t\t *\n\t\t\t * @type {[type]}\n\t\t\t */\n\t\t\ttemplate: wp.template( 'llms-editor-template' ),\n\n\t\t\t/**\n\t\t\t * Initialization callback func (renders the element on screen)\n\t\t\t *\n\t\t\t * @return void\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\tinitialize: function( data ) {\n\n\t\t\t\tthis.SidebarView = data.SidebarView;\n\t\t\t\tif ( data.tab ) {\n\t\t\t\t\tthis.state = data.tab;\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Compiles the template and renders the view\n\t\t\t *\n\t\t\t * @return self (for chaining)\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.16.0\n\t\t\t */\n\t\t\trender: function( view_data ) {\n\n\t\t\t\tview_data = view_data || {};\n\n\t\t\t\tthis.$el.html( this.template( this ) );\n\n\t\t\t\tthis.render_subviews( _.extend( view_data, {\n\t\t\t\t\tlesson: this.model,\n\t\t\t\t} ) );\n\n\t\t\t\treturn this;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Click event for close sidebar editor button\n\t\t\t * Sends event to main SidebarView to trigger editor closing events\n\t\t\t *\n\t\t\t * @param obj event js event obj\n\t\t\t * @return void\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.27.0\n\t\t\t */\n\t\t\tclose_editor: function( event ) {\n\n\t\t\t\tevent.preventDefault();\n\t\t\t\tBackbone.pubSub.trigger( 'sidebar-editor-close' );\n\t\t\t\twindow.location.hash = '';\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Click event for switching tabs in the editor navigation\n\t\t\t *\n\t\t\t * @param object event js event object\n\t\t\t * @return void\n\t\t\t * @since 3.16.0\n\t\t\t * @version 3.27.0\n\t\t\t */\n\t\t\tswitch_tab: function( event ) {\n\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tvar $btn = $( event.target ),\n\t\t\t\tview = $btn.attr( 'data-view' ),\n\t\t\t\t$tab = this.$el.find( $btn.attr( 'href' ) );\n\n\t\t\t\tthis.set_state( view ).render();\n\t\t\t\tthis.set_hash( view );\n\n\t\t\t\t// Backbone.pubSub.trigger( 'editor-tab-activated', $btn.attr( 'href' ).substring( 1 ) );\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Adds a hash for deep linking to a specific lesson tab\n\t\t\t *\n\t\t\t * @param string subtab subtab [quiz|assignment]\n\t\t\t * @return void\n\t\t\t * @since 3.27.0\n\t\t\t * @version 3.27.0\n\t\t\t */\n\t\t\tset_hash: function( subtab ) {\n\n\t\t\t\tvar hash = 'lesson:' + this.model.get( 'id' );\n\n\t\t\t\tif ( 'lesson' !== subtab ) {\n\t\t\t\t\thash += ':' + subtab;\n\t\t\t\t}\n\n\t\t\t\twindow.location.hash = hash;\n\n\t\t\t},\n\n\t\t}, Subview ) );\n\n} );\n\n","/**\n * Sidebar Elements View\n *\n * @since 3.16.0\n * @version 3.16.12\n */\ndefine( 'Views/Elements',[ 'Models/Section', 'Views/Section', 'Models/Lesson', 'Views/Lesson', 'Views/Popover', 'Views/PostSearch' ], function( Section, SectionView, Lesson, LessonView, Popover, LessonSearch ) {\n\n\treturn Backbone.View.extend( {\n\n\t\t/**\n\t\t * HTML element selector\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tel: '#llms-elements',\n\n\t\tevents: {\n\t\t\t'click #llms-new-section': 'add_new_section',\n\t\t\t'click #llms-new-lesson': 'add_new_lesson',\n\t\t\t'click #llms-existing-lesson': 'add_existing_lesson',\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'div',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-elements-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function( data ) {\n\n\t\t\t// save a reference to the main Course view\n\t\t\tthis.SidebarView = data.SidebarView;\n\n\t\t\t// watch course sections and enable/disable lesson buttons conditionally\n\t\t\tthis.listenTo( this.SidebarView.CourseView.model.get( 'sections' ), 'add', this.maybe_disable_buttons );\n\t\t\tthis.listenTo( this.SidebarView.CourseView.model.get( 'sections' ), 'remove', this.maybe_disable_buttons );\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t *\n\t\t * @return self (for chaining)\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender: function() {\n\n\t\t\tthis.$el.html( this.template() );\n\t\t\tthis.draggable();\n\t\t\tthis.maybe_add_initial_section();\n\n\t\t\treturn this;\n\t\t},\n\n\t\tdraggable: function() {\n\n\t\t\t$( '#llms-new-section' ).draggable( {\n\t\t\t\tappendTo: '#llms-sections',\n\t\t\t\tcancel: false,\n\t\t\t\tconnectToSortable: '.llms-sections',\n\t\t\t\thelper: function() {\n\t\t\t\t\treturn new SectionView( { model: new Section() } ).render().$el;\n\t\t\t\t},\n\t\t\t\tstart: function() {\n\t\t\t\t\t$( '.llms-sections' ).addClass( 'dragging' );\n\t\t\t\t},\n\t\t\t\tstop: function() {\n\t\t\t\t\t$( '.llms-sections' ).removeClass( 'dragging' );\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\t$( '#llms-new-lesson' ).draggable( {\n\t\t\t\t// appendTo: '#llms-sections .llms-section:first-child .llms-lessons',\n\t\t\t\tappendTo: '#llms-sections',\n\t\t\t\tcancel: false,\n\t\t\t\tconnectToSortable: '.llms-lessons',\n\t\t\t\thelper: function() {\n\t\t\t\t\treturn new LessonView( { model: new Lesson() } ).render().$el;\n\t\t\t\t},\n\t\t\t\tstart: function() {\n\n\t\t\t\t\t$( '.llms-lessons' ).addClass( 'dragging' );\n\n\t\t\t\t},\n\t\t\t\tstop: function() {\n\t\t\t\t\t$( '.llms-lessons' ).removeClass( 'dragging' );\n\t\t\t\t\t$( '.drag-expanded' ).removeClass( '.drag-expanded' );\n\t\t\t\t},\n\t\t\t} );\n\n\t\t},\n\n\t\tadd_new_section: function( event ) {\n\n\t\t\tevent.preventDefault();\n\t\t\tBackbone.pubSub.trigger( 'add-new-section' );\n\t\t},\n\n\t\tadd_new_lesson: function( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tBackbone.pubSub.trigger( 'add-new-lesson' );\n\t\t},\n\n\t\t/**\n\t\t * Show the popover to add an existing lessons\n\t\t *\n\t\t * @param object event JS Event Object\n\t\t * @return void\n\t\t * @since 3.16.12\n\t\t * @version 3.16.12\n\t\t */\n\t\tadd_existing_lesson: function( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tvar pop = new Popover( {\n\t\t\t\tel: '#llms-existing-lesson',\n\t\t\t\targs: {\n\t\t\t\t\tbackdrop: true,\n\t\t\t\t\tcloseable: true,\n\t\t\t\t\tcontainer: '.wrap.lifterlms.llms-builder',\n\t\t\t\t\tdismissible: true,\n\t\t\t\t\tplacement: 'left',\n\t\t\t\t\twidth: 480,\n\t\t\t\t\ttitle: LLMS.l10n.translate( 'Add Existing Lesson' ),\n\t\t\t\t\tcontent: new LessonSearch( {\n\t\t\t\t\t\tpost_type: 'lesson',\n\t\t\t\t\t\tsearching_message: LLMS.l10n.translate( 'Search for existing lessons...' ),\n\t\t\t\t\t} ).render().$el,\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tpop.show();\n\t\t\tBackbone.pubSub.on( 'lesson-search-select', function() {\n\t\t\t\tpop.hide()\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Disables lesson add buttons if no sections are available to add a lesson to\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tmaybe_add_initial_section: function() {\n\n\t\t\tvar $els = $( '#llms-new-lesson, #llms-existing-lesson' );\n\n\t\t\tif ( ! this.SidebarView.CourseView.model.get( 'sections' ).length ) {\n\t\t\t\tBackbone.pubSub.trigger( 'add-new-section' );\n\t\t\t\tBackbone.pubSub.trigger( 'add-new-lesson' );\n\t\t\t\tBackbone.pubSub.trigger( 'add-new-lesson' );\n\t\t\t\tBackbone.pubSub.trigger( 'add-new-lesson' );\n\t\t\t} else {\n\t\t\t\t$els.removeAttr( 'disabled' );\n\t\t\t}\n\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Sidebar Utilities View\n *\n * @since 3.16.0\n * @version 3.16.0\n */\ndefine( 'Views/Utilities',[], function() {\n\n\treturn Backbone.View.extend( {\n\n\t\t/**\n\t\t * HTML element selector\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tel: '#llms-utilities',\n\n\t\tevents: {\n\t\t\t'click #llms-collapse-all': 'collapse_all',\n\t\t\t'click #llms-expand-all': 'expand_all'\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'div',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-utilities-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\t// this.render();\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t *\n\t\t * @return self (for chaining)\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender: function() {\n\t\t\tthis.$el.html( this.template() );\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Collapse all sections\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tcollapse_all: function( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tBackbone.pubSub.trigger( 'collapse-all' );\n\t\t},\n\n\t\t/**\n\t\t * Expand all sections\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\texpand_all: function( event ) {\n\t\t\tevent.preventDefault();\n\t\t\tBackbone.pubSub.trigger( 'expand-all' );\n\t\t},\n\n\t} );\n\n} );\n\n","/**\n * Main sidebar view\n *\n * @since 3.16.0\n * @version 7.2.0\n */\ndefine( 'Views/Sidebar',[\n\t'Views/Editor',\n\t'Views/Elements',\n\t'Views/Utilities',\n\t'Views/_Subview'\n], function(\n\tEditor,\n\tElements,\n\tUtilities,\n\tSubview\n) {\n\n\treturn Backbone.View.extend( _.defaults( {\n\n\t\t/**\n\t\t * Current builder state\n\t\t * @type {String}\n\t\t */\n\t\tstate: 'builder', // [builder|editor]\n\n\t\t/**\n\t\t * Current Subviews\n\t\t * @type {Object}\n\t\t */\n\t\tviews: {\n\t\t\telements: {\n\t\t\t\tclass: Elements,\n\t\t\t\tinstance: null,\n\t\t\t\tstate: 'builder',\n\t\t\t},\n\t\t\tutilities: {\n\t\t\t\tclass: Utilities,\n\t\t\t\tinstance: null,\n\t\t\t\tstate: 'builder',\n\t\t\t},\n\t\t\teditor: {\n\t\t\t\tclass: Editor,\n\t\t\t\tinstance: null,\n\t\t\t\tstate: 'editor',\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * HTML element selector\n\t\t * @type {String}\n\t\t */\n\t\tel: '#llms-builder-sidebar',\n\n\t\t/**\n\t\t * DOM events\n\t\t * @type {Object}\n\t\t */\n\t\tevents: {\n\t\t\t'click #llms-save-button': 'save_now',\n\t\t\t'click #llms-exit-button': 'exit_now',\n\t\t\t'click .llms-builder-error': 'clear_errors',\n\t\t},\n\n\t\t/**\n\t\t * Wrapper Tag name\n\t\t * @type {String}\n\t\t */\n\t\ttagName: 'aside',\n\n\t\t/**\n\t\t * Get the underscore template\n\t\t * @type {[type]}\n\t\t */\n\t\ttemplate: wp.template( 'llms-sidebar-template' ),\n\n\t\t/**\n\t\t * Initialization callback func (renders the element on screen)\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tinitialize: function( data ) {\n\n\t\t\t// save a reference to the main Course view\n\t\t\tthis.CourseView = data.CourseView;\n\n\t\t\tthis.render();\n\n\t\t\tBackbone.pubSub.on( 'current-save-status', this.changes_made, this );\n\n\t\t\tBackbone.pubSub.on( 'heartbeat-send', this.heartbeat_send, this );\n\t\t\tBackbone.pubSub.on( 'heartbeat-tick', this.heartbeat_tick, this );\n\n\t\t\tBackbone.pubSub.on( 'lesson-selected', this.on_lesson_select, this );\n\t\t\tBackbone.pubSub.on( 'sidebar-editor-close', this.on_editor_close, this );\n\n\t\t\tthis.$saveButton = $( '#llms-save-button' );\n\n\t\t},\n\n\t\t/**\n\t\t * Compiles the template and renders the view\n\t\t * @return self (for chaining)\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\trender: function( view_data ) {\n\n\t\t\tview_data = view_data || {};\n\n\t\t\tthis.$el.html( this.template() );\n\n\t\t\tthis.render_subviews( _.extend( view_data, {\n\t\t\t\tSidebarView: this,\n\t\t\t} ) );\n\n\t\t\tvar $el = $( '.wrap.lifterlms.llms-builder' );\n\t\t\tif ( 'builder' === this.state ) {\n\t\t\t\t$el.removeClass( 'editor-active' );\n\t\t\t} else {\n\t\t\t\t$el.addClass( 'editor-active' );\n\t\t\t}\n\n\t\t\tthis.$saveButton = this.$el.find( '#llms-save-button' );\n\n\t\t\treturn this;\n\n\t\t},\n\n\t\t/**\n\t\t * Adds error message element\n\t\t * @param {[type]} $err [description]\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tadd_error: function( $err ) {\n\n\t\t\tthis.$el.find( '.llms-builder-save' ).prepend( $err );\n\n\t\t},\n\n\t\t/**\n\t\t * Clear any existing error message elements\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tclear_errors: function() {\n\n\t\t\tthis.$el.find( '.llms-builder-save .llms-builder-error' ).remove();\n\n\t\t},\n\n\t\t/**\n\t\t * Update save status button when changes are detected\n\t\t * runs on an interval to check status of course regularly for unsaved changes\n\t\t * @param obj sync instance of the sync controller\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tchanges_made: function( sync ) {\n\n\t\t\t// if a save is currently running, don't do anything\n\t\t\tif ( sync.saving ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( sync.has_unsaved_changes ) {\n\n\t\t\t\tthis.$saveButton.attr( 'data-status', 'unsaved' );\n\t\t\t\tthis.$saveButton.removeAttr( 'disabled' );\n\n\t\t\t} else {\n\n\t\t\t\tthis.$saveButton.attr( 'data-status', 'saved' );\n\t\t\t\tthis.$saveButton.attr( 'disabled', 'disabled' );\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Exit the builder and return to the WP Course Editor\n\t\t * @return void\n\t\t * @since 3.16.7\n\t\t * @version 3.16.7\n\t\t */\n\t\texit_now: function() {\n\n\t\t\twindow.location.href = window.llms_builder.CourseModel.get_edit_post_link();\n\n\t\t},\n\n\t\t/**\n\t\t * Triggered when a heartbeat send event starts containing builder information\n\t\t * @param obj sync instance of the sync controller\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\theartbeat_send: function( sync ) {\n\n\t\t\tif ( sync.saving ) {\n\t\t\t\tLLMS.Spinner.start( this.$saveButton.find( 'i' ), 'small' );\n\t\t\t\tthis.$saveButton.attr( {\n\t\t\t\t\t'data-status': 'saving',\n\t\t\t\t\tdisabled: 'disabled',\n\t\t\t\t} );\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Triggered when a heartbeat tick completes and updates save status or appends errors\n\t\t * @param obj sync instance of the sync controller\n\t\t * @param obj data updated data\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\theartbeat_tick: function( sync, data ) {\n\n\t\t\tif ( ! sync.saving ) {\n\n\t\t\t\tvar status = 'saved';\n\n\t\t\t\tthis.clear_errors();\n\n\t\t\t\tif ( 'error' === data.status ) {\n\n\t\t\t\t\tstatus = 'error';\n\n\t\t\t\t\tvar msg = data.message,\n\t\t\t\t\t\t$err = $( ' ' );\n\n\t\t\t\t\tif ( 'object' === typeof msg ) {\n\t\t\t\t\t\t_.each( msg, function( txt ) {\n\t\t\t\t\t\t\t$err.append( '' + txt + ' ' );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$err = $err.append( '' + msg + ' ' );;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.add_error( $err );\n\n\t\t\t\t}\n\n\t\t\t\tthis.$saveButton.find( '.llms-spinning' ).remove();\n\t\t\t\tthis.$saveButton.attr( {\n\t\t\t\t\t'data-status': status,\n\t\t\t\t\tdisabled: 'disabled',\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Determine if the editor is the currently active state\n\t\t * @return boolean\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tis_editor_active: function() {\n\n\t\t\treturn ( 'editor' === this.state );\n\n\t\t},\n\n\t\t/**\n\t\t * Triggered when the editor closes, updates state to be the course builder view\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ton_editor_close: function() {\n\n\t\t\tthis.set_state( 'builder' ).render();\n\n\t\t},\n\n\t\t/**\n\t\t * When a lesson is selected, opens the sidebar to the editor view\n\t\t * @param obj lesson_model instance of the lesson model which was selected\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ton_lesson_select: function( lesson_model, tab ) {\n\n\t\t\tif ( 'editor' !== this.state ) {\n\t\t\t\tthis.set_state( 'editor' );\n\t\t\t} else {\n\t\t\t\tthis.remove_subview( 'editor' );\n\t\t\t}\n\n\t\t\tthis.render( {\n\t\t\t\tmodel: lesson_model,\n\t\t\t\ttab: tab,\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Save button click event\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tsave_now: function() {\n\n\t\t\twindow.llms_builder.sync.save_now();\n\n\t\t},\n\n\t}, Subview ) );\n\n} );\n\n","/**\n * LifterLMS JS Builder App Bootstrap\n *\n * @since 3.16.0\n * @since 3.37.11 Added `_.getEditor()` helper.\n * @version 5.4.0\n */\nrequire( [\n\t'vendor/wp-hooks',\n\t'vendor/backbone.collectionView',\n\t'vendor/backbone.trackit',\n\t'Controllers/Construct',\n\t'Controllers/Debug',\n\t'Controllers/Schemas',\n\t'Controllers/Sync',\n\t'Models/loader',\n\t'Views/Course',\n\t'Views/Sidebar'\n\t], function(\n\tHooks,\n\tCV,\n\tTrackIt,\n\tConstruct,\n\tDebug,\n\tSchemas,\n\tSync,\n\tModels,\n\tCourseView,\n\tSidebarView\n\t) {\n\n\t\twindow.llms_builder.debug = new Debug( window.llms_builder.debug );\n\t\twindow.llms_builder.construct = new Construct();\n\t\twindow.llms_builder.schemas = new Schemas( window.llms_builder.schemas );\n\n\t\t/**\n\t\t * Compare values, used by _.checked & _.selected mixins.\n\t\t *\n\t\t * @since 3.17.2\n\t\t *\n\t\t * @param {Mixed} expected expected Value, probably a string (the value of a select option or checkbox element).\n\t\t * @param {Mixed} mixed actual Actual value, probably a string (the return of model.get( 'something' ) )\n\t\t * but could be an array like a multiselect.\n\t\t * @return {Bool}\n\t\t */\n\t\tfunction value_compare( expected, actual ) {\n\t\t\treturn ( ( _.isArray( actual ) && -1 !== actual.indexOf( expected ) ) || expected == actual );\n\t\t};\n\n\t\t/**\n\t\t * Underscores templating utilities\n\t\t *\n\t\t * @since 3.17.0\n\t\t * @version 3.27.0\n\t\t */\n\t\t_.mixin( {\n\n\t\t\t/**\n\t\t\t * Determine if two values are equal and output checked attribute if they are.\n\t\t\t *\n\t\t\t * Useful for templating checkboxes & radio elements\n\t\t\t * like WP Core PHP checked() but in JS.\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t * @since 3.17.2 Unknown.\n\t\t\t *\n\t\t\t * @param {Mixed} expected Expected element value.\n\t\t\t * @param {Mixed} actual Actual element value.\n\t\t\t * @return {String}\n\t\t\t */\n\t\t\tchecked: function( expected, actual ) {\n\t\t\t\tif ( value_compare( expected, actual ) ) {\n\t\t\t\t\treturn ' checked=\"checked\"';\n\t\t\t\t}\n\t\t\t\treturn '';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Recursively clone an object via _.clone().\n\t\t\t *\n\t\t\t * @since 3.17.7\n\t\t\t *\n\t\t\t * @param {Object} obj Object to clone.\n\t\t\t * @return {Object}\n\t\t\t */\n\t\t\tdeepClone: function( obj ) {\n\n\t\t\t\tvar clone = _.clone( obj );\n\n\t\t\t\t_.each( clone, function( val, key ) {\n\t\t\t\t\tif ( ! _.isFunction( val ) && _.isObject( val ) ) {\n\t\t\t\t\t\tclone[ key ] = _.deepClone( val );\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\treturn clone;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Retrieve the wp.editor instance.\n\t\t\t *\n\t\t\t * Uses `wp.oldEditor` (when available) which was added in WordPress 5.0.\n\t\t\t *\n\t\t\t * Falls back to `wp.editor()` which will usually be the same as `wp.oldEditor` unless\n\t\t\t * the `@wordpress/editor` module has been loaded by another plugin or a theme.\n\t\t\t *\n\t\t\t * @since 3.37.11\n\t\t\t *\n\t\t\t * @return {Object}\n\t\t\t */\n\t\t\tgetEditor: function() {\n\n\t\t\t\tif ( undefined !== wp.oldEditor ) {\n\n\t\t\t\t\tvar ed = wp.oldEditor;\n\n\t\t\t\t\t// Inline scripts added by WordPress are not ported to `wp.oldEditor`, see https://github.com/WordPress/WordPress/blob/641c632b0c9fde4e094b217f50749984ca43a2fa/wp-includes/class-wp-editor.php#L977.\n\t\t\t\t\tif ( undefined !== wp.editor && undefined !== wp.editor.getDefaultSettings ) {\n\t\t\t\t\t\ted.getDefaultSettings = wp.editor.getDefaultSettings;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn ed;\n\n\t\t\t\t} else if ( undefined !== wp.editor && undefined !== wp.editor.autop ){\n\n\t\t\t\t\treturn wp.editor;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Strips IDs & Parent References from quizzes and all quiz questions.\n\t\t\t *\n\t\t\t * @since 3.24.0\n\t\t\t * @since 3.27.0 Unknown.\n\t\t\t * @since 5.4.0 Use author id instead of the question author object.\n\t\t\t *\n\t\t\t * @param {Object} quiz Raw quiz object (not a model).\n\t\t\t * @return {Object}\n\t\t\t */\n\t\t\tprepareQuizObjectForCloning: function( quiz ) {\n\n\t\t\t\tdelete quiz.id;\n\t\t\t\tdelete quiz.lesson_id;\n\n\t\t\t\t_.each( quiz.questions, function( question ) {\n\n\t\t\t\t\tquestion = _.prepareQuestionObjectForCloning( question );\n\n\t\t\t\t} );\n\n\t\t\t\t// Use author id instead of the quiz author object.\n\t\t\t\tquiz = _.prepareExistingPostObjectDataForAddingOrCloning( quiz );\n\n\t\t\t\treturn quiz;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Strips IDs & Parent References from a question.\n\t\t\t *\n\t\t\t * @since 3.27.0\n\t\t\t * @since 5.4.0 Use author id instead of the question author object.\n\t\t\t *\n\t\t\t * @param {Object} question Raw question object (not a model).\n\t\t\t * @return {Object}\n\t\t\t */\n\t\t\tprepareQuestionObjectForCloning: function( question ) {\n\n\t\t\t\tdelete question.id;\n\t\t\t\tdelete question.parent_id;\n\n\t\t\t\tif ( question.image && _.isObject( question.image ) ) {\n\t\t\t\t\tquestion.image._forceSync = true;\n\t\t\t\t}\n\n\t\t\t\tif ( question.choices ) {\n\n\t\t\t\t\t_.each( question.choices, function( choice ) {\n\n\t\t\t\t\t\tdelete choice.question_id;\n\t\t\t\t\t\tdelete choice.id;\n\t\t\t\t\t\tif ( 'image' === choice.choice_type && _.isObject( choice.choice ) ) {\n\t\t\t\t\t\t\tchoice.choice._forceSync = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\t// Use author id instead of the question author object.\n\t\t\t\tquestion = _.prepareExistingPostObjectDataForAddingOrCloning( question );\n\n\t\t\t\treturn question;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Strips IDs & Parent References from assignments and all assignment tasks.\n\t\t\t *\n\t\t\t * @since 5.4.0\n\t\t\t *\n\t\t\t * @param {Object} assignment Raw assignment object (not a model).\n\t\t\t * @return {Object}\n\t\t\t */\n\t\t\t prepareAssignmentObjectForCloning: function( assignment ) {\n\n\t\t\t\tdelete assignment.id;\n\t\t\t\tdelete assignment.lesson_id;\n\n\t\t\t\t// Clone tasks.\n\t\t\t\tif ( 'tasklist' === assignment.assignment_type ) {\n\t\t\t\t\t_.each( assignment.tasks, function( task ) {\n\t\t\t\t\t\tdelete task.id;\n\t\t\t\t\t\tdelete task.assignment_id;\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\t// Use author id instead of the quiz author object.\n\t\t\t\tassignment = _.prepareExistingPostObjectDataForAddingOrCloning( assignment );\n\n\t\t\t\treturn assignment;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Prepare post object data for adding or cloning.\n\t\t\t *\n\t\t\t * Use author id instead of the post type author object.\n\t\t\t *\n\t\t\t * @since 5.4.0\n\t\t\t *\n\t\t\t * @param {Object} quiz Raw post object (not a model).\n\t\t\t * @return {Object}\n\t\t\t */\n\t\t\tprepareExistingPostObjectDataForAddingOrCloning: function( post_data ) {\n\n\t\t\t\tif ( post_data.author && _.isObject( post_data.author ) && post_data.author.id ) {\n\t\t\t\t\tpost_data.author = post_data.author.id;\n\t\t\t\t}\n\n\t\t\t\treturn post_data;\n\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Determine if two values are equal and output selected attribute if they are.\n\t\t\t *\n\t\t\t * Useful for templating select elements\n\t\t\t * like WP Core PHP selected() but in JS.\n\t\t\t *\n\t\t\t *\n\t\t\t * @since 3.17.0\n\t\t\t * @since 3.17.2 Unknown.\n\t\t\t *\n\t\t\t * @param {Mixed} expected Expected element value.\n\t\t\t * @param {Mixed} actual Actual element value.\n\t\t\t * @return {String}\n\t\t\t */\n\t\t\tselected: function( expected, actual ) {\n\t\t\t\tif ( value_compare( expected, actual ) ) {\n\t\t\t\t\treturn ' selected=\"selected\"';\n\t\t\t\t}\n\t\t\t\treturn '';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Generic function for stripping HTML tags from a string.\n\t\t\t *\n\t\t\t * @since 3.17.8\n\t\t\t *\n\t\t\t * @param {String} content Raw string.\n\t\t\t * @param {Array} allowed_tags Array of allowed HTML tags.\n\t\t\t * @return {String}\n\t\t\t */\n\t\t\tstripFormatting: function( content, allowed_tags ) {\n\n\t\t\t\tif ( ! allowed_tags ) {\n\t\t\t\t\tallowed_tags = [ 'b', 'i', 'u', 'strong', 'em' ];\n\t\t\t\t}\n\n\t\t\t\tvar $html = $( '' + content + '
' );\n\n\t\t\t\t$html.find( '*' ).not( allowed_tags.join( ',' ) ).each( function( ) {\n\n\t\t\t\t\t$( this ).replaceWith( this.innerHTML );\n\n\t\t\t\t} );\n\n\t\t\t\treturn $html.html();\n\n\t\t\t},\n\n\t\t} );\n\n\t\tBackbone.pubSub = _.extend( {}, Backbone.Events );\n\n\t\t$( document ).trigger( 'llms-builder-pre-init' );\n\n\t\twindow.llms_builder.questions = window.llms_builder.construct.get_collection( 'QuestionTypes', window.llms_builder.questions );\n\n\t\tvar CourseModel = window.llms_builder.construct.get_model( 'Course', window.llms_builder.course );\n\t\twindow.llms_builder.CourseModel = CourseModel;\n\n\t\twindow.llms_builder.sync = new Sync( CourseModel, window.llms_builder.sync );\n\n\t\tvar Course = new CourseView( {\n\t\t\tmodel: CourseModel,\n\t\t} );\n\n\t\tvar Sidebar = new SidebarView( {\n\t\t\tCourseView: Course\n\t\t} );\n\n\t\t$( document ).trigger( 'llms-builder-init', {\n\t\t\tcourse: Course,\n\t\t\tsidebar: Sidebar,\n\t\t} );\n\n\t\t/**\n\t\t * Do deep linking to Lesson / Quiz / Assignments.\n\t\t *\n\t\t * Hash should be in the form of #lesson:{lesson_id}:{subtab}\n\t\t * subtab can be either \"quiz\" or \"assignment\". If none found assumes the \"lesson\" tab.\n\t\t *\n\t\t * @since 3.27.0\n\t\t * @since 3.30.1 Wait for wp.editor & window.tinymce to load before opening deep link tabs.\n\t\t * @since 3.37.11 Use `_.getEditor()` helper when checking for the presence of `wp.editor`.\n\t\t */\n\t\tif ( window.location.hash ) {\n\n\t\t\tvar hash = window.location.hash;\n\t\t\tif ( -1 === hash.indexOf( '#lesson:' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar parts = hash.replace( '#lesson:', '' ).split( ':' ),\n\t\t\t$lesson = $( '#llms-lesson-' + parts[0] );\n\n\t\t\tif ( $lesson.length ) {\n\n\t\t\t\tLLMS.wait_for( function() {\n\t\t\t\t\treturn ( undefined !== _.getEditor() && undefined !== window.tinymce );\n }, function() {\n\t\t\t\t\t$lesson.closest( '.llms-builder-item.llms-section' ).find( 'a.llms-action-icon.expand' ).trigger( 'click' );\n\t\t\t\t\tvar subtab = parts[1] ? parts[1] : 'lesson';\n\t\t\t\t\t$( '#llms-lesson-' + parts[0] ).find( 'a.llms-action-icon.edit-' + subtab ).trigger( 'click' );\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t}\n\n\t} );\n\ndefine(\"main\", function(){});\n\n"],"sourceRoot":"../../.."}
\ No newline at end of file
diff --git a/assets/maps/js/llms-favorites.min.js.map b/assets/maps/js/llms-favorites.min.js.map
new file mode 100644
index 0000000000..e20d5bed3a
--- /dev/null
+++ b/assets/maps/js/llms-favorites.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-favorites.min.js","sources":["llms-favorites.js"],"sourcesContent":["/* global LLMS, $ */\n/* jshint strict: true */\n\n/**\n * Front End Favorite Class.\n *\n * @type {Object}\n *\n * @since 7.5.0\n * @version 7.5.0\n */\n( function( $ ) {\n\n\tvar favorite = {\n\n\t\t/**\n\t\t * Bind DOM events.\n\t\t *\n\t\t * @since 7.5.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tbind: function() {\n\n\t\t\tvar self = this;\n\n\t\t\t// Favorite clicked.\n\t\t\t$( '.llms-favorite-wrapper' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tvar $btn = $( this ).find( '.llms-heart-btn' );\n\t\t\t\t$btn && self.favorite( $btn );\n\t\t\t} );\n\n\t\t\t// Adding class in Favorite's parent.\n\t\t\t$( '.llms-favorite-wrapper' ).parent().addClass( 'llms-has-favorite' );\n\n\t\t},\n\n\t\t/**\n\t\t * Favorite / Unfavorite an object.\n\t\t *\n\t\t * @since 7.5.0\n\t\t *\n\t\t * @param {Object} $btn jQuery object for the \"Favorite / Unfavorite\" button.\n\t\t * @return {Void}\n\t\t */\n\t\tfavorite: function( $btn ) {\n\n\t\t\tvar object_id \t= $btn.attr( 'data-id' ),\n\t\t\t\tobject_type = $btn.attr( 'data-type' ),\n\t\t\t\tuser_action\t= $btn.attr( 'data-action' );\n\n\t\t\tLLMS.Ajax.call( {\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'favorite_object',\n\t\t\t\t\tobject_id: object_id,\n\t\t\t\t\tobject_type: object_type,\n\t\t\t\t\tuser_action: user_action\n\t\t\t\t},\n\t\t\t\tbeforeSend: function() {},\n\t\t\t\tsuccess: function( r ) {\n\t\t\t\t\t/**\n\t\t\t\t\t * Get all the favorite buttons on the page related to the same lesson, e.g. when the syllabus\n\t\t\t\t\t * is shown on the sidebar of a lesson or a course, in that case you will have the same favorite\n\t\t\t\t\t * button twice. The code below makes sure both the buttons are updated.\n\t\t\t\t\t */\n\t\t\t\t\tvar $fav_btns = $( '[data-id='+object_id+'][data-type='+object_type+'][data-action='+user_action+']' );\n\t\t\t\t\tif( r.success ) {\n\t\t\t\t\t\t$fav_btns.each(\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tif( 'favorite' === user_action ) {\n\t\t\t\t\t\t\t\t\t$(this).removeClass( 'fa-heart-o' ).addClass( 'fa-heart' );\n\t\t\t\t\t\t\t\t\t$(this).attr( 'data-action', 'unfavorite' );\n\t\t\t\t\t\t\t\t} else if ( 'unfavorite' === user_action ) {\n\t\t\t\t\t\t\t\t\t$(this).removeClass( 'fa-heart' ).addClass( 'fa-heart-o' );\n\t\t\t\t\t\t\t\t\t$(this).attr( 'data-action', 'favorite' );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Updating count.\n\t\t\t\t\t\t\t\t$(this).closest( '.llms-favorite-wrapper' ).find( '.llms-favorites-count' ).text( r.total_favorites );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t};\n\n\tfavorite.bind();\n\n\twindow.llms = window.llms || {};\n\twindow.llms.favorites = favorite;\n\n} )( jQuery );\n"],"names":["$","favorite","bind","self","this","on","e","preventDefault","$btn","find","parent","addClass","object_id","attr","object_type","user_action","LLMS","Ajax","call","data","action","beforeSend","success","r","$fav_btns","each","removeClass","closest","text","total_favorites","window","llms","favorites","jQuery"],"mappings":"AAWA,CAAA,SAAYA,GAEX,IAAIC,EAAW,CASdC,KAAM,WAEL,IAAIC,EAAOC,KAGXJ,EAAG,wBAAyB,EAAEK,GAAI,QAAS,SAAUC,GACpDA,EAAEC,eAAe,EACbC,EAAOR,EAAGI,IAAK,EAAEK,KAAM,iBAAkB,EAC7CD,GAAQL,EAAKF,SAAUO,CAAK,CAC7B,CAAE,EAGFR,EAAG,wBAAyB,EAAEU,OAAO,EAAEC,SAAU,mBAAoB,CAEtE,EAUAV,SAAU,SAAUO,GAEnB,IAAII,EAAaJ,EAAKK,KAAM,SAAU,EACrCC,EAAcN,EAAKK,KAAM,WAAY,EACrCE,EAAcP,EAAKK,KAAM,aAAc,EAExCG,KAAKC,KAAKC,KAAM,CACfC,KAAM,CACLC,OAAQ,kBACRR,UAAWA,EACXE,YAAaA,EACbC,YAAaA,CACd,EACAM,WAAY,aACZC,QAAS,SAAUC,GAMlB,IAAIC,EAAYxB,EAAG,YAAYY,EAAU,eAAeE,EAAY,iBAAiBC,EAAY,GAAI,EACjGQ,EAAED,SACLE,EAAUC,KACT,WACK,aAAeV,GAClBf,EAAEI,IAAI,EAAEsB,YAAa,YAAa,EAAEf,SAAU,UAAW,EACzDX,EAAEI,IAAI,EAAES,KAAM,cAAe,YAAa,GAC/B,eAAiBE,IAC5Bf,EAAEI,IAAI,EAAEsB,YAAa,UAAW,EAAEf,SAAU,YAAa,EACzDX,EAAEI,IAAI,EAAES,KAAM,cAAe,UAAW,GAGzCb,EAAEI,IAAI,EAAEuB,QAAS,wBAAyB,EAAElB,KAAM,uBAAwB,EAAEmB,KAAML,EAAEM,eAAgB,CACrG,CACD,CAEF,CACD,CAAE,CACH,CACD,EAEA5B,EAASC,KAAK,EAEd4B,OAAOC,KAAmBD,OAAOC,MAAQ,GACzCD,OAAOC,KAAKC,UAAc/B,CAEzB,EAAGgC,MAAO","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-form-checkout.min.js.map b/assets/maps/js/llms-form-checkout.min.js.map
new file mode 100644
index 0000000000..959403c00c
--- /dev/null
+++ b/assets/maps/js/llms-form-checkout.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-form-checkout.min.js","sources":["llms-form-checkout.js"],"sourcesContent":["/**\n * LifterLMS Checkout Screen related events and interactions\n *\n * @package LifterLMS/Scripts\n *\n * @since 3.0.0\n * @version 7.0.0\n */\n\n( function( $ ) {\n\n\tvar llms_checkout = function() {\n\n\t\t/**\n\t\t * Array of validation functions to call on form submission\n\t\t *\n\t\t * @type array\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tvar before_submit = [];\n\n\t\t/**\n\t\t * Array of gateways to be automatically bound when needed\n\t\t *\n\t\t * @type array\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tvar gateways = [];\n\n\t\tthis.$checkout_form = $( '#llms-product-purchase-form' );\n\t\tthis.$confirm_form = $( '#llms-product-purchase-confirm-form' );\n\t\tthis.$form_sections = false;\n\t\tthis.form_action = false;\n\n\t\t/**\n\t\t * Initialize checkout JS & bind if on the checkout screen\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.34.5 Make sure we bind click events for the Show / Hide login area at the top of the checkout screen\n\t\t * even if there's no llms product purchase form.\n\t\t * @since 7.0.0 Disable smooth scroll-behavior on checkout.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.init = function() {\n\n\t\t\tvar self = this;\n\n\t\t\tif ( $( '.llms-checkout-wrapper' ).length ) {\n\t\t\t\tthis.bind_login();\n\t\t\t}\n\n\t\t\tif ( this.$checkout_form.length ) {\n\n\t\t\t\tthis.form_action = 'checkout';\n\t\t\t\tthis.$form_sections = this.$checkout_form.find( '.llms-checkout-section' );\n\n\t\t\t\tthis.$checkout_form.on( 'submit', this, this.submit );\n\n\t\t\t\t/**\n\t\t\t\t * Fix `HTMLFormElement.reportValidity()` when `scroll-behavior: smooth`.\n\t\t\t\t *\n\t\t\t\t * @see {@link https://github.com/gocodebox/lifterlms/issues/2206}\n\t\t\t\t */\n\t\t\t\tdocument.querySelector( 'html' ).style.scrollBehavior = 'auto';\n\n\t\t\t\t// add before submit event for password strength meter if one's found\n\t\t\t\tif ( $( '.llms-password-strength-meter' ).length ) {\n\t\t\t\t\tthis.add_before_submit_event( {\n\t\t\t\t\t\tdata: LLMS.PasswordStrength,\n\t\t\t\t\t\thandler: LLMS.PasswordStrength.checkout,\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tthis.bind_coupon();\n\n\t\t\t\tthis.bind_gateways();\n\n\t\t\t\t$( document ).trigger( \"llms-checkout-refreshed\" );\n\n\t\t\t} else if ( this.$confirm_form.length ) {\n\n\t\t\t\tthis.form_action = 'confirm';\n\t\t\t\tthis.$form_sections = this.$confirm_form.find( '.llms-checkout-section' );\n\n\t\t\t\tthis.$confirm_form.on( 'submit', function() {\n\t\t\t\t\tself.processing( 'start' );\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Public function which allows other classes or extensions to add\n\t\t * before submit events to llms checkout private \"before_submit\" array\n\t\t *\n\t\t * @param object obj object of data to push to the array\n\t\t * requires at least a \"handler\" key which should pass a callable function\n\t\t * \"data\" can be anything, will be passed as the first parameter to the handler function\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.add_before_submit_event = function( obj ) {\n\n\t\t\tif ( ! obj.handler || 'function' !== typeof obj.handler ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( ! obj.data ) {\n\t\t\t\tobj.data = null;\n\t\t\t}\n\n\t\t\tbefore_submit.push( obj );\n\n\t\t};\n\n\t\t/**\n\t\t * Add an error message\n\t\t *\n\t\t * @param string message error message string\n\t\t * @param mixed data optional error data to output on the console\n\t\t * @return void\n\t\t * @since 3.27.0\n\t\t * @version 3.27.0\n\t\t */\n\t\tthis.add_error = function( message, data ) {\n\n\t\t\tvar id = 'llms-checkout-errors';\n\t\t\t\t$err = $( '#' + id );\n\n\t\t\tif ( ! $err.length ) {\n\t\t\t\t$err = $( '' );\n\t\t\t\t$( '.llms-checkout-wrapper' ).prepend( $err );\n\t\t\t}\n\n\t\t\t$err.append( '' + message + ' ' );\n\n\t\t\tif ( data ) {\n\t\t\t\tconsole.error( data );\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Public function which allows other classes or extensions to add\n\t\t * gateways classes that should be bound by this class\n\t\t *\n\t\t * @param obj gateway_class callable class object\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.add_gateway = function( gateway_class ) {\n\n\t\t\tgateways.push( gateway_class );\n\n\t\t};\n\n\n\n\t\t/**\n\t\t * Bind coupon add & remove button events\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.bind_coupon = function() {\n\n\t\t\tvar self = this;\n\n\t\t\t// show & hide the coupon field & button\n\t\t\t$( 'a[href=\"#llms-coupon-toggle\"]' ).on( 'click', function( e ) {\n\n\t\t\t\te.preventDefault();\n\t\t\t\t$( '.llms-coupon-entry' ).slideToggle( 400 );\n\n\t\t\t} );\n\n\t\t\t// apply coupon click\n\t\t\t$( '#llms-apply-coupon' ).on( 'click', function( e ) {\n\n\t\t\t\te.preventDefault();\n\t\t\t\tself.coupon_apply( $( this ) );\n\n\t\t\t} );\n\n\t\t\t// remove coupon click\n\t\t\t$( '#llms-remove-coupon' ).on( 'click', function( e ) {\n\n\t\t\t\te.preventDefault();\n\t\t\t\tself.coupon_remove( $( this ) );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind gateway section events\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.bind_gateways = function() {\n\n\t\t\tthis.load_gateways();\n\n\t\t\tif ( ! $( 'input[name=\"llms_payment_gateway\"]' ).length ) {\n\t\t\t\t$( '#llms_create_pending_order' ).removeAttr( 'disabled' );\n\t\t\t}\n\n\t\t\t// add class and trigger watchable event when gateway selection changes\n\t\t\t$( 'input[name=\"llms_payment_gateway\"]' ).on( 'change', function() {\n\n\t\t\t\t$( 'input[name=\"llms_payment_gateway\"]' ).each( function() {\n\n\t\t\t\t\tvar $el = $( this ),\n\t\t\t\t\t\t$parent = $el.closest( '.llms-payment-gateway' ),\n\t\t\t\t\t\t$fields = $parent.find( '.llms-gateway-fields' ).find( 'input, textarea, select' ),\n\t\t\t\t\t\tchecked = $el.is( ':checked' ),\n\t\t\t\t\t\tdisplay_func = ( checked ) ? 'addClass' : 'removeClass';\n\n\t\t\t\t\t$parent[ display_func ]( 'is-selected' );\n\n\t\t\t\t\tif ( checked ) {\n\n\t\t\t\t\t\t// enable fields\n\t\t\t\t\t\t$fields.removeAttr( 'disabled' );\n\n\t\t\t\t\t\t// emit a watchable event for extensions to hook onto\n\t\t\t\t\t\t$( '.llms-payment-gateways' ).trigger( 'llms-gateway-selected', {\n\t\t\t\t\t\t\tid: $el.val(),\n\t\t\t\t\t\t\t$selector: $parent,\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// disable fields\n\t\t\t\t\t\t$fields.attr( 'disabled', 'disabled' );\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t\t// enable / disable buttons depending on field validation status\n\t\t\t$( '.llms-payment-gateways' ).on( 'llms-gateway-selected', function( e, data ) {\n\n\t\t\t\tvar $submit = $( '#llms_create_pending_order' );\n\n\t\t\t\tif ( data.$selector && data.$selector.find( '.llms-gateway-fields .invalid' ).length ) {\n\t\t\t\t\t$submit.attr( 'disabled', 'disabled' );\n\t\t\t\t} else {\n\t\t\t\t\t$submit.removeAttr( 'disabled' );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind click events for the Show / Hide login area at the top of the checkout screen\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.34.5 When showing the login form area make sure we slide up the `.llms-notice` link's parent too.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.bind_login = function() {\n\n\t\t\t$( 'a[href=\"#llms-show-login\"]' ).on( 'click', function( e ) {\n\n\t\t\t\te.preventDefault();\n\t\t\t\t$( this ).closest( '.llms-info,.llms-notice' ).slideUp( 400 );\n\t\t\t\t$( 'form.llms-login' ).slideDown( 400 );\n\n\t\t\t} );\n\t\t};\n\n\t\t/**\n\t\t * Clear error messages\n\t\t *\n\t\t * @return void\n\t\t * @since 3.27.0\n\t\t * @version 3.27.0\n\t\t */\n\t\tthis.clear_errors = function() {\n\t\t\t$( '#llms-checkout-errors' ).remove();\n\t\t};\n\n\t\t/**\n\t\t * Triggered by clicking the \"Apply Coupon\" Button\n\t\t * Validates the coupon via JS and adds error / success messages\n\t\t * On success it will replace partials on the checkout screen with updated\n\t\t * prices and a \"remove coupon\" button\n\t\t *\n\t\t * @param obj $btn jQuery selector of the Apply button\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.coupon_apply = function ( $btn ) {\n\n\t\t\tvar self = this,\n\t\t\t\t$code = $( '#llms_coupon_code' ),\n\t\t\t\tcode = $code.val(),\n\t\t\t\t$messages = $( '.llms-coupon-messages' ),\n\t\t\t\t$errors = $messages.find( '.llms-error' ),\n\t\t\t\t$container = $( 'form.llms-checkout' );\n\n\t\t\tLLMS.Spinner.start( $container );\n\n\t\t\twindow.LLMS.Ajax.call( {\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'validate_coupon_code',\n\t\t\t\t\tcode: code,\n\t\t\t\t\tplan_id: $( '#llms-plan-id' ).val(),\n\t\t\t\t},\n\t\t\t\tbeforeSend: function() {\n\n\t\t\t\t\t$errors.hide();\n\n\t\t\t\t},\n\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\tLLMS.Spinner.stop( $container );\n\n\t\t\t\t\tif ( 'error' === r.code ) {\n\n\t\t\t\t\t\tvar $message = $( '' + r.message + ' ' );\n\n\t\t\t\t\t\tif ( ! $errors.length ) {\n\n\t\t\t\t\t\t\t$errors = $( '' );\n\t\t\t\t\t\t\t$messages.append( $errors );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t$errors.empty();\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$message.appendTo( $errors );\n\t\t\t\t\t\t$errors.show();\n\n\t\t\t\t\t} else if ( r.success ) {\n\n\t\t\t\t\t\t$( '.llms-coupon-wrapper' ).replaceWith( r.data.coupon_html );\n\t\t\t\t\t\tself.bind_coupon();\n\n\t\t\t\t\t\t$( '.llms-payment-gateways' ).replaceWith( r.data.gateways_html );\n\t\t\t\t\t\tself.bind_gateways();\n\n\t\t\t\t\t\t$( '.llms-order-summary' ).replaceWith( r.data.summary_html );\n\n\t\t\t\t\t\t$( document ).trigger( \"llms-checkout-refreshed\" );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Called by clicking the \"Remove Coupon\" button\n\t\t * Removes the coupon via AJAX and unsets related session data\n\t\t *\n\t\t * @param obj $btn jQuery selector of the Remove button\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.coupon_remove = function( $btn ) {\n\n\t\t\tvar self = this,\n\t\t\t\t$container = $( 'form.llms-checkout' );\n\n\t\t\tLLMS.Spinner.start( $container );\n\n\t\t\twindow.LLMS.Ajax.call( {\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'remove_coupon_code',\n\t\t\t\t\tplan_id: $( '#llms-plan-id' ).val(),\n\t\t\t\t},\n\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\tLLMS.Spinner.stop( $container );\n\n\t\t\t\t\tif ( r.success ) {\n\n\t\t\t\t\t\t$( '.llms-coupon-wrapper' ).replaceWith( r.data.coupon_html );\n\t\t\t\t\t\tself.bind_coupon();\n\n\t\t\t\t\t\t$( '.llms-order-summary' ).replaceWith( r.data.summary_html );\n\n\t\t\t\t\t\t$( '.llms-payment-gateways' ).replaceWith( r.data.gateways_html );\n\t\t\t\t\t\tself.bind_gateways();\n\n\t\t\t\t\t\t$( document ).trigger( \"llms-checkout-refreshed\" );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Scroll error messages into view\n\t\t *\n\t\t * @return void\n\t\t * @since 3.27.0\n\t\t * @version 3.27.0\n\t\t */\n\t\tthis.focus_errors = function() {\n\t\t\t$( 'html, body' ).animate( {\n\t\t\t\tscrollTop: $( '#llms-checkout-errors' ).offset().top - 50,\n\t\t\t}, 200 );\n\t\t};\n\n\t\t/**\n\t\t * Bind external gateway JS\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.load_gateways = function() {\n\n\t\t\tfor ( var i = 0; i <= gateways.length; i++ ) {\n\t\t\t\tvar g = gateways[i];\n\t\t\t\tif ( typeof g === 'object' && g !== null ) {\n\t\t\t\t\tif ( g.bind !== undefined && 'function' === typeof g.bind ) {\n\t\t\t\t\t\tg.bind();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Start or stop processing events on the checkout form\n\t\t *\n\t\t * @param string action whether to start or stop processing [start|stop]\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.24.1\n\t\t */\n\t\tthis.processing = function( action ) {\n\n\t\t\tvar func, $form;\n\n\t\t\tswitch ( action ) {\n\n\t\t\t\tcase 'stop':\n\t\t\t\t\tfunc = 'removeClass';\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'start':\n\t\t\t\tdefault:\n\t\t\t\t\tfunc = 'addClass';\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( 'checkout' === this.form_action ) {\n\t\t\t\t$form = this.$checkout_form;\n\t\t\t} else if ( 'confirm' === this.form_action ) {\n\t\t\t\t$form = this.$confirm_form;\n\t\t\t}\n\n\t\t\t$form[ func ]( 'llms-is-processing' );\n\t\t\tLLMS.Spinner[ action ]( this.$form_sections );\n\n\t\t};\n\n\t\t/**\n\t\t * Handles form submission\n\t\t * Calls all validation events in `before_submit[]`\n\t\t * waits for call backs and either displays returned errors\n\t\t * or submits the form when all are successful\n\t\t *\n\t\t * @param obj e JS event object\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.27.0\n\t\t */\n\t\tthis.submit = function( e ) {\n\n\t\t\tvar self = e.data,\n\t\t\t\tnum = before_submit.length,\n\t\t\t\tchecks = 0,\n\t\t\t\tmax_checks = 60000,\n\t\t\t\terrors = [],\n\t\t\t\tfinishes = 0,\n\t\t\t\tsuccesses = 0,\n\t\t\t\tinterval;\n\n\t\t\te.preventDefault();\n\n\t\t\t// add spinners\n\t\t\tself.processing( 'start' );\n\n\t\t\t// remove errors to prevent duplicates\n\t\t\tself.clear_errors();\n\n\t\t\t// start running all the events\n\t\t\tfor ( var i = 0; i < before_submit.length; i++ ) {\n\n\t\t\t\tvar obj = before_submit[ i ];\n\n\t\t\t\tobj.handler( obj.data, function( r ) {\n\n\t\t\t\t\tfinishes++;\n\t\t\t\t\tif ( true === r ) {\n\t\t\t\t\t\tsuccesses++;\n\t\t\t\t\t} else if ( 'string' === typeof r ) {\n\t\t\t\t\t\terrors.push( r );\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\t// run an interval to wait for finishes\n\t\t\tinterval = setInterval( function() {\n\n\t\t\t\tvar clear = false,\n\t\t\t\t\tstop = false;\n\n\t\t\t\t// timeout...\n\t\t\t\tif ( checks >= max_checks ) {\n\n\t\t\t\t\tclear = true;\n\t\t\t\t\tstop = true;\n\n\t\t\t\t} else if ( num === finishes ) {\n\t\t\t\t\t// everything has finished\n\n\t\t\t\t\t// all were successful, submit the form\n\t\t\t\t\tif ( num === successes ) {\n\n\t\t\t\t\t\tclear = true;\n\n\t\t\t\t\t\tself.$checkout_form.off( 'submit', self.submit );\n\t\t\t\t\t\tself.$checkout_form.trigger( 'submit' );\n\n\t\t\t\t\t} else if ( errors.length ) {\n\n\t\t\t\t\t\tclear = true;\n\t\t\t\t\t\tstop = true;\n\n\t\t\t\t\t\tfor ( var i = 0; i < errors.length; i++ ) {\n\t\t\t\t\t\t\tself.add_error( errors[ i ] );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tself.focus_errors();\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( clear ) {\n\t\t\t\t\tclearInterval( interval );\n\t\t\t\t}\n\n\t\t\t\tif ( stop ) {\n\t\t\t\t\tself.processing( 'stop' );\n\t\t\t\t}\n\n\t\t\t\tchecks++;\n\n\t\t\t}, 100 );\n\n\t\t};\n\n\t\t// initialize\n\t\tthis.init();\n\n\t\treturn this;\n\n\t};\n\n\twindow.llms = window.llms || {};\n\twindow.llms.checkout = new llms_checkout();\n\n} )( jQuery );\n"],"names":["$","window","llms","checkout","before_submit","gateways","this","$checkout_form","$confirm_form","$form_sections","form_action","init","self","length","bind_login","find","on","submit","document","querySelector","style","scrollBehavior","add_before_submit_event","data","LLMS","PasswordStrength","handler","bind_coupon","bind_gateways","trigger","processing","obj","push","add_error","message","id","$err","prepend","append","console","error","add_gateway","gateway_class","e","preventDefault","slideToggle","coupon_apply","coupon_remove","load_gateways","removeAttr","each","$el","$parent","closest","$fields","checked","is","val","$selector","attr","$submit","slideUp","slideDown","clear_errors","remove","$btn","code","$messages","$errors","$container","Spinner","start","Ajax","call","action","plan_id","beforeSend","hide","success","r","$message","stop","empty","appendTo","show","replaceWith","coupon_html","gateways_html","summary_html","focus_errors","animate","scrollTop","offset","top","i","g","undefined","bind","$form","func","interval","num","checks","errors","finishes","successes","setInterval","clear","off","clearInterval","jQuery"],"mappings":"AASA,CAAA,SAAYA,GAokBXC,OAAOC,KAAgBD,OAAOC,MAAQ,GACtCD,OAAOC,KAAKC,SAAW,IAnkBH,WASnB,IAAIC,EAAgB,GAShBC,EAAW,GA4iBf,OA1iBAC,KAAKC,eAAiBP,EAAG,6BAA8B,EACvDM,KAAKE,cAAiBR,EAAG,qCAAsC,EAC/DM,KAAKG,eAAiB,CAAA,EACtBH,KAAKI,YAAiB,CAAA,EAYtBJ,KAAKK,KAAO,WAEX,IAAIC,EAAON,KAENN,EAAG,wBAAyB,EAAEa,QAClCP,KAAKQ,WAAW,EAGZR,KAAKC,eAAeM,QAExBP,KAAKI,YAAiB,WACtBJ,KAAKG,eAAiBH,KAAKC,eAAeQ,KAAM,wBAAyB,EAEzET,KAAKC,eAAeS,GAAI,SAAUV,KAAMA,KAAKW,MAAO,EAOpDC,SAASC,cAAe,MAAO,EAAEC,MAAMC,eAAiB,OAGnDrB,EAAG,+BAAgC,EAAEa,QACzCP,KAAKgB,wBAAyB,CAC7BC,KAAMC,KAAKC,iBACXC,QAASF,KAAKC,iBAAiBtB,QAChC,CAAE,EAGHG,KAAKqB,YAAY,EAEjBrB,KAAKsB,cAAc,EAEnB5B,EAAGkB,QAAS,EAAEW,QAAS,yBAA0B,GAEtCvB,KAAKE,cAAcK,SAE9BP,KAAKI,YAAiB,UACtBJ,KAAKG,eAAiBH,KAAKE,cAAcO,KAAM,wBAAyB,EAExET,KAAKE,cAAcQ,GAAI,SAAU,WAChCJ,EAAKkB,WAAY,OAAQ,CAC1B,CAAE,EAIJ,EAYAxB,KAAKgB,wBAA0B,SAAUS,GAEjCA,EAAIL,SAAW,YAAe,OAAOK,EAAIL,UAIzCK,EAAIR,OACVQ,EAAIR,KAAO,MAGZnB,EAAc4B,KAAMD,CAAI,EAEzB,EAWAzB,KAAK2B,UAAY,SAAUC,EAASX,GAEnC,IAAIY,EAAO,wBACVC,KAAOpC,EAAG,IAAMmC,CAAG,GAERtB,SACXuB,KAAOpC,EAAG,0CAA4CmC,EAAK,MAAO,EAClEnC,EAAG,wBAAyB,EAAEqC,QAASD,IAAK,GAG7CA,KAAKE,OAAQ,OAASJ,EAAU,OAAQ,EAEnCX,GACJgB,QAAQC,MAAOjB,CAAK,CAGtB,EAUAjB,KAAKmC,YAAc,SAAUC,GAE5BrC,EAAS2B,KAAMU,CAAc,CAE9B,EAWApC,KAAKqB,YAAc,WAElB,IAAIf,EAAON,KAGXN,EAAG,+BAAgC,EAAEgB,GAAI,QAAS,SAAU2B,GAE3DA,EAAEC,eAAe,EACjB5C,EAAG,oBAAqB,EAAE6C,YAAa,GAAI,CAE5C,CAAE,EAGF7C,EAAG,oBAAqB,EAAEgB,GAAI,QAAS,SAAU2B,GAEhDA,EAAEC,eAAe,EACjBhC,EAAKkC,aAAc9C,EAAGM,IAAK,CAAE,CAE9B,CAAE,EAGFN,EAAG,qBAAsB,EAAEgB,GAAI,QAAS,SAAU2B,GAEjDA,EAAEC,eAAe,EACjBhC,EAAKmC,cAAe/C,EAAGM,IAAK,CAAE,CAE/B,CAAE,CAEH,EASAA,KAAKsB,cAAgB,WAEpBtB,KAAK0C,cAAc,EAEZhD,EAAG,oCAAqC,EAAEa,QAChDb,EAAG,4BAA6B,EAAEiD,WAAY,UAAW,EAI1DjD,EAAG,oCAAqC,EAAEgB,GAAI,SAAU,WAEvDhB,EAAG,oCAAqC,EAAEkD,KAAM,WAE/C,IAAIC,EAAenD,EAAGM,IAAK,EAC1B8C,EAAeD,EAAIE,QAAS,uBAAwB,EACpDC,EAAeF,EAAQrC,KAAM,sBAAuB,EAAEA,KAAM,yBAA0B,EACtFwC,EAAeJ,EAAIK,GAAI,UAAW,EAGnCJ,EAFgB,EAAc,WAAa,eAElB,aAAc,EAElCG,GAGJD,EAAQL,WAAY,UAAW,EAG/BjD,EAAG,wBAAyB,EAAE6B,QAAS,wBAAyB,CAC/DM,GAAIgB,EAAIM,IAAI,EACZC,UAAWN,CACZ,CAAE,GAKFE,EAAQK,KAAM,WAAY,UAAW,CAIvC,CAAE,CAEH,CAAE,EAGF3D,EAAG,wBAAyB,EAAEgB,GAAI,wBAAyB,SAAU2B,EAAGpB,GAEvE,IAAIqC,EAAU5D,EAAG,4BAA6B,EAEzCuB,EAAKmC,WAAanC,EAAKmC,UAAU3C,KAAM,+BAAgC,EAAEF,OAC7E+C,EAAQD,KAAM,WAAY,UAAW,EAErCC,EAAQX,WAAY,UAAW,CAGjC,CAAE,CAEH,EAUA3C,KAAKQ,WAAa,WAEjBd,EAAG,4BAA6B,EAAEgB,GAAI,QAAS,SAAU2B,GAExDA,EAAEC,eAAe,EACjB5C,EAAGM,IAAK,EAAE+C,QAAS,yBAA0B,EAAEQ,QAAS,GAAI,EAC5D7D,EAAG,iBAAkB,EAAE8D,UAAW,GAAI,CAEvC,CAAE,CACH,EASAxD,KAAKyD,aAAe,WACnB/D,EAAG,uBAAwB,EAAEgE,OAAO,CACrC,EAaA1D,KAAKwC,aAAe,SAAWmB,GAE9B,IAAIrD,EAAaN,KAEhB4D,EADalE,EAAG,mBAAoB,EACjByD,IAAI,EACvBU,EAAanE,EAAG,uBAAwB,EACxCoE,EAAaD,EAAUpD,KAAM,aAAc,EAC3CsD,EAAarE,EAAG,oBAAqB,EAEtCwB,KAAK8C,QAAQC,MAAOF,CAAW,EAE/BpE,OAAOuB,KAAKgD,KAAKC,KAAM,CACtBlD,KAAM,CACLmD,OAAQ,uBACRR,KAAMA,EACNS,QAAS3E,EAAG,eAAgB,EAAEyD,IAAI,CACnC,EACAmB,WAAY,WAEXR,EAAQS,KAAK,CAEd,EACAC,QAAS,SAAUC,GAIlB,IAEKC,EAJLxD,KAAK8C,QAAQW,KAAMZ,CAAW,EAEzB,UAAYU,EAAEb,MAEdc,EAAWhF,EAAG,OAAS+E,EAAE7C,QAAU,OAAQ,EAExCkC,EAAQvD,OAOduD,EAAQc,MAAM,GALdd,EAAUpE,EAAG,uCAAwC,EACrDmE,EAAU7B,OAAQ8B,CAAQ,GAQ3BY,EAASG,SAAUf,CAAQ,EAC3BA,EAAQgB,KAAK,GAEFL,EAAED,UAEb9E,EAAG,sBAAuB,EAAEqF,YAAaN,EAAExD,KAAK+D,WAAY,EAC5D1E,EAAKe,YAAY,EAEjB3B,EAAG,wBAAyB,EAAEqF,YAAaN,EAAExD,KAAKgE,aAAc,EAChE3E,EAAKgB,cAAc,EAEnB5B,EAAG,qBAAsB,EAAEqF,YAAaN,EAAExD,KAAKiE,YAAa,EAE5DxF,EAAGkB,QAAS,EAAEW,QAAS,yBAA0B,EAInD,CAED,CAAE,CAEH,EAWAvB,KAAKyC,cAAgB,SAAUkB,GAE9B,IAAIrD,EAAaN,KAChB+D,EAAarE,EAAG,oBAAqB,EAEtCwB,KAAK8C,QAAQC,MAAOF,CAAW,EAE/BpE,OAAOuB,KAAKgD,KAAKC,KAAM,CACtBlD,KAAM,CACLmD,OAAQ,qBACRC,QAAS3E,EAAG,eAAgB,EAAEyD,IAAI,CACnC,EACAqB,QAAS,SAAUC,GAElBvD,KAAK8C,QAAQW,KAAMZ,CAAW,EAEzBU,EAAED,UAEN9E,EAAG,sBAAuB,EAAEqF,YAAaN,EAAExD,KAAK+D,WAAY,EAC5D1E,EAAKe,YAAY,EAEjB3B,EAAG,qBAAsB,EAAEqF,YAAaN,EAAExD,KAAKiE,YAAa,EAE5DxF,EAAG,wBAAyB,EAAEqF,YAAaN,EAAExD,KAAKgE,aAAc,EAChE3E,EAAKgB,cAAc,EAEnB5B,EAAGkB,QAAS,EAAEW,QAAS,yBAA0B,EAInD,CAED,CAAE,CAEH,EASAvB,KAAKmF,aAAe,WACnBzF,EAAG,YAAa,EAAE0F,QAAS,CAC1BC,UAAW3F,EAAG,uBAAwB,EAAE4F,OAAO,EAAEC,IAAM,EACxD,EAAG,GAAI,CACR,EASAvF,KAAK0C,cAAgB,WAEpB,IAAM,IAAI8C,EAAI,EAAGA,GAAKzF,EAASQ,OAAQiF,CAAC,GAAK,CAC5C,IAAIC,EAAI1F,EAASyF,GACC,UAAb,OAAOC,GAAwB,OAANA,GACbC,KAAAA,IAAXD,EAAEE,MAAsB,YAAe,OAAOF,EAAEE,MACpDF,EAAEE,KAAK,CAGV,CACD,EAUA3F,KAAKwB,WAAa,SAAU4C,GAE3B,IAAUwB,EAKRC,EADI,SAFGzB,EAGA,cAKA,WAKJ,aAAepE,KAAKI,YACxBwF,EAAQ5F,KAAKC,eACF,YAAcD,KAAKI,cAC9BwF,EAAQ5F,KAAKE,eAGd0F,EAAOC,GAAQ,oBAAqB,EACpC3E,KAAK8C,QAASI,GAAUpE,KAAKG,cAAe,CAE7C,EAaAH,KAAKW,OAAS,SAAU0B,GAEvB,IAOCyD,EAPGxF,EAAa+B,EAAEpB,KAClB8E,EAAajG,EAAcS,OAC3ByF,EAAa,EAEbC,EAAa,GACbC,EAAa,EACbC,EAAa,EAGd9D,EAAEC,eAAe,EAGjBhC,EAAKkB,WAAY,OAAQ,EAGzBlB,EAAKmD,aAAa,EAGlB,IAAM,IAAI+B,EAAI,EAAGA,EAAI1F,EAAcS,OAAQiF,CAAC,GAAK,CAEhD,IAAI/D,EAAM3B,EAAe0F,GAEzB/D,EAAIL,QAASK,EAAIR,KAAM,SAAUwD,GAEhCyB,CAAQ,GACH,CAAA,IAASzB,EACb0B,CAAS,GACE,UAAa,OAAO1B,GAC/BwB,EAAOvE,KAAM+C,CAAE,CAGjB,CAAE,CAEH,CAGAqB,EAAWM,YAAa,WAEvB,IAAIC,EAAQ,CAAA,EACX1B,EAAQ,CAAA,EAGT,GAvCa,KAuCRqB,EAGJrB,EADA0B,EAAQ,CAAA,OAGF,GAAKN,IAAQG,EAInB,GAAKH,IAAQI,EAEZE,EAAQ,CAAA,EAER/F,EAAKL,eAAeqG,IAAK,SAAUhG,EAAKK,MAAO,EAC/CL,EAAKL,eAAesB,QAAS,QAAS,OAEhC,GAAK0E,EAAO1F,OAAS,CAK3B,IAAM,IAHN8F,EAAQ,CAAA,EACR1B,EAAQ,CAAA,EAEEa,EAAI,EAAGA,EAAIS,EAAO1F,OAAQiF,CAAC,GACpClF,EAAKqB,UAAWsE,EAAQT,EAAI,EAG7BlF,EAAK6E,aAAa,CAEnB,CAIIkB,GACJE,cAAeT,CAAS,EAGpBnB,GACJrE,EAAKkB,WAAY,MAAO,EAGzBwE,CAAM,EAEP,EAAG,GAAI,CAER,EAGAhG,KAAKK,KAAK,EAEHL,IAER,CAKC,EAAGwG,MAAO","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-launch-course-button.min.js.map b/assets/maps/js/llms-launch-course-button.min.js.map
new file mode 100644
index 0000000000..83f8d11824
--- /dev/null
+++ b/assets/maps/js/llms-launch-course-button.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-launch-course-button.min.js","sources":["llms-launch-course-button.js"],"sourcesContent":["/**\n * Add Launch Course Builder button to the classic editor.\n *\n * @since Unknown\n * @version 3.35.0\n */\n\n( function( $ ){\n\n\tvar mainCourseButton = $( '.page-title-action' );\n\n\tif ( mainCourseButton.length ) {\n\t\t// Add your custom button beside the \"Add Course\" button\n\t\t$( '' + LLMS.l10n.translate( 'Launch Course Builder' ) + ' ' ).insertAfter( mainCourseButton );\n\t}\n\n} )( jQuery );\n"],"names":["$","mainCourseButton","length","llms_launch_course","builder_url","LLMS","l10n","translate","insertAfter","jQuery"],"mappings":"AAOA,CAAA,SAAYA,GAEX,IAAIC,EAAmBD,EAAG,oBAAqB,EAE1CC,EAAiBC,QAErBF,EAAG,YAAcG,mBAAmBC,YAAc,8CAAgDC,KAAKC,KAAKC,UAAW,uBAAwB,EAAI,MAAO,EAAEC,YAAaP,CAAiB,CAG1L,EAAGQ,MAAO","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-metabox-achievement.min.js.map b/assets/maps/js/llms-metabox-achievement.min.js.map
new file mode 100644
index 0000000000..e54a7699f7
--- /dev/null
+++ b/assets/maps/js/llms-metabox-achievement.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-metabox-achievement.min.js","sources":["llms-metabox-achievement.js"],"sourcesContent":["( function( $ ) {\n\n\t// Open Media Manager modal.\n\t$( '.achievement_image_button' ).click( function( e ) {\n\n\t\t// Create Media Manager On Click to allow multiple on one Page\n\t\tvar achievement_uploader;\n\n\t\te.preventDefault();\n\n\t\t// Setup the Variables based on the Button Clicked to enable multiple\n\t\tvar achievement_img_input_id = '#' + this.id + '.upload_achievement_image';\n\t\tvar achievement_img_src = 'img#' + this.id + '.llms_achievement_image';\n\n\t\t// If the uploader object has already been created, reopen the dialog\n\t\tif (achievement_uploader) {\n\t\t\tachievement_uploader.open();\n\t\t\treturn;\n\t\t}\n\n\t\t// Extend the wp.media object\n\t\tachievement_uploader = wp.media.frames.file_frame = wp.media({\n\t\t\ttitle: 'Choose Achievement Image',\n\t\t\tbutton: {\n\t\t\t\ttext: 'Choose Achievement'\n\t\t\t},\n\t\t\tmultiple: false\n\t\t});\n\n\t\t// When a file is selected, grab the URL and set it as the text field's value\n\t\tachievement_uploader.on('select', function() {\n\t\t\tattachment = achievement_uploader.state().get( 'selection' ).first().toJSON();\n\t\t\t// Set the Field with the Image ID\n\t\t\t$( achievement_img_input_id ).val( attachment.id );\n\t\t\t// Set the Sample Image with the URL\n\t\t\t$( achievement_img_src ).attr( 'src', attachment.url );\n\n\t\t});\n\n\t\t// Open the uploader dialog\n\t\tachievement_uploader.open();\n\n\t});\n\n\t// Remove Image and replace with default and Erase Image ID for achievement\n\t$( '.llms_achievement_clear_image_button' ).click(function(e) {\n\t\te.preventDefault();\n\t\tvar achievement_remove_input_id = 'input#' + this.id + '.upload_achievement_image';\n\t\tvar achievement_img_src = 'img#' + this.id + '.llms_achievement_image';\n\t\tvar achievement_default_img_src = $( 'img#' + this.id + '.llms_achievement_default_image' ).attr( \"src\" );\n\n\t\t$( achievement_remove_input_id ).val( '' );\n\t\t$( achievement_img_src ).attr( 'src', achievement_default_img_src );\n\t});\n\n} )( jQuery );\n"],"names":["$","click","e","preventDefault","achievement_img_input_id","this","id","achievement_img_src","achievement_uploader","wp","media","frames","file_frame","title","button","text","multiple","on","attachment","state","get","first","toJSON","val","attr","url","open","achievement_remove_input_id","achievement_default_img_src","jQuery"],"mappings":"AAAA,CAAA,SAAYA,GAGXA,EAAG,2BAA4B,EAAEC,MAAO,SAAUC,GAKjDA,EAAEC,eAAe,EAFjB,IAKIC,EAA2B,IAAMC,KAAKC,GAAK,4BAC3CC,EAA2B,OAASF,KAAKC,GAAK,0BASlDE,EAAuBC,GAAGC,MAAMC,OAAOC,WAAaH,GAAGC,MAAM,CAC5DG,MAAO,2BACPC,OAAQ,CACPC,KAAM,oBACP,EACAC,SAAU,CAAA,CACX,CAAC,EAGDR,EAAqBS,GAAG,SAAU,WACjCC,WAAaV,EAAqBW,MAAM,EAAEC,IAAK,WAAY,EAAEC,MAAM,EAAEC,OAAO,EAE5EtB,EAAGI,CAAyB,EAAEmB,IAAKL,WAAWZ,EAAG,EAEjDN,EAAGO,CAAoB,EAAEiB,KAAM,MAAON,WAAWO,GAAI,CAEtD,CAAC,EAGDjB,EAAqBkB,KAAK,CAE3B,CAAC,EAGD1B,EAAG,sCAAuC,EAAEC,MAAM,SAASC,GAC1DA,EAAEC,eAAe,EACjB,IAAIwB,EAA8B,SAAWtB,KAAKC,GAAK,4BACnDC,EAA8B,OAASF,KAAKC,GAAK,0BACjDsB,EAA8B5B,EAAG,OAASK,KAAKC,GAAK,iCAAkC,EAAEkB,KAAM,KAAM,EAExGxB,EAAG2B,CAA4B,EAAEJ,IAAK,EAAG,EACzCvB,EAAGO,CAAoB,EAAEiB,KAAM,MAAOI,CAA4B,CACnE,CAAC,CAEA,EAAGC,MAAO","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-metabox-certificate.min.js.map b/assets/maps/js/llms-metabox-certificate.min.js.map
new file mode 100644
index 0000000000..e2c28c7224
--- /dev/null
+++ b/assets/maps/js/llms-metabox-certificate.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-metabox-certificate.min.js","sources":["llms-metabox-certificate.js"],"sourcesContent":["jQuery( document ).ready(function($){\n\n\t$( '.certificate_image_button' ).click(function(e) {\n\n\t\t// Create Media Manager On Click to allow multiple on one Page\n\t\tvar certificate_uploader;\n\n\t\te.preventDefault();\n\n\t\t// Setup the Variables based on the Button Clicked to enable multiple\n\t\tvar certificate_img_input_id = '#' + this.id + '.upload_certificate_image';\n\t\tvar certificate_img_src = 'img#' + this.id + '.llms_certificate_image';\n\n\t\t// If the uploader object has already been created, reopen the dialog\n\t\tif (certificate_uploader) {\n\t\t\tcertificate_uploader.open();\n\t\t\treturn;\n\t\t}\n\n\t\t// Extend the wp.media object\n\t\tcertificate_uploader = wp.media.frames.file_frame = wp.media({\n\t\t\ttitle: 'Choose Certificate Image',\n\t\t\tbutton: {\n\t\t\t\ttext: 'Choose Certificate'\n\t\t\t},\n\t\t\tmultiple: false\n\t\t});\n\n\t\t// When a file is selected, grab the URL and set it as the text field's value\n\t\tcertificate_uploader.on('select', function() {\n\t\t\tattachment = certificate_uploader.state().get( 'selection' ).first().toJSON();\n\t\t\t// Set the Field with the Image ID\n\t\t\t$( certificate_img_input_id ).val( attachment.id );\n\t\t\t// Set the Sample Image with the URL\n\t\t\t$( certificate_img_src ).attr( 'src', attachment.url );\n\n\t\t});\n\n\t\t// Open the uploader dialog\n\t\tcertificate_uploader.open();\n\n\t});\n\n});\n/*\n* Media Manager 3.5\n* @version 1.70\n*/\njQuery( document ).ready(function($){\n\t// Remove Image and replace with default and Erase Image ID for Certificate\n\t$( '.llms_certificate_clear_image_button' ).click(function(e) {\n\t\te.preventDefault();\n\t\tvar certificate_remove_input_id = 'input#' + this.id + '.upload_certificate_image';\n\t\tvar certificate_img_src = 'img#' + this.id + '.llms_certificate_image';\n\t\tvar certificate_default_img_src = $( 'img#' + this.id + '.llms_certificate_default_image' ).attr( \"src\" );\n\n\t\t$( certificate_remove_input_id ).val( '' );\n\t\t$( certificate_img_src ).attr( 'src', certificate_default_img_src );\n\t});\n\n});\n"],"names":["jQuery","document","ready","$","click","e","preventDefault","certificate_img_input_id","this","id","certificate_img_src","certificate_uploader","wp","media","frames","file_frame","title","button","text","multiple","on","attachment","state","get","first","toJSON","val","attr","url","open","certificate_remove_input_id","certificate_default_img_src"],"mappings":"AAAAA,OAAQC,QAAS,EAAEC,MAAM,SAASC,GAEjCA,EAAG,2BAA4B,EAAEC,MAAM,SAASC,GAK/CA,EAAEC,eAAe,EAFjB,IAKIC,EAA2B,IAAMC,KAAKC,GAAK,4BAC3CC,EAA2B,OAASF,KAAKC,GAAK,0BASlDE,EAAuBC,GAAGC,MAAMC,OAAOC,WAAaH,GAAGC,MAAM,CAC5DG,MAAO,2BACPC,OAAQ,CACPC,KAAM,oBACP,EACAC,SAAU,CAAA,CACX,CAAC,EAGDR,EAAqBS,GAAG,SAAU,WACjCC,WAAaV,EAAqBW,MAAM,EAAEC,IAAK,WAAY,EAAEC,MAAM,EAAEC,OAAO,EAE5EtB,EAAGI,CAAyB,EAAEmB,IAAKL,WAAWZ,EAAG,EAEjDN,EAAGO,CAAoB,EAAEiB,KAAM,MAAON,WAAWO,GAAI,CAEtD,CAAC,EAGDjB,EAAqBkB,KAAK,CAE3B,CAAC,CAEF,CAAC,EAKD7B,OAAQC,QAAS,EAAEC,MAAM,SAASC,GAEjCA,EAAG,sCAAuC,EAAEC,MAAM,SAASC,GAC1DA,EAAEC,eAAe,EACjB,IAAIwB,EAA8B,SAAWtB,KAAKC,GAAK,4BACnDC,EAA8B,OAASF,KAAKC,GAAK,0BACjDsB,EAA8B5B,EAAG,OAASK,KAAKC,GAAK,iCAAkC,EAAEkB,KAAM,KAAM,EAExGxB,EAAG2B,CAA4B,EAAEJ,IAAK,EAAG,EACzCvB,EAAGO,CAAoB,EAAEiB,KAAM,MAAOI,CAA4B,CACnE,CAAC,CAEF,CAAC","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-metabox-fields.min.js.map b/assets/maps/js/llms-metabox-fields.min.js.map
new file mode 100644
index 0000000000..3ce34a311b
--- /dev/null
+++ b/assets/maps/js/llms-metabox-fields.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-metabox-fields.min.js","sources":["llms-metabox-fields.js"],"sourcesContent":["/**\n * Global admin functions.\n *\n * @since Unknown\n * @version 3.35.0\n */\n\n( function( $ ){\n\n\t// Toggle sales price settings.\n\tclear_fields = function (fields) {\n\t\tvar fields = fields;\n\n\t\t$.each( fields, function( i, val ) {\n\t\t\t$( val ).val( '' );\n\t\t});\n\t}\n\n\t// Load ajax animation functionality\n\tload_ajax_animation = function() {\n\t\t$( '#loading' ).hide();\n\n\t\t$( document ).ajaxStop(function(){\n\t\t\t$( '#loading' ).hide();\n\t\t});\n\n\t\t$( document ).ajaxStart(function(){\n\t\t\t$( '#loading' ).show();\n\t\t});\n\t}\n\n} )( jQuery );\n"],"names":["$","clear_fields","fields","each","i","val","load_ajax_animation","hide","document","ajaxStop","ajaxStart","show","jQuery"],"mappings":"AAOA,CAAA,SAAYA,GAGXC,aAAe,SAAUC,GAGxBF,EAAEG,KAAMD,EAAQ,SAAUE,EAAGC,GAC5BL,EAAGK,CAAI,EAAEA,IAAK,EAAG,CAClB,CAAC,CACF,EAGAC,oBAAsB,WACrBN,EAAG,UAAW,EAAEO,KAAK,EAErBP,EAAGQ,QAAS,EAAEC,SAAS,WACtBT,EAAG,UAAW,EAAEO,KAAK,CACtB,CAAC,EAEDP,EAAGQ,QAAS,EAAEE,UAAU,WACvBV,EAAG,UAAW,EAAEW,KAAK,CACtB,CAAC,CACF,CAEC,EAAGC,MAAO","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-metabox-instructors.min.js.map b/assets/maps/js/llms-metabox-instructors.min.js.map
new file mode 100644
index 0000000000..344cb7045a
--- /dev/null
+++ b/assets/maps/js/llms-metabox-instructors.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-metabox-instructors.min.js","sources":["llms-metabox-instructors.js"],"sourcesContent":["/**\n * Instructors Metabox\n *\n * @since 3.13.0\n * @version 3.13.0\n */\n( function( $ ) {\n\n\twindow.llms = window.llms || {};\n\n\twindow.llms.metabox_instructors = function() {\n\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t * @since 3.13.0\n\t\t * @version 3.13.0\n\t\t */\n\t\tthis.init = function() {\n\n\t\t\t// before saving, update the wp core hidden field for post_author\n\t\t\t// so that the first instructor is always set as the post author\n\t\t\t$( '._llms_instructors_data.repeater' ).on( 'llms-repeater-before-save', function( e, params ) {\n\t\t\t\tvar author_id = params.$el.find( '.llms-repeater-rows .llms-repeater-row' ).first().find( 'select[name^=\"_llms_id\"]' ).val();\n\t\t\t\t$( '#post_author' ).val( author_id );\n\t\t\t} );\n\n\t\t\t$( '._llms_instructors_data.repeater' ).on( 'llms-new-repeater-row', function( e, params ) {\n\n\t\t\t\tvar $instructor = params.$row.find( 'select[name^=\"_llms_id\"]' ),\n\t\t\t\t\t$target = params.$row.find( '.llms-repeater-title' );\n\n\t\t\t\t$instructor.on( 'select2:select', function( e ) {\n\t\t\t\t\tif ( ! e.params ) {\n\t\t\t\t\t\t$target.html( $instructor.find( 'option[selected=\"selected\"]' ).html() );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$target.text( e.params.data.text );\n\t\t\t\t\t}\n\t\t\t\t} ).trigger( 'select2:select' );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t// go\n\t\tthis.init();\n\n\t};\n\n\tvar a = new window.llms.metabox_instructors();\n\n} )( jQuery );\n"],"names":["$","window","llms","metabox_instructors","this","init","on","e","params","author_id","$el","find","first","val","$instructor","$row","$target","text","data","html","trigger","jQuery"],"mappings":"AAMA,CAAA,SAAYA,GAEXC,OAAOC,KAAOD,OAAOC,MAAQ,GAE7BD,OAAOC,KAAKC,oBAAsB,WASjCC,KAAKC,KAAO,WAIXL,EAAG,kCAAmC,EAAEM,GAAI,4BAA6B,SAAUC,EAAGC,GACjFC,EAAYD,EAAOE,IAAIC,KAAM,wCAAyC,EAAEC,MAAM,EAAED,KAAM,0BAA2B,EAAEE,IAAI,EAC3Hb,EAAG,cAAe,EAAEa,IAAKJ,CAAU,CACpC,CAAE,EAEFT,EAAG,kCAAmC,EAAEM,GAAI,wBAAyB,SAAUC,EAAGC,GAEjF,IAAIM,EAAcN,EAAOO,KAAKJ,KAAM,0BAA2B,EAC9DK,EAAcR,EAAOO,KAAKJ,KAAM,sBAAuB,EAExDG,EAAYR,GAAI,iBAAkB,SAAUC,GACpCA,EAAEC,OAGRQ,EAAQC,KAAMV,EAAEC,OAAOU,KAAKD,IAAK,EAFjCD,EAAQG,KAAML,EAAYH,KAAM,6BAA8B,EAAEQ,KAAK,CAAE,CAIzE,CAAE,EAAEC,QAAS,gBAAiB,CAE/B,CAAE,CAEH,EAGAhB,KAAKC,KAAK,CAEX,EAEQ,IAAIJ,OAAOC,KAAKC,mBAEvB,EAAGkB,MAAO","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-metabox-product.min.js.map b/assets/maps/js/llms-metabox-product.min.js.map
new file mode 100644
index 0000000000..604f0069d7
--- /dev/null
+++ b/assets/maps/js/llms-metabox-product.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-metabox-product.min.js","sources":["llms-metabox-product.js"],"sourcesContent":["/**\n * Product Options MetaBox.\n *\n * Displays on Course & Membership Post Types.\n *\n * @since 3.0.0\n * @since 3.30.3 Unknown.\n * @since 3.36.3 Fixed conflicts with the Classic Editor block.\n * @version 7.3.0\n */\n( function( $ ) {\n\n\twindow.llms = window.llms || {};\n\n\twindow.llms.metabox_product = function() {\n\n\t\t/**\n\t\t * jQuery obj for the main $( '#llms-access-plans' ) element.\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\tthis.$plans = null;\n\n\t\t/**\n\t\t * jQuery obj for the main $( '#llms-save-access-plans' ) save button element.\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\tthis.$save = null;\n\n\t\t/**\n\t\t * A randomly generated temporary ID used for the tinyMCE editor's id\n\t\t * when a new plan is added\n\t\t *\n\t\t * @type int\n\t\t */\n\t\tthis.temp_id = Math.floor( ( Math.random() * 7777 ) + 777 );\n\n\t\t/**\n\t\t * CSS class name used to highlight validation errors for plan fields\n\t\t *\n\t\t * @type string\n\t\t */\n\t\tthis.validation_class = 'llms-invalid';\n\n\t\t/**\n\t\t * Initialize.\n\t\t *\n\t\t * @param bool skip_dep_checks If true, skips dependency checks.\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.29.3 Unknown.\n\t\t * @since 7.3.0 Check on whether access plans require attention.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tthis.init = function( skip_dep_checks ) {\n\n\t\t\tvar self = this;\n\n\t\t\tself.$plans = $( '#llms-access-plans' );\n\t\t\tself.$save = $( '#llms-save-access-plans' );\n\n\t\t\tself.bind_visibility();\n\n\t\t\tvar $mb = $( '#lifterlms-product #llms-product-options-access-plans' );\n\n\t\t\tif ( ! $mb.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Check whether the warning icon should be displayed.\n\t\t\tself.requiresAttention();\n\n\t\t\tif ( skip_dep_checks ) {\n\t\t\t\tself.bind();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tLLMS.Spinner.start( $mb );\n\n\t\t\t// we rely on TinyMCE but WordPress doesn't register TinyMCE\n\t\t\t// like every other admin script so we'll do a little dependency check here...\n\t\t\tvar counter = 0,\n\t\t\t\tinterval;\n\n\t\t\tinterval = setInterval( function() {\n\n\t\t\t\t// if we get to 30 seconds display an error message\n\t\t\t\tif ( counter >= 300 ) {\n\n\t\t\t\t\t$mb.html( LLMS.l10n.translate( 'There was an error loading the necessary resources. Please try again.' ) );\n\n\t\t\t\t}\n\t\t\t\t// if we can't access tinyMCE, increment and wait...\n\t\t\t\telse if ( 'undefined' === typeof tinyMCE ) {\n\n\t\t\t\t\tcounter++;\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\t\t\t\t// bind the events, we're good!\n\t\t\t\telse {\n\n\t\t\t\t\tself.bind();\n\n\t\t\t\t}\n\n\t\t\t\tclearInterval( interval );\n\t\t\t\tLLMS.Spinner.stop( $mb );\n\n\t\t\t}, 100 );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind DOM Events.\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.30.0 Add checkout redirect fields events.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tthis.bind = function() {\n\n\t\t\tvar self = this;\n\n\t\t\tsetTimeout( function() {\n\t\t\t\tif ( self.has_plan_limit_been_reached() ) {\n\t\t\t\t\tself.toggle_create_button( 'disable' );\n\t\t\t\t}\n\t\t\t}, 500 );\n\n\t\t\tif ( 0 === self.get_current_plan_count() ) {\n\t\t\t\tself.toggle_save_button( 'disable' );\n\t\t\t}\n\n\t\t\t// save access plans button.\n\t\t\tself.$save.on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.save_plans();\n\t\t\t} );\n\n\t\t\t// bind change events to form element that controls another form element\n\t\t\tself.$plans.on( 'change', '[data-controller-id]', function() {\n\t\t\t\tself.controller_change( $( this ) );\n\t\t\t} );\n\n\t\t\t// @todo Replace this with multiple data-controller functionality in llms-metaboxes.js\n\t\t\tself.$plans.on( 'change', 'select[name$=\"[availability]\"]', function() {\n\t\t\t\tvar $plan_container = $( this ).closest( '.llms-access-plan' ),\n\t\t\t\t\t$plan_redirect_forced = $plan_container.find( 'input[name$=\"[checkout_redirect_forced]\"]' ),\n\t\t\t\t\t$plan_redirect_settings = $plan_container.find( '.llms-checkout-redirect-settings' );\n\n\t\t\t\tif ( 'members' === $( this ).val() ) {\n\t\t\t\t\tif ( ! $plan_redirect_forced.prop( 'checked' ) ) {\n\t\t\t\t\t\t$plan_redirect_settings.hide();\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$plan_redirect_settings.show();\n\t\t\t\t\t}\n\n\t\t\t\t\t$plan_redirect_forced.on( 'change', function() {\n\t\t\t\t\t\t$plan_redirect_settings.toggle();\n\t\t\t\t\t} );\n\n\t\t\t\t} else {\n\t\t\t\t\t$plan_redirect_forced.off( 'change' );\n\t\t\t\t\t$plan_redirect_settings.show();\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t$( '#llms-access-plans .llms-access-plan-datepicker' ).datepicker( {\n\t\t\t\tdateFormat: \"mm/dd/yy\"\n\t\t\t} );\n\n\t\t\t// trigger changes on load for all existing plans\n\t\t\t$( '#llms-access-plans [data-controller-id]' ).trigger( 'change' );\n\n\t\t\t// add a new empty plan interface on new plan button click.\n\t\t\t$( '#llms-new-access-plan' ).on( 'click', function() {\n\t\t\t\tself.init_plan();\n\t\t\t\tself.toggle_create_button( 'disable' );\n\t\t\t\tself.toggle_save_button( 'enable' );\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\tif ( ! self.has_plan_limit_been_reached() ) {\n\t\t\t\t\t\tself.toggle_create_button( 'enable' );\n\t\t\t\t\t}\n\t\t\t\t}, 500 );\n\t\t\t} );\n\n\t\t\tself.$plans.sortable( {\n\t\t\t\thandle: '.llms-drag-handle',\n\t\t\t\titems: '.llms-access-plan',\n\t\t\t\tstart: function( event, ui ) {\n\t\t\t\t\tself.$plans.addClass( 'dragging' );\n\t\t\t\t},\n\t\t\t\tstop: function( event, ui ) {\n\t\t\t\t\tself.$plans.removeClass( 'dragging' );\n\t\t\t\t\tself.update_plan_orders();\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\t// bind text entered into the title to the displayed title for fancy fun\n\t\t\tself.$plans.on( 'keyup', 'input.llms-plan-title', function( ) {\n\n\t\t\t\tvar $input = $( this ),\n\t\t\t\t\t$plan = $input.closest( '.llms-access-plan' ),\n\t\t\t\t\t$display = $plan.find( 'span.llms-plan-title' ),\n\t\t\t\t\tval = $input.val(),\n\t\t\t\t\ttitle = ( val ) ? val : $display.attr( 'data-default' );\n\n\t\t\t\t$display.text( title );\n\n\t\t\t} );\n\n\t\t\t// Record that a field has been focused so we can tweak validation to only validate \"edited\" fields.\n\t\t\tself.$plans.on( 'focusin', 'input', function( e, data ) {\n\t\t\t\t$( this ).addClass( 'llms-has-been-focused' );\n\t\t\t} );\n\n\t\t\t// Validate a single input field\n\t\t\tself.$plans.on( 'keyup focusout llms-validate-plan-field', 'input', function( e, data ) {\n\n\t\t\t\tvar $input = $( this );\n\n\t\t\t\tif ( $input[0].checkValidity() ) {\n\t\t\t\t\t$input.removeClass( self.validation_class );\n\t\t\t\t} else {\n\t\t\t\t\t$input.addClass( self.validation_class );\n\t\t\t\t\tif ( 'keyup' === e.type ) {\n\t\t\t\t\t\t$input[0].reportValidity();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ( ! data || data.cascade ) {\n\t\t\t\t\t$input.closest( '.llms-access-plan' ).trigger( 'llms-validate-plan', { original_event: e.type } );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\tself.$plans.on( 'llms-validate-plan', '.llms-access-plan', function( e, data ) {\n\n\t\t\t\tdata = data || {};\n\n\t\t\t\tvar $plan = $( this ),\n\t\t\t\t\t// only validate \"edited\" fields during cascading validation from input validations.\n\t\t\t\t\tselector = data.original_event ? 'input.llms-has-been-focused' : 'input';\n\n\t\t\t\t$plan.find( selector ).each( function() {\n\t\t\t\t\t$( this ).trigger( 'llms-validate-plan-field', { cascade: false } );\n\t\t\t\t} );\n\n\t\t\t\tif ( $plan.find( '.' + self.validation_class ).length ) {\n\t\t\t\t\t$plan.addClass( self.validation_class );\n\t\t\t\t} else {\n\t\t\t\t\t$plan.removeClass( self.validation_class );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\tself.$plans.on( 'llms-collapsible-toggled', '.llms-access-plan', function() {\n\n\t\t\t\tvar $plan = $( this );\n\n\t\t\t\tif ( $plan.hasClass( 'opened' ) ) {\n\t\t\t\t\t// wait for animation to complete to prevent focusable errors in the console.\n\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t$plan.find( 'input.llms-invalid' ).each( function() {\n\t\t\t\t\t\t\t$( this )[0].reportValidity();\n\t\t\t\t\t\t} );\n\t\t\t\t\t}, 500 );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\tself.$plans.on( 'click', '.llms-plan-delete', function( e ) {\n\t\t\t\te.stopPropagation();\n\t\t\t\tself.delete_plan( $( this ) );\n\t\t\t} );\n\n\t\t\t// select2ify membership availability fields\n\t\t\twindow.llms.metaboxes.post_select( $( '#llms-access-plans .llms-availability-restrictions' ) );\n\n\t\t\t// select2ify redirection page fields\n\t\t\twindow.llms.metaboxes.post_select( $( '#llms-access-plans .llms-checkout-redirect-page' ) );\n\n\t\t\t// disable the textarea generated by the wp_editor function\n\t\t\t// can't figure out how to do this during initialization\n\t\t\t$( '#_llms_plans_content_llms-new-access-plan-model' ).attr( 'disabled', 'disabled' );\n\t\t\ttinyMCE.EditorManager.execCommand( 'mceRemoveEditor', true, '_llms_plans_content_llms-new-access-plan-model' );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind DOM events for editing product visibility\n\t\t *\n\t\t * @return void\n\t\t * @since 3.6.0\n\t\t * @version 3.6.0\n\t\t */\n\t\tthis.bind_visibility = function() {\n\n\t\t\tvar $radios = $( '#llms-catalog-visibility-select' ),\n\t\t\t\t$toggle = $( 'a.llms-edit-catalog-visibility' ),\n\t\t\t\t$save = $( 'a.llms-save-catalog-visibility' ),\n\t\t\t\t$cancel = $( 'a.llms-cancel-catalog-visibility' );\n\n\t\t\t$toggle.on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$radios.slideDown( 'fast' );\n\t\t\t\t$toggle.hide();\n\t\t\t} );\n\n\t\t\t$save.on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$radios.slideUp( 'fast' );\n\t\t\t\t$toggle.show();\n\t\t\t\t$( '#llms-catalog-visibility-display' ).text( $( 'input[name=\"_llms_visibility\"]:checked' ).attr( 'data-label' ) );\n\t\t\t} );\n\n\t\t\t$cancel.on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$radios.slideUp( 'fast' );\n\t\t\t\t$toggle.show();\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Checks whether the access plan requires attention, e.g. because it contains notices.\n\t\t *\n\t\t * And if so adds the class `llms-needs-attention` to the access plan.\n\t\t *\n\t\t * @since 7.3.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tthis.requiresAttention = function() {\n\t\t\tvar self = this;\n\t\t\tself.$plans.find( '.llms-access-plan' ).each(\n\t\t\t\tfunction() {\n\t\t\t\t\t$(this).toggleClass( 'llms-needs-attention', $(this).find('p.notice').length > 0 );\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\t/**\n\t\t * Handle physical deletion of a plan element\n\t\t * If the plan hasn't be persisted to the database it's removed from the dom\n\t\t * if it already exists in the database a confirm modal is displayed\n\t\t * upon confirmation AJAX call will be made to move the plan to the trash\n\t\t * and upon success the element will be removed from the dom\n\t\t *\n\t\t * @param obj $btn jQuery selector of the \"X\" button clicked to initiate deletion\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.29.1\n\t\t */\n\t\tthis.delete_plan = function( $btn ) {\n\n\t\t\tvar self = this,\n\t\t\t\t$plan = $btn.closest( '.llms-access-plan' ),\n\t\t\t\tplan_id = $plan.attr( 'data-id' ),\n\t\t\t\twarning = LLMS.l10n.translate( 'After deleting this access plan, any students subscribed to this plan will still have access and will continue to make recurring payments according to the access plan\\'s settings. If you wish to terminate their plans you must do so manually. This action cannot be reversed.' );\n\n\t\t\t// if there's no ID just remove the element from the DOM\n\t\t\tif ( ! plan_id ) {\n\n\t\t\t\tself.remove_plan_el( $plan );\n\n\t\t\t\t// Throw a confirmation warning\n\t\t\t} else if ( window.confirm( warning ) ) {\n\n\t\t\t\tLLMS.Spinner.start( $plan );\n\t\t\t\twindow.LLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'delete_access_plan',\n\t\t\t\t\t\tplan_id: plan_id,\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( r ) {\n\t\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t\tLLMS.Spinner.stop( $plan );\n\t\t\t\t\t\t}, 550 );\n\t\t\t\t\t\tif ( r.success ) {\n\t\t\t\t\t\t\tself.remove_plan_el( $plan );\n\t\t\t\t\t\t\tself.trigger_update_hook();\n\t\t\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t\t\tself.update_plan_orders();\n\t\t\t\t\t\t\t}, 500 );\n\t\t\t\t\t\t} else if ( r.message ) {\n\t\t\t\t\t\t\talert( r.message );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Handle hiding & showing various pieces of an access plan form\n\t\t * This is bound to any form element with a \"data-controller-id\" property\n\t\t *\n\t\t * @param obj $el jQuery selector for the changed form element\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t */\n\t\tthis.controller_change = function( $el ) {\n\n\t\t\tvar id = $el.attr( 'data-controller-id' ),\n\t\t\t\tval = $el.val(),\n\t\t\t\t$form = $el.closest( '.llms-access-plan' ),\n\t\t\t\t$controls = $form.find( '[data-controller=\"' + id + '\"]' );\n\n\t\t\tif ( 'checkbox' === $el.attr( 'type' ) ) {\n\t\t\t\tval = ( $el.is( ':checked' ) ) ? val : 'no';\n\t\t\t}\n\n\t\t\t$controls.each( function() {\n\n\t\t\t\tvar $c = $( this ),\n\t\t\t\t\t$els = ( 'SELECT' === $c[0].nodeName || 'INPUT' === $c[0].nodeName || 'TEXTAREA' === $c[0].nodeName ) ? $c : $c.find( 'input, select, textarea' ),\n\t\t\t\t\tequals = $c.attr( 'data-value-is' ),\n\t\t\t\t\tnot_equals = $c.attr( 'data-value-is-not' ),\n\t\t\t\t\taction, operator;\n\n\t\t\t\tif ( typeof equals !== typeof undefined && equals !== false ) {\n\n\t\t\t\t\toperator = '==';\n\n\t\t\t\t} else if ( typeof not_equals !== typeof undefined && not_equals !== false ) {\n\n\t\t\t\t\toperator = '!=';\n\n\t\t\t\t}\n\n\t\t\t\tswitch ( operator ) {\n\n\t\t\t\t\tcase '==':\n\n\t\t\t\t\t\tif ( val == equals ) {\n\t\t\t\t\t\t\taction = 'show';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\taction = 'hide';\n\t\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase '!=':\n\n\t\t\t\t\t\tif ( val != not_equals ) {\n\t\t\t\t\t\t\taction = 'show';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\taction = 'hide';\n\t\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\tif ( 'show' === action ) {\n\t\t\t\t\t$c.show();\n\t\t\t\t\t$els.removeAttr( 'disabled' ).trigger( 'change' );\n\t\t\t\t} else if ( 'hide' === action ) {\n\t\t\t\t\t$c.hide();\n\t\t\t\t\t$els.attr( 'disabled', 'disabled' );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Retrieve the current number of access plans for the course / membership (saved or unsaved)\n\t\t *\n\t\t * @return int\n\t\t * @since 3.29.0\n\t\t * @version 3.29.0\n\t\t */\n\t\tthis.get_current_plan_count = function() {\n\t\t\treturn this.$plans.find( '.llms-access-plan' ).length;\n\t\t}\n\n\t\t/**\n\t\t * Retrieve access plan data as an array of JSON built from the dom element field values.\n\t\t *\n\t\t * @return array\n\t\t * @since 3.29.0\n\t\t * @version 3.29.0\n\t\t */\n\t\tthis.get_plans_array = function() {\n\n\t\t\t// ensure all content editors are saved properly.\n\t\t\ttinyMCE.triggerSave();\n\n\t\t\tvar self = this,\n\t\t\t\tform = self.$plans.closest( 'form' ).serializeArray(),\n\t\t\t\tplans = [];\n\n\t\t\tfor ( var i = 0; i < form.length; i++ ) {\n\n\t\t\t\t// Skip non plan data from the form.\n\t\t\t\tif ( -1 === form[ i ].name.indexOf( '_llms_plans' ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tvar keys = form[ i ].name.replace( '_llms_plans[', '' ).split( '][' ),\n\t\t\t\t\tindex = ( keys[0] * 1 ) - 1,\n\t\t\t\t\tname = keys[1].replace( ']', '' ),\n\t\t\t\t\ttype = 3 === keys.length ? 'array' : 'single';\n\n\t\t\t\tif ( ! plans[ index ] ) {\n\t\t\t\t\tplans[ index ] = {};\n\t\t\t\t}\n\n\t\t\t\tif ( 'array' === type ) {\n\n\t\t\t\t\tif ( ! plans[ index ][ name ] ) {\n\t\t\t\t\t\tplans[ index ][ name ] = [];\n\t\t\t\t\t}\n\t\t\t\t\tplans[ index ][ name ].push( form[ i ].value );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tplans[ index ][ name ] = form[ i ].value;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn plans;\n\n\t\t};\n\n\t\t/**\n\t\t * Determine if the access plan limit has been reached\n\t\t *\n\t\t * @return Boolean\n\t\t * @since 3.0.0\n\t\t * @version 3.29.0\n\t\t */\n\t\tthis.has_plan_limit_been_reached = function() {\n\n\t\t\tvar limit = window.llms.product.access_plan_limit;\n\t\t\treturn this.get_current_plan_count() >= limit;\n\n\t\t};\n\n\t\t/**\n\t\t * Initializes a new plan and adds it to the list of plans in the DOM\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.30.0 Initialize select2 on checkout redirect fields.\n\t\t * @version 3.30.0\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.init_plan = function() {\n\n\t\t\t// don't do anything if we've reached the plan limit\n\t\t\tif ( this.has_plan_limit_been_reached() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar $clone = $( '#llms-new-access-plan-model' ).clone()\n\t\t\t\t$existing_plans = $( '#llms-access-plans .llms-access-plan' ),\n\t\t\t\t$editor = $clone.find( '#_llms_plans_content_llms-new-access-plan-model' );\n\n\t\t\t// remove ID from the item\n\t\t\t$clone.removeAttr( 'id' );\n\n\t\t\t// give a temporary id to the editor element\n\t\t\t$editor.removeAttr( 'id' ).attr( 'id', '_llms_plans_content_' + this.temp_id );\n\t\t\tthis.temp_id++; // increment the temp_id ID so we don't use it again\n\n\t\t\t// activate all elements\n\t\t\t$clone.find( 'select, input, textarea' ).each( function() {\n\t\t\t\t$( this ).removeAttr( 'disabled' ); // enabled the field\n\t\t\t} );\n\n\t\t\t$clone.appendTo( '#llms-access-plans' );\n\n\t\t\t// rewrite the order of all elements\n\t\t\tthis.update_plan_orders();\n\n\t\t\t// Bind the datepicker to the new plan AFTER the input names have been updated via update_plan_orders() above.\n\t\t\t$clone.find( '.llms-access-plan-datepicker' ).datepicker( {\n\t\t\t\tdateFormat: \"mm/dd/yy\"\n\t\t\t} );\n\n\t\t\t$clone.find( '.llms-collapsible-header' ).trigger( 'click' );\n\n\t\t\t// check if the limit has been reached and toggle the button if it has\n\t\t\tif ( this.has_plan_limit_been_reached() ) {\n\t\t\t\tthis.toggle_create_button( 'disable' );\n\t\t\t}\n\n\t\t\t// select2ify membership availability field\n\t\t\twindow.llms.metaboxes.post_select( $clone.find( '.llms-availability-restrictions' ) );\n\n\t\t\t// select2ify redirection page fields\n\t\t\twindow.llms.metaboxes.post_select( $clone.find( '.llms-checkout-redirect-page' ) );\n\n\t\t\t$clone.find( '[data-controller-id]' ).trigger( 'change' );\n\t\t\t$( document ).trigger( 'llms-plan-init', $clone );\n\n\t\t};\n\n\t\t/**\n\t\t * Persist access plans to the DB if they pass validation\n\t\t *\n\t\t * @since 3.29.0\n\t\t * @since 3.30.3 Fixed typo in error message.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.save_plans = function() {\n\n\t\t\tvar self = this;\n\n\t\t\tself.$plans.find( '.llms-access-plan' ).not( '#llms-new-access-plan-model' ).each( function() {\n\t\t\t\t$( this ).trigger( 'llms-validate-plan' );\n\t\t\t} );\n\n\t\t\tif ( self.$plans.find( '.' + self.validation_class ).length ) {\n\t\t\t\tself.$plans.find( '.llms-access-plan.' + self.validation_class ).not( '.opened' ).first().find( '.llms-collapsible-header' ).trigger( 'click' );\n\t\t\t\t$( document ).trigger( 'llms-access-plan-validation-errors' );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tLLMS.Spinner.start( self.$plans );\n\t\t\tself.$save.attr( 'disabled', 'disabled' );\n\t\t\twindow.LLMS.Ajax.call( {\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'llms_update_access_plans',\n\t\t\t\t\tplans: self.get_plans_array(),\n\t\t\t\t},\n\t\t\t\tcomplete: function() {\n\t\t\t\t\tLLMS.Spinner.stop( self.$plans );\n\t\t\t\t\tself.$save.removeAttr( 'disabled' );\n\t\t\t\t},\n\t\t\t\terror: function( jqXHR, textStatus, errorThrown ) {\n\t\t\t\t\tconsole.error( 'llms access plan save error encounterd:', jqXHR );\n\t\t\t\t\talert( LLMS.l10n.translate( 'An error was encountered during the save attempt. Please try again.' ) + ' [' + textStatus + ': ' + errorThrown + ']' );\n\t\t\t\t},\n\t\t\t\tsuccess: function( res ) {\n\n\t\t\t\t\tif ( ! res.success && res.code && 'error' === res.code ) {\n\t\t\t\t\t\talert( res.message );\n\t\t\t\t\t} else if ( res.data && res.data.html ) {\n\n\t\t\t\t\t\t// replace the metabox with updated data from the server.\n\t\t\t\t\t\t$( '#llms-product-options-access-plans' ).replaceWith( res.data.html );\n\n\t\t\t\t\t\t// reinit.\n\t\t\t\t\t\tself.init( true );\n\t\t\t\t\t\twindow.llms.metaboxes.init();\n\t\t\t\t\t\tself.update_plan_orders();\n\n\t\t\t\t\t\t// notify the block editor\n\t\t\t\t\t\tself.trigger_update_hook();\n\n\t\t\t\t\t}\n\n\t\t\t\t},\n\n\t\t\t} );\n\t\t};\n\n\t\t/**\n\t\t * Toggle the status of a button\n\t\t *\n\t\t * @param Object $btn jQuery selector of a button element\n\t\t * @param string status enable or disable\n\t\t * @return void\n\t\t * @since 3.29.0\n\t\t * @version 3.29.0\n\t\t */\n\t\tthis.toggle_button = function( $btn, status ) {\n\n\t\t\tif ( 'disable' === status ) {\n\t\t\t\t$btn.attr( 'disabled', 'disabled' );\n\t\t\t} else {\n\t\t\t\t$btn.removeAttr( 'disabled' );\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Control the status of the \"New Access Plan\" Button\n\t\t *\n\t\t * @param string status enable or disable\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @since 3.29.0\n\t\t */\n\t\tthis.toggle_create_button = function( status ) {\n\t\t\tthis.toggle_button( $( '#llms-new-access-plan' ), status );\n\t\t};\n\n\t\t/**\n\t\t * Control the status of the \"Save Access Plans\" Button\n\t\t *\n\t\t * @param string status enable or disable\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @since 3.29.0\n\t\t */\n\t\tthis.toggle_save_button = function( status ) {\n\t\t\tthis.toggle_button( this.$save, status );\n\t\t}\n\n\t\t/**\n\t\t * Visually hide and then physically remove a plan element from the DOM\n\t\t * Additionally determines if the New Plan Button should be re-enabled\n\t\t * after deletion\n\t\t *\n\t\t * @param obj $plan jQuery selector of the plan element\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.29.0\n\t\t */\n\t\tthis.remove_plan_el = function( $plan ) {\n\n\t\t\tvar self = this;\n\n\t\t\t// fade out nicely\n\t\t\t$plan.fadeOut( 400 );\n\n\t\t\t// remove from dom after it's hidden visually\n\t\t\tsetTimeout(function() {\n\n\t\t\t\t$plan.remove();\n\n\t\t\t\t// check if we need to reenable the create button and hide the message\n\t\t\t\tif ( ! self.has_plan_limit_been_reached() ) {\n\t\t\t\t\tself.toggle_create_button( 'enable' );\n\t\t\t\t}\n\n\t\t\t\tif ( 0 === self.get_current_plan_count() ) {\n\t\t\t\t\tself.toggle_save_button( 'disable' );\n\t\t\t\t}\n\n\t\t\t}, 450 );\n\n\t\t};\n\n\t\t/**\n\t\t * Trigger WP Block Editor hook so the pricing table block can be re-rendered with new plan information.\n\t\t *\n\t\t * @return void\n\t\t * @since 3.29.0\n\t\t * @version 3.29.0\n\t\t */\n\t\tthis.trigger_update_hook = function() {\n\n\t\t\t$( document ).trigger( 'llms-access-plans-updated' );\n\n\t\t};\n\n\t\t/**\n\t\t * Reorder the array indexes and the menu order hidden inputs.\n\t\t * Called by jQuery UI Sortable on sort completion.\n\t\t * Also called after adding a new plan to the DOM so the newest item is always\n\t\t * persisted as the last in the database if no UX reorders the item.\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.36.3 Fixed conflicts with the classic editor block.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.update_plan_orders = function() {\n\n\t\t\t$( '#llms-access-plans .llms-access-plan' ).each( function() {\n\n\t\t\t\tvar $p = $( this ),\n\t\t\t\t\t$order = $p.find( '.plan-order' ),\n\t\t\t\t\t$editor = $p.find( 'textarea[id^=\"_llms_plans_content_\"]' ),\n\t\t\t\t\teditor_id = $editor.attr( 'id' ),\n\t\t\t\t\torig = $order.val() * 1,\n\t\t\t\t\tcurr = $p.index(),\n\t\t\t\t\teditor = tinyMCE.EditorManager.get(editor_id),\n\t\t\t\t\tesettings = editor ? editor.settings : tinyMCE.EditorManager.settings;\n\n\t\t\t\t// make sure the editor settings have the right selector.\n\t\t\t\tesettings.selector = '#' + editor_id;\n\n\t\t\t\t// de-init tinyMCE from the editor.\n\t\t\t\ttinyMCE.EditorManager.execCommand( 'mceRemoveEditor', true, editor_id );\n\n\t\t\t\t// update the order of each label and field in the plan.\n\t\t\t\t$p.find( 'label, select, input, textarea' ).each( function() {\n\n\t\t\t\t\tvar labelFor = $( this ).attr( 'for' );\n\t\t\t\t\tif ( labelFor ) {\n\t\t\t\t\t\t$( this ).attr( 'for', labelFor.replace( orig, curr ) );\n\t\t\t\t\t}\n\n\t\t\t\t\tvar inputID = $( this ).attr( 'id' );\n\t\t\t\t\tif ( inputID ) {\n\t\t\t\t\t\t$( this ).attr( 'id', inputID.replace( orig, curr ) );\n\t\t\t\t\t}\n\n\t\t\t\t\tvar inputName = $( this ).attr( 'name' );\n\t\t\t\t\tif ( inputName ) {\n\t\t\t\t\t\t$( this ).attr( 'name', inputName.replace( orig, curr ) );\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\t// re-init tinyMCE on the editor.\n\t\t\t\t// We used:\ttinyMCE.EditorManager.execCommand( 'mceAddEditor', true, editor_id );\n\t\t\t\t// but it turned out to create conflicts with the Classic Editor block.\n\t\t\t\ttinyMCE.EditorManager.init( esettings );\n\n\t\t\t\t$order.val( curr );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t// go\n\t\tthis.init();\n\n\t};\n\n\tvar a = new window.llms.metabox_product();\n\n} )( jQuery );\n"],"names":["$","window","llms","metabox_product","this","$plans","$save","temp_id","Math","floor","random","validation_class","init","skip_dep_checks","counter","interval","self","$mb","bind_visibility","length","requiresAttention","bind","LLMS","Spinner","start","setInterval","html","l10n","translate","tinyMCE","clearInterval","stop","setTimeout","has_plan_limit_been_reached","toggle_create_button","get_current_plan_count","toggle_save_button","on","e","preventDefault","save_plans","controller_change","$plan_container","closest","$plan_redirect_forced","find","$plan_redirect_settings","val","prop","show","hide","toggle","off","datepicker","dateFormat","trigger","init_plan","sortable","handle","items","event","ui","addClass","removeClass","update_plan_orders","$input","$display","title","attr","text","data","checkValidity","type","reportValidity","cascade","original_event","$plan","selector","each","hasClass","stopPropagation","delete_plan","metaboxes","post_select","EditorManager","execCommand","$radios","$toggle","$cancel","slideDown","slideUp","toggleClass","$btn","plan_id","warning","confirm","Ajax","call","action","success","r","remove_plan_el","trigger_update_hook","message","alert","$el","id","$controls","is","operator","$c","$els","nodeName","equals","not_equals","removeAttr","get_plans_array","triggerSave","index","name","form","serializeArray","plans","i","indexOf","keys","replace","split","push","value","limit","product","access_plan_limit","$clone","clone","$existing_plans","$editor","appendTo","document","not","first","complete","error","jqXHR","textStatus","errorThrown","console","res","code","replaceWith","toggle_button","status","fadeOut","remove","$p","$order","editor_id","orig","curr","editor","get","esettings","settings","labelFor","inputID","inputName","jQuery"],"mappings":"AAUA,CAAA,SAAYA,GAEXC,OAAOC,KAAOD,OAAOC,MAAQ,GAE7BD,OAAOC,KAAKC,gBAAkB,WAO7BC,KAAKC,OAAS,KAOdD,KAAKE,MAAQ,KAQbF,KAAKG,QAAUC,KAAKC,MAAyB,KAAhBD,KAAKE,OAAO,EAAa,GAAI,EAO1DN,KAAKO,iBAAmB,eAaxBP,KAAKQ,KAAO,SAAUC,GAErB,IAyBIC,EAGJC,EA5BIC,EAAOZ,KAOPa,GALJD,EAAKX,OAASL,EAAG,oBAAqB,EACtCgB,EAAKV,MAASN,EAAG,yBAA0B,EAE3CgB,EAAKE,gBAAgB,EAEXlB,EAAG,uDAAwD,GAE9DiB,EAAIE,SAKXH,EAAKI,kBAAkB,EAElBP,EACJG,EAAKK,KAAK,GAIXC,KAAKC,QAAQC,MAAOP,CAAI,EAIpBH,EAAU,EAGdC,EAAWU,YAAa,WAGvB,GAAgB,KAAXX,EAEJG,EAAIS,KAAMJ,KAAKK,KAAKC,UAAW,uEAAwE,CAAE,MAIrG,CAAA,GAAK,aAAgB,OAAOC,QAGhC,OADAf,KAAAA,CAAO,GAOPE,EAAKK,KAAK,CAEX,CAEAS,cAAef,CAAS,EACxBO,KAAKC,QAAQQ,KAAMd,CAAI,CAExB,EAAG,GAAI,GAER,EAUAb,KAAKiB,KAAO,WAEX,IAAIL,EAAOZ,KAEX4B,WAAY,WACNhB,EAAKiB,4BAA4B,GACrCjB,EAAKkB,qBAAsB,SAAU,CAEvC,EAAG,GAAI,EAEF,IAAMlB,EAAKmB,uBAAuB,GACtCnB,EAAKoB,mBAAoB,SAAU,EAIpCpB,EAAKV,MAAM+B,GAAI,QAAS,SAAUC,GACjCA,EAAEC,eAAe,EACjBvB,EAAKwB,WAAW,CACjB,CAAE,EAGFxB,EAAKX,OAAOgC,GAAI,SAAU,uBAAwB,WACjDrB,EAAKyB,kBAAmBzC,EAAGI,IAAK,CAAE,CACnC,CAAE,EAGFY,EAAKX,OAAOgC,GAAI,SAAU,iCAAkC,WAC3D,IAAIK,EAA0B1C,EAAGI,IAAK,EAAEuC,QAAS,mBAAoB,EACpEC,EAA0BF,EAAgBG,KAAM,2CAA4C,EAC5FC,EAA0BJ,EAAgBG,KAAM,kCAAmC,EAE/E,YAAc7C,EAAGI,IAAK,EAAE2C,IAAI,GACzBH,EAAsBI,KAAM,SAAU,EAG5CF,EAAwBG,KAAK,EAF7BH,EAAwBI,KAAK,EAK9BN,EAAsBP,GAAI,SAAU,WACnCS,EAAwBK,OAAO,CAChC,CAAE,IAGFP,EAAsBQ,IAAK,QAAS,EACpCN,EAAwBG,KAAK,EAI/B,CAAE,EAEFjD,EAAG,iDAAkD,EAAEqD,WAAY,CAClEC,WAAY,UACb,CAAE,EAGFtD,EAAG,yCAA0C,EAAEuD,QAAS,QAAS,EAGjEvD,EAAG,uBAAwB,EAAEqC,GAAI,QAAS,WACzCrB,EAAKwC,UAAU,EACfxC,EAAKkB,qBAAsB,SAAU,EACrClB,EAAKoB,mBAAoB,QAAS,EAClCJ,WAAY,WACJhB,EAAKiB,4BAA4B,GACvCjB,EAAKkB,qBAAsB,QAAS,CAEtC,EAAG,GAAI,CACR,CAAE,EAEFlB,EAAKX,OAAOoD,SAAU,CACrBC,OAAQ,oBACRC,MAAO,oBACPnC,MAAO,SAAUoC,EAAOC,GACvB7C,EAAKX,OAAOyD,SAAU,UAAW,CAClC,EACA/B,KAAM,SAAU6B,EAAOC,GACtB7C,EAAKX,OAAO0D,YAAa,UAAW,EACpC/C,EAAKgD,mBAAmB,CACzB,CACD,CAAE,EAGFhD,EAAKX,OAAOgC,GAAI,QAAS,wBAAyB,WAEjD,IAAI4B,EAAWjE,EAAGI,IAAK,EAEtB8D,EADWD,EAAOtB,QAAS,mBAAoB,EAC9BE,KAAM,sBAAuB,EAC9CE,EAAWkB,EAAOlB,IAAI,EACtBoB,EAAW,GAAgBD,EAASE,KAAM,cAAe,EAE1DF,EAASG,KAAMF,CAAM,CAEtB,CAAE,EAGFnD,EAAKX,OAAOgC,GAAI,UAAW,QAAS,SAAUC,EAAGgC,GAChDtE,EAAGI,IAAK,EAAE0D,SAAU,uBAAwB,CAC7C,CAAE,EAGF9C,EAAKX,OAAOgC,GAAI,0CAA2C,QAAS,SAAUC,EAAGgC,GAEhF,IAAIL,EAASjE,EAAGI,IAAK,EAEhB6D,EAAO,GAAGM,cAAc,EAC5BN,EAAOF,YAAa/C,EAAKL,gBAAiB,GAE1CsD,EAAOH,SAAU9C,EAAKL,gBAAiB,EAClC,UAAY2B,EAAEkC,MAClBP,EAAO,GAAGQ,eAAe,GAIpBH,GAAQA,CAAAA,EAAKI,SACnBT,EAAOtB,QAAS,mBAAoB,EAAEY,QAAS,qBAAsB,CAAEoB,eAAgBrC,EAAEkC,IAAK,CAAE,CAGlG,CAAE,EAEFxD,EAAKX,OAAOgC,GAAI,qBAAsB,oBAAqB,SAAUC,EAAGgC,GAEvEA,EAAOA,GAAQ,GAEf,IAAIM,EAAQ5E,EAAGI,IAAK,EAEnByE,EAAWP,EAAKK,eAAiB,8BAAgC,QAElEC,EAAM/B,KAAMgC,CAAS,EAAEC,KAAM,WAC5B9E,EAAGI,IAAK,EAAEmD,QAAS,2BAA4B,CAAEmB,QAAS,CAAA,CAAM,CAAE,CACnE,CAAE,EAEGE,EAAM/B,KAAM,IAAM7B,EAAKL,gBAAiB,EAAEQ,OAC9CyD,EAAMd,SAAU9C,EAAKL,gBAAiB,EAEtCiE,EAAMb,YAAa/C,EAAKL,gBAAiB,CAG3C,CAAE,EAEFK,EAAKX,OAAOgC,GAAI,2BAA4B,oBAAqB,WAEhE,IAAIuC,EAAQ5E,EAAGI,IAAK,EAEfwE,EAAMG,SAAU,QAAS,GAE7B/C,WAAY,WACX4C,EAAM/B,KAAM,oBAAqB,EAAEiC,KAAM,WACxC9E,EAAGI,IAAK,EAAE,GAAGqE,eAAe,CAC7B,CAAE,CACH,EAAG,GAAI,CAGT,CAAE,EAEFzD,EAAKX,OAAOgC,GAAI,QAAS,oBAAqB,SAAUC,GACvDA,EAAE0C,gBAAgB,EAClBhE,EAAKiE,YAAajF,EAAGI,IAAK,CAAE,CAC7B,CAAE,EAGFH,OAAOC,KAAKgF,UAAUC,YAAanF,EAAG,oDAAqD,CAAE,EAG7FC,OAAOC,KAAKgF,UAAUC,YAAanF,EAAG,iDAAkD,CAAE,EAI1FA,EAAG,iDAAkD,EAAEoE,KAAM,WAAY,UAAW,EACpFvC,QAAQuD,cAAcC,YAAa,kBAAmB,CAAA,EAAM,gDAAiD,CAE9G,EASAjF,KAAKc,gBAAkB,WAEtB,IAAIoE,EAAUtF,EAAG,iCAAkC,EAClDuF,EAAUvF,EAAG,gCAAiC,EAC9CM,EAAUN,EAAG,gCAAiC,EAC9CwF,EAAUxF,EAAG,kCAAmC,EAEjDuF,EAAQlD,GAAI,QAAS,SAAUC,GAC9BA,EAAEC,eAAe,EACjB+C,EAAQG,UAAW,MAAO,EAC1BF,EAAQrC,KAAK,CACd,CAAE,EAEF5C,EAAM+B,GAAI,QAAS,SAAUC,GAC5BA,EAAEC,eAAe,EACjB+C,EAAQI,QAAS,MAAO,EACxBH,EAAQtC,KAAK,EACbjD,EAAG,kCAAmC,EAAEqE,KAAMrE,EAAG,wCAAyC,EAAEoE,KAAM,YAAa,CAAE,CAClH,CAAE,EAEFoB,EAAQnD,GAAI,QAAS,SAAUC,GAC9BA,EAAEC,eAAe,EACjB+C,EAAQI,QAAS,MAAO,EACxBH,EAAQtC,KAAK,CACd,CAAE,CAEH,EAWA7C,KAAKgB,kBAAoB,WACbhB,KACNC,OAAOwC,KAAM,mBAAoB,EAAEiC,KACvC,WACC9E,EAAEI,IAAI,EAAEuF,YAAa,uBAA0D,EAAlC3F,EAAEI,IAAI,EAAEyC,KAAK,UAAU,EAAE1B,MAAW,CAClF,CACD,CACD,EAcAf,KAAK6E,YAAc,SAAUW,GAE5B,IAAI5E,EAAUZ,KACbwE,EAAUgB,EAAKjD,QAAS,mBAAoB,EAC5CkD,EAAUjB,EAAMR,KAAM,SAAU,EAChC0B,EAAUxE,KAAKK,KAAKC,UAAW,kRAAoR,EAG7SiE,EAKK5F,OAAO8F,QAASD,CAAQ,IAEnCxE,KAAKC,QAAQC,MAAOoD,CAAM,EAC1B3E,OAAOqB,KAAK0E,KAAKC,KAAM,CACtB3B,KAAM,CACL4B,OAAQ,qBACRL,QAASA,CACV,EACAM,QAAS,SAAUC,GAClBpE,WAAY,WACXV,KAAKC,QAAQQ,KAAM6C,CAAM,CAC1B,EAAG,GAAI,EACFwB,EAAED,SACNnF,EAAKqF,eAAgBzB,CAAM,EAC3B5D,EAAKsF,oBAAoB,EACzBtE,WAAY,WACXhB,EAAKgD,mBAAmB,CACzB,EAAG,GAAI,GACIoC,EAAEG,SACbC,MAAOJ,EAAEG,OAAQ,CAEnB,CAED,CAAE,GA1BFvF,EAAKqF,eAAgBzB,CAAM,CA8B7B,EAUAxE,KAAKqC,kBAAoB,SAAUgE,GAElC,IAAIC,EAAYD,EAAIrC,KAAM,oBAAqB,EAC9CrB,EAAY0D,EAAI1D,IAAI,EAEpB4D,EADYF,EAAI9D,QAAS,mBAAoB,EAC3BE,KAAM,qBAAuB6D,EAAK,IAAK,EAErD,aAAeD,EAAIrC,KAAM,MAAO,IACpCrB,EAAQ0D,EAAIG,GAAI,UAAa,EAAI7D,EAAM,MAGxC4D,EAAU7B,KAAM,WAEf,IAICoB,EAAQW,EAJLC,EAAa9G,EAAGI,IAAK,EACxB2G,EAAe,WAAaD,EAAG,GAAGE,UAAY,UAAYF,EAAG,GAAGE,UAAY,aAAeF,EAAG,GAAGE,SAAaF,EAAKA,EAAGjE,KAAM,yBAA0B,EACtJoE,EAAaH,EAAG1C,KAAM,eAAgB,EACtC8C,EAAaJ,EAAG1C,KAAM,mBAAoB,EAa3C,OAVuB,KAAA,IAAX6C,GAA0C,CAAA,IAAXA,EAE1CJ,EAAW,KAEsB,KAAA,IAAfK,GAAkD,CAAA,IAAfA,IAErDL,EAAW,MAIHA,GAER,IAAK,KAGHX,EADInD,GAAOkE,EACF,OAEA,OAGX,MAEA,IAAK,KAGHf,EADInD,GAAOmE,EACF,OAEA,MAKZ,CAEK,SAAWhB,GACfY,EAAG7D,KAAK,EACR8D,EAAKI,WAAY,UAAW,EAAE5D,QAAS,QAAS,GACrC,SAAW2C,IACtBY,EAAG5D,KAAK,EACR6D,EAAK3C,KAAM,WAAY,UAAW,EAGpC,CAAE,CAEH,EASAhE,KAAK+B,uBAAyB,WAC7B,OAAO/B,KAAKC,OAAOwC,KAAM,mBAAoB,EAAE1B,MAChD,EASAf,KAAKgH,gBAAkB,WAGtBvF,QAAQwF,YAAY,EAMpB,IAJA,IAYEC,EACAC,EACA/C,EAbDgD,EADWpH,KACEC,OAAOsC,QAAS,MAAO,EAAE8E,eAAe,EACrDC,EAAQ,GAECC,EAAI,EAAGA,EAAIH,EAAKrG,OAAQwG,CAAC,GAG7B,CAAC,IAAMH,EAAMG,GAAIJ,KAAKK,QAAS,aAAc,IAKjDN,EAAQ,EADLO,EAAQL,EAAMG,GAAIJ,KAAKO,QAAS,eAAgB,EAAG,EAAEC,MAAO,IAAK,GACrD,GAAW,EAC1BR,EAAQM,EAAK,GAAGC,QAAS,IAAK,EAAG,EACjCtD,EAAQ,IAAMqD,EAAK1G,OAAS,QAAU,SAEhCuG,EAAOJ,KACbI,EAAOJ,GAAU,IAGb,SAAY9C,GAETkD,EAAOJ,GAASC,KACtBG,EAAOJ,GAASC,GAAS,IAE1BG,EAAOJ,GAASC,GAAOS,KAAMR,EAAMG,GAAIM,KAAM,GAI7CP,EAAOJ,GAASC,GAASC,EAAMG,GAAIM,OAMrC,OAAOP,CAER,EASAtH,KAAK6B,4BAA8B,WAElC,IAAIiG,EAAQjI,OAAOC,KAAKiI,QAAQC,kBAChC,OAAOhI,KAAK+B,uBAAuB,GAAK+F,CAEzC,EAWA9H,KAAKoD,UAAY,WAGhB,IAII6E,EAJCjI,KAAK6B,4BAA4B,IAIlCoG,EAAkBrI,EAAG,6BAA8B,EAAEsI,MAAM,EAC9DC,gBAAkBvI,EAAG,sCAAuC,EAC5DwI,QAAkBH,EAAOxF,KAAM,iDAAkD,EAGlFwF,EAAOlB,WAAY,IAAK,EAGxBqB,QAAQrB,WAAY,IAAK,EAAE/C,KAAM,KAAM,uBAAyBhE,KAAKG,OAAQ,EAC7EH,KAAKG,OAAO,GAGZ8H,EAAOxF,KAAM,yBAA0B,EAAEiC,KAAM,WAC9C9E,EAAGI,IAAK,EAAE+G,WAAY,UAAW,CAClC,CAAE,EAEFkB,EAAOI,SAAU,oBAAqB,EAGtCrI,KAAK4D,mBAAmB,EAGxBqE,EAAOxF,KAAM,8BAA+B,EAAEQ,WAAY,CACzDC,WAAY,UACb,CAAE,EAEF+E,EAAOxF,KAAM,0BAA2B,EAAEU,QAAS,OAAQ,EAGtDnD,KAAK6B,4BAA4B,GACrC7B,KAAK8B,qBAAsB,SAAU,EAItCjC,OAAOC,KAAKgF,UAAUC,YAAakD,EAAOxF,KAAM,iCAAkC,CAAE,EAGpF5C,OAAOC,KAAKgF,UAAUC,YAAakD,EAAOxF,KAAM,8BAA+B,CAAE,EAEjFwF,EAAOxF,KAAM,sBAAuB,EAAEU,QAAS,QAAS,EACxDvD,EAAG0I,QAAS,EAAEnF,QAAS,iBAAkB8E,CAAO,EAEjD,EAUAjI,KAAKoC,WAAa,WAEjB,IAAIxB,EAAOZ,KAEXY,EAAKX,OAAOwC,KAAM,mBAAoB,EAAE8F,IAAK,6BAA8B,EAAE7D,KAAM,WAClF9E,EAAGI,IAAK,EAAEmD,QAAS,oBAAqB,CACzC,CAAE,EAEGvC,EAAKX,OAAOwC,KAAM,IAAM7B,EAAKL,gBAAiB,EAAEQ,QACpDH,EAAKX,OAAOwC,KAAM,qBAAuB7B,EAAKL,gBAAiB,EAAEgI,IAAK,SAAU,EAAEC,MAAM,EAAE/F,KAAM,0BAA2B,EAAEU,QAAS,OAAQ,EAC9IvD,EAAG0I,QAAS,EAAEnF,QAAS,oCAAqC,IAI7DjC,KAAKC,QAAQC,MAAOR,EAAKX,MAAO,EAChCW,EAAKV,MAAM8D,KAAM,WAAY,UAAW,EACxCnE,OAAOqB,KAAK0E,KAAKC,KAAM,CACtB3B,KAAM,CACL4B,OAAQ,2BACRwB,MAAO1G,EAAKoG,gBAAgB,CAC7B,EACAyB,SAAU,WACTvH,KAAKC,QAAQQ,KAAMf,EAAKX,MAAO,EAC/BW,EAAKV,MAAM6G,WAAY,UAAW,CACnC,EACA2B,MAAO,SAAUC,EAAOC,EAAYC,GACnCC,QAAQJ,MAAO,0CAA2CC,CAAM,EAChEvC,MAAOlF,KAAKK,KAAKC,UAAW,qEAAsE,EAAI,KAAOoH,EAAa,KAAOC,EAAc,GAAI,CACpJ,EACA9C,QAAS,SAAUgD,GAEb,CAAEA,EAAIhD,SAAWgD,EAAIC,MAAQ,UAAYD,EAAIC,KACjD5C,MAAO2C,EAAI5C,OAAQ,EACR4C,EAAI7E,MAAQ6E,EAAI7E,KAAK5C,OAGhC1B,EAAG,oCAAqC,EAAEqJ,YAAaF,EAAI7E,KAAK5C,IAAK,EAGrEV,EAAKJ,KAAM,CAAA,CAAK,EAChBX,OAAOC,KAAKgF,UAAUtE,KAAK,EAC3BI,EAAKgD,mBAAmB,EAGxBhD,EAAKsF,oBAAoB,EAI3B,CAED,CAAE,EACH,EAWAlG,KAAKkJ,cAAgB,SAAU1D,EAAM2D,GAE/B,YAAcA,EAClB3D,EAAKxB,KAAM,WAAY,UAAW,EAElCwB,EAAKuB,WAAY,UAAW,CAG9B,EAUA/G,KAAK8B,qBAAuB,SAAUqH,GACrCnJ,KAAKkJ,cAAetJ,EAAG,uBAAwB,EAAGuJ,CAAO,CAC1D,EAUAnJ,KAAKgC,mBAAqB,SAAUmH,GACnCnJ,KAAKkJ,cAAelJ,KAAKE,MAAOiJ,CAAO,CACxC,EAYAnJ,KAAKiG,eAAiB,SAAUzB,GAE/B,IAAI5D,EAAOZ,KAGXwE,EAAM4E,QAAS,GAAI,EAGnBxH,WAAW,WAEV4C,EAAM6E,OAAO,EAGNzI,EAAKiB,4BAA4B,GACvCjB,EAAKkB,qBAAsB,QAAS,EAGhC,IAAMlB,EAAKmB,uBAAuB,GACtCnB,EAAKoB,mBAAoB,SAAU,CAGrC,EAAG,GAAI,CAER,EASAhC,KAAKkG,oBAAsB,WAE1BtG,EAAG0I,QAAS,EAAEnF,QAAS,2BAA4B,CAEpD,EAaAnD,KAAK4D,mBAAqB,WAEzBhE,EAAG,sCAAuC,EAAE8E,KAAM,WAEjD,IAAI4E,EAAY1J,EAAGI,IAAK,EACvBuJ,EAAYD,EAAG7G,KAAM,aAAc,EAEnC+G,EADYF,EAAG7G,KAAM,sCAAuC,EACxCuB,KAAM,IAAK,EAC/ByF,EAAYF,CAAAA,EAAO5G,IAAI,EACvB+G,EAAYJ,EAAGpC,MAAM,EACrByC,EAAYlI,QAAQuD,cAAc4E,IAAIJ,CAAS,EAC/CK,GAAYF,GAA2BlI,QAAQuD,eAAnB8E,SAG7BD,EAAUpF,SAAW,IAAM+E,EAG3B/H,QAAQuD,cAAcC,YAAa,kBAAmB,CAAA,EAAMuE,CAAU,EAGtEF,EAAG7G,KAAM,gCAAiC,EAAEiC,KAAM,WAEjD,IAAIqF,EAAWnK,EAAGI,IAAK,EAAEgE,KAAM,KAAM,EAKjCgG,GAJCD,GACJnK,EAAGI,IAAK,EAAEgE,KAAM,MAAO+F,EAASrC,QAAS+B,EAAMC,CAAK,CAAE,EAGzC9J,EAAGI,IAAK,EAAEgE,KAAM,IAAK,GAK/BiG,GAJCD,GACJpK,EAAGI,IAAK,EAAEgE,KAAM,KAAMgG,EAAQtC,QAAS+B,EAAMC,CAAK,CAAE,EAGrC9J,EAAGI,IAAK,EAAEgE,KAAM,MAAO,GAClCiG,GACJrK,EAAGI,IAAK,EAAEgE,KAAM,OAAQiG,EAAUvC,QAAS+B,EAAMC,CAAK,CAAE,CAG1D,CAAE,EAKFjI,QAAQuD,cAAcxE,KAAMqJ,CAAU,EAEtCN,EAAO5G,IAAK+G,CAAK,CAElB,CAAE,CAEH,EAGA1J,KAAKQ,KAAK,CAEX,EAEQ,IAAIX,OAAOC,KAAKC,eAEvB,EAAGmK,MAAO","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-metabox-students.min.js.map b/assets/maps/js/llms-metabox-students.min.js.map
new file mode 100644
index 0000000000..b92f39381a
--- /dev/null
+++ b/assets/maps/js/llms-metabox-students.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-metabox-students.min.js","sources":["llms-metabox-students.js"],"sourcesContent":["/**\n * LifterLMS Students Metabox Functions\n *\n * @package LifterLMS/Scripts\n *\n * @since 3.0.0\n * @version 3.33.0\n */\n\n/**\n * LifterLMS Students Metabox Functions\n *\n * @since 3.0.0\n * @since 3.33.0 Added the logic to handle the Student's enrollment deletion.\n */\n( function( $, undefined ) {\n\n\twindow.llms = window.llms || {};\n\n\tvar MetaboxStudents = function() {\n\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.init = function() {\n\n\t\t\tvar screens = [ 'course', 'llms_membership' ];\n\n\t\t\tif ( window.llms.post.post_type && -1 !== screens.indexOf( window.llms.post.post_type ) ) {\n\n\t\t\t\tthis.$metabox = $( '#lifterlms-students' );\n\n\t\t\t\tthis.bind();\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Bind dom events\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.4.0 Unknown.\n\t\t * @since 3.33.0 Added enrollment deletion handlers.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.bind = function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.$metabox.on( 'click', 'a.llms-remove-student', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.remove_student( $( this ) );\n\t\t\t} );\n\n\t\t\tthis.$metabox.on( 'click', 'a.llms-delete-enrollment', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.delete_student_enrollment( $( this ) );\n\t\t\t} );\n\n\t\t\tthis.$metabox.on( 'click', 'a.llms-add-student', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.add_student( $( this ) );\n\t\t\t} );\n\n\t\t\t$( '#llms-add-student-select' ).llmsStudentsSelect2( { multiple: true } );\n\n\t\t\t$( '#llms-enroll-students' ).on( 'click', function() {\n\t\t\t\tself.enroll_students( $( this ) );\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Add a Student\n\t\t *\n\t\t * @param obj $el jQuery selector of the add button\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.add_student = function( $el ) {\n\t\t\tthis.update_student_enrollment( $el.attr( 'data-id' ), 'add' );\n\t\t};\n\n\t\t/**\n\t\t * Handle bulk enrollment via \"Enroll New Students\" area\n\t\t *\n\t\t * @param obj $el jQuery selector for the triggering button\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.4.0\n\t\t */\n\t\tthis.enroll_students = function( $el ) {\n\n\t\t\tvar self = this,\n\t\t\t\t$select = $( '#llms-add-student-select' ),\n\t\t\t\tids = $select.val(),\n\t\t\t\t$container = this.$metabox.find( '.llms-metabox-students-add-new' );\n\n\t\t\tLLMS.Spinner.start( $container );\n\n\t\t\twindow.LLMS.Ajax.call( {\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'bulk_enroll_students',\n\t\t\t\t\tstudent_ids: ids,\n\t\t\t\t},\n\t\t\t\tbeforeSend: function( xhr ) {\n\t\t\t\t\tif ( ! ids ) {\n\t\t\t\t\t\t$el.before( '' + LLMS.l10n.translate( 'Please select a student to enroll' ) + ' ' );\n\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\tLLMS.Spinner.stop( $container );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\t$select.val( null ).trigger( 'change' );\n\t\t\t\t\tLLMS.Spinner.stop( $container );\n\t\t\t\t\twindow.llms.admin_tables.reload( $( '#llms-gb-table-student-management' ) );\n\n\t\t\t\t},\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Remove a Student\n\t\t *\n\t\t * @param obj $el jQuery selector of the add button\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.remove_student = function( $el ) {\n\t\t\tthis.update_student_enrollment( $el.attr( 'data-id' ), 'remove' );\n\t\t};\n\n\t\t/**\n\t\t * Delete a Student's enrollment.\n\t\t *\n\t\t * @since 3.33.0\n\t\t *\n\t\t * @param obj $el jQuery selector of the add button.\n\t\t * @return void\n\t\t */\n\t\tthis.delete_student_enrollment = function( $el ) {\n\t\t\tthis.update_student_enrollment( $el.attr( 'data-id' ), 'delete' );\n\t\t};\n\n\t\t/**\n\t\t * Execute AJAX call, add spinners, update html view\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @param int id Student id.\n\t\t * @param string status New status [add|remove|delete].\n\t\t * @return void\n\t\t */\n\t\tthis.update_student_enrollment = function( id, status ) {\n\n\t\t\tvar $table = $( '#llms-gb-table-student-management' ),\n\t\t\t\t$container = $table.closest( '.llms-table-wrap' );\n\n\t\t\tLLMS.Spinner.start( $container );\n\n\t\t\twindow.LLMS.Ajax.call( {\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'update_student_enrollment',\n\t\t\t\t\tstatus: status,\n\t\t\t\t\tstudent_id: id,\n\t\t\t\t},\n\t\t\t\tsuccess: function() {\n\t\t\t\t\t// spinner doesn't stop because the table reloader will stop it\n\t\t\t\t\twindow.llms.admin_tables.reload( $table );\n\t\t\t\t},\n\t\t\t} );\n\n\t\t};\n\n\t\t// go\n\t\tthis.init();\n\n\t};\n\n\t// initialize the object\n\twindow.llms.MetaboxStudents = new MetaboxStudents();\n\n} )( jQuery );\n"],"names":["$","window","llms","MetaboxStudents","this","init","post","post_type","indexOf","$metabox","bind","self","on","e","preventDefault","remove_student","delete_student_enrollment","add_student","llmsStudentsSelect2","multiple","enroll_students","$el","update_student_enrollment","attr","$select","ids","val","$container","find","LLMS","Spinner","start","Ajax","call","data","action","student_ids","beforeSend","xhr","before","l10n","translate","abort","stop","success","r","trigger","admin_tables","reload","id","status","$table","closest","student_id","jQuery"],"mappings":"AAeA,CAAA,SAAYA,GAEXC,OAAOC,KAAOD,OAAOC,MAAQ,GA0K7BD,OAAOC,KAAKC,gBAAkB,IAxKR,WASrBC,KAAKC,KAAO,WAINJ,OAAOC,KAAKI,KAAKC,WAAa,CAAC,IAFtB,CAAE,SAAU,mBAEwBC,QAASP,OAAOC,KAAKI,KAAKC,SAAU,IAErFH,KAAKK,SAAWT,EAAG,qBAAsB,EAEzCI,KAAKM,KAAK,EAGZ,EAWAN,KAAKM,KAAO,WAEX,IAAIC,EAAOP,KAEXA,KAAKK,SAASG,GAAI,QAAS,wBAAyB,SAAUC,GAC7DA,EAAEC,eAAe,EACjBH,EAAKI,eAAgBf,EAAGI,IAAK,CAAE,CAChC,CAAE,EAEFA,KAAKK,SAASG,GAAI,QAAS,2BAA4B,SAAUC,GAChEA,EAAEC,eAAe,EACjBH,EAAKK,0BAA2BhB,EAAGI,IAAK,CAAE,CAC3C,CAAE,EAEFA,KAAKK,SAASG,GAAI,QAAS,qBAAsB,SAAUC,GAC1DA,EAAEC,eAAe,EACjBH,EAAKM,YAAajB,EAAGI,IAAK,CAAE,CAC7B,CAAE,EAEFJ,EAAG,0BAA2B,EAAEkB,oBAAqB,CAAEC,SAAU,CAAA,CAAK,CAAE,EAExEnB,EAAG,uBAAwB,EAAEY,GAAI,QAAS,WACzCD,EAAKS,gBAAiBpB,EAAGI,IAAK,CAAE,CACjC,CAAE,CAEH,EASAA,KAAKa,YAAc,SAAUI,GAC5BjB,KAAKkB,0BAA2BD,EAAIE,KAAM,SAAU,EAAG,KAAM,CAC9D,EAUAnB,KAAKgB,gBAAkB,SAAUC,GAEhC,IACCG,EAAaxB,EAAG,0BAA2B,EAC3CyB,EAAaD,EAAQE,IAAI,EACzBC,EAAavB,KAAKK,SAASmB,KAAM,gCAAiC,EAEnEC,KAAKC,QAAQC,MAAOJ,CAAW,EAE/B1B,OAAO4B,KAAKG,KAAKC,KAAM,CACtBC,KAAM,CACLC,OAAQ,uBACRC,YAAaX,CACd,EACAY,WAAY,SAAUC,GACdb,IACNJ,EAAIkB,OAAQ,4BAA8BV,KAAKW,KAAKC,UAAW,mCAAoC,EAAI,SAAU,EACjHH,EAAII,MAAM,EACVb,KAAKC,QAAQa,KAAMhB,CAAW,EAEhC,EACAiB,QAAS,SAAUC,GAElBrB,EAAQE,IAAK,IAAK,EAAEoB,QAAS,QAAS,EACtCjB,KAAKC,QAAQa,KAAMhB,CAAW,EAC9B1B,OAAOC,KAAK6C,aAAaC,OAAQhD,EAAG,mCAAoC,CAAE,CAE3E,CACD,CAAE,CAEH,EASAI,KAAKW,eAAiB,SAAUM,GAC/BjB,KAAKkB,0BAA2BD,EAAIE,KAAM,SAAU,EAAG,QAAS,CACjE,EAUAnB,KAAKY,0BAA4B,SAAUK,GAC1CjB,KAAKkB,0BAA2BD,EAAIE,KAAM,SAAU,EAAG,QAAS,CACjE,EAWAnB,KAAKkB,0BAA4B,SAAU2B,EAAIC,GAE9C,IAAIC,EAAanD,EAAG,mCAAoC,EACvD2B,EAAawB,EAAOC,QAAS,kBAAmB,EAEjDvB,KAAKC,QAAQC,MAAOJ,CAAW,EAE/B1B,OAAO4B,KAAKG,KAAKC,KAAM,CACtBC,KAAM,CACLC,OAAQ,4BACRe,OAAQA,EACRG,WAAYJ,CACb,EACAL,QAAS,WAER3C,OAAOC,KAAK6C,aAAaC,OAAQG,CAAO,CACzC,CACD,CAAE,CAEH,EAGA/C,KAAKC,KAAK,CAEX,CAKC,EAAGiD,MAAO","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-metabox-voucher.min.js.map b/assets/maps/js/llms-metabox-voucher.min.js.map
new file mode 100644
index 0000000000..eb39b2ba82
--- /dev/null
+++ b/assets/maps/js/llms-metabox-voucher.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-metabox-voucher.min.js","sources":["llms-metabox-voucher.js"],"sourcesContent":["( function( $ ) {\n\n\tvar deleteIds = [];\n\n\t$( document ).ready( function () {\n\n\t\tvar changeNotSaved = false;\n\t\tvar codesAddedSinceLastSave = 0;\n\n\t\t$( '#llms_voucher_add_codes' ).click(function ( e ) {\n\t\t\te.preventDefault();\n\n\t\t\tvar qty = $( '#llms_voucher_add_quantity' ).val();\n\t\t\tvar uses = $( '#llms_voucher_add_uses' ).val();\n\t\t\tvar html = '';\n\n\t\t\tchangeNotSaved = true;\n\n\t\t\tif ( $.isNumeric( qty ) && $.isNumeric( uses ) ) {\n\t\t\t\tif ( parseInt( qty ) > 0 && parseInt( uses ) > 0 ) {\n\n\t\t\t\t\tif ( qty > 50 ) {\n\t\t\t\t\t\talert( \"You can only generate 50 rows at a time\" );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tcodesAddedSinceLastSave += parseInt( qty );\n\n\t\t\t\t\tif ( codesAddedSinceLastSave > 50 ) {\n\t\t\t\t\t\talert( \"Please save before adding any more codes, limit is 50 at a time\" );\n\t\t\t\t\t\tcodesAddedSinceLastSave -= parseInt( qty );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( var i = 1; i <= parseInt( qty ); i++ ) {\n\t\t\t\t\t\thtml += '' +\n\t\t\t\t\t\t\t' ' +\n\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\t' ' +\n\t\t\t\t\t\t\t' ' +\n\t\t\t\t\t\t\t' ' +\n\t\t\t\t\t\t\t'0 / ' +\n\t\t\t\t\t\t\t'' + delete_icon + ' ' +\n\t\t\t\t\t\t\t' ';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$( '#llms_voucher_tbody' ).append( html );\n\n\t\t\tbindDeleteVoucherCode();\n\t\t} );\n\n\t\tbindDeleteVoucherCode();\n\n\t\t$( '#llms_voucher_tbody input' ).change( function() {\n\t\t\tchangeNotSaved = true;\n\t\t} );\n\n\t\t$( \"#post\" ).on( 'submit', function() {\n\t\t\tif ( $( '#publish' ).attr( 'name' ) === 'publish' ) {\n\t\t\t\t$( ' ' ).attr( 'type', 'hidden' )\n\t\t\t\t\t.attr( 'name', \"publish\" )\n\t\t\t\t\t.attr( 'value', \"true\" )\n\t\t\t\t\t.appendTo( '#post' );\n\t\t\t}\n\t\t\treturn true;\n\t\t} );\n\n\t\twindow.onbeforeunload = function() {\n\t\t\treturn changeNotSaved ? \"If you leave this page you will lose your unsaved changes.\" : null;\n\t\t};\n\n\t\t$( 'input[type=submit][name=publish], input[type=submit][name=save]' ).click( function ( e ) {\n\t\t\tvar unique_values = {};\n\t\t\tvar duplicate = false;\n\n\t\t\t$( 'input[name=\"llms_voucher_code[]\"]' ).each( function() {\n\t\t\t\tvar val = $( this ).val()\n\t\t\t\tif ( ! unique_values[val] ) {\n\t\t\t\t\tunique_values[val] = true;\n\t\t\t\t} else {\n\t\t\t\t\t$( this ).css( 'background-color', 'rgba(226, 96, 73, 0.6)' );\n\t\t\t\t\tduplicate = true;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tif ( duplicate ) {\n\t\t\t\talert( 'Please make sure that there are no duplicate voucher codes.' );\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// If course or membership is not selected, don't allow user to save.\n\t\t\tif ( ! $( '#_llms_voucher_courses' ).val().length && ! $( '#_llms_voucher_membership' ).val().length ) {\n\t\t\t\talert( 'Please select course or membership before saving.' );\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tchangeNotSaved = false;\n\t\t\tcheck_voucher_duplicate();\n\t\t\treturn false;\n\t\t} );\n\n\t\tfunction bindDeleteVoucherCode() {\n\t\t\t$( '.llms-voucher-delete' ).unbind( 'click' );\n\t\t\t$( '.llms-voucher-delete' ).click( function ( e ) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tvar t = $( this );\n\t\t\t\tvar old = t.data( 'id' );\n\n\t\t\t\tchangeNotSaved = true;\n\n\t\t\t\tif ( old ) {\n\t\t\t\t\tdeleteIds.push( old );\n\n\t\t\t\t\t$( '#delete_ids' ).val( deleteIds.join( ',' ) );\n\t\t\t\t} else {\n\t\t\t\t\tcodesAddedSinceLastSave--;\n\t\t\t\t}\n\n\t\t\t\t// remove html block\n\t\t\t\tt.closest( 'tr' ).remove();\n\t\t\t} );\n\t\t}\n\t} );\n\n\tfunction randomizeCode() {\n\t\tvar text = '';\n\t\tvar possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n\t\tfor ( var i = 0; i < 12; i++ ) {\n\t\t\ttext += possible.charAt( Math.floor( Math.random() * possible.length ) );\n\t\t}\n\n\t\treturn text;\n\t}\n\n\t/**\n\t * Check for voucher duplicates in other posts.\n\t *\n\t * @since Unknown\n\t * @since 5.9.0 Add nonce.\n\t * @since 7.1.3 Add check for empty vouchers.\n\t *\n\t * @return {void}\n\t */\n\tfunction check_voucher_duplicate() {\n\n\t\tvar vouchers = get_codes_from_inputs();\n\n\t\tif( ! vouchers.length ) {\n\t\t\t$( \"#post\" ).submit();\n\t\t\treturn;\n\t\t}\n\n\t\tvar data = {\n\t\t\taction: 'check_voucher_duplicate',\n\t\t\tpostId: $( '#post_ID' ).val(),\n\t\t\tcodes: vouchers,\n\t\t\t_ajax_nonce: window.llms.ajax_nonce,\n\t\t};\n\n\t\tvar ajax = new Ajax( 'post', data, false );\n\t\tajax.check_voucher_duplicate();\n\t}\n\n\tfunction get_codes_from_inputs() {\n\t\tvar codes = [];\n\t\t$( 'input[name=\"llms_voucher_code[]\"]' ).each( function() {\n\t\t\tcodes.push( $( this ).val() );\n\t\t} );\n\n\t\treturn codes;\n\t}\n\n} )( jQuery );\n\nfunction llms_on_voucher_duplicate( results ) {\n\tif ( results.length ) {\n\t\tfor ( var i = 0; i < results.length; i++ ) {\n\t\t\tjQuery( 'input[value=\"' + results[i].code + '\"]' ).css( 'background-color', 'rgba(226, 96, 73, 0.6)' );\n\t\t}\n\t\talert( 'Please make sure that there are no duplicate voucher codes.' );\n\t} else {\n\t\tjQuery( \"#post\" ).submit();\n\t}\n}\n"],"names":["llms_on_voucher_duplicate","results","length","i","jQuery","code","css","alert","submit","$","deleteIds","document","ready","changeNotSaved","codesAddedSinceLastSave","bindDeleteVoucherCode","unbind","click","e","preventDefault","t","this","old","data","push","val","join","closest","remove","qty","uses","html","isNumeric","parseInt","text","possible","charAt","Math","floor","random","delete_icon","append","change","on","attr","appendTo","window","onbeforeunload","vouchers","unique_values","duplicate","each","codes","action","postId","_ajax_nonce","llms","ajax_nonce","Ajax","check_voucher_duplicate"],"mappings":"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","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-metaboxes.js.map b/assets/maps/js/llms-metaboxes.js.map
new file mode 100644
index 0000000000..8c3cd098f9
--- /dev/null
+++ b/assets/maps/js/llms-metaboxes.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["llms-metaboxes.js"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"../../js/llms-metaboxes.js","sourcesContent":["/**\n * LifterLMS Admin Panel Metabox Functions\n *\n * @since 3.0.0\n * @version 7.1.1\n */\n ( function( $ ) {\n\n\t $( document ).ready( function() {\n\t\t // Avoid confusion by hiding the visibility option for coupons and vouchers if currently set to public.\n\t\t if ( $( 'input[name=\"visibility\"]:checked' ).val() === 'public' ) {\n\t\t\t $( 'body.post-type-llms_coupon #visibility, body.post-type-llms_voucher #visibility' ).hide();\n\t\t }\n\t } );\n\n\t /**\n\t * jQuery plugin to allow \"collapsible\" sections\n\t *\n\t * @return jQuery object\n\t * @since 3.0.0\n\t * @version 3.29.0\n\t */\n\t$.fn.llmsCollapsible = function() {\n\n\t\tvar $group = this;\n\n\t\tthis.on( 'click', '.llms-collapsible-header', function() {\n\n\t\t\tvar $parent = $( this ).closest( '.llms-collapsible' ),\n\t\t\t\t$siblings = $parent.siblings( '.llms-collapsible' );\n\n\t\t\t$parent.toggleClass( 'opened' ).trigger( 'llms-collapsible-toggled' );\n\n\t\t\t$parent.find( '.llms-collapsible-body' ).slideToggle( 400 );\n\n\t\t\t$siblings.each( function() {\n\t\t\t\t$( this ).removeClass( 'opened' );\n\t\t\t\t$( this ).find( '.llms-collapsible-body' ).slideUp( 400 );\n\t\t\t} );\n\n\t\t} );\n\n\t\treturn this;\n\n\t};\n\n\twindow.llms = window.llms || {};\n\n\tvar Metaboxes = function() {\n\n\t\t/**\n\t\t * load all partials\n\t\t */\n\t\t/**\n\t\t * LifterLMS Admin Metabox Repeater Field\n\t\t *\n\t\t * @package LifterLMS/Scripts/Partials\n\t\t *\n\t\t * @since 3.11.0\n\t\t * @version 5.3.2\n\t\t */\n\t\t\n\t\tthis.repeaters = {\n\t\t\n\t\t\t/**\n\t\t\t * Reference to the parent metabox class\n\t\t\t *\n\t\t\t * @type {Object}\n\t\t\t */\n\t\t\tmetaboxes: this,\n\t\t\n\t\t\t/**\n\t\t\t * A jQuery selector for all repeater elements on the current screen\n\t\t\t *\n\t\t\t * @type {Object}\n\t\t\t */\n\t\t\t$repeaters: null,\n\t\t\n\t\t\t/**\n\t\t\t * Init\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t * @since 3.23.0 Unknown.\n\t\t\t *\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tinit: function() {\n\t\t\n\t\t\t\tvar self = this;\n\t\t\n\t\t\t\tself.$repeaters = $( '.llms-mb-list.repeater' );\n\t\t\n\t\t\t\tif ( self.$repeaters.length ) {\n\t\t\n\t\t\t\t\t// Wait for tinyMCE just in case their editors in the repeaters.\n\t\t\t\t\tLLMS.wait_for(\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\treturn ( 'undefined' !== typeof tinyMCE );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tself.load();\n\t\t\t\t\t\t\tself.bind();\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\n\t\t\t\t\t/**\n\t\t\t\t\t * On click of any post submit buttons add some data to the submit button\n\t\t\t\t\t * so we can see which button to trigger after repeaters are finished.\n\t\t\t\t\t */\n\t\t\t\t\t$( '#post input[type=\"submit\"], #post-preview' ).on( 'click', function() {\n\t\t\t\t\t\t$( this ).attr( 'data-llms-clicked', 'yes' );\n\t\t\t\t\t} );\n\t\t\n\t\t\t\t\t// Handle post submission.\n\t\t\t\t\t$( '#post' ).on( 'submit', self.handle_submit );\n\t\t\n\t\t\t\t}\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Bind DOM Events\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t * @since 3.13.0 Unknown.\n\t\t\t * @since 5.3.2 Don't remove the model's mceEditor instance (it's removed before cloning a row now).\n\t\t\t *\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tbind: function() {\n\t\t\n\t\t\t\tvar self = this;\n\t\t\n\t\t\t\tself.$repeaters.each( function() {\n\t\t\n\t\t\t\t\tvar $repeater = $( this ),\n\t\t\t\t\t\t$rows = $repeater.find( '.llms-repeater-rows' );\n\t\t\n\t\t\t\t\t// For the repeater + button.\n\t\t\t\t\t$repeater.find( '.llms-repeater-new-btn' ).on( 'click', function() {\n\t\t\t\t\t\tself.add_row( $repeater, null, true );\n\t\t\t\t\t} );\n\t\t\n\t\t\t\t\t// Make repeater rows sortable.\n\t\t\t\t\t$rows.sortable( {\n\t\t\t\t\t\thandle: '.llms-drag-handle',\n\t\t\t\t\t\titems: '.llms-repeater-row',\n\t\t\t\t\t\tstart: function( event, ui ) {\n\t\t\t\t\t\t\t$rows.addClass( 'dragging' );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tstop: function( event, ui ) {\n\t\t\t\t\t\t\t$rows.removeClass( 'dragging' );\n\t\t\n\t\t\t\t\t\t\tvar $eds = ui.item.find( 'textarea.wp-editor-area' );\n\t\t\t\t\t\t\t$eds.each( function() {\n\t\t\t\t\t\t\t\tvar ed_id = $( this ).attr( 'id' );\n\t\t\t\t\t\t\t\ttinyMCE.EditorManager.execCommand( 'mceRemoveEditor', true, ed_id );\n\t\t\t\t\t\t\t\ttinyMCE.EditorManager.execCommand( 'mceAddEditor', true, ed_id );\n\t\t\t\t\t\t\t} );\n\t\t\n\t\t\t\t\t\t\tself.save( $repeater );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\n\t\t\t\t\t$repeater.on( 'click', '.llms-repeater-remove', function( e ) {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tvar $row = $( this ).closest( '.llms-repeater-row' );\n\t\t\t\t\t\tif ( window.confirm( LLMS.l10n.translate( 'Are you sure you want to delete this row? This cannot be undone.' ) ) ) {\n\t\t\t\t\t\t\t$row.remove();\n\t\t\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t\t\tself.save( $repeater );\n\t\t\t\t\t\t\t}, 1 );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\n\t\t\t\t} );\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Add a new row to a repeater rows group\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t * @since 5.3.2 Use `self.clone_row()` to retrieve the model's base HTML for the row to be added.\n\t\t\t *\n\t\t\t * @param {Object} $repeater A jQuery selector for the repeater to add a row to.\n\t\t\t * @param {Object} data Optional object of data to fill fields in the row with.\n\t\t\t * @param {Boolean} expand If true, will automatically open the row after adding it to the dom.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tadd_row: function( $repeater, data, expand ) {\n\t\t\n\t\t\t\tvar self = this,\n\t\t\t\t\t$rows = $repeater.find( '.llms-repeater-rows' ),\n\t\t\t\t\t$model = $repeater.find( '.llms-repeater-model' ),\n\t\t\t\t\t$row = self.clone_row( $model.find( '.llms-repeater-row' ) ),\n\t\t\t\t\tnew_index = $repeater.find( '.llms-repeater-row' ).length,\n\t\t\t\t\teditor = self.reindex( $row, new_index );\n\t\t\n\t\t\t\tif ( data ) {\n\t\t\t\t\t$.each( data, function( key, val ) {\n\t\t\n\t\t\t\t\t\tvar $field = $row.find( '[name^=\"' + key + '\"]' );\n\t\t\n\t\t\t\t\t\tif ( $field.hasClass( 'llms-select2-student' ) ) {\n\t\t\t\t\t\t\t$.each( val, function( i, data ) {\n\t\t\t\t\t\t\t\t$field.append( '' + data.title + ' ' )\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t$field.trigger( 'change' );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$field.val( val );\n\t\t\t\t\t\t}\n\t\t\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\tself.bind_row( $row );\n\t\t\t\t}, 1 );\n\t\t\n\t\t\t\t$rows.append( $row );\n\t\t\t\tif ( expand ) {\n\t\t\t\t\t$row.find( '.llms-collapsible-header' ).trigger( 'click' );\n\t\t\t\t}\n\t\t\t\ttinyMCE.EditorManager.execCommand( 'mceAddEditor', true, editor );\n\t\t\n\t\t\t\t$repeater.trigger( 'llms-new-repeater-row', {\n\t\t\t\t\t$row: $row,\n\t\t\t\t\tdata: data,\n\t\t\t\t} );\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Bind DOM events for a single repeater row\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t * @since 3.13.0 Unknown.\n\t\t\t *\n\t\t\t * @param {Object} $row A jQuery selector for the row.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tbind_row: function( $row ) {\n\t\t\n\t\t\t\tthis.bind_row_header( $row );\n\t\t\n\t\t\t\t$row.find( '.llms-select2' ).llmsSelect2( {\n\t\t\t\t\twidth: '100%',\n\t\t\t\t} );\n\t\t\n\t\t\t\t$row.find( '.llms-select2-student' ).llmsStudentsSelect2();\n\t\t\n\t\t\t\tthis.metaboxes.bind_datepickers( $row.find( '.llms-datepicker' ) );\n\t\t\t\tthis.metaboxes.bind_controllers( $row.find( '[data-is-controller]' ) );\n\t\t\t\t// This.metaboxes.bind_merge_code_buttons( $row.find( '.llms-merge-code-wrapper' ) );.\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Bind row header events\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t *\n\t\t\t * @param {Object} $row jQuery selector for the row.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tbind_row_header: function( $row ) {\n\t\t\n\t\t\t\t// Handle the title field binding.\n\t\t\t\tvar $title = $row.find( '.llms-repeater-title' ),\n\t\t\t\t\t$field = $row.find( '.llms-collapsible-header-title-field' );\n\t\t\n\t\t\t\t$title.attr( 'data-default', $title.text() );\n\t\t\n\t\t\t\t$field.on( 'keyup focusout blur', function() {\n\t\t\t\t\tvar val = $( this ).val();\n\t\t\t\t\tif ( ! val ) {\n\t\t\t\t\t\tval = $title.attr( 'data-default' );\n\t\t\t\t\t}\n\t\t\t\t\t$title.text( val );\n\t\t\t\t} ).trigger( 'keyup' );\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Create a copy of the model's row after removing any tinyMCE editor instances present in the model.\n\t\t\t *\n\t\t\t * @since 5.3.2\n\t\t\t *\n\t\t\t * @param {Object} $row A jQuery object of the row to be cloned.\n\t\t\t * @return {Object} A clone of the jQuery object.\n\t\t\t */\n\t\t\tclone_row: function( $row ) {\n\t\t\n\t\t\t\t$ed = $row.find( '.editor textarea' );\n\t\t\t\tif ( $ed.length ) {\n\t\t\t\t\ttinyMCE.EditorManager.execCommand( 'mceRemoveEditor', true, $ed.attr( 'id' ) );\n\t\t\t\t}\n\t\t\n\t\t\t\treturn $row.clone()\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Handle WP Post form submission to ensure repeaters are saved before submitting the form to save/publish the post\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t * @since 3.23.0 Unknown.\n\t\t\t *\n\t\t\t * @param {Object} e An event object.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\thandle_submit: function( e ) {\n\t\t\n\t\t\t\t// Get the button used to submit the form.\n\t\t\t\tvar $btn = $( '#post [data-llms-clicked=\"yes\"]' ),\n\t\t\t\t\t$spinner = $btn.parent().find( '.spinner' );\n\t\t\n\t\t\t\tif ( $btn.is( '#post-preview' ) ) {\n\t\t\t\t\t$btn.removeAttr( 'data-llms-clicked' );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\n\t\t\t\te.preventDefault();\n\t\t\n\t\t\t\t// Core UX to prevent multi-click/or the appearance of a delay.\n\t\t\t\t$( '#post input[type=\"submit\"]' ).addClass( 'disabled' ).attr( 'disabled', 'disabled' );\n\t\t\t\t$spinner.addClass( 'is-active' );\n\t\t\n\t\t\t\tvar self = window.llms.metaboxes.repeaters,\n\t\t\t\t\ti = 0,\n\t\t\t\t\twait;\n\t\t\n\t\t\t\tself.$repeaters.each( function() {\n\t\t\t\t\tself.save( $( this ) );\n\t\t\t\t} );\n\t\t\n\t\t\t\twait = setInterval( function() {\n\t\t\n\t\t\t\t\tif ( i >= 59 || ! $( '.llms-mb-list.repeater.processing' ).length ) {\n\t\t\n\t\t\t\t\t\tclearInterval( wait );\n\t\t\t\t\t\t$( '#post' ).off( 'submit', this.handle_submit );\n\t\t\t\t\t\t$spinner.removeClass( 'is-active' );\n\t\t\t\t\t\t$btn.removeClass( 'disabled' ).removeAttr( 'disabled' ).trigger( 'click' );\n\t\t\n\t\t\t\t\t} else {\n\t\t\n\t\t\t\t\t\ti++;\n\t\t\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}, 1000 );\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Load repeater data from the server and create rows in the DOM\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t * @since 3.12.1 Unknown.\n\t\t\t *\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tload: function() {\n\t\t\n\t\t\t\tvar self = this;\n\t\t\n\t\t\t\tself.$repeaters.each( function() {\n\t\t\n\t\t\t\t\tvar $repeater = $( this );\n\t\t\n\t\t\t\t\t// Ensure the repeater is only loaded once to prevent duplicates resulting from duplicating binding.\n\t\t\t\t\t// On certain sites which I cannot quite explain...\n\t\t\t\t\tif ( $repeater.hasClass( 'is-loaded' ) || $repeater.hasClass( 'processing' ) ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tself.store( $repeater, 'load', function( data ) {\n\t\t\n\t\t\t\t\t\t$repeater.addClass( 'is-loaded' );\n\t\t\n\t\t\t\t\t\t$.each( data.data, function( i, obj ) {\n\t\t\t\t\t\t\tself.add_row( $repeater, obj, false );\n\t\t\t\t\t\t} );\n\t\t\n\t\t\t\t\t\t// For each row within the repeater.\n\t\t\t\t\t\t$repeater.find( '.llms-repeater-rows .llms-repeater-row' ).each( function() {\n\t\t\t\t\t\t\tself.bind_row( $( this ) );\n\t\t\t\t\t\t} );\n\t\t\n\t\t\t\t\t} );\n\t\t\n\t\t\t\t} );\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Reindex a row\n\t\t\t *\n\t\t\t * Renames ids, attrs, and etc...\n\t\t\t *\n\t\t\t * Used when cloning the model for new rows.\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t *\n\t\t\t * @param {Object} $row jQuery selector for the row.\n\t\t\t * @param {string} index The index (or id) to use when renaming.\n\t\t\t * @return {string}\n\t\t\t */\n\t\t\treindex: function( $row, index ) {\n\t\t\n\t\t\t\tvar old_index = $row.attr( 'data-row-order' ),\n\t\t\t\t\t$ed = $row.find( '.llms-mb-list.editor textarea' );\n\t\t\n\t\t\t\ttinyMCE.EditorManager.execCommand( 'mceRemoveEditor', true, $ed.attr( 'id' ) );\n\t\t\n\t\t\t\tfunction replace_attr( $el, attr ) {\n\t\t\t\t\t$el.each( function() {\n\t\t\t\t\t\tvar str = $( this ).attr( attr );\n\t\t\t\t\t\t$( this ).attr( attr, str.replace( old_index, index ) );\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\n\t\t\t\t$row.attr( 'data-row-order', index );\n\t\t\n\t\t\t\treplace_attr( $row, 'data-row-order' );\n\t\t\n\t\t\t\treplace_attr( $row.find( 'button.insert-media' ), 'data-editor' );\n\t\t\n\t\t\t\treplace_attr( $row.find( 'input[name^=\"_llms\"], textarea[name^=\"_llms\"], select[name^=\"_llms\"]' ), 'id' );\n\t\t\t\treplace_attr( $row.find( 'input[name^=\"_llms\"], textarea[name^=\"_llms\"], select[name^=\"_llms\"]' ), 'name' );\n\t\t\t\treplace_attr( $row.find( '[data-controller]' ), 'data-controller' );\n\t\t\t\treplace_attr( $row.find( '[data-controller]' ), 'data-controller' );\n\t\t\t\treplace_attr( $row.find( 'button.wp-switch-editor' ), 'data-wp-editor-id' );\n\t\t\t\treplace_attr( $row.find( 'button.wp-switch-editor' ), 'id' );\n\t\t\t\treplace_attr( $row.find( '.wp-editor-tools' ), 'id' );\n\t\t\t\treplace_attr( $row.find( '.wp-editor-container' ), 'id' );\n\t\t\n\t\t\t\treturn $ed.attr( 'id' );\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Save a single repeaters data to the server\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t * @since 3.13.0 Unknown.\n\t\t\t *\n\t\t\t * @param {Object} $repeater jQuery selector for a repeater element.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tsave: function( $repeater ) {\n\t\t\t\t$repeater.trigger( 'llms-repeater-before-save', { $el: $repeater } );\n\t\t\t\tthis.store( $repeater, 'save' );\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Convert a repeater element into an array of objects that can be saved to the database\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t *\n\t\t\t * @param {Object} $repeater A jQuery selector for a repeater element.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tserialize: function( $repeater ) {\n\t\t\n\t\t\t\tvar rows = [];\n\t\t\n\t\t\t\t$repeater.find( '.llms-repeater-rows .llms-repeater-row' ).each( function() {\n\t\t\n\t\t\t\t\tvar obj = {};\n\t\t\n\t\t\t\t\t// Easy...\n\t\t\t\t\t$( this ).find( 'input[name^=\"_llms\"], select[name^=\"_llms\"]' ).each( function() {\n\t\t\t\t\t\tobj[ $( this ).attr( 'name' ) ] = $( this ).val();\n\t\t\t\t\t} );\n\t\t\n\t\t\t\t\t// Check if the textarea is a tinyMCE instance.\n\t\t\t\t\t$( this ).find( 'textarea[name^=\"_llms\"]' ).each( function() {\n\t\t\n\t\t\t\t\t\tvar name = $( this ).attr( 'name' );\n\t\t\n\t\t\t\t\t\t// If it is an editor.\n\t\t\t\t\t\tif ( tinyMCE.editors[ name ] ) {\n\t\t\t\t\t\t\tobj[ name ] = tinyMCE.editors[ name ].getContent();\n\t\t\t\t\t\t\t// Grab the val of the textarea.\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tobj[ name ] = $( this ).val();\n\t\t\t\t\t\t}\n\t\t\n\t\t\t\t\t} );\n\t\t\n\t\t\t\t\trows.push( obj );\n\t\t\n\t\t\t\t} );\n\t\t\n\t\t\t\treturn rows;\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * AJAX method for interacting with the repeater's handler on the server\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t *\n\t\t\t * @param {Object} $repeater jQuery selector for the repeater element.\n\t\t\t * @param {string} action Action to call [save|load].\n\t\t\t * @param {Function} cb Callback function.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tstore: function( $repeater, action, cb ) {\n\t\t\n\t\t\t\tcb = cb || function(){};\n\t\t\t\tvar self = this,\n\t\t\t\t\tdata = {\n\t\t\t\t\t\taction: $repeater.find( '.llms-repeater-field-handler' ).val(),\n\t\t\t\t\t\tstore_action: action,\n\t\t\t\t};\n\t\t\n\t\t\t\tif ( 'save' === action ) {\n\t\t\t\t\tdata.rows = self.serialize( $repeater );\n\t\t\t\t}\n\t\t\n\t\t\t\tLLMS.Ajax.call( {\n\t\t\t\t\tdata: data,\n\t\t\t\t\tbeforeSend: function() {\n\t\t\n\t\t\t\t\t\t$repeater.addClass( 'processing' );\n\t\t\t\t\t\tLLMS.Spinner.start( $repeater );\n\t\t\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( r ) {\n\t\t\n\t\t\t\t\t\tcb( r );\n\t\t\t\t\t\tLLMS.Spinner.stop( $repeater );\n\t\t\t\t\t\t$repeater.removeClass( 'processing' );\n\t\t\n\t\t\t\t\t}\n\t\t\n\t\t\t\t} );\n\t\t\n\t\t\t}\n\t\t\n\t\t};\n\t\tthis.repeaters.init();\n\t\t\n\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.13.0 Unknown.\n\t\t * @since 4.19.0 Add `this.bind_mce_fixes()`.\n\t\t * @since 5.3.0 Bind editables when editable buttons are present in addition to anchors.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.init = function() {\n\n\t\t\tvar self = this;\n\n\t\t\t$( '.llms-select2-post' ).each( function() {\n\t\t\t\tself.post_select( $( this ) );\n\t\t\t} );\n\n\t\t\t$( '.llms-collapsible-group' ).llmsCollapsible();\n\n\t\t\tthis.bind_tabs();\n\n\t\t\tthis.bind_mce_fixes();\n\n\t\t\t// bind everything better and less repetitively...\n\t\t\tvar bindings = [\n\t\t\t\t{\n\t\t\t\t\tselector: $( '.llms-datepicker' ),\n\t\t\t\t\tfunc: 'bind_datepickers',\n\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: $( '.llms-select2' ),\n\t\t\t\t\tfunc: function( $selector ) {\n\t\t\t\t\t\t$selector.llmsSelect2( {\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t} );\n\t\t\t\t\t},\n\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: $( '.llms-select2-student' ),\n\t\t\t\t\tfunc: function( $selector ) {\n\t\t\t\t\t\t$selector.llmsStudentsSelect2();\n\t\t\t\t\t}\n\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: $( 'input[type=\"checkbox\"][data-controls]' ),\n\t\t\t\t\tfunc: 'bind_cb_controllers',\n\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: $( '[data-is-controller]' ),\n\t\t\t\t\tfunc: 'bind_controllers',\n\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: $( '.llms-table' ),\n\t\t\t\t\tfunc: 'bind_tables',\n\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: $( '.llms-merge-code-wrapper' ),\n\t\t\t\t\tfunc: 'bind_merge_code_buttons',\n\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: $( 'a.llms-editable, button.llms-editable' ),\n\t\t\t\t\tfunc: 'bind_editables',\n\t\t\t},\n\t\t\t];\n\n\t\t\t// bind all the bindables but don't bind things in repeaters\n\t\t\t$.each( bindings, function( index, obj ) {\n\n\t\t\t\tif ( obj.selector.length ) {\n\n\t\t\t\t\t// reduce the selector to exclude items in a repeater\n\t\t\t\t\tvar reduced = obj.selector.filter( function() {\n\t\t\t\t\t\treturn ( 0 === $( this ).closest( '.llms-repeater-model' ).length );\n\t\t\t\t\t} );\n\n\t\t\t\t\t// bind by string\n\t\t\t\t\tif ( 'string' === typeof obj.func ) {\n\t\t\t\t\t\tself[ obj.func ]( reduced );\n\t\t\t\t\t}\n\t\t\t\t\t// bind by an anonymous function\n\t\t\t\t\telse if ( 'function' === typeof obj.func ) {\n\t\t\t\t\t\tobj.func( reduced );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t// if a post type is set & a bind exists for it, bind it\n\t\t\tif ( window.llms.post.post_type ) {\n\n\t\t\t\tvar func = 'bind_' + window.llms.post.post_type;\n\n\t\t\t\tif ( 'function' === typeof this[func] ) {\n\n\t\t\t\t\tthis[func]();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Bind checkboxes that control the display of other elements\n\t\t *\n\t\t * @param obj $controllers jQuery selector for checkboxes to be bound as checkbox controllers\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.11.0\n\t\t */\n\t\tthis.bind_cb_controllers = function( $controllers ) {\n\n\t\t\t$controllers = $controllers || $( 'input[type=\"checkbox\"][data-controls]' );\n\n\t\t\t$controllers.each( function() {\n\n\t\t\t\tvar $cb = $( this ),\n\t\t\t\t\t$controlled = $( $cb.attr( 'data-controls' ) ).closest( '.llms-mb-list' );\n\n\t\t\t\t$cb.on( 'change', function() {\n\n\t\t\t\t\tif ( $( this ).is( ':checked' ) ) {\n\n\t\t\t\t\t\t$controlled.slideDown( 200 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t$controlled.slideUp( 200 );\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\t$cb.trigger( 'change' );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind elements that control the display of other elements\n\t\t *\n\t\t * @param obj $controllers jQuery selector for elements to be bound as checkbox controllers\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.11.0\n\t\t */\n\t\tthis.bind_controllers = function( $controllers ) {\n\n\t\t\t$controllers = $controllers || $( '[data-is-controller]' );\n\n\t\t\t$controllers.each( function() {\n\n\t\t\t\tvar $el = $( this ),\n\t\t\t\t\t$controlled = $( '[data-controller=\"#' + $el.attr( 'id' ) + '\"]' ),\n\t\t\t\t\tval;\n\n\t\t\t\t$el.on( 'change', function() {\n\n\t\t\t\t\tif ( 'checkbox' === $el.attr( 'type' ) ) {\n\n\t\t\t\t\t\tval = $el.is( ':checked' ) ? $el.val() : 'false';\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tval = $el.val();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t$controlled.each( function() {\n\n\t\t\t\t\t\tvar possible = $( this ).attr( 'data-controller-value' ),\n\t\t\t\t\t\t\tvals = [];\n\n\t\t\t\t\t\tif ( -1 !== possible.indexOf( ',' ) ) {\n\n\t\t\t\t\t\t\tvals = possible.split( ',' );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tvals.push( possible );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( -1 !== vals.indexOf( val ) ) {\n\n\t\t\t\t\t\t\t$( this ).slideDown( 200 );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t$( this ).slideUp( 200 );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t} );\n\n\t\t\t\t$el.trigger( 'change' );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind a single datepicker element\n\t\t *\n\t\t * @param obj $el jQuery selector for the input to bind the datepicker to\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.10.0\n\t\t */\n\t\tthis.bind_datepicker = function( $el ) {\n\t\t\tvar format = $el.attr( 'data-format' ) || 'mm/dd/yy',\n\t\t\t\tmaxDate = $el.attr( 'data-max-date' ) || null,\n\t\t\t\tminDate = $el.attr( 'data-min-date' ) || null;\n\t\t\t$el.datepicker( {\n\t\t\t\tdateFormat: format,\n\t\t\t\tmaxDate: maxDate,\n\t\t\t\tminDate: minDate,\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Bind all LifterLMS datepickers\n\t\t *\n\t\t * @param obj $datepickers jQuery selector for the elements to bind\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.11.0\n\t\t */\n\t\tthis.bind_datepickers = function( $datepickers ) {\n\n\t\t\tvar self = this;\n\n\t\t\t$datepickers = $datepickers || $( '.llms-datepicker' );\n\n\t\t\t$datepickers.each( function() {\n\t\t\t\tself.bind_datepicker( $( this ) );\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind llms-editable metabox fields and related dom interactions\n\t\t *\n\t\t * @since 3.10.0\n\t\t * @since 3.28.0 Unknown.\n\t\t * @since 5.3.0 Bind editables when editable buttons are present in addition to anchors.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.bind_editables = function() {\n\n\t\t\tvar self = this;\n\n\t\t\tfunction make_editable( $field ) {\n\n\t\t\t\tvar $label = $field.find( 'label' ).clone(),\n\t\t\t\t\tname = $field.attr( 'data-llms-editable' ),\n\t\t\t\t\ttype = $field.attr( 'data-llms-editable-type' ),\n\t\t\t\t\trequired = $field.attr( 'data-llms-editable-required' ) || 'no',\n\t\t\t\t\tval = $field.attr( 'data-llms-editable-value' ),\n\t\t\t\t\t$input;\n\n\t\t\t\trequired = ( 'yes' === required ) ? ' required=\"required\"' : '';\n\n\t\t\t\tif ( 'select' === type ) {\n\n\t\t\t\t\tvar options = JSON.parse( $field.attr( 'data-llms-editable-options' ) ),\n\t\t\t\t\t\tselected;\n\n\t\t\t\t\t$input = $( ' ' );\n\t\t\t\t\tfor ( var key in options ) {\n\t\t\t\t\t\tselected = val === key ? ' selected=\"selected\"' : '';\n\t\t\t\t\t\t$input.append( '' + options[ key ] + ' ' );\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( 'datetime' === type ) {\n\n\t\t\t\t\t$input = $( '
' );\n\n\t\t\t\t\tval = JSON.parse( val );\n\t\t\t\t\tvar format = $field.attr( 'data-llms-editable-date-format' ) || '',\n\t\t\t\t\t\tmin_date = $field.attr( 'data-llms-editable-date-min' ) || '',\n\t\t\t\t\t\tmax_date = $field.attr( 'data-llms-editable-date-max' ) || '';\n\n\t\t\t\t\t$picker = $( ' ' );\n\t\t\t\t\tself.bind_datepicker( $picker );\n\t\t\t\t\t$input.append( $picker );\n\t\t\t\t\t$input.append( '@ ' );\n\n\t\t\t\t\t$input.append( ' ' );\n\t\t\t\t\t$input.append( ': ' );\n\t\t\t\t\t$input.append( ' ' );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t$input = $( ' ' );\n\t\t\t\t}\n\n\t\t\t\t$field.empty().append( $label ).append( $input );\n\t\t\t\tif ( 'select' === type ) {\n\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t$input.trigger( 'change' );\n\t\t\t\t\t}, 100 );\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t\t$( 'a.llms-editable, button.llms-editable' ).on( 'click', function( e ) {\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\tvar $btn = $( this ),\n\t\t\t\t\t$fields;\n\n\t\t\t\tif ( $btn.attr( 'data-fields' ) ) {\n\t\t\t\t\t$fields = $( $btn.attr( 'data-fields' ) );\n\t\t\t\t} else {\n\t\t\t\t\t$fields = $btn.closest( '.llms-metabox-section' ).find( '[data-llms-editable]' );\n\t\t\t\t}\n\n\t\t\t\t$btn.remove();\n\n\t\t\t\t$fields.each( function() {\n\t\t\t\t\tmake_editable( $( this ) );\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind Engagement post type JS\n\t\t *\n\t\t * @return void\n\t\t * @since 3.1.0\n\t\t * @version 3.1.0\n\t\t */\n\t\tthis.bind_llms_engagement = function() {\n\n\t\t\tvar self = this;\n\n\t\t\t// when the engagement type changes we need to do some things to the UI\n\t\t\t$( '#_llms_engagement_type' ).on( 'change', function() {\n\n\t\t\t\t$( '#_llms_engagement' ).trigger( 'llms-engagement-type-change', $( this ).val() );\n\n\t\t\t} );\n\n\t\t\t// custom trigger when called when the engagement type changes\n\t\t\t$( '#_llms_engagement' ).on( 'llms-engagement-type-change', function( e, engagement_type ) {\n\n\t\t\t\tvar $select = $( this );\n\n\t\t\t\tswitch ( engagement_type ) {\n\n\t\t\t\t\t/**\n\t\t\t\t\t * core engagements related to a CPT\n\t\t\t\t\t */\n\t\t\t\t\tcase 'achievement':\n\t\t\t\t\tcase 'certificate':\n\t\t\t\t\tcase 'email':\n\n\t\t\t\t\t\tvar cpt = 'llms_' + engagement_type;\n\n\t\t\t\t\t\t$select.val( null ).attr( 'data-post-type', cpt ).trigger( 'change' );\n\t\t\t\t\t\tself.post_select( $select );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Allow other plugins and developers to hook into the engagement type change action\n\t\t\t\t\t */\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\t$select.trigger( 'llms-engagement-type-change-external', engagement_type );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Actions for memberships\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.30.0 Made autoenroll table sortable, added AJAX save for adding new courses.\n\t\t * @version 3.30.0\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.bind_llms_membership = function() {\n\n\t\t\tvar $table = $( '.llms-mb-list._llms_content_table' );\n\n\t\t\t/**\n\t\t\t * Hide/Show empty message header row depending on the number of rows in the tbody\n\t\t\t *\n\t\t\t * @since 3.30.0\n\t\t\t * @version 3.30.0\n\t\t\t *\n\t\t\t * @return void\n\t\t\t */\n\t\t\tfunction toggle_header_row() {\n\n\t\t\t\tvar $rows = $table.find( 'tbody tr' );\n\t\t\t\tif ( 1 === $rows.length ) {\n\t\t\t\t\t$rows.first().show();\n\t\t\t\t} else {\n\t\t\t\t\t$rows.first().hide();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Retrieve an array of course IDs in the table.\n\t\t\t *\n\t\t\t * @since 3.30.0\n\t\t\t * @version 3.30.0\n\t\t\t *\n\t\t\t * @return array\n\t\t\t */\n\t\t\tfunction get_course_ids() {\n\n\t\t\t\tvar courses = [];\n\t\t\t\t$table.find( 'tbody tr a[href=\"#llms-course-remove\"]' ).each( function() {\n\t\t\t\t\tcourses.push( $( this ).attr( 'data-id' ) );\n\t\t\t\t} );\n\t\t\t\treturn courses;\n\n\t\t\t}\n\n\t\t\t// On init, toggle the header row visibility.\n\t\t\ttoggle_header_row();\n\n\t\t\t// remove auto-enroll course\n\t\t\t$table.on( 'click', 'a[href=\"#llms-course-remove\"]', function( e ) {\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\tvar $el = $( this ),\n\t\t\t\t\t$row = $el.closest( 'tr' ),\n\t\t\t\t\t$container = $el.closest( '.llms-mb-list' );\n\n\t\t\t\tLLMS.Spinner.start( $container );\n\n\t\t\t\twindow.LLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'membership_remove_auto_enroll_course',\n\t\t\t\t\t\tcourse_id: $el.attr( 'data-id' ),\n\t\t\t\t\t},\n\t\t\t\t\tbeforeSend: function() {\n\n\t\t\t\t\t\t$container.find( 'p.error' ).remove();\n\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\t\tif ( r.success ) {\n\n\t\t\t\t\t\t\t$row.fadeOut( 200 );\n\t\t\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t\t\t$row.remove();\n\t\t\t\t\t\t\t\ttoggle_header_row();\n\t\t\t\t\t\t\t}, 400 );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t$container.prepend( '' + r.message + '
' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tLLMS.Spinner.stop( $container );\n\t\t\t\t\t},\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t\t// bulk enroll all members into a course\n\t\t\t$table.on( 'click', 'a[href=\"#llms-course-bulk-enroll\"]', function( e ) {\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\tvar $el = $( this ),\n\t\t\t\t\t$row = $el.closest( 'tr' ),\n\t\t\t\t\t$container = $el.closest( '.llms-mb-list' );\n\n\t\t\t\tif ( ! window.confirm( LLMS.l10n.translate( 'Click okay to enroll all active members into the selected course. Enrollment will take place in the background and you may leave your site after confirmation. This action cannot be undone!' ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tLLMS.Spinner.start( $container );\n\n\t\t\t\twindow.LLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'bulk_enroll_membership_into_course',\n\t\t\t\t\t\tcourse_id: $el.attr( 'data-id' ),\n\t\t\t\t\t},\n\t\t\t\t\tbeforeSend: function() {\n\t\t\t\t\t\t$container.find( 'p.error' ).remove();\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\t\tif ( r.success ) {\n\n\t\t\t\t\t\t\t$el.replaceWith( '' + r.data.message + ' ' );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t$container.prepend( '' + r.message + '
' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tLLMS.Spinner.stop( $container );\n\t\t\t\t\t},\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t\t// Add an item to the autoenroll table on select.\n\t\t\t$( '#_llms_auto_enroll' ).on( 'change', function() {\n\n\t\t\t\tvar id = $( this ).val(),\n\t\t\t\t\ttitle = $( this ).find( 'option[value=\"' + $( this ).val() + '\"]' ).text();\n\n\t\t\t\t// If there's no ID\n\t\t\t\tif ( ! id ) {\n\t\t\t\t\treturn;\n\t\t\t\t\t// Prevent Dupes.\n\t\t\t\t} else if ( -1 !== get_course_ids().indexOf( id ) ) {\n\n\t\t\t\t\talert( LLMS.l10n.replace( '\"%s\" is already in the course list.', { '%s': title } ) )\n\n\t\t\t\t\t// reset the select field.\n\t\t\t\t\t$( this ).val( '' ).trigger( 'change' );\n\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tvar $table = $( '.llms-mb-list._llms_content_table' );\n\t\t\t\t\t$tr = $( ' ' );\n\n\t\t\t\t$tr.append( ' ' );\n\t\t\t\t$tr.append( '' + title + ' ' );\n\t\t\t\t$tr.append( '' + LLMS.l10n.translate( 'Remove course' ) + ' ' + LLMS.l10n.translate( 'Enroll All Members' ) + ' ' );\n\n\t\t\t\t// append the element to the table.\n\t\t\t\t$table.find( 'table tbody' ).append( $tr );\n\n\t\t\t\t// reset the select field.\n\t\t\t\t$( this ).val( '' ).trigger( 'change' );\n\n\t\t\t\t// Show the header row.\n\t\t\t\ttoggle_header_row();\n\n\t\t\t\t// trigger a save event.\n\t\t\t\t$table.trigger( 'llms-save-autoenroll-courses' );\n\n\t\t\t} );\n\n\t\t\t// Make autoenrollment table sortable.\n\t\t\t$table.find( 'table tbody' ).sortable( {\n\t\t\t\thandle: '.llms-drag-handle',\n\t\t\t\t// Save order on stop.\n\t\t\t\tstop: function( event, ui ) {\n\t\t\t\t\tui.item.closest( '.llms-mb-list' ).trigger( 'llms-save-autoenroll-courses' );\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\t// Save courses & course order.\n\t\t\t$table.on( 'llms-save-autoenroll-courses', function() {\n\n\t\t\t\tvar $container = $( this );\n\n\t\t\t\tLLMS.Spinner.start( $container );\n\n\t\t\t\twindow.LLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'llms_save_membership_autoenroll_courses',\n\t\t\t\t\t\tcourses: get_course_ids(),\n\t\t\t\t\t},\n\t\t\t\t\terror: function( jqxhr, code, error_msg ) {\n\t\t\t\t\t\talert( error_msg );\n\t\t\t\t\t},\n\t\t\t\t\tcomplete: function() {\n\t\t\t\t\t\tLLMS.Spinner.stop( $container );\n\t\t\t\t\t},\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Actions for ORDERS\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.28.0\n\t\t */\n\t\tthis.bind_llms_order = function() {\n\n\t\t\t$( 'button[name=\"llms-refund-toggle\"]' ).on( 'click', function() {\n\n\t\t\t\tvar $btn = $( this ),\n\t\t\t\t\t$row = $btn.closest( 'tr' ),\n\t\t\t\t\ttxn_id = $row.attr( 'data-transaction-id' ),\n\t\t\t\t\trefundable_amount = $btn.attr( 'data-refundable' ),\n\t\t\t\t\tgateway_supports = ( '1' === $btn.attr( 'data-gateway-supports' ) ) ? true : false,\n\t\t\t\t\tgateway_title = $btn.attr( 'data-gateway' ),\n\t\t\t\t\t$new_row = $( '#llms-txn-refund-model .llms-txn-refund-form' ).clone(),\n\t\t\t\t\t$gateway_btn = $new_row.find( '.gateway-btn' );\n\n\t\t\t\t// configure and add the form\n\t\t\t\tif ( 'remove' !== $btn.attr( 'data-action' ) ) {\n\n\t\t\t\t\t$btn.text( LLMS.l10n.translate( 'Cancel' ) );\n\t\t\t\t\t$btn.attr( 'data-action', 'remove' );\n\t\t\t\t\t$new_row.find( 'input' ).removeAttr( 'disabled' );\n\t\t\t\t\t$new_row.find( 'input[name=\"llms_refund_amount\"]' ).attr( 'max', refundable_amount );\n\t\t\t\t\t$new_row.find( 'input[name=\"llms_refund_txn_id\"]' ).val( txn_id );\n\n\t\t\t\t\tif ( gateway_supports ) {\n\t\t\t\t\t\t$gateway_btn.find( '.llms-gateway-title' ).text( gateway_title );\n\t\t\t\t\t\t$gateway_btn.show();\n\t\t\t\t\t}\n\n\t\t\t\t\t$row.after( $new_row );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t$btn.text( LLMS.l10n.translate( 'Refund' ) );\n\t\t\t\t\t$btn.attr( 'data-action', '' );\n\t\t\t\t\t$row.next( 'tr' ).remove();\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t$( 'button[name=\"llms-manual-txn-toggle\"]' ).on( 'click', function() {\n\n\t\t\t\tvar $btn = $( this ),\n\t\t\t\t\t$row = $btn.closest( 'tr' ),\n\t\t\t\t\t$new_row = $( '#llms-manual-txn-model .llms-manual-txn-form' ).clone();\n\n\t\t\t\t// configure and add the form\n\t\t\t\tif ( 'remove' !== $btn.attr( 'data-action' ) ) {\n\n\t\t\t\t\t$btn.text( LLMS.l10n.translate( 'Cancel' ) );\n\t\t\t\t\t$btn.attr( 'data-action', 'remove' );\n\t\t\t\t\t$new_row.find( 'input' ).removeAttr( 'disabled' );\n\n\t\t\t\t\t$row.after( $new_row );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t$btn.text( LLMS.l10n.translate( 'Record a Manual Payment' ) );\n\t\t\t\t\t$btn.attr( 'data-action', '' );\n\t\t\t\t\t$row.next( 'tr' ).remove();\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t// cache the original value when focusing on a payment gateway select\n\t\t\t// used below so the original field related data can be restored when switching back to the originally selected gateway\n\t\t\t$( '.llms-metabox' ).one( 'focus', '.llms-metabox-field[data-llms-editable=\"payment_gateway\"] select', function() {\n\n\t\t\t\tif ( ! $( this ).attr( 'data-original-value' ) ) {\n\t\t\t\t\t$( this ).attr( 'data-original-value', $( this ).val() );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t// when selecting a new payment gateway get field data and update the dom to only display the fields\n\t\t\t// supported/needed by the newly selected gateway\n\t\t\t$( '.llms-metabox' ).on( 'change', '.llms-metabox-field[data-llms-editable=\"payment_gateway\"] select', function() {\n\n\t\t\t\tvar $select = $( this ),\n\t\t\t\t\tgateway = $select.val(),\n\t\t\t\t\tdata = JSON.parse( $select.closest( '.llms-metabox-field' ).attr( 'data-gateway-fields' ) ),\n\t\t\t\t\tgateway_data = data[ gateway ];\n\n\t\t\t\tfor ( var field in gateway_data ) {\n\n\t\t\t\t\tvar $field = $( 'input[name=\"' + gateway_data[ field ].name + '\"]' ),\n\t\t\t\t\t\t$wrap = $field.closest( '.llms-metabox-field' );\n\n\t\t\t\t\t// if the field is enabled show it the field and, if we're switching back to the originally selected\n\t\t\t\t\t// gateway, reload the value from the dom\n\t\t\t\t\tif ( gateway_data[ field ].enabled ) {\n\n\t\t\t\t\t\t$wrap.show();\n\t\t\t\t\t\t$field.attr( 'required', 'required' );\n\t\t\t\t\t\t$field.removeAttr( 'disabled' );\n\n\t\t\t\t\t\tif ( gateway === $select.attr( 'data-original-value' ) ) {\n\t\t\t\t\t\t\t$field.val( $wrap.attr( 'data-llms-editable-value' ) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// otherwise hide the field\n\t\t\t\t\t\t// this will ensure it gets updated in the database\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// always clear the value when switching\n\t\t\t\t\t\t// ensures that outdated data is removed from the DB\n\t\t\t\t\t\t$field.attr( 'value', '' );\n\n\t\t\t\t\t\t$field.removeAttr( 'required' );\n\t\t\t\t\t\t// $field.attr( 'disabled', 'disabled' );\n\t\t\t\t\t\t$wrap.hide();\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Re-initializes TinyMCE Editors found within metaboxes\n\t\t *\n\t\t * @since 4.19.0\n\t\t * @since 4.21.2 Improve early return dependency check.\n\t\t * @since 7.0.1 Add `undefined` condition on early return check.\n\t\t *\n\t\t * @link https://github.com/gocodebox/lifterlms/issues/1553\n\t\t * @link https://github.com/gocodebox/lifterlms/pull/1618\n\t\t * @link https://github.com/gocodebox/lifterlms/issues/2298\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\t this.bind_mce_fixes = function() {\n\n\t\t\t// We need `wp.data` to proceed.\n\t\t\tif ( undefined === wp.data || [ null, undefined ].includes( wp.data.select( 'core/edit-post' ) ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tLLMS.wait_for(\n\t\t\t\tfunction() {\n\t\t\t\t\treturn undefined !== wp.data.select( 'core/edit-post' ).getMetaBoxesPerLocation( 'normal' );\n\t\t\t\t},\n\t\t\t\tfunction() {\n\n\t\t\t\t\tvar shouldRun = false;\n\t\t\t\t\t\tfind = [ 'lifterlms-product', 'lifterlms-membership', 'lifterlms-course-options' ];\n\t\t\t\t\t\tmetaboxes = wp.data.select( 'core/edit-post' ).getMetaBoxesPerLocation( 'normal' );\n\n\t\t\t\t\t// Determine if we should run the fixer.\n\t\t\t\t\tfor ( var key in metaboxes ) {\n\t\t\t\t\t\tif ( -1 !== find.indexOf( metaboxes[ key ].id ) ) {\n\t\t\t\t\t\t\tshouldRun = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! shouldRun ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fix them.\n\t\t\t\t\tvar toFix = {};\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Determines if the TinyMCE instance should be fixed.\n\t\t\t\t\t *\n\t\t\t\t\t * @since 4.19.0\n\t\t\t\t\t *\n\t\t\t\t\t * @param {string} key Editor Key. This is the HTML id attribute of the textarea powering the editor instance.\n\t\t\t\t\t * @return {Boolean} Returns `true` if the editor should be fixed.\n\t\t\t\t\t */\n\t\t\t\t\tfunction llmsShouldFixTinyMCEEditor( key ) {\n\t\t\t\t\t\treturn ( 'excerpt' === key || -1 !== key.indexOf( 'llms' ) || -1 !== key.indexOf( 'lifterlms' ) )\n\t\t\t\t\t};\n\n\t\t\t\t\t// Loop through all the loaded editors.\n\t\t\t\t\tfor ( var key in tinyMCE.EditorManager.editors ) {\n\n\t\t\t\t\t\t// Mark LifterLMS editors to be fixed & de-init the editor.\n\t\t\t\t\t\tif ( llmsShouldFixTinyMCEEditor( key ) ) {\n\n\t\t\t\t\t\t\ttoFix[ key ] = tinyMCE.EditorManager.get( key );\n\t\t\t\t\t\t\ttinyMCE.EditorManager.execCommand( 'mceRemoveEditor', true, key );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// If we remove and re-init immediately it doesn't work, so we'll wait a bit and then re-init them all.\n\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\tfor ( var key in toFix ) {\n\t\t\t\t\t\t\ttinyMCE.EditorManager.init( toFix[ key ].settings || tinyMCE.EditorManager.settings );\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 500 );\n\n\t\t\t\t}\n\t\t\t);\n\n\t\t};\n\n\t\t/**\n\t\t * Binds custom llms merge code buttons\n\t\t *\n\t\t * @return void\n\t\t * @since 3.1.0\n\t\t * @version 3.9.2\n\t\t */\n\t\tthis.bind_merge_code_buttons = function( $wrappers ) {\n\n\t\t\t$wrappers = $wrappers || $( '.llms-merge-code-wrapper' );\n\n\t\t\t$wrappers.find( '.llms-merge-code-button' ).on( 'click', function() {\n\n\t\t\t\t$( this ).next( '.llms-merge-codes' ).toggleClass( 'active' );\n\n\t\t\t} );\n\n\t\t\t$wrappers.find( '.llms-merge-codes li' ).on( 'click', function() {\n\n\t\t\t\tvar $el = $( this ),\n\t\t\t\t\t$parent = $el.closest( '.llms-merge-codes' ),\n\t\t\t\t\ttarget = $parent.attr( 'data-target' ),\n\t\t\t\t\tcode = $el.attr( 'data-code' );\n\n\t\t\t\t// dealing with a tinymce instance\n\t\t\t\tif ( -1 === target.indexOf( '#' ) ) {\n\n\t\t\t\t\tvar editor = window.tinymce.editors[ target ];\n\t\t\t\t\tif ( editor ) {\n\t\t\t\t\t\teditor.insertContent( code );\n\t\t\t\t\t} // fallback in case we can't access the editor directly\n\t\t\t\t\telse {\n\t\t\t\t\t\talert( LLMS.l10n.translate( 'Copy this code and paste it into the desired area' ) + ': ' + code );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t\t// dealing with a DOM id\n\t\t\t\telse {\n\n\t\t\t\t\t$( target ).val( $( target ).val() + code );\n\n\t\t\t\t}\n\n\t\t\t\t$parent.removeClass( 'active' );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind metabox tabs\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.bind_tabs = function() {\n\t\t\t$( '.llms-nav-tab-wrapper .tabs li' ).on( 'click', function() {\n\n\t\t\t\tvar $btn = $( this ),\n\t\t\t\t\t$metabox = $btn.closest( '.llms-mb-container' ),\n\t\t\t\t\ttab_id = $btn.attr( 'data-tab' );\n\n\t\t\t\t$btn.siblings().removeClass( 'llms-active' );\n\n\t\t\t\t$metabox.find( '.tab-content' ).removeClass( 'llms-active' );\n\n\t\t\t\t$btn.addClass( 'llms-active' );\n\t\t\t\t$( '#' + tab_id ).addClass( 'llms-active' );\n\n\t\t\t} );\n\t\t};\n\n\t\t/**\n\t\t * Enable WP Post Table searches for applicable select2 boxes\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.21.0 Unknown.\n\t\t * @since 6.0.0 Show element at 100% width if not displaying a view button.\n\t\t * @since 7.1.1 Fixed `home_url` for view button.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.post_select = function( $el ) {\n\n\t\t\tvar multi = 'multiple' === $el.attr( 'multiple' ),\n\t\t\t\tnoViewBtn = $el.attr( 'data-no-view-button' );\n\n\t\t\t$el.llmsPostsSelect2( {\n\t\t\t\twidth: multi || noViewBtn ? '100%' : '65%',\n\t\t\t} );\n\n\t\t\tif ( multi || noViewBtn ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// add a \"View\" button to see what the selected page looks like\n\t\t\tvar msg = LLMS.l10n.translate( 'View' ),\n\t\t\t\t$btn = $( '' + msg + ' ' );\n\t\t\t$el.next( '.select2' ).after( $btn );\n\n\t\t\t$el.on( 'change', function() {\n\t\t\t\tvar id = $( this ).val();\n\t\t\t\tif ( id ) {\n\t\t\t\t\t$btn.attr( 'href', window.llms.home_url + '/?p=' + id ).show();\n\t\t\t\t} else {\n\t\t\t\t\t$btn.hide();\n\t\t\t\t}\n\t\t\t} ).trigger( 'change' );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind dom events for .llms-tables\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.bind_tables = function() {\n\n\t\t\t$( '.llms-table button[name=\"llms-expand-table\"]' ).on( 'click', function() {\n\n\t\t\t\tvar $btn = $( this ),\n\t\t\t\t\t$table = $btn.closest( '.llms-table' )\n\n\t\t\t\t// switch the text on the button if alt text is found\n\t\t\t\tif ( $btn.attr( 'data-text' ) ) {\n\t\t\t\t\tvar text = $btn.text();\n\t\t\t\t\t$btn.text( $btn.attr( 'data-text' ) );\n\t\t\t\t\t$btn.attr( 'data-text', text );\n\t\t\t\t}\n\n\t\t\t\t// switch classes on all expandable elements\n\t\t\t\t$table.find( '.expandable' ).each( function() {\n\n\t\t\t\t\tif ( $( this ).hasClass( 'closed' ) ) {\n\t\t\t\t\t\t$( this ).addClass( 'opened' ).removeClass( 'closed' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$( this ).addClass( 'closed' ).removeClass( 'opened' );\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t// go\n\t\tthis.init();\n\n\t};\n\n\t// initialize the object\n\twindow.llms.metaboxes = new Metaboxes();\n\n} )( jQuery );\n"],"sourceRoot":"../../js/private"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-metaboxes.min.js.map b/assets/maps/js/llms-metaboxes.min.js.map
new file mode 100644
index 0000000000..7eaaeeeb7d
--- /dev/null
+++ b/assets/maps/js/llms-metaboxes.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["llms-metaboxes.js"],"names":["$","document","ready","val","hide","fn","llmsCollapsible","this","on","$parent","closest","$siblings","siblings","toggleClass","trigger","find","slideToggle","each","removeClass","slideUp","window","llms","metaboxes","repeaters","$repeaters","init","self","length","LLMS","wait_for","tinyMCE","load","bind","attr","handle_submit","$repeater","$rows","add_row","sortable","handle","items","start","event","ui","addClass","stop","item","ed_id","EditorManager","execCommand","save","e","stopPropagation","$row","confirm","l10n","translate","remove","setTimeout","data","expand","$model","clone_row","new_index","editor","reindex","key","$field","hasClass","i","append","title","bind_row","bind_row_header","llmsSelect2","width","llmsStudentsSelect2","bind_datepickers","bind_controllers","$title","text","$ed","clone","wait","$btn","$spinner","parent","is","removeAttr","preventDefault","setInterval","clearInterval","off","store","obj","index","old_index","replace_attr","$el","str","replace","serialize","rows","name","editors","getContent","push","action","cb","store_action","Ajax","call","beforeSend","Spinner","success","r","bindings","post_select","bind_tabs","bind_mce_fixes","selector","func","$selector","reduced","filter","post","post_type","bind_cb_controllers","$controllers","$cb","$controlled","slideDown","possible","vals","indexOf","split","bind_datepicker","format","maxDate","minDate","datepicker","dateFormat","$datepickers","bind_editables","$fields","make_editable","min_date","max_date","$label","type","required","options","JSON","parse","$input","$picker","date","hour","minute","empty","bind_llms_engagement","engagement_type","$select","cpt","bind_llms_membership","$table","toggle_header_row","first","show","get_course_ids","courses","$container","course_id","fadeOut","prepend","message","replaceWith","id","alert","%s","$tr","admin_url","error","jqxhr","code","error_msg","complete","bind_llms_order","txn_id","refundable_amount","gateway_supports","gateway_title","$new_row","$gateway_btn","after","next","one","field","gateway","gateway_data","$wrap","enabled","undefined","wp","includes","select","getMetaBoxesPerLocation","shouldRun","toFix","get","settings","bind_merge_code_buttons","$wrappers","target","tinymce","insertContent","$metabox","tab_id","multi","noViewBtn","llmsPostsSelect2","msg","home_url","bind_tables","jQuery"],"mappings":"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","file":"../../js/llms-metaboxes.min.js","sourcesContent":["/**\n * LifterLMS Admin Panel Metabox Functions\n *\n * @since 3.0.0\n * @version 7.1.1\n */\n ( function( $ ) {\n\n\t $( document ).ready( function() {\n\t\t // Avoid confusion by hiding the visibility option for coupons and vouchers if currently set to public.\n\t\t if ( $( 'input[name=\"visibility\"]:checked' ).val() === 'public' ) {\n\t\t\t $( 'body.post-type-llms_coupon #visibility, body.post-type-llms_voucher #visibility' ).hide();\n\t\t }\n\t } );\n\n\t /**\n\t * jQuery plugin to allow \"collapsible\" sections\n\t *\n\t * @return jQuery object\n\t * @since 3.0.0\n\t * @version 3.29.0\n\t */\n\t$.fn.llmsCollapsible = function() {\n\n\t\tvar $group = this;\n\n\t\tthis.on( 'click', '.llms-collapsible-header', function() {\n\n\t\t\tvar $parent = $( this ).closest( '.llms-collapsible' ),\n\t\t\t\t$siblings = $parent.siblings( '.llms-collapsible' );\n\n\t\t\t$parent.toggleClass( 'opened' ).trigger( 'llms-collapsible-toggled' );\n\n\t\t\t$parent.find( '.llms-collapsible-body' ).slideToggle( 400 );\n\n\t\t\t$siblings.each( function() {\n\t\t\t\t$( this ).removeClass( 'opened' );\n\t\t\t\t$( this ).find( '.llms-collapsible-body' ).slideUp( 400 );\n\t\t\t} );\n\n\t\t} );\n\n\t\treturn this;\n\n\t};\n\n\twindow.llms = window.llms || {};\n\n\tvar Metaboxes = function() {\n\n\t\t/**\n\t\t * load all partials\n\t\t */\n\t\t/**\n\t\t * LifterLMS Admin Metabox Repeater Field\n\t\t *\n\t\t * @package LifterLMS/Scripts/Partials\n\t\t *\n\t\t * @since 3.11.0\n\t\t * @version 5.3.2\n\t\t */\n\t\t\n\t\tthis.repeaters = {\n\t\t\n\t\t\t/**\n\t\t\t * Reference to the parent metabox class\n\t\t\t *\n\t\t\t * @type {Object}\n\t\t\t */\n\t\t\tmetaboxes: this,\n\t\t\n\t\t\t/**\n\t\t\t * A jQuery selector for all repeater elements on the current screen\n\t\t\t *\n\t\t\t * @type {Object}\n\t\t\t */\n\t\t\t$repeaters: null,\n\t\t\n\t\t\t/**\n\t\t\t * Init\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t * @since 3.23.0 Unknown.\n\t\t\t *\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tinit: function() {\n\t\t\n\t\t\t\tvar self = this;\n\t\t\n\t\t\t\tself.$repeaters = $( '.llms-mb-list.repeater' );\n\t\t\n\t\t\t\tif ( self.$repeaters.length ) {\n\t\t\n\t\t\t\t\t// Wait for tinyMCE just in case their editors in the repeaters.\n\t\t\t\t\tLLMS.wait_for(\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\treturn ( 'undefined' !== typeof tinyMCE );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tself.load();\n\t\t\t\t\t\t\tself.bind();\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\n\t\t\t\t\t/**\n\t\t\t\t\t * On click of any post submit buttons add some data to the submit button\n\t\t\t\t\t * so we can see which button to trigger after repeaters are finished.\n\t\t\t\t\t */\n\t\t\t\t\t$( '#post input[type=\"submit\"], #post-preview' ).on( 'click', function() {\n\t\t\t\t\t\t$( this ).attr( 'data-llms-clicked', 'yes' );\n\t\t\t\t\t} );\n\t\t\n\t\t\t\t\t// Handle post submission.\n\t\t\t\t\t$( '#post' ).on( 'submit', self.handle_submit );\n\t\t\n\t\t\t\t}\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Bind DOM Events\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t * @since 3.13.0 Unknown.\n\t\t\t * @since 5.3.2 Don't remove the model's mceEditor instance (it's removed before cloning a row now).\n\t\t\t *\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tbind: function() {\n\t\t\n\t\t\t\tvar self = this;\n\t\t\n\t\t\t\tself.$repeaters.each( function() {\n\t\t\n\t\t\t\t\tvar $repeater = $( this ),\n\t\t\t\t\t\t$rows = $repeater.find( '.llms-repeater-rows' );\n\t\t\n\t\t\t\t\t// For the repeater + button.\n\t\t\t\t\t$repeater.find( '.llms-repeater-new-btn' ).on( 'click', function() {\n\t\t\t\t\t\tself.add_row( $repeater, null, true );\n\t\t\t\t\t} );\n\t\t\n\t\t\t\t\t// Make repeater rows sortable.\n\t\t\t\t\t$rows.sortable( {\n\t\t\t\t\t\thandle: '.llms-drag-handle',\n\t\t\t\t\t\titems: '.llms-repeater-row',\n\t\t\t\t\t\tstart: function( event, ui ) {\n\t\t\t\t\t\t\t$rows.addClass( 'dragging' );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tstop: function( event, ui ) {\n\t\t\t\t\t\t\t$rows.removeClass( 'dragging' );\n\t\t\n\t\t\t\t\t\t\tvar $eds = ui.item.find( 'textarea.wp-editor-area' );\n\t\t\t\t\t\t\t$eds.each( function() {\n\t\t\t\t\t\t\t\tvar ed_id = $( this ).attr( 'id' );\n\t\t\t\t\t\t\t\ttinyMCE.EditorManager.execCommand( 'mceRemoveEditor', true, ed_id );\n\t\t\t\t\t\t\t\ttinyMCE.EditorManager.execCommand( 'mceAddEditor', true, ed_id );\n\t\t\t\t\t\t\t} );\n\t\t\n\t\t\t\t\t\t\tself.save( $repeater );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\n\t\t\t\t\t$repeater.on( 'click', '.llms-repeater-remove', function( e ) {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tvar $row = $( this ).closest( '.llms-repeater-row' );\n\t\t\t\t\t\tif ( window.confirm( LLMS.l10n.translate( 'Are you sure you want to delete this row? This cannot be undone.' ) ) ) {\n\t\t\t\t\t\t\t$row.remove();\n\t\t\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t\t\tself.save( $repeater );\n\t\t\t\t\t\t\t}, 1 );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\n\t\t\t\t} );\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Add a new row to a repeater rows group\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t * @since 5.3.2 Use `self.clone_row()` to retrieve the model's base HTML for the row to be added.\n\t\t\t *\n\t\t\t * @param {Object} $repeater A jQuery selector for the repeater to add a row to.\n\t\t\t * @param {Object} data Optional object of data to fill fields in the row with.\n\t\t\t * @param {Boolean} expand If true, will automatically open the row after adding it to the dom.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tadd_row: function( $repeater, data, expand ) {\n\t\t\n\t\t\t\tvar self = this,\n\t\t\t\t\t$rows = $repeater.find( '.llms-repeater-rows' ),\n\t\t\t\t\t$model = $repeater.find( '.llms-repeater-model' ),\n\t\t\t\t\t$row = self.clone_row( $model.find( '.llms-repeater-row' ) ),\n\t\t\t\t\tnew_index = $repeater.find( '.llms-repeater-row' ).length,\n\t\t\t\t\teditor = self.reindex( $row, new_index );\n\t\t\n\t\t\t\tif ( data ) {\n\t\t\t\t\t$.each( data, function( key, val ) {\n\t\t\n\t\t\t\t\t\tvar $field = $row.find( '[name^=\"' + key + '\"]' );\n\t\t\n\t\t\t\t\t\tif ( $field.hasClass( 'llms-select2-student' ) ) {\n\t\t\t\t\t\t\t$.each( val, function( i, data ) {\n\t\t\t\t\t\t\t\t$field.append( '' + data.title + ' ' )\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t$field.trigger( 'change' );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$field.val( val );\n\t\t\t\t\t\t}\n\t\t\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\tself.bind_row( $row );\n\t\t\t\t}, 1 );\n\t\t\n\t\t\t\t$rows.append( $row );\n\t\t\t\tif ( expand ) {\n\t\t\t\t\t$row.find( '.llms-collapsible-header' ).trigger( 'click' );\n\t\t\t\t}\n\t\t\t\ttinyMCE.EditorManager.execCommand( 'mceAddEditor', true, editor );\n\t\t\n\t\t\t\t$repeater.trigger( 'llms-new-repeater-row', {\n\t\t\t\t\t$row: $row,\n\t\t\t\t\tdata: data,\n\t\t\t\t} );\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Bind DOM events for a single repeater row\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t * @since 3.13.0 Unknown.\n\t\t\t *\n\t\t\t * @param {Object} $row A jQuery selector for the row.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tbind_row: function( $row ) {\n\t\t\n\t\t\t\tthis.bind_row_header( $row );\n\t\t\n\t\t\t\t$row.find( '.llms-select2' ).llmsSelect2( {\n\t\t\t\t\twidth: '100%',\n\t\t\t\t} );\n\t\t\n\t\t\t\t$row.find( '.llms-select2-student' ).llmsStudentsSelect2();\n\t\t\n\t\t\t\tthis.metaboxes.bind_datepickers( $row.find( '.llms-datepicker' ) );\n\t\t\t\tthis.metaboxes.bind_controllers( $row.find( '[data-is-controller]' ) );\n\t\t\t\t// This.metaboxes.bind_merge_code_buttons( $row.find( '.llms-merge-code-wrapper' ) );.\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Bind row header events\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t *\n\t\t\t * @param {Object} $row jQuery selector for the row.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tbind_row_header: function( $row ) {\n\t\t\n\t\t\t\t// Handle the title field binding.\n\t\t\t\tvar $title = $row.find( '.llms-repeater-title' ),\n\t\t\t\t\t$field = $row.find( '.llms-collapsible-header-title-field' );\n\t\t\n\t\t\t\t$title.attr( 'data-default', $title.text() );\n\t\t\n\t\t\t\t$field.on( 'keyup focusout blur', function() {\n\t\t\t\t\tvar val = $( this ).val();\n\t\t\t\t\tif ( ! val ) {\n\t\t\t\t\t\tval = $title.attr( 'data-default' );\n\t\t\t\t\t}\n\t\t\t\t\t$title.text( val );\n\t\t\t\t} ).trigger( 'keyup' );\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Create a copy of the model's row after removing any tinyMCE editor instances present in the model.\n\t\t\t *\n\t\t\t * @since 5.3.2\n\t\t\t *\n\t\t\t * @param {Object} $row A jQuery object of the row to be cloned.\n\t\t\t * @return {Object} A clone of the jQuery object.\n\t\t\t */\n\t\t\tclone_row: function( $row ) {\n\t\t\n\t\t\t\t$ed = $row.find( '.editor textarea' );\n\t\t\t\tif ( $ed.length ) {\n\t\t\t\t\ttinyMCE.EditorManager.execCommand( 'mceRemoveEditor', true, $ed.attr( 'id' ) );\n\t\t\t\t}\n\t\t\n\t\t\t\treturn $row.clone()\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Handle WP Post form submission to ensure repeaters are saved before submitting the form to save/publish the post\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t * @since 3.23.0 Unknown.\n\t\t\t *\n\t\t\t * @param {Object} e An event object.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\thandle_submit: function( e ) {\n\t\t\n\t\t\t\t// Get the button used to submit the form.\n\t\t\t\tvar $btn = $( '#post [data-llms-clicked=\"yes\"]' ),\n\t\t\t\t\t$spinner = $btn.parent().find( '.spinner' );\n\t\t\n\t\t\t\tif ( $btn.is( '#post-preview' ) ) {\n\t\t\t\t\t$btn.removeAttr( 'data-llms-clicked' );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\n\t\t\t\te.preventDefault();\n\t\t\n\t\t\t\t// Core UX to prevent multi-click/or the appearance of a delay.\n\t\t\t\t$( '#post input[type=\"submit\"]' ).addClass( 'disabled' ).attr( 'disabled', 'disabled' );\n\t\t\t\t$spinner.addClass( 'is-active' );\n\t\t\n\t\t\t\tvar self = window.llms.metaboxes.repeaters,\n\t\t\t\t\ti = 0,\n\t\t\t\t\twait;\n\t\t\n\t\t\t\tself.$repeaters.each( function() {\n\t\t\t\t\tself.save( $( this ) );\n\t\t\t\t} );\n\t\t\n\t\t\t\twait = setInterval( function() {\n\t\t\n\t\t\t\t\tif ( i >= 59 || ! $( '.llms-mb-list.repeater.processing' ).length ) {\n\t\t\n\t\t\t\t\t\tclearInterval( wait );\n\t\t\t\t\t\t$( '#post' ).off( 'submit', this.handle_submit );\n\t\t\t\t\t\t$spinner.removeClass( 'is-active' );\n\t\t\t\t\t\t$btn.removeClass( 'disabled' ).removeAttr( 'disabled' ).trigger( 'click' );\n\t\t\n\t\t\t\t\t} else {\n\t\t\n\t\t\t\t\t\ti++;\n\t\t\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}, 1000 );\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Load repeater data from the server and create rows in the DOM\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t * @since 3.12.1 Unknown.\n\t\t\t *\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tload: function() {\n\t\t\n\t\t\t\tvar self = this;\n\t\t\n\t\t\t\tself.$repeaters.each( function() {\n\t\t\n\t\t\t\t\tvar $repeater = $( this );\n\t\t\n\t\t\t\t\t// Ensure the repeater is only loaded once to prevent duplicates resulting from duplicating binding.\n\t\t\t\t\t// On certain sites which I cannot quite explain...\n\t\t\t\t\tif ( $repeater.hasClass( 'is-loaded' ) || $repeater.hasClass( 'processing' ) ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tself.store( $repeater, 'load', function( data ) {\n\t\t\n\t\t\t\t\t\t$repeater.addClass( 'is-loaded' );\n\t\t\n\t\t\t\t\t\t$.each( data.data, function( i, obj ) {\n\t\t\t\t\t\t\tself.add_row( $repeater, obj, false );\n\t\t\t\t\t\t} );\n\t\t\n\t\t\t\t\t\t// For each row within the repeater.\n\t\t\t\t\t\t$repeater.find( '.llms-repeater-rows .llms-repeater-row' ).each( function() {\n\t\t\t\t\t\t\tself.bind_row( $( this ) );\n\t\t\t\t\t\t} );\n\t\t\n\t\t\t\t\t} );\n\t\t\n\t\t\t\t} );\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Reindex a row\n\t\t\t *\n\t\t\t * Renames ids, attrs, and etc...\n\t\t\t *\n\t\t\t * Used when cloning the model for new rows.\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t *\n\t\t\t * @param {Object} $row jQuery selector for the row.\n\t\t\t * @param {string} index The index (or id) to use when renaming.\n\t\t\t * @return {string}\n\t\t\t */\n\t\t\treindex: function( $row, index ) {\n\t\t\n\t\t\t\tvar old_index = $row.attr( 'data-row-order' ),\n\t\t\t\t\t$ed = $row.find( '.llms-mb-list.editor textarea' );\n\t\t\n\t\t\t\ttinyMCE.EditorManager.execCommand( 'mceRemoveEditor', true, $ed.attr( 'id' ) );\n\t\t\n\t\t\t\tfunction replace_attr( $el, attr ) {\n\t\t\t\t\t$el.each( function() {\n\t\t\t\t\t\tvar str = $( this ).attr( attr );\n\t\t\t\t\t\t$( this ).attr( attr, str.replace( old_index, index ) );\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\n\t\t\t\t$row.attr( 'data-row-order', index );\n\t\t\n\t\t\t\treplace_attr( $row, 'data-row-order' );\n\t\t\n\t\t\t\treplace_attr( $row.find( 'button.insert-media' ), 'data-editor' );\n\t\t\n\t\t\t\treplace_attr( $row.find( 'input[name^=\"_llms\"], textarea[name^=\"_llms\"], select[name^=\"_llms\"]' ), 'id' );\n\t\t\t\treplace_attr( $row.find( 'input[name^=\"_llms\"], textarea[name^=\"_llms\"], select[name^=\"_llms\"]' ), 'name' );\n\t\t\t\treplace_attr( $row.find( '[data-controller]' ), 'data-controller' );\n\t\t\t\treplace_attr( $row.find( '[data-controller]' ), 'data-controller' );\n\t\t\t\treplace_attr( $row.find( 'button.wp-switch-editor' ), 'data-wp-editor-id' );\n\t\t\t\treplace_attr( $row.find( 'button.wp-switch-editor' ), 'id' );\n\t\t\t\treplace_attr( $row.find( '.wp-editor-tools' ), 'id' );\n\t\t\t\treplace_attr( $row.find( '.wp-editor-container' ), 'id' );\n\t\t\n\t\t\t\treturn $ed.attr( 'id' );\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Save a single repeaters data to the server\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t * @since 3.13.0 Unknown.\n\t\t\t *\n\t\t\t * @param {Object} $repeater jQuery selector for a repeater element.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tsave: function( $repeater ) {\n\t\t\t\t$repeater.trigger( 'llms-repeater-before-save', { $el: $repeater } );\n\t\t\t\tthis.store( $repeater, 'save' );\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * Convert a repeater element into an array of objects that can be saved to the database\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t *\n\t\t\t * @param {Object} $repeater A jQuery selector for a repeater element.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tserialize: function( $repeater ) {\n\t\t\n\t\t\t\tvar rows = [];\n\t\t\n\t\t\t\t$repeater.find( '.llms-repeater-rows .llms-repeater-row' ).each( function() {\n\t\t\n\t\t\t\t\tvar obj = {};\n\t\t\n\t\t\t\t\t// Easy...\n\t\t\t\t\t$( this ).find( 'input[name^=\"_llms\"], select[name^=\"_llms\"]' ).each( function() {\n\t\t\t\t\t\tobj[ $( this ).attr( 'name' ) ] = $( this ).val();\n\t\t\t\t\t} );\n\t\t\n\t\t\t\t\t// Check if the textarea is a tinyMCE instance.\n\t\t\t\t\t$( this ).find( 'textarea[name^=\"_llms\"]' ).each( function() {\n\t\t\n\t\t\t\t\t\tvar name = $( this ).attr( 'name' );\n\t\t\n\t\t\t\t\t\t// If it is an editor.\n\t\t\t\t\t\tif ( tinyMCE.editors[ name ] ) {\n\t\t\t\t\t\t\tobj[ name ] = tinyMCE.editors[ name ].getContent();\n\t\t\t\t\t\t\t// Grab the val of the textarea.\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tobj[ name ] = $( this ).val();\n\t\t\t\t\t\t}\n\t\t\n\t\t\t\t\t} );\n\t\t\n\t\t\t\t\trows.push( obj );\n\t\t\n\t\t\t\t} );\n\t\t\n\t\t\t\treturn rows;\n\t\t\n\t\t\t},\n\t\t\n\t\t\t/**\n\t\t\t * AJAX method for interacting with the repeater's handler on the server\n\t\t\t *\n\t\t\t * @since 3.11.0\n\t\t\t *\n\t\t\t * @param {Object} $repeater jQuery selector for the repeater element.\n\t\t\t * @param {string} action Action to call [save|load].\n\t\t\t * @param {Function} cb Callback function.\n\t\t\t * @return {void}\n\t\t\t */\n\t\t\tstore: function( $repeater, action, cb ) {\n\t\t\n\t\t\t\tcb = cb || function(){};\n\t\t\t\tvar self = this,\n\t\t\t\t\tdata = {\n\t\t\t\t\t\taction: $repeater.find( '.llms-repeater-field-handler' ).val(),\n\t\t\t\t\t\tstore_action: action,\n\t\t\t\t};\n\t\t\n\t\t\t\tif ( 'save' === action ) {\n\t\t\t\t\tdata.rows = self.serialize( $repeater );\n\t\t\t\t}\n\t\t\n\t\t\t\tLLMS.Ajax.call( {\n\t\t\t\t\tdata: data,\n\t\t\t\t\tbeforeSend: function() {\n\t\t\n\t\t\t\t\t\t$repeater.addClass( 'processing' );\n\t\t\t\t\t\tLLMS.Spinner.start( $repeater );\n\t\t\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( r ) {\n\t\t\n\t\t\t\t\t\tcb( r );\n\t\t\t\t\t\tLLMS.Spinner.stop( $repeater );\n\t\t\t\t\t\t$repeater.removeClass( 'processing' );\n\t\t\n\t\t\t\t\t}\n\t\t\n\t\t\t\t} );\n\t\t\n\t\t\t}\n\t\t\n\t\t};\n\t\tthis.repeaters.init();\n\t\t\n\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.13.0 Unknown.\n\t\t * @since 4.19.0 Add `this.bind_mce_fixes()`.\n\t\t * @since 5.3.0 Bind editables when editable buttons are present in addition to anchors.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.init = function() {\n\n\t\t\tvar self = this;\n\n\t\t\t$( '.llms-select2-post' ).each( function() {\n\t\t\t\tself.post_select( $( this ) );\n\t\t\t} );\n\n\t\t\t$( '.llms-collapsible-group' ).llmsCollapsible();\n\n\t\t\tthis.bind_tabs();\n\n\t\t\tthis.bind_mce_fixes();\n\n\t\t\t// bind everything better and less repetitively...\n\t\t\tvar bindings = [\n\t\t\t\t{\n\t\t\t\t\tselector: $( '.llms-datepicker' ),\n\t\t\t\t\tfunc: 'bind_datepickers',\n\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: $( '.llms-select2' ),\n\t\t\t\t\tfunc: function( $selector ) {\n\t\t\t\t\t\t$selector.llmsSelect2( {\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t} );\n\t\t\t\t\t},\n\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: $( '.llms-select2-student' ),\n\t\t\t\t\tfunc: function( $selector ) {\n\t\t\t\t\t\t$selector.llmsStudentsSelect2();\n\t\t\t\t\t}\n\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: $( 'input[type=\"checkbox\"][data-controls]' ),\n\t\t\t\t\tfunc: 'bind_cb_controllers',\n\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: $( '[data-is-controller]' ),\n\t\t\t\t\tfunc: 'bind_controllers',\n\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: $( '.llms-table' ),\n\t\t\t\t\tfunc: 'bind_tables',\n\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: $( '.llms-merge-code-wrapper' ),\n\t\t\t\t\tfunc: 'bind_merge_code_buttons',\n\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tselector: $( 'a.llms-editable, button.llms-editable' ),\n\t\t\t\t\tfunc: 'bind_editables',\n\t\t\t},\n\t\t\t];\n\n\t\t\t// bind all the bindables but don't bind things in repeaters\n\t\t\t$.each( bindings, function( index, obj ) {\n\n\t\t\t\tif ( obj.selector.length ) {\n\n\t\t\t\t\t// reduce the selector to exclude items in a repeater\n\t\t\t\t\tvar reduced = obj.selector.filter( function() {\n\t\t\t\t\t\treturn ( 0 === $( this ).closest( '.llms-repeater-model' ).length );\n\t\t\t\t\t} );\n\n\t\t\t\t\t// bind by string\n\t\t\t\t\tif ( 'string' === typeof obj.func ) {\n\t\t\t\t\t\tself[ obj.func ]( reduced );\n\t\t\t\t\t}\n\t\t\t\t\t// bind by an anonymous function\n\t\t\t\t\telse if ( 'function' === typeof obj.func ) {\n\t\t\t\t\t\tobj.func( reduced );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t// if a post type is set & a bind exists for it, bind it\n\t\t\tif ( window.llms.post.post_type ) {\n\n\t\t\t\tvar func = 'bind_' + window.llms.post.post_type;\n\n\t\t\t\tif ( 'function' === typeof this[func] ) {\n\n\t\t\t\t\tthis[func]();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Bind checkboxes that control the display of other elements\n\t\t *\n\t\t * @param obj $controllers jQuery selector for checkboxes to be bound as checkbox controllers\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.11.0\n\t\t */\n\t\tthis.bind_cb_controllers = function( $controllers ) {\n\n\t\t\t$controllers = $controllers || $( 'input[type=\"checkbox\"][data-controls]' );\n\n\t\t\t$controllers.each( function() {\n\n\t\t\t\tvar $cb = $( this ),\n\t\t\t\t\t$controlled = $( $cb.attr( 'data-controls' ) ).closest( '.llms-mb-list' );\n\n\t\t\t\t$cb.on( 'change', function() {\n\n\t\t\t\t\tif ( $( this ).is( ':checked' ) ) {\n\n\t\t\t\t\t\t$controlled.slideDown( 200 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t$controlled.slideUp( 200 );\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\t$cb.trigger( 'change' );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind elements that control the display of other elements\n\t\t *\n\t\t * @param obj $controllers jQuery selector for elements to be bound as checkbox controllers\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.11.0\n\t\t */\n\t\tthis.bind_controllers = function( $controllers ) {\n\n\t\t\t$controllers = $controllers || $( '[data-is-controller]' );\n\n\t\t\t$controllers.each( function() {\n\n\t\t\t\tvar $el = $( this ),\n\t\t\t\t\t$controlled = $( '[data-controller=\"#' + $el.attr( 'id' ) + '\"]' ),\n\t\t\t\t\tval;\n\n\t\t\t\t$el.on( 'change', function() {\n\n\t\t\t\t\tif ( 'checkbox' === $el.attr( 'type' ) ) {\n\n\t\t\t\t\t\tval = $el.is( ':checked' ) ? $el.val() : 'false';\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tval = $el.val();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t$controlled.each( function() {\n\n\t\t\t\t\t\tvar possible = $( this ).attr( 'data-controller-value' ),\n\t\t\t\t\t\t\tvals = [];\n\n\t\t\t\t\t\tif ( -1 !== possible.indexOf( ',' ) ) {\n\n\t\t\t\t\t\t\tvals = possible.split( ',' );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tvals.push( possible );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( -1 !== vals.indexOf( val ) ) {\n\n\t\t\t\t\t\t\t$( this ).slideDown( 200 );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t$( this ).slideUp( 200 );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t} );\n\n\t\t\t\t$el.trigger( 'change' );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind a single datepicker element\n\t\t *\n\t\t * @param obj $el jQuery selector for the input to bind the datepicker to\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.10.0\n\t\t */\n\t\tthis.bind_datepicker = function( $el ) {\n\t\t\tvar format = $el.attr( 'data-format' ) || 'mm/dd/yy',\n\t\t\t\tmaxDate = $el.attr( 'data-max-date' ) || null,\n\t\t\t\tminDate = $el.attr( 'data-min-date' ) || null;\n\t\t\t$el.datepicker( {\n\t\t\t\tdateFormat: format,\n\t\t\t\tmaxDate: maxDate,\n\t\t\t\tminDate: minDate,\n\t\t\t} );\n\t\t}\n\n\t\t/**\n\t\t * Bind all LifterLMS datepickers\n\t\t *\n\t\t * @param obj $datepickers jQuery selector for the elements to bind\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.11.0\n\t\t */\n\t\tthis.bind_datepickers = function( $datepickers ) {\n\n\t\t\tvar self = this;\n\n\t\t\t$datepickers = $datepickers || $( '.llms-datepicker' );\n\n\t\t\t$datepickers.each( function() {\n\t\t\t\tself.bind_datepicker( $( this ) );\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind llms-editable metabox fields and related dom interactions\n\t\t *\n\t\t * @since 3.10.0\n\t\t * @since 3.28.0 Unknown.\n\t\t * @since 5.3.0 Bind editables when editable buttons are present in addition to anchors.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.bind_editables = function() {\n\n\t\t\tvar self = this;\n\n\t\t\tfunction make_editable( $field ) {\n\n\t\t\t\tvar $label = $field.find( 'label' ).clone(),\n\t\t\t\t\tname = $field.attr( 'data-llms-editable' ),\n\t\t\t\t\ttype = $field.attr( 'data-llms-editable-type' ),\n\t\t\t\t\trequired = $field.attr( 'data-llms-editable-required' ) || 'no',\n\t\t\t\t\tval = $field.attr( 'data-llms-editable-value' ),\n\t\t\t\t\t$input;\n\n\t\t\t\trequired = ( 'yes' === required ) ? ' required=\"required\"' : '';\n\n\t\t\t\tif ( 'select' === type ) {\n\n\t\t\t\t\tvar options = JSON.parse( $field.attr( 'data-llms-editable-options' ) ),\n\t\t\t\t\t\tselected;\n\n\t\t\t\t\t$input = $( ' ' );\n\t\t\t\t\tfor ( var key in options ) {\n\t\t\t\t\t\tselected = val === key ? ' selected=\"selected\"' : '';\n\t\t\t\t\t\t$input.append( '' + options[ key ] + ' ' );\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( 'datetime' === type ) {\n\n\t\t\t\t\t$input = $( '
' );\n\n\t\t\t\t\tval = JSON.parse( val );\n\t\t\t\t\tvar format = $field.attr( 'data-llms-editable-date-format' ) || '',\n\t\t\t\t\t\tmin_date = $field.attr( 'data-llms-editable-date-min' ) || '',\n\t\t\t\t\t\tmax_date = $field.attr( 'data-llms-editable-date-max' ) || '';\n\n\t\t\t\t\t$picker = $( ' ' );\n\t\t\t\t\tself.bind_datepicker( $picker );\n\t\t\t\t\t$input.append( $picker );\n\t\t\t\t\t$input.append( '@ ' );\n\n\t\t\t\t\t$input.append( ' ' );\n\t\t\t\t\t$input.append( ': ' );\n\t\t\t\t\t$input.append( ' ' );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t$input = $( ' ' );\n\t\t\t\t}\n\n\t\t\t\t$field.empty().append( $label ).append( $input );\n\t\t\t\tif ( 'select' === type ) {\n\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t$input.trigger( 'change' );\n\t\t\t\t\t}, 100 );\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t\t$( 'a.llms-editable, button.llms-editable' ).on( 'click', function( e ) {\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\tvar $btn = $( this ),\n\t\t\t\t\t$fields;\n\n\t\t\t\tif ( $btn.attr( 'data-fields' ) ) {\n\t\t\t\t\t$fields = $( $btn.attr( 'data-fields' ) );\n\t\t\t\t} else {\n\t\t\t\t\t$fields = $btn.closest( '.llms-metabox-section' ).find( '[data-llms-editable]' );\n\t\t\t\t}\n\n\t\t\t\t$btn.remove();\n\n\t\t\t\t$fields.each( function() {\n\t\t\t\t\tmake_editable( $( this ) );\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind Engagement post type JS\n\t\t *\n\t\t * @return void\n\t\t * @since 3.1.0\n\t\t * @version 3.1.0\n\t\t */\n\t\tthis.bind_llms_engagement = function() {\n\n\t\t\tvar self = this;\n\n\t\t\t// when the engagement type changes we need to do some things to the UI\n\t\t\t$( '#_llms_engagement_type' ).on( 'change', function() {\n\n\t\t\t\t$( '#_llms_engagement' ).trigger( 'llms-engagement-type-change', $( this ).val() );\n\n\t\t\t} );\n\n\t\t\t// custom trigger when called when the engagement type changes\n\t\t\t$( '#_llms_engagement' ).on( 'llms-engagement-type-change', function( e, engagement_type ) {\n\n\t\t\t\tvar $select = $( this );\n\n\t\t\t\tswitch ( engagement_type ) {\n\n\t\t\t\t\t/**\n\t\t\t\t\t * core engagements related to a CPT\n\t\t\t\t\t */\n\t\t\t\t\tcase 'achievement':\n\t\t\t\t\tcase 'certificate':\n\t\t\t\t\tcase 'email':\n\n\t\t\t\t\t\tvar cpt = 'llms_' + engagement_type;\n\n\t\t\t\t\t\t$select.val( null ).attr( 'data-post-type', cpt ).trigger( 'change' );\n\t\t\t\t\t\tself.post_select( $select );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Allow other plugins and developers to hook into the engagement type change action\n\t\t\t\t\t */\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\t$select.trigger( 'llms-engagement-type-change-external', engagement_type );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Actions for memberships\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.30.0 Made autoenroll table sortable, added AJAX save for adding new courses.\n\t\t * @version 3.30.0\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.bind_llms_membership = function() {\n\n\t\t\tvar $table = $( '.llms-mb-list._llms_content_table' );\n\n\t\t\t/**\n\t\t\t * Hide/Show empty message header row depending on the number of rows in the tbody\n\t\t\t *\n\t\t\t * @since 3.30.0\n\t\t\t * @version 3.30.0\n\t\t\t *\n\t\t\t * @return void\n\t\t\t */\n\t\t\tfunction toggle_header_row() {\n\n\t\t\t\tvar $rows = $table.find( 'tbody tr' );\n\t\t\t\tif ( 1 === $rows.length ) {\n\t\t\t\t\t$rows.first().show();\n\t\t\t\t} else {\n\t\t\t\t\t$rows.first().hide();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Retrieve an array of course IDs in the table.\n\t\t\t *\n\t\t\t * @since 3.30.0\n\t\t\t * @version 3.30.0\n\t\t\t *\n\t\t\t * @return array\n\t\t\t */\n\t\t\tfunction get_course_ids() {\n\n\t\t\t\tvar courses = [];\n\t\t\t\t$table.find( 'tbody tr a[href=\"#llms-course-remove\"]' ).each( function() {\n\t\t\t\t\tcourses.push( $( this ).attr( 'data-id' ) );\n\t\t\t\t} );\n\t\t\t\treturn courses;\n\n\t\t\t}\n\n\t\t\t// On init, toggle the header row visibility.\n\t\t\ttoggle_header_row();\n\n\t\t\t// remove auto-enroll course\n\t\t\t$table.on( 'click', 'a[href=\"#llms-course-remove\"]', function( e ) {\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\tvar $el = $( this ),\n\t\t\t\t\t$row = $el.closest( 'tr' ),\n\t\t\t\t\t$container = $el.closest( '.llms-mb-list' );\n\n\t\t\t\tLLMS.Spinner.start( $container );\n\n\t\t\t\twindow.LLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'membership_remove_auto_enroll_course',\n\t\t\t\t\t\tcourse_id: $el.attr( 'data-id' ),\n\t\t\t\t\t},\n\t\t\t\t\tbeforeSend: function() {\n\n\t\t\t\t\t\t$container.find( 'p.error' ).remove();\n\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\t\tif ( r.success ) {\n\n\t\t\t\t\t\t\t$row.fadeOut( 200 );\n\t\t\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t\t\t$row.remove();\n\t\t\t\t\t\t\t\ttoggle_header_row();\n\t\t\t\t\t\t\t}, 400 );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t$container.prepend( '' + r.message + '
' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tLLMS.Spinner.stop( $container );\n\t\t\t\t\t},\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t\t// bulk enroll all members into a course\n\t\t\t$table.on( 'click', 'a[href=\"#llms-course-bulk-enroll\"]', function( e ) {\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\tvar $el = $( this ),\n\t\t\t\t\t$row = $el.closest( 'tr' ),\n\t\t\t\t\t$container = $el.closest( '.llms-mb-list' );\n\n\t\t\t\tif ( ! window.confirm( LLMS.l10n.translate( 'Click okay to enroll all active members into the selected course. Enrollment will take place in the background and you may leave your site after confirmation. This action cannot be undone!' ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tLLMS.Spinner.start( $container );\n\n\t\t\t\twindow.LLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'bulk_enroll_membership_into_course',\n\t\t\t\t\t\tcourse_id: $el.attr( 'data-id' ),\n\t\t\t\t\t},\n\t\t\t\t\tbeforeSend: function() {\n\t\t\t\t\t\t$container.find( 'p.error' ).remove();\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\t\tif ( r.success ) {\n\n\t\t\t\t\t\t\t$el.replaceWith( '' + r.data.message + ' ' );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t$container.prepend( '' + r.message + '
' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tLLMS.Spinner.stop( $container );\n\t\t\t\t\t},\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t\t// Add an item to the autoenroll table on select.\n\t\t\t$( '#_llms_auto_enroll' ).on( 'change', function() {\n\n\t\t\t\tvar id = $( this ).val(),\n\t\t\t\t\ttitle = $( this ).find( 'option[value=\"' + $( this ).val() + '\"]' ).text();\n\n\t\t\t\t// If there's no ID\n\t\t\t\tif ( ! id ) {\n\t\t\t\t\treturn;\n\t\t\t\t\t// Prevent Dupes.\n\t\t\t\t} else if ( -1 !== get_course_ids().indexOf( id ) ) {\n\n\t\t\t\t\talert( LLMS.l10n.replace( '\"%s\" is already in the course list.', { '%s': title } ) )\n\n\t\t\t\t\t// reset the select field.\n\t\t\t\t\t$( this ).val( '' ).trigger( 'change' );\n\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tvar $table = $( '.llms-mb-list._llms_content_table' );\n\t\t\t\t\t$tr = $( ' ' );\n\n\t\t\t\t$tr.append( ' ' );\n\t\t\t\t$tr.append( '' + title + ' ' );\n\t\t\t\t$tr.append( '' + LLMS.l10n.translate( 'Remove course' ) + ' ' + LLMS.l10n.translate( 'Enroll All Members' ) + ' ' );\n\n\t\t\t\t// append the element to the table.\n\t\t\t\t$table.find( 'table tbody' ).append( $tr );\n\n\t\t\t\t// reset the select field.\n\t\t\t\t$( this ).val( '' ).trigger( 'change' );\n\n\t\t\t\t// Show the header row.\n\t\t\t\ttoggle_header_row();\n\n\t\t\t\t// trigger a save event.\n\t\t\t\t$table.trigger( 'llms-save-autoenroll-courses' );\n\n\t\t\t} );\n\n\t\t\t// Make autoenrollment table sortable.\n\t\t\t$table.find( 'table tbody' ).sortable( {\n\t\t\t\thandle: '.llms-drag-handle',\n\t\t\t\t// Save order on stop.\n\t\t\t\tstop: function( event, ui ) {\n\t\t\t\t\tui.item.closest( '.llms-mb-list' ).trigger( 'llms-save-autoenroll-courses' );\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\t// Save courses & course order.\n\t\t\t$table.on( 'llms-save-autoenroll-courses', function() {\n\n\t\t\t\tvar $container = $( this );\n\n\t\t\t\tLLMS.Spinner.start( $container );\n\n\t\t\t\twindow.LLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'llms_save_membership_autoenroll_courses',\n\t\t\t\t\t\tcourses: get_course_ids(),\n\t\t\t\t\t},\n\t\t\t\t\terror: function( jqxhr, code, error_msg ) {\n\t\t\t\t\t\talert( error_msg );\n\t\t\t\t\t},\n\t\t\t\t\tcomplete: function() {\n\t\t\t\t\t\tLLMS.Spinner.stop( $container );\n\t\t\t\t\t},\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Actions for ORDERS\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.28.0\n\t\t */\n\t\tthis.bind_llms_order = function() {\n\n\t\t\t$( 'button[name=\"llms-refund-toggle\"]' ).on( 'click', function() {\n\n\t\t\t\tvar $btn = $( this ),\n\t\t\t\t\t$row = $btn.closest( 'tr' ),\n\t\t\t\t\ttxn_id = $row.attr( 'data-transaction-id' ),\n\t\t\t\t\trefundable_amount = $btn.attr( 'data-refundable' ),\n\t\t\t\t\tgateway_supports = ( '1' === $btn.attr( 'data-gateway-supports' ) ) ? true : false,\n\t\t\t\t\tgateway_title = $btn.attr( 'data-gateway' ),\n\t\t\t\t\t$new_row = $( '#llms-txn-refund-model .llms-txn-refund-form' ).clone(),\n\t\t\t\t\t$gateway_btn = $new_row.find( '.gateway-btn' );\n\n\t\t\t\t// configure and add the form\n\t\t\t\tif ( 'remove' !== $btn.attr( 'data-action' ) ) {\n\n\t\t\t\t\t$btn.text( LLMS.l10n.translate( 'Cancel' ) );\n\t\t\t\t\t$btn.attr( 'data-action', 'remove' );\n\t\t\t\t\t$new_row.find( 'input' ).removeAttr( 'disabled' );\n\t\t\t\t\t$new_row.find( 'input[name=\"llms_refund_amount\"]' ).attr( 'max', refundable_amount );\n\t\t\t\t\t$new_row.find( 'input[name=\"llms_refund_txn_id\"]' ).val( txn_id );\n\n\t\t\t\t\tif ( gateway_supports ) {\n\t\t\t\t\t\t$gateway_btn.find( '.llms-gateway-title' ).text( gateway_title );\n\t\t\t\t\t\t$gateway_btn.show();\n\t\t\t\t\t}\n\n\t\t\t\t\t$row.after( $new_row );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t$btn.text( LLMS.l10n.translate( 'Refund' ) );\n\t\t\t\t\t$btn.attr( 'data-action', '' );\n\t\t\t\t\t$row.next( 'tr' ).remove();\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t$( 'button[name=\"llms-manual-txn-toggle\"]' ).on( 'click', function() {\n\n\t\t\t\tvar $btn = $( this ),\n\t\t\t\t\t$row = $btn.closest( 'tr' ),\n\t\t\t\t\t$new_row = $( '#llms-manual-txn-model .llms-manual-txn-form' ).clone();\n\n\t\t\t\t// configure and add the form\n\t\t\t\tif ( 'remove' !== $btn.attr( 'data-action' ) ) {\n\n\t\t\t\t\t$btn.text( LLMS.l10n.translate( 'Cancel' ) );\n\t\t\t\t\t$btn.attr( 'data-action', 'remove' );\n\t\t\t\t\t$new_row.find( 'input' ).removeAttr( 'disabled' );\n\n\t\t\t\t\t$row.after( $new_row );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t$btn.text( LLMS.l10n.translate( 'Record a Manual Payment' ) );\n\t\t\t\t\t$btn.attr( 'data-action', '' );\n\t\t\t\t\t$row.next( 'tr' ).remove();\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t// cache the original value when focusing on a payment gateway select\n\t\t\t// used below so the original field related data can be restored when switching back to the originally selected gateway\n\t\t\t$( '.llms-metabox' ).one( 'focus', '.llms-metabox-field[data-llms-editable=\"payment_gateway\"] select', function() {\n\n\t\t\t\tif ( ! $( this ).attr( 'data-original-value' ) ) {\n\t\t\t\t\t$( this ).attr( 'data-original-value', $( this ).val() );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t// when selecting a new payment gateway get field data and update the dom to only display the fields\n\t\t\t// supported/needed by the newly selected gateway\n\t\t\t$( '.llms-metabox' ).on( 'change', '.llms-metabox-field[data-llms-editable=\"payment_gateway\"] select', function() {\n\n\t\t\t\tvar $select = $( this ),\n\t\t\t\t\tgateway = $select.val(),\n\t\t\t\t\tdata = JSON.parse( $select.closest( '.llms-metabox-field' ).attr( 'data-gateway-fields' ) ),\n\t\t\t\t\tgateway_data = data[ gateway ];\n\n\t\t\t\tfor ( var field in gateway_data ) {\n\n\t\t\t\t\tvar $field = $( 'input[name=\"' + gateway_data[ field ].name + '\"]' ),\n\t\t\t\t\t\t$wrap = $field.closest( '.llms-metabox-field' );\n\n\t\t\t\t\t// if the field is enabled show it the field and, if we're switching back to the originally selected\n\t\t\t\t\t// gateway, reload the value from the dom\n\t\t\t\t\tif ( gateway_data[ field ].enabled ) {\n\n\t\t\t\t\t\t$wrap.show();\n\t\t\t\t\t\t$field.attr( 'required', 'required' );\n\t\t\t\t\t\t$field.removeAttr( 'disabled' );\n\n\t\t\t\t\t\tif ( gateway === $select.attr( 'data-original-value' ) ) {\n\t\t\t\t\t\t\t$field.val( $wrap.attr( 'data-llms-editable-value' ) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// otherwise hide the field\n\t\t\t\t\t\t// this will ensure it gets updated in the database\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// always clear the value when switching\n\t\t\t\t\t\t// ensures that outdated data is removed from the DB\n\t\t\t\t\t\t$field.attr( 'value', '' );\n\n\t\t\t\t\t\t$field.removeAttr( 'required' );\n\t\t\t\t\t\t// $field.attr( 'disabled', 'disabled' );\n\t\t\t\t\t\t$wrap.hide();\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Re-initializes TinyMCE Editors found within metaboxes\n\t\t *\n\t\t * @since 4.19.0\n\t\t * @since 4.21.2 Improve early return dependency check.\n\t\t * @since 7.0.1 Add `undefined` condition on early return check.\n\t\t *\n\t\t * @link https://github.com/gocodebox/lifterlms/issues/1553\n\t\t * @link https://github.com/gocodebox/lifterlms/pull/1618\n\t\t * @link https://github.com/gocodebox/lifterlms/issues/2298\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\t this.bind_mce_fixes = function() {\n\n\t\t\t// We need `wp.data` to proceed.\n\t\t\tif ( undefined === wp.data || [ null, undefined ].includes( wp.data.select( 'core/edit-post' ) ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tLLMS.wait_for(\n\t\t\t\tfunction() {\n\t\t\t\t\treturn undefined !== wp.data.select( 'core/edit-post' ).getMetaBoxesPerLocation( 'normal' );\n\t\t\t\t},\n\t\t\t\tfunction() {\n\n\t\t\t\t\tvar shouldRun = false;\n\t\t\t\t\t\tfind = [ 'lifterlms-product', 'lifterlms-membership', 'lifterlms-course-options' ];\n\t\t\t\t\t\tmetaboxes = wp.data.select( 'core/edit-post' ).getMetaBoxesPerLocation( 'normal' );\n\n\t\t\t\t\t// Determine if we should run the fixer.\n\t\t\t\t\tfor ( var key in metaboxes ) {\n\t\t\t\t\t\tif ( -1 !== find.indexOf( metaboxes[ key ].id ) ) {\n\t\t\t\t\t\t\tshouldRun = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! shouldRun ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fix them.\n\t\t\t\t\tvar toFix = {};\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Determines if the TinyMCE instance should be fixed.\n\t\t\t\t\t *\n\t\t\t\t\t * @since 4.19.0\n\t\t\t\t\t *\n\t\t\t\t\t * @param {string} key Editor Key. This is the HTML id attribute of the textarea powering the editor instance.\n\t\t\t\t\t * @return {Boolean} Returns `true` if the editor should be fixed.\n\t\t\t\t\t */\n\t\t\t\t\tfunction llmsShouldFixTinyMCEEditor( key ) {\n\t\t\t\t\t\treturn ( 'excerpt' === key || -1 !== key.indexOf( 'llms' ) || -1 !== key.indexOf( 'lifterlms' ) )\n\t\t\t\t\t};\n\n\t\t\t\t\t// Loop through all the loaded editors.\n\t\t\t\t\tfor ( var key in tinyMCE.EditorManager.editors ) {\n\n\t\t\t\t\t\t// Mark LifterLMS editors to be fixed & de-init the editor.\n\t\t\t\t\t\tif ( llmsShouldFixTinyMCEEditor( key ) ) {\n\n\t\t\t\t\t\t\ttoFix[ key ] = tinyMCE.EditorManager.get( key );\n\t\t\t\t\t\t\ttinyMCE.EditorManager.execCommand( 'mceRemoveEditor', true, key );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// If we remove and re-init immediately it doesn't work, so we'll wait a bit and then re-init them all.\n\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\tfor ( var key in toFix ) {\n\t\t\t\t\t\t\ttinyMCE.EditorManager.init( toFix[ key ].settings || tinyMCE.EditorManager.settings );\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 500 );\n\n\t\t\t\t}\n\t\t\t);\n\n\t\t};\n\n\t\t/**\n\t\t * Binds custom llms merge code buttons\n\t\t *\n\t\t * @return void\n\t\t * @since 3.1.0\n\t\t * @version 3.9.2\n\t\t */\n\t\tthis.bind_merge_code_buttons = function( $wrappers ) {\n\n\t\t\t$wrappers = $wrappers || $( '.llms-merge-code-wrapper' );\n\n\t\t\t$wrappers.find( '.llms-merge-code-button' ).on( 'click', function() {\n\n\t\t\t\t$( this ).next( '.llms-merge-codes' ).toggleClass( 'active' );\n\n\t\t\t} );\n\n\t\t\t$wrappers.find( '.llms-merge-codes li' ).on( 'click', function() {\n\n\t\t\t\tvar $el = $( this ),\n\t\t\t\t\t$parent = $el.closest( '.llms-merge-codes' ),\n\t\t\t\t\ttarget = $parent.attr( 'data-target' ),\n\t\t\t\t\tcode = $el.attr( 'data-code' );\n\n\t\t\t\t// dealing with a tinymce instance\n\t\t\t\tif ( -1 === target.indexOf( '#' ) ) {\n\n\t\t\t\t\tvar editor = window.tinymce.editors[ target ];\n\t\t\t\t\tif ( editor ) {\n\t\t\t\t\t\teditor.insertContent( code );\n\t\t\t\t\t} // fallback in case we can't access the editor directly\n\t\t\t\t\telse {\n\t\t\t\t\t\talert( LLMS.l10n.translate( 'Copy this code and paste it into the desired area' ) + ': ' + code );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t\t// dealing with a DOM id\n\t\t\t\telse {\n\n\t\t\t\t\t$( target ).val( $( target ).val() + code );\n\n\t\t\t\t}\n\n\t\t\t\t$parent.removeClass( 'active' );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind metabox tabs\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.bind_tabs = function() {\n\t\t\t$( '.llms-nav-tab-wrapper .tabs li' ).on( 'click', function() {\n\n\t\t\t\tvar $btn = $( this ),\n\t\t\t\t\t$metabox = $btn.closest( '.llms-mb-container' ),\n\t\t\t\t\ttab_id = $btn.attr( 'data-tab' );\n\n\t\t\t\t$btn.siblings().removeClass( 'llms-active' );\n\n\t\t\t\t$metabox.find( '.tab-content' ).removeClass( 'llms-active' );\n\n\t\t\t\t$btn.addClass( 'llms-active' );\n\t\t\t\t$( '#' + tab_id ).addClass( 'llms-active' );\n\n\t\t\t} );\n\t\t};\n\n\t\t/**\n\t\t * Enable WP Post Table searches for applicable select2 boxes\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.21.0 Unknown.\n\t\t * @since 6.0.0 Show element at 100% width if not displaying a view button.\n\t\t * @since 7.1.1 Fixed `home_url` for view button.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.post_select = function( $el ) {\n\n\t\t\tvar multi = 'multiple' === $el.attr( 'multiple' ),\n\t\t\t\tnoViewBtn = $el.attr( 'data-no-view-button' );\n\n\t\t\t$el.llmsPostsSelect2( {\n\t\t\t\twidth: multi || noViewBtn ? '100%' : '65%',\n\t\t\t} );\n\n\t\t\tif ( multi || noViewBtn ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// add a \"View\" button to see what the selected page looks like\n\t\t\tvar msg = LLMS.l10n.translate( 'View' ),\n\t\t\t\t$btn = $( '' + msg + ' ' );\n\t\t\t$el.next( '.select2' ).after( $btn );\n\n\t\t\t$el.on( 'change', function() {\n\t\t\t\tvar id = $( this ).val();\n\t\t\t\tif ( id ) {\n\t\t\t\t\t$btn.attr( 'href', window.llms.home_url + '/?p=' + id ).show();\n\t\t\t\t} else {\n\t\t\t\t\t$btn.hide();\n\t\t\t\t}\n\t\t\t} ).trigger( 'change' );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind dom events for .llms-tables\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tthis.bind_tables = function() {\n\n\t\t\t$( '.llms-table button[name=\"llms-expand-table\"]' ).on( 'click', function() {\n\n\t\t\t\tvar $btn = $( this ),\n\t\t\t\t\t$table = $btn.closest( '.llms-table' )\n\n\t\t\t\t// switch the text on the button if alt text is found\n\t\t\t\tif ( $btn.attr( 'data-text' ) ) {\n\t\t\t\t\tvar text = $btn.text();\n\t\t\t\t\t$btn.text( $btn.attr( 'data-text' ) );\n\t\t\t\t\t$btn.attr( 'data-text', text );\n\t\t\t\t}\n\n\t\t\t\t// switch classes on all expandable elements\n\t\t\t\t$table.find( '.expandable' ).each( function() {\n\n\t\t\t\t\tif ( $( this ).hasClass( 'closed' ) ) {\n\t\t\t\t\t\t$( this ).addClass( 'opened' ).removeClass( 'closed' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$( this ).addClass( 'closed' ).removeClass( 'opened' );\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t// go\n\t\tthis.init();\n\n\t};\n\n\t// initialize the object\n\twindow.llms.metaboxes = new Metaboxes();\n\n} )( jQuery );\n"],"sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-notifications.min.js.map b/assets/maps/js/llms-notifications.min.js.map
new file mode 100644
index 0000000000..aacb60bf16
--- /dev/null
+++ b/assets/maps/js/llms-notifications.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-notifications.min.js","sources":["llms-notifications.js"],"sourcesContent":[";/**\n * LifterLMS Basic Notifications Displayer\n *\n * @since 3.8.0\n * @version 3.22.0\n */( function( $ ) {\n\n\tvar llms_notifications = function() {\n\n\t\tvar self = this,\n\t\t\tnotifications = [];\n\n\t\t/**\n\t\t * Bind dom events\n\t\t *\n\t\t * @return void\n\t\t * @since 3.8.0\n\t\t * @version 3.8.0\n\t\t */\n\t\tfunction bind_events() {\n\t\t\t$( 'body' ).on( 'click', '.llms-notification-dismiss', function() {\n\t\t\t\tself.dismiss( $( this ).closest( '.llms-notification' ) );\n\t\t\t} );\n\t\t};\n\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t * @since 3.8.0\n\t\t * @version 3.22.0\n\t\t */\n\t\tthis.init = function() {\n\n\t\t\tvar self = this;\n\n\t\t\tif ( ! this.is_user_logged_in() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( window.llms.queued_notifications ) {\n\t\t\t\tself.queue( window.llms.queued_notifications );\n\t\t\t\tself.show_all();\n\t\t\t}\n\n\t\t\tbind_events();\n\n\t\t};\n\n\t\t/**\n\t\t * Queue notifications to be displayed\n\t\t *\n\t\t * @param object new_notis array of notifications\n\t\t * @return void\n\t\t * @since 3.8.0\n\t\t * @version 3.8.0\n\t\t */\n\t\tthis.queue = function( new_notis ) {\n\n\t\t\tvar self = this;\n\n\t\t\tfor ( var n in new_notis ) {\n\n\t\t\t\tif ( ! new_notis.hasOwnProperty( n ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// add the new notification if it doesnt exist\n\t\t\t\tif ( false === self.notification_exists( new_notis[ n ].id ) ) {\n\n\t\t\t\t\tnotifications.push( new_notis[ n ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Dismiss a notification\n\t\t *\n\t\t * @param obj $el notification dom element\n\t\t * @return void\n\t\t * @since 3.8.0\n\t\t * @version 3.22.0\n\t\t */\n\t\tthis.dismiss = function( $el ) {\n\t\t\tvar self = this;\n\t\t\t$el.removeClass( 'visible' );\n\t\t\tsetTimeout( function() {\n\t\t\t\tself.reposition( $el.next( '.llms-notification.visible' ) );\n\t\t\t}, 10 );\n\t\t};\n\n\t\t/**\n\t\t * Determine if a notification already exists in the notifications array\n\t\t *\n\t\t * @param int id notification id\n\t\t * @return int|false index of the notification in the array OR false if not found\n\t\t * @since 3.8.0\n\t\t * @version 3.8.0\n\t\t */\n\t\tthis.notification_exists = function( id ) {\n\n\t\t\tfor ( var noti in notifications ) {\n\n\t\t\t\tif ( ! notifications.hasOwnProperty( noti ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ( id === notifications[ noti ].id ) {\n\t\t\t\t\treturn noti;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn false;\n\n\t\t};\n\n\t\t/**\n\t\t * Get the vertical offset (on screen) relative to an element\n\t\t * used for notification positioning\n\t\t *\n\t\t * @param obj $relative_el element to get an offset relative to\n\t\t * @return int\n\t\t * @since 3.8.0\n\t\t * @version 3.8.0\n\t\t */\n\t\tthis.get_offset = function( $relative_el ) {\n\n\t\t\tvar spacer = 12;\n\n\t\t\tif ( ! $relative_el ) {\n\t\t\t\t$relative_el = $( '.llms-notification.visible' ).last()\n\t\t\t}\n\n\t\t\tif ( ! $relative_el.offset() ) {\n\t\t\t\treturn 24;\n\t\t\t}\n\n\t\t\tvar top = $relative_el.offset().top,\n\t\t\t\theight = $relative_el.outerHeight();\n\n\t\t\treturn top + height + spacer;\n\n\t\t};\n\n\t\t/**\n\t\t * Determine if there are notifications to show\n\t\t *\n\t\t * @return Boolean\n\t\t * @since 3.8.0\n\t\t * @version 3.8.0\n\t\t */\n\t\tthis.has_notifications = function() {\n\t\t\treturn ( notifications.length );\n\t\t};\n\n\t\t/**\n\t\t * Determine if a user is logged in\n\t\t *\n\t\t * @return boolean\n\t\t * @since 3.8.0\n\t\t * @version 3.8.0\n\t\t */\n\t\tthis.is_user_logged_in = function() {\n\t\t\treturn $( 'body' ).hasClass( 'logged-in' );\n\t\t};\n\n\t\t/**\n\t\t * Reposition elements, starting with the specified element\n\t\t *\n\t\t * @param obj $start_el element to start repositioning with\n\t\t * @return void\n\t\t * @since 3.8.0\n\t\t * @version 3.8.0\n\t\t */\n\t\tthis.reposition = function( $start_el ) {\n\n\t\t\tvar self = this,\n\t\t\t\tselector = '.llms-notification.visible',\n\t\t\t\t$next_el;\n\n\t\t\tif ( ! $start_el.length ) {\n\t\t\t\t$start_el = $( selector ).first();\n\t\t\t}\n\n\t\t\t$start_el.css( 'top', self.get_offset( $start_el.prevAll( selector ).first() ) );\n\n\t\t\t$next_el = $start_el.next( selector );\n\t\t\tif ( $next_el.length ) {\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\tself.reposition( $next_el );\n\t\t\t\t}, 150 );\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Show all queued notifications\n\t\t *\n\t\t * @return void\n\t\t * @since 3.8.0\n\t\t * @version 3.8.0\n\t\t */\n\t\tthis.show_all = function() {\n\n\t\t\tvar self = this,\n\t\t\t\ti = 0,\n\t\t\t\tinterval;\n\n\t\t\tinterval = setInterval( function() {\n\n\t\t\t\tif ( i < notifications.length ) {\n\n\t\t\t\t\tif ( ! notifications[ i ].shown ) {\n\t\t\t\t\t\tnotifications[ i ].shown = true;\n\t\t\t\t\t\tself.show_one( notifications[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tclearInterval( interval );\n\n\t\t\t\t}\n\n\t\t\t}, 100 );\n\n\t\t}\n\n\t\t/**\n\t\t * Show a single notification\n\t\t *\n\t\t * @param object n notification object data\n\t\t * @return void\n\t\t * @since 3.8.0\n\t\t * @version 3.22.0\n\t\t */\n\t\tthis.show_one = function( n ) {\n\n\t\t\tvar self = this,\n\t\t\t\t$html = $( n.html );\n\n\t\t\t$html.find( 'a' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tvar $this = $( this );\n\t\t\t\twindow.location = $this.attr( 'href' );\n\t\t\t} );\n\n\t\t\t$( 'body' ).append( $html );\n\t\t\t$html.css( 'top', self.get_offset() );\n\n\t\t\tsetTimeout( function() {\n\t\t\t\t$html.addClass( 'visible' );\n\t\t\t}, 1 );\n\n\t\t\t// if it's auto dismissing, set up a dismissal\n\t\t\tif ( $html.attr( 'data-auto-dismiss' ) ) {\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\tself.dismiss( $html );\n\t\t\t\t}, $html.attr( 'data-auto-dismiss' ) );\n\t\t\t}\n\n\t\t}\n\n\t\t// initialize\n\t\tthis.init();\n\n\t\treturn this;\n\n\t};\n\n\twindow.llms = window.llms || {};\n\twindow.llms.notifications = new llms_notifications();\n\n} )( jQuery );\n"],"names":["$","window","llms","notifications","self","this","init","is_user_logged_in","queued_notifications","queue","show_all","on","dismiss","closest","new_notis","n","hasOwnProperty","notification_exists","id","push","$el","removeClass","setTimeout","reposition","next","noti","get_offset","$relative_el","last","offset","top","outerHeight","has_notifications","hasClass","$start_el","$next_el","selector","length","first","css","prevAll","i","interval","setInterval","shown","show_one","clearInterval","$html","html","find","e","preventDefault","$this","location","attr","append","addClass","jQuery"],"mappings":"AAKG,CAAA,SAAYA,GA6QdC,OAAOC,KAAqBD,OAAOC,MAAQ,GAC3CD,OAAOC,KAAKC,cAAgB,IA5QH,WAExB,IAAIC,EAAgBC,KACnBF,EAAgB,GAoQjB,OA9OAE,KAAKC,KAAO,WAIJD,KAAKE,kBAAkB,IAIzBN,OAAOC,KAAKM,uBANNH,KAOLI,MAAOR,OAAOC,KAAKM,oBAAqB,EAPnCH,KAQLK,SAAS,GAtBfV,EAAG,MAAO,EAAEW,GAAI,QAAS,6BAA8B,WACtDP,EAAKQ,QAASZ,EAAGK,IAAK,EAAEQ,QAAS,oBAAqB,CAAE,CACzD,CAAE,EAyBH,EAUAR,KAAKI,MAAQ,SAAUK,GAItB,IAFA,IAEUC,KAAKD,EAEPA,EAAUE,eAAgBD,CAAE,GAK9B,CAAA,IATKV,KASUY,oBAAqBH,EAAWC,GAAIG,EAAG,GAE1Df,EAAcgB,KAAML,EAAWC,EAAI,CAMtC,EAUAV,KAAKO,QAAU,SAAUQ,GACxB,IAAIhB,EAAOC,KACXe,EAAIC,YAAa,SAAU,EAC3BC,WAAY,WACXlB,EAAKmB,WAAYH,EAAII,KAAM,4BAA6B,CAAE,CAC3D,EAAG,EAAG,CACP,EAUAnB,KAAKY,oBAAsB,SAAUC,GAEpC,IAAM,IAAIO,KAAQtB,EAEjB,GAAOA,EAAca,eAAgBS,CAAK,GAIrCP,IAAOf,EAAesB,GAAOP,GACjC,OAAOO,EAKT,MAAO,CAAA,CAER,EAWApB,KAAKqB,WAAa,SAAUC,GAQ3B,OAHCA,EADMA,GACS3B,EAAG,4BAA6B,EAAE4B,KAAK,GAGnCC,OAAO,EAIdF,EAAaE,OAAO,EAAEC,IACzBH,EAAaI,YAAY,EAXtB,GAOL,EAQT,EASA1B,KAAK2B,kBAAoB,WACxB,OAAS7B,EAAqB,MAC/B,EASAE,KAAKE,kBAAoB,WACxB,OAAOP,EAAG,MAAO,EAAEiC,SAAU,WAAY,CAC1C,EAUA5B,KAAKkB,WAAa,SAAUW,GAE3B,IAECC,EAFG/B,EAAWC,KACd+B,EAAW,8BAIXF,EADMA,EAAUG,OAIjBH,EAHalC,EAAGoC,CAAS,EAAEE,MAAM,GAGvBC,IAAK,MAAOnC,EAAKsB,WAAYQ,EAAUM,QAASJ,CAAS,EAAEE,MAAM,CAAE,CAAE,GAE/EH,EAAWD,EAAUV,KAAMY,CAAS,GACtBC,QACbf,WAAY,WACXlB,EAAKmB,WAAYY,CAAS,CAC3B,EAAG,GAAI,CAGT,EASA9B,KAAKK,SAAW,WAEf,IAAIN,EAAOC,KACVoC,EAAO,EAGRC,EAAWC,YAAa,WAElBF,EAAItC,EAAckC,QAEflC,EAAesC,GAAIG,QACzBzC,EAAesC,GAAIG,MAAQ,CAAA,EAC3BxC,EAAKyC,SAAU1C,EAAesC,EAAI,GAEnCA,CAAC,IAIDK,cAAeJ,CAAS,CAI1B,EAAG,GAAI,CAER,EAUArC,KAAKwC,SAAW,SAAU9B,GAEzB,IAAIX,EAAQC,KACX0C,EAAQ/C,EAAGe,EAAEiC,IAAK,EAEnBD,EAAME,KAAM,GAAI,EAAEtC,GAAI,QAAS,SAAUuC,GACxCA,EAAEC,eAAe,EACbC,EAAcpD,EAAGK,IAAK,EAC1BJ,OAAOoD,SAAWD,EAAME,KAAM,MAAO,CACtC,CAAE,EAEFtD,EAAG,MAAO,EAAEuD,OAAQR,CAAM,EAC1BA,EAAMR,IAAK,MAAOnC,EAAKsB,WAAW,CAAE,EAEpCJ,WAAY,WACXyB,EAAMS,SAAU,SAAU,CAC3B,EAAG,CAAE,EAGAT,EAAMO,KAAM,mBAAoB,GACpChC,WAAY,WACXlB,EAAKQ,QAASmC,CAAM,CACrB,EAAGA,EAAMO,KAAM,mBAAoB,CAAE,CAGvC,EAGAjD,KAAKC,KAAK,EAEHD,IAER,CAKC,EAAGoD,MAAO","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-quiz-attempt-review.min.js.map b/assets/maps/js/llms-quiz-attempt-review.min.js.map
new file mode 100644
index 0000000000..4e4028c1fc
--- /dev/null
+++ b/assets/maps/js/llms-quiz-attempt-review.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-quiz-attempt-review.min.js","sources":["llms-quiz-attempt-review.js"],"sourcesContent":[";/**\n * Quiz attempt review / grading UI & UX\n *\n * @since 3.16.0\n * @since 3.30.3 Unknown.\n * @version 5.3.0\n */( function( $ ) {\n\n\t/**\n\t * Handle UX for graving quiz attempts.\n\t *\n\t * @since 3.16.0\n\t * @since 3.30.3 Improve grading UX\n\t */\n\tvar Grading = function() {\n\n\t\t/**\n\t\t * Bind DOM events\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.16.9 Unknown.\n\t\t * @return {Void}\n\t\t */\n\t\tfunction bind() {\n\n\t\t\t$( 'button[name=\"llms_quiz_attempt_action\"][value=\"llms_attempt_grade\"]' ).one( 'click', function( e ) {\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\t$( this ).addClass( 'grading' );\n\n\t\t\t\tsetup_fields();\n\n\t\t\t} );\n\n\t\t}\n\n\t\t/**\n\t\t * Create editable fields for grading / remarking\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 3.30.3 When starting a review only toggle first item if it's hidden and always automatically focus on the remarks field.\n\t\t * @since 5.3.0 Exclude removed question items.\n\t\t *\n\t\t * @return {Grading}\n\t\t */\n\t\tfunction setup_fields() {\n\n\t\t\t$els = $( '.llms-quiz-attempt-question:not(.type--content):not(.type--removed)' );\n\n\t\t\tif ( $els.length < 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar title = LLMS.l10n.translate( 'Remarks to Student' ),\n\t\t\t\tpoints = LLMS.l10n.translate( 'points' );\n\n\t\t\t$els.each( function() {\n\n\t\t\t\tvar id = $( this ).attr( 'data-question-id' ),\n\t\t\t\t\t$existing = $( this ).find( '.llms-quiz-attempt-answer-section.llms-remarks' ),\n\t\t\t\t\t$ui = $( '
' ),\n\t\t\t\t\t$textarea = $( '' )\n\t\t\t\t\tgradeable = ( 'yes' === $( this ).attr( 'data-grading-manual' ) );\n\n\t\t\t\t$ui.append( '' + title + ':
' )\n\t\t\t\t$ui.append( $textarea );\n\t\t\t\tif ( gradeable ) {\n\t\t\t\t\tvar pts = $( this ).attr( 'data-points-curr' ),\n\t\t\t\t\t\tmax = $( this ).attr( 'data-points' );\n\t\t\t\t\t$ui.append( ' / ' + max + ' ' + points );\n\t\t\t\t}\n\n\t\t\t\tif ( $existing.length ) {\n\n\t\t\t\t\t$textarea.text( $existing.find( '.llms-remarks' ).text() );\n\t\t\t\t\t$existing.replaceWith( $ui );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t$( this ).find( '.llms-quiz-attempt-question-main' ).append( $ui );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\tvar $els_first = $els.first();\n\t\t\tif ( ! $els_first.find( '.llms-quiz-attempt-question-main' ).is( ':visible' ) ) {\n\t\t\t\t// expand the first question toggle.\n\t\t\t\t$els_first.find( '.toggle-answer' ).trigger( 'click' );\n\t\t\t}\n\t\t\t// focus on its remark textarea.\n\t\t\t$els_first.find( '.llms-remarks-field' ).focus();\n\t\t}\n\n\t\tbind();\n\n\t\treturn this;\n\n\t};\n\n\twindow.llms = window.llms || {};\n\twindow.llms.grading = new Grading();\n\n} )( jQuery );\n"],"names":["$","window","llms","grading","one","e","title","points","preventDefault","this","addClass","$els","length","LLMS","l10n","translate","each","pts","max","id","attr","$existing","find","$ui","$textarea","gradeable","append","text","replaceWith","$els_first","first","is","trigger","focus","jQuery"],"mappings":"AAMG,CAAA,SAAYA,GA+FdC,OAAOC,KAAeD,OAAOC,MAAQ,GACrCD,OAAOC,KAAKC,QAAU,IAxFR,WAmFb,OAxECH,EAAG,qEAAsE,EAAEI,IAAK,QAAS,SAAUC,GAqBpG,IAQKC,EACHC,EA5BAF,EAAEG,eAAe,EAEjBR,EAAGS,IAAK,EAAEC,SAAU,SAAU,GAmB/BC,KAAOX,EAAG,qEAAsE,GAEtEY,OAAS,IAIfN,EAASO,KAAKC,KAAKC,UAAW,oBAAqB,EACtDR,EAASM,KAAKC,KAAKC,UAAW,QAAS,EAExCJ,KAAKK,KAAM,WAEV,IASKC,EACHC,EAVEC,EAAYnB,EAAGS,IAAK,EAAEW,KAAM,kBAAmB,EAClDC,EAAYrB,EAAGS,IAAK,EAAEa,KAAM,gDAAiD,EAC7EC,EAAYvB,EAAG,+DAAgE,EAC/EwB,EAAYxB,EAAG,sDAAwDmB,EAAK,gBAAiB,EAC7FM,UAAc,QAAUzB,EAAGS,IAAK,EAAEW,KAAM,qBAAsB,EAE/DG,EAAIG,OAAQ,8CAAgDpB,EAAQ,OAAQ,EAC5EiB,EAAIG,OAAQF,CAAU,EACjBC,YACAR,EAAMjB,EAAGS,IAAK,EAAEW,KAAM,kBAAmB,EAC5CF,EAAMlB,EAAGS,IAAK,EAAEW,KAAM,aAAc,EACrCG,EAAIG,OAAQ,uBAAyBP,EAAK,WAAaD,EAAM,kCAAoCD,EAAM,QAAUC,EAAM,IAAMX,CAAO,GAGhIc,EAAUT,QAEdY,EAAUG,KAAMN,EAAUC,KAAM,eAAgB,EAAEK,KAAK,CAAE,EACzDN,EAAUO,YAAaL,CAAI,GAI3BvB,EAAGS,IAAK,EAAEa,KAAM,kCAAmC,EAAEI,OAAQH,CAAI,CAInE,CAAE,GAEEM,EAAalB,KAAKmB,MAAM,GACVR,KAAM,kCAAmC,EAAES,GAAI,UAAW,GAE3EF,EAAWP,KAAM,gBAAiB,EAAEU,QAAS,OAAQ,EAGtDH,EAAWP,KAAM,qBAAsB,EAAEW,MAAM,EA3D/C,CAAE,EAgEIxB,IAER,CAKC,EAAGyB,MAAO","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-quiz.min.js.map b/assets/maps/js/llms-quiz.min.js.map
new file mode 100644
index 0000000000..7a39887732
--- /dev/null
+++ b/assets/maps/js/llms-quiz.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-quiz.min.js","sources":["llms-quiz.js"],"sourcesContent":[";/* global LLMS, $ */\n/* jshint strict: true */\n\n/**\n * Front End Quiz Class.\n *\n * @type {Object}\n *\n * @since 1.0.0\n * @version 7.8.0\n */( function( $ ) {\n\n\tvar quiz = {\n\n\t\t/**\n\t\t * Selector of all the available button elements\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$buttons: null,\n\n\t\t/**\n\t\t * Main Question Container Element.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$container: null,\n\n\t\t/**\n\t\t * Main Quiz container UI element.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$ui: null,\n\n\t\t/**\n\t\t * Attempt key for the current quiz.\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\tattempt_key: null,\n\n\t\t/**\n\t\t * Question ID of the current question.\n\t\t *\n\t\t * @type {Number}\n\t\t */\n\t\tcurrent_question: 0,\n\n\t\t/**\n\t\t * Total number of questions in the current quiz.\n\t\t *\n\t\t * @type {Number}\n\t\t */\n\t\ttotal_questions: 0,\n\n\t\t/**\n\t\t * Object of quiz question HTML.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tquestions: {},\n\n\t\t/**\n\t\t * Validator functions for question type.\n\t\t * Third party custom question types can register validators for use when answering questions.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\tvalidators: {},\n\n\t\t/**\n\t\t * Records current status of a quiz session.\n\t\t * If a user attempts to navigate away from a quiz\n\t\t * while taking the quiz they'll be warned that their progress\n\t\t * will not be saved if this status is not null.\n\t\t *\n\t\t * @type {Bool}\n\t\t */\n\t\tstatus: null,\n\n\t\t/**\n\t\t * Records if the quiz can be resumed.\n\t\t */\n\t\tresumable: null,\n\n\t\t/**\n\t\t * Flag if the user is exiting the quiz.\n\t\t */\n\t\texiting_quiz: false,\n\n\t\t/**\n\t\t * Bind DOM events.\n\t\t *\n\t\t * @since 1.0.0\n\t\t * @since 3.16.6 Unknown.\n\t\t * @since 7.8.0 Add quiz resume and hide leave warning if quiz is resumable.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tbind: function() {\n\n\t\t\tvar self = this;\n\n\t\t\t// Start quiz.\n\t\t\t$( '#llms_start_quiz' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.start_quiz();\n\t\t\t} );\n\n\t\t\t// Resume quiz.\n\t\t\t$( '#llms_resume_quiz' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.resume_quiz();\n\t\t\t} );\n\n\t\t\t// Draw quiz grade circular chart.\n\t\t\t$( '.llms-donut' ).each( function() {\n\t\t\t\tLLMS.Donut( $( this ) );\n\t\t\t} );\n\n\t\t\t// Redirect to attempt on attempt selection change.\n\t\t\t$( '#llms-quiz-attempt-select' ).on( 'change', function() {\n\t\t\t\tvar val = $( this ).val();\n\t\t\t\tif ( val ) {\n\t\t\t\t\twindow.location.href = val;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Warn when quiz is running and user tries to leave the page when quiz is not resumable.\n\t\t\t$( window ).on( 'beforeunload', function() {\n\t\t\t\tif ( self.status && ! self.exiting_quiz ) {\n\t\t\t\t\treturn LLMS.l10n.translate( 'Are you sure you wish to quit this quiz attempt?' );\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t} );\n\n\t\t\t// Complete the quiz attempt when user leaves if the quiz is running.\n\t\t\t$( window ).on( 'unload', function() {\n\t\t\t\tif ( self.status && ! self.resumable ) {\n\t\t\t\t\tself.complete_quiz();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t$( document ).on( 'llms-post-append-question', self.post_append_question );\n\n\t\t\t// Register validators.\n\t\t\tthis.register_validator( 'content', this.validate );\n\t\t\tthis.register_validator( 'choice', this.validate_choice );\n\t\t\tthis.register_validator( 'picture_choice', this.validate_choice );\n\t\t\tthis.register_validator( 'true_false', this.validate_choice );\n\n\t\t},\n\n\t\t/**\n\t\t * Add an error message to the UI\n\t\t *\n\t\t * @param string msg error message string\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tadd_error: function( msg ) {\n\n\t\t\tvar self = this;\n\n\t\t\tself.$container.find( '.llms-error' ).remove();\n\t\t\tvar $err = $( '' + msg + '
' );\n\t\t\t$err.on( 'click', 'a', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$err.fadeOut( '200' );\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t$err.remove();\n\t\t\t\t}, 210 );\n\t\t\t} );\n\t\t\tself.$container.append( $err );\n\n\t\t},\n\n\t\tsave_question: function( options ) {\n\t\t\tvar self = this,\n\t\t\t\t$question = this.$container.find( '.llms-question-wrapper' ),\n\t\t\t\ttype = $question.attr( 'data-type' ),\n\t\t\t\tvalid;\n\n\t\t\tif ( ! this.validators[ type ] ) {\n\t\t\t\tconsole.log( 'No validator registered for question type ' + type );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvalid = this.validators[ type ]( $question );\n\n\t\t\tvar requestData = {\n\t\t\t\taction: 'quiz_answer_question',\n\t\t\t\tanswer: valid.answer,\n\t\t\t\tattempt_key: self.attempt_key,\n\t\t\t\tquestion_id: $question.attr( 'data-id' ),\n\t\t\t\tquestion_type: $question.attr( 'data-type' ),\n\t\t\t};\n\n\t\t\tif ( options && options.exit_quiz ) {\n\t\t\t\trequestData.via_exit_quiz = true;\n\t\t\t}\n\n\t\t\tif ( options && options.previous_question ) {\n\t\t\t\trequestData.via_previous_question = true;\n\t\t\t}\n\n\t\t\tLLMS.Ajax.call( {\n\t\t\t\tdata: requestData,\n\t\t\t\tsuccess: function( r ) {\n\t\t\t\t\tif (options && typeof options.callback === 'function') {\n\t\t\t\t\t\toptions.callback();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Answer a Question\n\t\t *\n\t\t * @param obj $btn jQuery object for the \"Next Lesson\" button\n\t\t * @return void\n\t\t * @since 1.0.0\n\t\t * @version 3.16.6\n\t\t */\n\t\tanswer_question: function( $btn ) {\n\n\t\t\tvar self = this,\n\t\t\t\t$question = this.$container.find( '.llms-question-wrapper' ),\n\t\t\t\ttype = $question.attr( 'data-type' ),\n\t\t\t\tvalid;\n\n\t\t\tif ( ! this.validators[ type ] ) {\n\n\t\t\t\tconsole.log( 'No validator registered for question type ' + type );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tvalid = this.validators[ type ]( $question );\n\t\t\tif ( ! valid || true !== valid.valid || ! valid.answer ) {\n\t\t\t\treturn self.add_error( valid.valid );\n\t\t\t}\n\n\t\t\tLLMS.Ajax.call( {\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'quiz_answer_question',\n\t\t\t\t\tanswer: valid.answer,\n\t\t\t\t\tattempt_key: self.attempt_key,\n\t\t\t\t\tquestion_id: $question.attr( 'data-id' ),\n\t\t\t\t\tquestion_type: $question.attr( 'data-type' ),\n\t\t\t\t},\n\t\t\t\tbeforeSend: function() {\n\n\t\t\t\t\tvar msg = $btn.hasClass( 'llms-button-quiz-complete' ) ? LLMS.l10n.translate( 'Grading Quiz...' ) : LLMS.l10n.translate( 'Loading Question...' );\n\t\t\t\t\tself.toggle_loader( 'show', msg );\n\n\t\t\t\t\tself.update_progress_bar( 'increment' );\n\n\t\t\t\t},\n\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\tself.toggle_loader( 'hide' );\n\n\t\t\t\t\tif ( r.data && r.data.html ) {\n\n\t\t\t\t\t\t// load html from the cached questions if it exists already\n\t\t\t\t\t\tif ( r.data.question_id && self.questions[ 'q-' + r.data.question_id ] ) {\n\n\t\t\t\t\t\t\tself.load_question( self.questions[ 'q-' + r.data.question_id ] );\n\n\t\t\t\t\t\t\t// load html from server if the question's never been seen before\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.load_question( r.data.html );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else if ( r.data && r.data.redirect ) {\n\n\t\t\t\t\t\tself.redirect( r.data.redirect );\n\n\t\t\t\t\t} else if ( r.message ) {\n\n\t\t\t\t\t\tself.$container.append( '' + r.message + '
' );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tvar msg = LLMS.l10n.translate( 'An unknown error occurred. Please try again.' );\n\t\t\t\t\t\tself.$container.append( '' + msg + '
' );\n\n\t\t\t\t\t}\n\n\t\t\t\t},\n\t\t\t\terror: function ( jqXHR, status, error ) {\n\t\t\t\t\tself.reload_question();\n\t\t\t\t\tself.add_error( LLMS.l10n.translate( 'An unknown error occurred. Please try again.' ) );\n\t\t\t\t\tconsole.log( error );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Complete the quiz\n\t\t * Called when timed quizzes reach time limit\n\t\t * & during unload events to record the attempt as abandoned\n\t\t *\n\t\t * @return void\n\t\t * @since 1.0.0\n\t\t * @version 3.9.0\n\t\t */\n\t\tcomplete_quiz: function() {\n\n\t\t\tvar self = this;\n\n\t\t\tLLMS.Ajax.call( {\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'quiz_end',\n\t\t\t\t\tattempt_key: self.attempt_key,\n\t\t\t\t},\n\t\t\t\tbeforeSend: function() {\n\n\t\t\t\t\tself.toggle_loader( 'show', 'Grading Quiz...' );\n\n\t\t\t\t},\n\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\tself.toggle_loader( 'hide' );\n\n\t\t\t\t\tif ( r.data && r.data.redirect ) {\n\n\t\t\t\t\t\tself.redirect( r.data.redirect );\n\n\t\t\t\t\t} else if ( r.message ) {\n\n\t\t\t\t\t\tself.$container.append( '' + r.message + '
' );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tvar msg = LLMS.l10n.translate( 'An unknown error occurred. Please try again.' );\n\t\t\t\t\t\tself.$container.append( '' + msg + '
' );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t},\n\n\t\t/**\n\t\t * Retrieve the index of a question by question id\n\t\t *\n\t\t * @param int qid WP Post ID of the question\n\t\t * @return int\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tget_question_index: function( qid ) {\n\n\t\t\treturn Object.keys( this.questions ).indexOf( 'q-' + qid );\n\n\t\t},\n\n\t\t/**\n\t\t * Redirect on quiz completion / timeout\n\t\t *\n\t\t * @param string url redirect url\n\t\t * @return void\n\t\t * @since 3.9.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tredirect: function( url ) {\n\n\t\t\tthis.toggle_loader( 'show', 'Grading Quiz...' );\n\t\t\tthis.status = null;\n\t\t\twindow.location.href = url;\n\n\t\t},\n\n\t\treload_question: function() {\n\t\t\tvar self = this;\n\n\t\t\tself.toggle_loader( 'show', LLMS.l10n.translate( 'Loading Question...' ) );\n\t\t\tself.update_progress_bar( 'reload' );\n\n\t\t\tsetTimeout( function() {\n\t\t\t\tself.toggle_loader( 'hide' );\n\t\t\t\tself.load_question( self.questions[ 'q-' + self.current_question ] );\n\t\t\t}, 100 );\n\n\t\t},\n\n\t\t/**\n\t\t * Return to the previous question.\n\t\t *\n\t\t * @since 1.0.0\n\t\t * @since 3.16.6 Unknown.\n\t\t * @since 7.8.0 Retrieve question HTML from the server when not cached.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tprevious_question: function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.save_question( {\n\t\t\t\tprevious_question: true,\n\t\t\t\tcallback: function() {\n\n\t\t\t\t\tself.toggle_loader( 'show', LLMS.l10n.translate( 'Loading Question...' ) );\n\t\t\t\t\tself.update_progress_bar( 'decrement' );\n\n\t\t\t\t\tvar ids = Object.keys( self.questions ),\n\t\t\t\t\t\tcurr = ids.indexOf( 'q-' + self.current_question ),\n\t\t\t\t\t\tprev_id = ids[0];\n\n\t\t\t\t\tif ( curr >= 1 ) {\n\t\t\t\t\t\tprev_id = ids[ curr - 1 ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retrieve previous question HTML from the server.\n\t\t\t\t\tif ( ! self.questions[ prev_id ] ) {\n\t\t\t\t\t\tLLMS.Ajax.call( {\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\taction : 'quiz_get_question',\n\t\t\t\t\t\t\t\tattempt_key: self.attempt_key,\n\t\t\t\t\t\t\t\tquestion_id: prev_id.substring(2), // Remove 'q-'.\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\t\t\t\tself.toggle_loader( 'hide' );\n\t\t\t\t\t\t\t\tif ( r.data && r.data.html ) {\n\n\t\t\t\t\t\t\t\t\tself.load_question( r.data.html );\n\n\t\t\t\t\t\t\t\t} else if ( r.data && r.data.redirect ) {\n\n\t\t\t\t\t\t\t\t\tself.redirect( r.data.redirect );\n\n\t\t\t\t\t\t\t\t} else if ( r.message ) {\n\n\t\t\t\t\t\t\t\t\tself.$container.append( '' + r.message + '
' );\n\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tvar msg = LLMS.l10n.translate( 'An unknown error occurred. Please try again.' );\n\t\t\t\t\t\t\t\t\tself.$container.append( '' + msg + '
' );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t\t\tself.toggle_loader( 'hide' );\n\t\t\t\t\t\t\tself.load_question( self.questions[ prev_id ] );\n\t\t\t\t\t\t}, 100 );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Register question type validator functions\n\t\t *\n\t\t * @param string type question type id\n\t\t * @param function func callback function to validate the question with\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tregister_validator: function( type, func ) {\n\n\t\t\tthis.validators[ type ] = func;\n\n\t\t},\n\n\t\t/**\n\t\t * Start a Quiz.\n\t\t *\n * @since 1.0.0\n * @since 3.24.3 Unknown.\n\t\t * @since 7.8.0 Abstracted the function in `init_quiz`.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tstart_quiz: function () {\n\n\t\t\tthis.init_quiz( 'quiz_start' );\n\t\t},\n\n\t\t/**\n\t\t * Resume a Quiz.\n\t\t *\n\t\t * @since 7.8.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tresume_quiz: function () {\n\n\t\t\tthis.init_quiz( 'quiz_resume' );\n\t\t},\n\n\t\t/**\n\t\t * Initiate 'Start' or 'Resume' action on a Quiz via AJAX call.\n\t\t *\n\t\t * @since 7.8.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tinit_quiz: function ( action ) {\n\n\t\t\tvar self = this;\n\n\t\t\tif( 'quiz_resume' === action ) {\n\t\t\t\t// Disable resume button.\n\t\t\t\t$( '#llms_resume_quiz' ).attr( 'disabled', 'disabled' );\n\t\t\t}\n\n\t\t\tthis.load_ui_elements();\n\t\t\tthis.$ui = $( '#llms-quiz-ui' );\n\t\t\tthis.$buttons = $( '#llms-quiz-nav button' );\n\t\t\tthis.$container = $( '#llms-quiz-question-wrapper' );\n\n\t\t\t// Bind submission event for answering questions.\n\t\t\t$( '#llms-next-question, #llms-complete-quiz' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.answer_question( $( this ) );\n\t\t\t} );\n\n\t\t\t// Bind submission event for navigating backwards.\n\t\t\t$( '#llms-prev-question' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.previous_question();\n\t\t\t} );\n\n\t\t\t// Bind exit event for quiz.\n\t\t\t$( '#llms-quiz-nav' ).on( 'click', '#llms-exit-quiz', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.save_question( {\n\t\t\t\t\texit_quiz: true,\n\t\t\t\t\tcallback: function() {\n\t\t\t\t\t\tself.exiting_quiz = true;\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} );\n\n\t\t\tif ( 'quiz_resume' === action ) {\n\t\t\t\tdata = {\n\t\t\t\t\taction: 'quiz_resume',\n\t\t\t\t\tattempt_key: $( '#llms-attempt-key' ).val(),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tdata = {\n\t\t\t\t\taction: 'quiz_start',\n\t\t\t\t\tattempt_key: $( '#llms-attempt-key' ).val(),\n\t\t\t\t\tlesson_id : $( '#llms-lesson-id' ).val(),\n\t\t\t\t\tquiz_id : $( '#llms-quiz-id' ).val(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tLLMS.Ajax.call( {\n\t\t\t\tdata: data,\n\t\t\t\tbeforeSend: function() {\n\n\t\t\t\t\tself.status = true;\n\t\t\t\t\t$( '#llms-quiz-wrapper, #quiz-start-button, #quiz-resume-button' ).remove();\n\t\t\t\t\t$( 'html, body' ).stop().animate( {scrollTop: 0 }, 500 );\n\t\t\t\t\tself.toggle_loader( 'show', LLMS.l10n.translate( 'Loading Quiz...' ) );\n\n\t\t\t\t},\n\t\t\t\terror: function( r, s, t ) {\n\t\t\t\t\tconsole.log( r, s, t );\n\t\t\t\t},\n\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\tself.toggle_loader( 'hide' );\n\n\t\t\t\t\tif ( r.data && r.data.html ) {\n\n\t\t\t\t\t\tself.attempt_key = r.data.attempt_key;\n\t\t\t\t\t\tself.total_questions = r.data.total;\n\t\t\t\t\t\tself.resumable = r.data.can_be_resumed;\n\n\t\t\t\t\t\tif( 'quiz_resume' === action ) {\n\t\t\t\t\t\t\tr.data.question_ids.forEach( id => self.questions[`q-${id}`] = '' );\n\t\t\t\t\t\t} else if ( r.data.time_limit ) {\n\t\t\t\t\t\t\tself.start_quiz_timer( r.data.time_limit );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Adding Exit Button in Layout if quiz is resumable.\n\t\t\t\t\t\tif ( self.resumable ) {\n\t\t\t\t\t\t\t$( '#llms-quiz-nav' ).append( '' + LLMS.l10n.translate( 'Exit Quiz' ) + ' ' );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tself.load_question( r.data.html );\n\n\t\t\t\t\t\tif ( 'quiz_resume' === action ) {\n\t\t\t\t\t\t\tself.update_progress_bar( 'reload' );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else if ( r.message ) {\n\n\t\t\t\t\t\tself.$container.append( '' + r.message + '
' );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tvar msg = LLMS.l10n.translate( 'An unknown error occurred. Please try again.' );\n\t\t\t\t\t\tself.$container.append( '' + msg + '
' );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t/**\n\t\t\t * Use JS mouse events instead of CSS :hover because iOS is really smart\n\t\t\t *\n\t\t\t * @see: https://css-tricks.com/annoying-mobile-double-tap-link-issue/\n\t\t\t */\n\t\t\tif ( ! LLMS.is_touch_device() ) {\n\n\t\t\t\tthis.$ui.on( 'mouseenter', 'li.llms-choice label', function() {\n\t\t\t\t\t$( this ).addClass( 'hovered' );\n\t\t\t\t} );\n\t\t\t\tthis.$ui.on( 'mouseleave', 'li.llms-choice label', function() {\n\t\t\t\t\t$( this ).removeClass( 'hovered' );\n\t\t\t\t} );\n\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Start Quiz Timer\n\t\t * Gets minutes from hidden field\n\t\t * Not used as actual quiz timer. Quiz is timed on the server from the quiz class\n\t\t * Calculates minutes to milliseconds and then converts to hours / minutes\n\t\t * When time limit reaches 0 calls complete_quiz() to complete quiz.\n\t\t *\n\t\t * @return Calls get_count_down at a set interval of 1 second\n\t\t * @since 1.0.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tstart_quiz_timer: function( total_minutes ) {\n\n\t\t\t// create and append the UI for the countdown clock\n\t\t\tvar $el = $( '
' ),\n\t\t\t\tmsg = LLMS.l10n.translate( 'Time Remaining' );\n\n\t\t\t$el.append( '' + msg + ' ' );\n\t\t\t$el.append( '
' );\n\n\t\t\t$( '#llms-quiz-header' ).append( $el );\n\n\t\t\t// start the timer\n\t\t\tvar self = this,\n\t\t\t\ttarget_date = new Date().getTime() + ( ( total_minutes * 60 ) * 1000 ), // set the countdown date\n\t\t\t\ttime_limit = ( ( total_minutes * 60 ) * 1000 ),\n\t\t\t\tcountdown = document.getElementById( 'llms-tiles' ), // get tag element\n\t\t\t\tdays, hours, minutes, seconds; // variables for time units\n\n\t\t\t// set actual timer\n\t\t\tsetTimeout( function() {\n\t\t\t\tself.complete_quiz();\n\t\t\t}, time_limit + 1000 );\n\n\t\t\tthis.getCountdown(\n\t\t\t\ttotal_minutes,\n\t\t\t\ttarget_date,\n\t\t\t\ttime_limit,\n\t\t\t\tdays,\n\t\t\t\thours,\n\t\t\t\tminutes,\n\t\t\t\tseconds,\n\t\t\t\tcountdown\n\t\t\t);\n\n\t\t\t// call get_count_down every 1 second\n\t\t\tsetInterval( function () {\n\t\t\t\tself.getCountdown(\n\t\t\t\t\ttotal_minutes,\n\t\t\t\t\ttarget_date,\n\t\t\t\t\ttime_limit,\n\t\t\t\t\tdays,\n\t\t\t\t\thours,\n\t\t\t\t\tminutes,\n\t\t\t\t\tseconds,\n\t\t\t\t\tcountdown\n\t\t\t\t);\n\t\t\t}, 1000 );\n\t\t},\n\n\t\t/**\n\t\t * Trigger events\n\t\t *\n\t\t * @param string event event to trigger\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\ttrigger: function( event ) {\n\n\t\t\tvar self = this;\n\n\t\t\t// trigger question submission for the current question\n\t\t\tif ( 'answer_question' === event ) {\n\n\t\t\t\tif ( this.get_question_index( self.current_question ) === self.total_questions ) {\n\n\t\t\t\t\t$( '#llms-complete-quiz' ).trigger( 'click' );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t$( '#llms-next-question' ).trigger( 'click' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Load the HTML of a question into the DOM and the question cache\n\t\t *\n\t\t * @param string html string of html\n\t\t * @return void\n\t\t * @since 3.9.0\n\t\t * @version 3.16.6\n\t\t */\n\t\tload_question: function( html ) {\n\n\t\t\tvar $html = $( html ),\n\t\t\t\tqid = $html.attr( 'data-id' );\n\n\t\t\t// cache the question HTML for faster rewinds\n\t\t\tif ( ! this.questions[ 'q-' + qid ] ) {\n\t\t\t\tthis.questions[ 'q-' + qid ] = $html;\n\t\t\t}\n\n\t\t\tthis.update_progress( qid );\n\n\t\t\tthis.current_question = qid;\n\n\t\t\t$( document ).trigger( 'llms-pre-append-question', $html );\n\n\t\t\tthis.$container.append( $html );\n\n\t\t\t$( document ).trigger( 'llms-post-append-question', $html );\n\n\t\t},\n\n\t\t/**\n\t\t * Constructs the quiz UI & adds the elements into the DOM\n\t\t *\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.9\n\t\t */\n\t\tload_ui_elements: function() {\n\n\t\t\t// Removing the quiz UI elements if they already exist.\n\t\t\tif ( $( '#llms-quiz-ui').length > 0 ) {\n\t\t\t\t$( '#llms-quiz-ui' ).remove();\n\t\t\t}\n\n\t\t\tvar $html = $( '
' ),\n\t\t\t\t$header = $( '' )\n\t\t\t\t$footer = $( '' );\n\n\t\t\t$footer.append( '' + LLMS.l10n.translate( 'Next Question' ) + ' ' );\n\t\t\t$footer.append( '' + LLMS.l10n.translate( 'Complete Quiz' ) + ' ' );\n\t\t\t$footer.append( '' + LLMS.l10n.translate( 'Previous Question' ) + ' ' );\n\n\t\t\t$header.append( '' );\n\t\t\t$footer.append( '/
' )\n\n\t\t\t$html.append( $header )\n\t\t\t\t .append( '
' )\n\t\t\t\t .append( $footer );\n\n\t\t\t$( '#llms-quiz-wrapper' ).after( $html );\n\n\t\t},\n\n\t\t/**\n\t\t * Perform actions on question HTML after it's been appended to the DOM\n\t\t *\n\t\t * @param obj event js event object\n\t\t * @param obj html js HTML object\n\t\t * @return void\n\t\t * @since 3.16.6\n\t\t * @version 3.16.6\n\t\t */\n\t\tpost_append_question: function( event, html ) {\n\n\t\t\tvar $html = $( html );\n\n\t\t\tif ( $html.find( 'audio' ).length ) {\n\t\t\t\twp.mediaelement.initialize();\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Show or hide the \"loading\" spinner with an option message\n\t\t *\n\t\t * @param string display show|hide\n\t\t * @param string msg text to display when showing\n\t\t * @return void\n\t\t * @since 3.9.0\n\t\t * @version 3.16.6\n\t\t */\n\t\ttoggle_loader: function( display, msg ) {\n\n\t\t\tif ( 'show' === display ) {\n\n\t\t\t\tmsg = msg || LLMS.l10n.translate( 'Loading...' );\n\n\t\t\t\tthis.$buttons.attr( 'disabled', 'disabled' );\n\n\t\t\t\tthis.$container.empty();\n\t\t\t\tLLMS.Spinner.start( this.$container );\n\t\t\t\tthis.$container.append( '' + LLMS.l10n.translate( msg ) + '
' );\n\n\t\t\t} else {\n\n\t\t\t\tLLMS.Spinner.stop( this.$container );\n\t\t\t\tthis.$buttons.removeAttr( 'disabled' );\n\t\t\t\tthis.$container.find( '.llms-quiz-loading' ).remove();\n\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Update the progress bar and toggle button availability based on question the question being shown.\n\t\t *\n\t\t * @since 3.16.0\n\t\t * @since 7.8.0 Show counter and set the total as when needed.\n\t\t *\n\t\t * @param {Int} qid Question ID.\n\t\t * @return {Void}\n\t\t */\n\t\tupdate_progress: function( qid ) {\n\n\t\t\tvar index = this.get_question_index( qid );\n\n\t\t\tif ( -1 === index ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tindex++;\n\n\t\t\t$( '#llms-quiz-counter .llms-current' ).text( index );\n\t\t\tif ( index > 0 && ! $( '#llms-quiz-counter .llms-total' ).text() ) {\n\t\t\t\t$( '#llms-quiz-counter .llms-total' ).text( this.total_questions );\n\t\t\t\t$( '#llms-quiz-counter' ).show();\n\t\t\t}\n\n\t\t\t// Handle prev question.\n\t\t\tif ( index >= 2 ) {\n\t\t\t\t$( '#llms-prev-question' ).show();\n\t\t\t} else {\n\t\t\t\t$( '#llms-prev-question' ).hide();\n\t\t\t}\n\n\t\t\tif ( index === this.total_questions ) {\n\t\t\t\t$( '#llms-next-question' ).hide();\n\t\t\t\t$( '#llms-complete-quiz' ).show();\n\t\t\t} else {\n\t\t\t\t$( '#llms-next-question' ).show();\n\t\t\t\t$( '#llms-complete-quiz' ).hide();\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Increase progress bar ui element\n\t\t *\n\t\t * @param string dir update direction [increment|decrement|reload]\n\t\t * @return void\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tupdate_progress_bar: function( dir ) {\n\n\t\t\tvar index = this.get_question_index( this.current_question );\n\t\t\tswitch ( dir ) {\n\t\t\t\tcase 'increment':\n\t\t\t\t\tindex++;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'decrement':\n\t\t\t\t\tindex--;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'reload':\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tprogress = ( index / this.total_questions ) * 100;\n\t\t\tthis.$ui.find( '.progress-bar-complete' ).css( 'width', progress + '%' );\n\n\t\t},\n\n\t\t/**\n\t\t * Get Count Down\n\t\t * Called every second to update the on screen countdown timer\n\t\t * Changes color to yellow at 1/2 of total time\n\t\t * Changes color to red at 1/4 of total time\n\t\t *\n\t\t * @param {[int]} minutes [description]\n\t\t * @param {[date]} target_date [description]\n\t\t * @param {[int]} time_limit [description]\n\t\t * @param {[int]} days [description]\n\t\t * @param {[int]} hours [description]\n\t\t * @param {[int]} minutes [description]\n\t\t * @param {[int]} seconds [description]\n\t\t * @param {[int]} countdown [description]\n\t\t * @return Displays updates hours, minutes on quiz timer\n\t\t * @since 1.0.0\n\t\t * @version 1.0.0\n\t\t */\n\t\tgetCountdown: function( total_minutes, target_date, time_limit, days, hours, minutes, seconds, countdown ){\n\n\t\t\t// find the amount of \"seconds\" between now and target\n\t\t\tvar current_date = new Date().getTime(),\n\t\t\t\tseconds_left = ( target_date - current_date ) / 1000;\n\n\t\t\tif ( seconds_left >= 0 ) {\n\n\t\t\t\tif ( ( seconds_left * 1000 ) < ( time_limit / 2 ) ) {\n\n\t\t\t\t\t$( '#llms-quiz-timer' ).addClass( 'color-half' );\n\n\t\t\t\t}\n\n\t\t\t\tif ( ( seconds_left * 1000 ) < ( time_limit / 4 ) ) {\n\n\t\t\t\t\t$( '#llms-quiz-timer' ).removeClass( 'color-half' );\n\t\t\t\t\t$( '#llms-quiz-timer' ).addClass( 'color-empty' );\n\n\t\t\t\t}\n\n\t\t\t\tdays = this.pad( parseInt( seconds_left / 86400 ) );\n\t\t\t\tseconds_left = seconds_left % 86400;\n\t\t\t\thours = this.pad( parseInt( seconds_left / 3600 ) );\n\t\t\t\tseconds_left = seconds_left % 3600;\n\t\t\t\tminutes = this.pad( parseInt( seconds_left / 60 ) );\n\t\t\t\tseconds = this.pad( parseInt( seconds_left % 60 ) );\n\n\t\t\t\t// format countdown string + set tag value\n\t\t\t\tcountdown.innerHTML = '' + hours + ' :' + minutes + ' :' + seconds + ' ';\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Pad Number\n\t\t * pads number with 0 if single digit.\n\t\t *\n\t\t * @param {[int]} n [number]\n\t\t * @return {[string]} [padded number]\n\t\t * @since 1.0.0\n\t\t * @version 1.0.0\n\t\t */\n\t\tpad: function(n) {\n\t\t\treturn (n < 10 ? '0' : '') + n;\n\t\t},\n\n\t\t/**\n\t\t * Basic validation method which performs no validation and returns a validation object\n\t\t * in the format required by the application\n\t\t *\n\t\t * @param obj $question jQuery selector of the question\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tvalidate: function( $question ) {\n\t\t\treturn {\n\t\t\t\tanswer: [],\n\t\t\t\tvalid: true,\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Validates a choice question to ensure there's at least one checked input\n\t\t *\n\t\t * @param obj $question jQuery selector of the question\n\t\t * @return obj\n\t\t * @since 3.16.0\n\t\t * @version 3.16.0\n\t\t */\n\t\tvalidate_choice: function( $question ) {\n\n\t\t\tvar ret = window.llms.quizzes.validate( $question ),\n\t\t\t\tchecked = $question.find( 'input:checked' );\n\n\t\t\tif ( ! checked.length ) {\n\t\t\t\tret.valid = LLMS.l10n.translate( 'You must select an answer to continue.' );\n\t\t\t} else {\n\t\t\t\tchecked.each( function() {\n\t\t\t\t\tret.answer.push( $( this ).val() );\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn ret;\n\n\t\t},\n\n\t};\n\n\tquiz.bind();\n\n\twindow.llms = window.llms || {};\n\twindow.llms.quizzes = quiz;\n\n} )( jQuery );\n"],"names":["$","quiz","$buttons","$container","$ui","attempt_key","current_question","total_questions","questions","validators","status","resumable","exiting_quiz","bind","self","this","on","e","preventDefault","start_quiz","resume_quiz","each","LLMS","Donut","val","window","location","href","l10n","translate","complete_quiz","document","post_append_question","register_validator","validate","validate_choice","add_error","msg","find","remove","$err","fadeOut","setTimeout","append","save_question","options","$question","type","attr","requestData","action","answer","question_id","question_type","exit_quiz","via_exit_quiz","previous_question","via_previous_question","Ajax","call","data","success","r","callback","console","log","answer_question","$btn","valid","beforeSend","hasClass","toggle_loader","update_progress_bar","html","load_question","redirect","message","error","jqXHR","reload_question","get_question_index","qid","Object","keys","indexOf","url","ids","curr","prev_id","substring","func","init_quiz","load_ui_elements","reload","lesson_id","quiz_id","stop","animate","scrollTop","s","t","total","can_be_resumed","question_ids","forEach","id","time_limit","start_quiz_timer","is_touch_device","addClass","removeClass","total_minutes","$el","target_date","Date","getTime","countdown","getElementById","getCountdown","days","hours","minutes","seconds","setInterval","trigger","event","$html","update_progress","length","$header","$footer","after","wp","mediaelement","initialize","display","empty","Spinner","start","removeAttr","index","text","show","hide","dir","progress","css","seconds_left","pad","parseInt","innerHTML","n","ret","llms","quizzes","checked","push","jQuery"],"mappings":"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","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-view-manager.min.js.map b/assets/maps/js/llms-view-manager.min.js.map
new file mode 100644
index 0000000000..aacce7fbb8
--- /dev/null
+++ b/assets/maps/js/llms-view-manager.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-view-manager.min.js","sources":["llms-view-manager.js"],"sourcesContent":["/**\n * JS events for the view manager\n *\n * @package LifterLMS/Scripts\n *\n * @since 3.8.0\n * @since 4.2.0 Added access plans action button selector to the list of links to update.\n *\n * @version 4.2.0\n */\n\n( function( $, undefined ) {\n\n\twindow.llms = window.llms || {};\n\n\tvar ViewManager = function() {\n\n\t\tvar currentView = 'self',\n\t\t\tcurrentNonce;\n\n\t\t/**\n\t\t * Set the current Nonce\n\t\t *\n\t\t * @param string nonce a nonce\n\t\t * @since 3.8.0\n\t\t * @version 3.8.0\n\t\t */\n\t\tthis.set_nonce = function( nonce ) {\n\t\t\tcurrentNonce = nonce;\n\t\t\treturn this;\n\t\t}\n\n\t\t/**\n\t\t * Set the current view\n\t\t *\n\t\t * @param string view a view option\n\t\t * @since 3.8.0\n\t\t * @version 3.8.0\n\t\t */\n\t\tthis.set_view = function( view ) {\n\t\t\tcurrentView = view;\n\t\t\treturn this;\n\t\t}\n\n\t\t/**\n\t\t * Update various links on the page for easy navigation when using views.\n\t\t *\n\t\t * @since 3.8.0\n\t\t * @since 4.2.0 Added access plans action button selector to the list of links to update.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.update_links = function() {\n\n\t\t\tif ( 'self' === currentView || ! currentNonce ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar $links = $( '.llms-widget-syllabus .llms-lesson a, .llms-course-progress a, .llms-lesson-preview a.llms-lesson-link, .llms-parent-course-link a.llms-lesson-link, .llms-access-plans a.llms-button-action' );\n\n\t\t\t$links.each( function() {\n\n\t\t\t\tvar $link = $( this ),\n\t\t\t\t\thref = $link.attr( 'href' ),\n\t\t\t\t\tsplit = href.split( '?' ),\n\t\t\t\t\tqs = {};\n\n\t\t\t\tif ( split.length > 1 ) {\n\n\t\t\t\t\t$.each( split[1].split( '&' ), function( i, pair ) {\n\t\t\t\t\t\tpair = pair.split( '=' );\n\t\t\t\t\t\tqs[ pair[0] ] = pair[1];\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\tqs['llms-view-as'] = currentView;\n\t\t\t\tqs.view_nonce = currentNonce;\n\n\t\t\t\t$link.attr( 'href', split[0] + '?' + $.param( qs ) );\n\n\t\t\t} );\n\n\t\t}\n\n\t};\n\n\t// initialize the object\n\twindow.llms.ViewManager = new ViewManager();\n\n} )( jQuery );\n"],"names":["$","window","llms","ViewManager","currentNonce","currentView","this","set_nonce","nonce","set_view","view","update_links","each","$link","split","attr","qs","length","i","pair","view_nonce","param","jQuery"],"mappings":"AAWA,CAAA,SAAYA,GAEXC,OAAOC,KAAOD,OAAOC,MAAQ,GA2E7BD,OAAOC,KAAKC,YAAc,IAzER,WAEjB,IACCC,EADGC,EAAc,OAUlBC,KAAKC,UAAY,SAAUC,GAE1B,OADAJ,EAAeI,EACRF,IACR,EASAA,KAAKG,SAAW,SAAUC,GAEzB,OADAL,EAAcK,EACPJ,IACR,EAUAA,KAAKK,aAAe,WAEd,SAAWN,GAAiBD,GAIpBJ,EAAG,8LAA+L,EAExMY,KAAM,WAEZ,IAAIC,EAAQb,EAAGM,IAAK,EAEnBQ,EADQD,EAAME,KAAM,MAAO,EACdD,MAAO,GAAI,EACxBE,EAAQ,GAEW,EAAfF,EAAMG,QAEVjB,EAAEY,KAAME,EAAM,GAAGA,MAAO,GAAI,EAAG,SAAUI,EAAGC,GAC3CA,EAAgBA,EAAKL,MAAO,GAAI,EAChCE,EAAIG,EAAK,IAAOA,EAAK,EACtB,CAAE,EAIHH,EAAG,gBAAkBX,EACrBW,EAAGI,WAAkBhB,EAErBS,EAAME,KAAM,OAAQD,EAAM,GAAK,IAAMd,EAAEqB,MAAOL,CAAG,CAAE,CAEpD,CAAE,CAEH,CAED,CAKC,EAAGM,MAAO","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms-widget-syllabus.min.js.map b/assets/maps/js/llms-widget-syllabus.min.js.map
new file mode 100644
index 0000000000..8cc173315f
--- /dev/null
+++ b/assets/maps/js/llms-widget-syllabus.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"../../js/llms-widget-syllabus.min.js","sources":["llms-widget-syllabus.js"],"sourcesContent":["( function( $ ) {\n\n\twindow.llms = window.llms || {};\n\n\t/**\n\t * Manage\n\t *\n\t * @return obj instance of the class\n\t * @since 2.6.0\n\t */\n\twindow.llms.widget_syllabus = function() {\n\n\t\t/**\n\t\t * Init\n\t\t *\n\t\t * @return void\n\t\t * @since 2.6.0\n\t\t */\n\t\tthis.init = function() {\n\n\t\t\tthis.bind();\n\n\t\t};\n\n\t\t/**\n\t\t * Bind DOM events\n\t\t *\n\t\t * @return void\n\t\t * @since 2.6.0\n\t\t */\n\t\tthis.bind = function() {\n\n\t\t\tvar self = this;\n\n\t\t\t// bind all existing toggles on load\n\t\t\tself.bind_toggles( $( '#widgets-right .llms-course-outline-collapse' ) );\n\n\t\t\t$( document ).on( 'ajaxStop', function( r ) {\n\n\t\t\t\t// self.toggle( $( this ) );\n\t\t\t\t$( '#widgets-right .llms-course-outline-collapse:not([data-is-bound=\"true\"])' ).each( function() {\n\n\t\t\t\t\tself.bind_toggles( $( this ) );\n\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Bind change events to a specific toggle or set of toggles\n\t\t *\n\t\t * @param obj $toggles jQuery selector of toggle input ('input.llms-course-outline-collapse')\n\t\t * @return void\n\t\t * @since 2.6.0\n\t\t */\n\t\tthis.bind_toggles = function( $toggles ) {\n\n\t\t\tvar self = this;\n\n\t\t\t$toggles.attr( 'data-is-bound', 'true' );\n\n\t\t\t// bind input change on load\n\t\t\t$toggles.on( 'change', function() {\n\n\t\t\t\tself.toggle( $( this ) );\n\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Toggle the visibility of the secondary option to display toggles\n\t\t *\n\t\t * @param obj $input jQuery selector of a single collapse toggle element ('input.llms-course-outline-collapse')\n\t\t * @return void\n\t\t * @since 2.6.0\n\t\t */\n\t\tthis.toggle = function( $input ) {\n\n\t\t\t$input.closest( '.widget' ).find( '.llms-course-outline-toggle-wrapper' ).toggle();\n\n\t\t};\n\n\t\t// GO\n\t\tthis.init();\n\n\t\t// whatever\n\t\treturn this;\n\n\t};\n\n\tvar a = new window.llms.widget_syllabus();\n\n} )( jQuery );\n"],"names":["$","window","llms","widget_syllabus","this","init","bind","self","bind_toggles","document","on","r","each","$toggles","attr","toggle","$input","closest","find","jQuery"],"mappings":"AAAA,CAAA,SAAYA,GAEXC,OAAOC,KAAOD,OAAOC,MAAQ,GAQ7BD,OAAOC,KAAKC,gBAAkB,WA+E7B,OAvEAC,KAAKC,KAAO,WAEXD,KAAKE,KAAK,CAEX,EAQAF,KAAKE,KAAO,WAEX,IAAIC,EAAOH,KAGXG,EAAKC,aAAcR,EAAG,8CAA+C,CAAE,EAEvEA,EAAGS,QAAS,EAAEC,GAAI,WAAY,SAAUC,GAGvCX,EAAG,0EAA2E,EAAEY,KAAM,WAErFL,EAAKC,aAAcR,EAAGI,IAAK,CAAE,CAE9B,CAAE,CAEH,CAAE,CAEH,EASAA,KAAKI,aAAe,SAAUK,GAE7B,IAAIN,EAAOH,KAEXS,EAASC,KAAM,gBAAiB,MAAO,EAGvCD,EAASH,GAAI,SAAU,WAEtBH,EAAKQ,OAAQf,EAAGI,IAAK,CAAE,CAExB,CAAE,CAEH,EASAA,KAAKW,OAAS,SAAUC,GAEvBA,EAAOC,QAAS,SAAU,EAAEC,KAAM,qCAAsC,EAAEH,OAAO,CAElF,EAGAX,KAAKC,KAAK,EAGHD,IAER,EAEQ,IAAIH,OAAOC,KAAKC,eAEvB,EAAGgB,MAAO","sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/maps/js/llms.js.map b/assets/maps/js/llms.js.map
new file mode 100644
index 0000000000..50162f90d6
--- /dev/null
+++ b/assets/maps/js/llms.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["llms.js"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"../../js/llms.js","sourcesContent":["/**\n * Main LLMS Namespace\n *\n * @since 1.0.0\n * @version 5.3.3\n */\n\nvar LLMS = window.LLMS || {};\n( function( $ ){\n\n\t'use strict';\n\n\t/**\n\t * Load all app modules\n\t */\n\t/**\n\t * Front End Achievements\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 3.14.0\n\t * @version 6.10.2\n\t */\n\t\n\tLLMS.Achievements = {\n\t\n\t\t/**\n\t\t * Init\n\t\t *\n\t\t * @since 3.14.0\n\t\t * @since 4.5.1 Fix conditional loading check.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tif ( $( '.llms-achievement' ).length ) {\n\t\n\t\t\t\tvar self = this;\n\t\n\t\t\t\t$( function() {\n\t\t\t\t\tself.bind();\n\t\t\t\t\tself.maybe_open();\n\t\t\t\t} );\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM events\n\t\t *\n\t\t * @since 3.14.0\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tbind: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\t$( '.llms-achievement' ).each( function() {\n\t\n\t\t\t\tself.create_modal( $( this ) );\n\t\n\t\t\t} );\n\t\n\t\t\t$( '.llms-achievement' ).on( 'click', function() {\n\t\n\t\t\t\tvar $this = $( this ),\n\t\t\t\t\tid = 'achievement-' + $this.attr( 'data-id' ),\n\t\t\t\t\t$modal = $( '#' + id );\n\t\n\t\t\t\tif ( ! $modal.length ) {\n\t\t\t\t\tself.create_modal( $this );\n\t\t\t\t}\n\t\n\t\t\t\t$modal.iziModal( 'open' );\n\t\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Creates modal a modal for an achievement\n\t\t *\n\t\t * @since 3.14.0\n\t\t *\n\t\t * @param obj $el The jQuery selector for the modal card.\n\t\t * @return {void}\n\t\t */\n\t\tcreate_modal: function( $el ) {\n\t\n\t\t\tvar id = 'achievement-' + $el.attr( 'data-id' ),\n\t\t\t\t$modal = $( '#' + id );\n\t\n\t\t\tif ( ! $modal.length ) {\n\t\t\t\t$modal = $( '
' );\n\t\t\t\t$( 'body' ).append( $modal );\n\t\t\t}\n\t\n\t\t\t$modal.iziModal( {\n\t\t\t\theaderColor: '#3a3a3a',\n\t\t\t\tgroup: 'achievements',\n\t\t\t\thistory: true,\n\t\t\t\tloop: true,\n\t\t\t\toverlayColor: 'rgba( 0, 0, 0, 0.6 )',\n\t\t\t\ttransitionIn: 'fadeInDown',\n\t\t\t\ttransitionOut: 'fadeOutDown',\n\t\t\t\twidth: 340,\n\t\t\t\tonOpening: function( modal ) {\n\t\n\t\t\t\t\tmodal.setTitle( $el.find( '.llms-achievement-title' ).html() );\n\t\t\t\t\tmodal.setSubtitle( $el.find( '.llms-achievement-date' ).html() );\n\t\t\t\t\tmodal.setContent( '' + $el.html() + '
' );\n\t\n\t\t\t\t},\n\t\n\t\t\t\tonClosing: function() {\n\t\t\t\t\twindow.history.pushState( '', document.title, window.location.pathname + window.location.search );\n\t\t\t\t},\n\t\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * On page load, opens a modal if the URL contains an achievement in the location hash\n\t\t *\n\t\t * @since 3.14.0\n\t\t * @since 6.10.2 Sanitize achievement IDs before using window.location.hash to trigger the modal open.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tmaybe_open: function() {\n\t\n\t\t\tlet hash = window.location.hash.split( '-' );\n\t\t\tif ( 2 !== hash.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\thash[1] = parseInt( hash[1] );\n\t\t\tif ( '#achievement-' !== hash[0] || ! Number.isInteger( hash[1] ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tconst a = document.querySelector( `a[href=\"${ hash.join( '-' ) }\"]` )\n\t\t\tif ( ! a ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\ta.click();\n\t\n\t\t}\n\t\n\t};\n\t\n\t\t/**\n\t * Main Ajax class\n\t * Handles Primary Ajax connection\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since Unknown\n\t * @version Unknown\n\t */\n\t\n\tLLMS.Ajax = {\n\t\n\t\t/**\n\t\t * Url\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\turl: window.ajaxurl || window.llms.ajaxurl,\n\t\n\t\t/**\n\t\t * Type\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\ttype: 'post',\n\t\n\t\t/**\n\t\t * Data\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\tdata: [],\n\t\n\t\t/**\n\t\t * Cache\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\tcache: false,\n\t\n\t\t/**\n\t\t * DataType\n\t\t * defaulted to json\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tdataType: 'json',\n\t\n\t\t/**\n\t\t * Async\n\t\t * default to false\n\t\t *\n\t\t * @type {Boolean}\n\t\t */\n\t\tasync: true,\n\t\n\t\tresponse:[],\n\t\n\t\t/**\n\t\t * Initialize Ajax methods\n\t\t *\n\t\t * @since Unknown\n\t\t * @since 4.4.0 Update ajax nonce source.\n\t\t *\n\t\t * @param {Object} obj Options object.\n\t\t * @return {Object}\n\t\t */\n\t\tinit: function( obj ) {\n\t\n\t\t\t// If obj is not of type object or null return false.\n\t\t\tif ( obj === null || typeof obj !== 'object' ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// set object defaults if values are not supplied\n\t\t\tobj.url = 'url' in obj ? obj.url : this.url;\n\t\t\tobj.type = 'type' \t\tin obj ? obj.type : this.type;\n\t\t\tobj.data = 'data' \t\tin obj ? obj.data : this.data;\n\t\t\tobj.cache = 'cache' \t\tin obj ? obj.cache : this.cache;\n\t\t\tobj.dataType = 'dataType'\tin obj ? obj.dataType : this.dataType;\n\t\t\tobj.async = 'async'\t\tin obj ? obj.async : this.async;\n\t\n\t\t\t// Add nonce to data object.\n\t\t\tobj.data._ajax_nonce = window.llms.ajax_nonce || wp_ajax_data.nonce;\n\t\n\t\t\t// Add post id to data object.\n\t\t\tvar $R = LLMS.Rest,\n\t\t\tquery_vars = $R.get_query_vars();\n\t\t\tobj.data.post_id = 'post' in query_vars ? query_vars.post : null;\n\t\t\tif ( ! obj.data.post_id && $( 'input#post_ID' ).length ) {\n\t\t\t\tobj.data.post_id = $( 'input#post_ID' ).val();\n\t\t\t}\n\t\n\t\t\treturn obj;\n\t\t},\n\t\n\t\t/**\n\t\t * Call\n\t\t * Called by external classes\n\t\t * Sets up jQuery Ajax object\n\t\t *\n\t\t * @param {[object]} [object of ajax settings]\n\t\t * @return {[mixed]} [false if not object or this]\n\t\t */\n\t\tcall: function(obj) {\n\t\n\t\t\t// get default variables if not included in call\n\t\t\tvar settings = this.init( obj );\n\t\n\t\t\t// if init return a response of false\n\t\t\tif ( ! settings) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tthis.request( settings );\n\t\t\t}\n\t\n\t\t\treturn this;\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Calls jQuery Ajax on settings object\n\t\t *\n\t\t * @return {[object]} [this]\n\t\t */\n\t\trequest: function(settings) {\n\t\n\t\t\t$.ajax( settings );\n\t\n\t\t\treturn this;\n\t\n\t\t}\n\t\n\t};\n\t\n\t\t/**\n\t * Create a Donut Chart\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 3.9.0\n\t * @version 4.15.0\n\t *\n\t * @link https://gist.github.com/joeyinbox/8205962\n\t *\n\t * @param {Object} $el jQuery element to draw a chart within.\n\t */\n\t\n\tLLMS.Donut = function( $el ) {\n\t\n\t\t/**\n\t\t * Constructor\n\t\t *\n\t\t * @since 3.9.0\n\t\t * @since 4.15.0 Flip animation in RTL.\n\t\t *\n\t\t * @param {Object} options Donut options.\n\t\t * @return {Void}\n\t\t */\n\t\tfunction Donut(options) {\n\t\n\t\t\tthis.settings = $.extend( {\n\t\t\t\telement: options.element,\n\t\t\t\tpercent: 100\n\t\t\t}, options );\n\t\n\t\t\tthis.circle = this.settings.element.find( 'path' );\n\t\t\tthis.settings.stroke_width = parseInt( this.circle.css( 'stroke-width' ) );\n\t\t\tthis.radius = ( parseInt( this.settings.element.css( 'width' ) ) - this.settings.stroke_width ) / 2;\n\t\t\tthis.angle = $( 'body' ).hasClass( 'rtl' ) ? 82.5 : 97.5; // Origin of the draw at the top of the circle\n\t\t\tthis.i = Math.round( 0.75 * this.settings.percent );\n\t\t\tthis.first = true;\n\t\t\tthis.increment = $( 'body' ).hasClass( 'rtl' ) ? -5 : 5;\n\t\n\t\t\tthis.animate = function() {\n\t\t\t\tthis.timer = setInterval( this.loop.bind( this ), 10 );\n\t\t\t};\n\t\n\t\t\tthis.loop = function() {\n\t\t\t\tthis.angle += this.increment;\n\t\t\t\tthis.angle %= 360;\n\t\t\t\tvar radians = ( this.angle / 180 ) * Math.PI,\n\t\t\t\t\tx = this.radius + this.settings.stroke_width / 2 + Math.cos( radians ) * this.radius,\n\t\t\t\t\ty = this.radius + this.settings.stroke_width / 2 + Math.sin( radians ) * this.radius,\n\t\t\t\t\td;\n\t\t\t\tif (this.first === true) {\n\t\t\t\t\td = this.circle.attr( 'd' ) + ' M ' + x + ' ' + y;\n\t\t\t\t\tthis.first = false;\n\t\t\t\t} else {\n\t\t\t\t\td = this.circle.attr( 'd' ) + ' L ' + x + ' ' + y;\n\t\t\t\t}\n\t\t\t\tthis.circle.attr( 'd', d );\n\t\t\t\tthis.i--;\n\t\n\t\t\t\tif (this.i <= 0) {\n\t\t\t\t\tclearInterval( this.timer );\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\t/**\n\t\t * Draw donut element\n\t\t *\n\t\t * @since 3.9.0\n\t\t *\n\t\t * @param {Object} $el jQuery element to draw a chart within.\n\t\t * @return {Void}\n\t\t */\n\t\tfunction draw( $el ) {\n\t\t\tvar path = ' ';\n\t\t\t$el.append( '' + path + ' ' );\n\t\t\tvar donut = new Donut( {\n\t\t\t\telement: $el,\n\t\t\t\tpercent: $el.attr( 'data-perc' )\n\t\t\t} );\n\t\t\tdonut.animate();\n\t\t}\n\t\n\t\tdraw( $el );\n\t\n\t};\n\t\n\t\t/**\n\t * Forms\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 5.0.0\n\t * @version 7.0.0\n\t */\n\t\n\tLLMS.Forms = {\n\t\n\t\t/**\n\t\t * Stores locale information.\n\t\t *\n\t\t * Added via PHP.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\taddress_info: {},\n\t\n\t\t/**\n\t\t * jQuery ref. to the city text field.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$cities: null,\n\t\n\t\t/**\n\t\t * jQuery ref. to the countries select field.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$countries: null,\n\t\n\t\t/**\n\t\t * jQuery ref. to the states select field.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$states: null,\n\t\n\t\t/**\n\t\t * jQuery ref. to the hidden states holder field.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$states_holder: null,\n\t\n\t\t/**\n\t\t * Init\n\t\t *\n\t \t * @since 5.0.0\n\t \t * @since 5.3.3 Move select2 dependency check into the `bind_l10_selects()` method.\n\t \t *\n\t \t * @return {void}\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tif ( $( 'body' ).hasClass( 'wp-admin' ) ) {\n\t\t\t\tif ( ! ( $( 'body' ).hasClass( 'profile-php' ) || $( 'body' ).hasClass( 'user-edit-php' ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tself.bind_matching_fields();\n\t\t\tself.bind_voucher_field();\n\t\t\tself.bind_edit_account();\n\t\t\tself.bind_l10n_selects();\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM events for the edit account screen.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tbind_edit_account: function() {\n\t\n\t\t\t// Not an edit account form.\n\t\t\tif ( ! $( 'form.llms-person-form.edit-account' ).length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\t$( '.llms-toggle-fields' ).on( 'click', this.handle_toggle_click );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM Events fields with dynamic localization values and language.\n\t\t *\n\t\t * @since 5.0.0\n\t\t * @since 5.3.3 Bind select2-related events after ensuring select2 is available.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tbind_l10n_selects: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tself.$cities = $( '#llms_billing_city' );\n\t\t\tself.$countries = $( '.llms-l10n-country-select select' );\n\t\t\tself.$states = $( '.llms-l10n-state-select select' );\n\t\t\tself.$zips = $( '#llms_billing_zip' );\n\t\n\t\t\tif ( ! self.$countries.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tvar isSelect2Available = function() {\n\t\t\t\treturn ( undefined !== $.fn.llmsSelect2 );\n\t\t\t};\n\t\n\t\t\tLLMS.wait_for( isSelect2Available, function() {\n\t\n\t\t\t\tif ( self.$states.length ) {\n\t\t\t\t\tself.prep_state_field();\n\t\t\t\t}\n\t\n\t\t\t\tself.$countries.add( self.$states ).llmsSelect2( { width: '100%' } );\n\t\n\t\t\t\tif ( window.llms.address_info ) {\n\t\t\t\t\tself.address_info = JSON.parse( window.llms.address_info );\n\t\t\t\t}\n\t\n\t\t\t\tself.$countries.on( 'change', function() {\n\t\n\t\t\t\t\tvar val = $( this ).val();\n\t\t\t\t\tself.update_locale_info( val );\n\t\n\t\t\t\t} ).trigger( 'change' );\n\t\n\t\t\t}, 'llmsSelect2' );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Ensure \"matching\" fields match.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tbind_matching_fields: function() {\n\t\n\t\t\tvar $fields = $( 'input[data-match]' ).not( '[type=\"password\"]' );\n\t\n\t\t\t$fields.each( function() {\n\t\n\t\t\t\tvar $field = $( this ),\n\t\t\t\t\t$match = $( '#' + $field.attr( 'data-match' ) ),\n\t\t\t\t\t$parents;\n\t\n\t\t\t\tif ( $match.length ) {\n\t\n\t\t\t\t\t$parents = $field.closest( '.llms-form-field' ).add( $match.closest( '.llms-form-field' ) );\n\t\n\t\t\t\t\t$field.on( 'input change', function() {\n\t\n\t\t\t\t\t\tvar val_1 = $field.val(),\n\t\t\t\t\t\t\tval_2 = $match.val();\n\t\n\t\t\t\t\t\tif ( val_1 && val_2 && val_1 !== val_2 ) {\n\t\t\t\t\t\t\t$parents.addClass( 'invalid' );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$parents.removeClass( 'invalid' );\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t} );\n\t\n\t\t\t\t}\n\t\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM events for voucher toggles UX.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tbind_voucher_field: function() {\n\t\n\t\t\t$( '#llms-voucher-toggle' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$( '#llms_voucher' ).toggle();\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Retrieve the parent element for a given field.\n\t\t *\n\t\t * The parent element is hidden when the field isn't required.\n\t\t *\n\t\t * @since 5.0.0\n\t\t * @since 7.0.0 Do not look for a WP column wrapper anymore, always return the field's wrapper div.\n\t\t *\n\t\t * @param {Object} $field jQuery dom object.\n\t\t * @return {Object}\n\t\t */\n\t\tget_field_parent: function( $field ) {\n\t\n\t\t\treturn $field.closest( '.llms-form-field' );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Retrieve the text of a label\n\t\t *\n\t\t * Removes any children HTML elements (eg: required span elements) and returns only the labels text.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {Object} $label jQuery object for a label element.\n\t\t * @return {String}\n\t\t */\n\t\tget_label_text: function( $label ) {\n\t\n\t\t\tvar $clone = $label.clone();\n\t\t\t$clone.find( '*' ).remove();\n\t\t\treturn $clone.text().trim();\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Callback function to handle the \"toggle\" button links for changing email address and password on account edit forms\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {Object} event Native JS event object.\n\t\t * @return {void}\n\t\t */\n\t\thandle_toggle_click: function( event ) {\n\t\n\t\t\tevent.preventDefault();\n\t\n\t\t\tvar $this = $( this ),\n\t\t\t\t$fields = $( $( this ).attr( 'data-fields' ) ),\n\t\t\t\tisShowing = $this.attr( 'data-is-showing' ) || 'no',\n\t\t\t\tdisplayFunc = 'yes' === isShowing ? 'hide' : 'show',\n\t\t\t\tdisabled = 'yes' === isShowing ? 'disabled' : null,\n\t\t\t\ttextAttr = 'yes' === isShowing ? 'data-change-text' : 'data-cancel-text';\n\t\n\t\t\t$fields.each( function() {\n\t\n\t\t\t\t$( this ).closest( '.llms-form-field' )[ displayFunc ]();\n\t\t\t\t$( this ).attr( 'disabled', disabled );\n\t\n\t\t\t} );\n\t\n\t\t\t$this.text( $this.attr( textAttr ) );\n\t\t\t$this.attr( 'data-is-showing', 'yes' === isShowing ? 'no' : 'yes' );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Prepares the state select field.\n\t\t *\n\t\t * Moves All optgroup elements into a hidden & disabled select element.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tprep_state_field: function() {\n\t\n\t\t\tvar $parent = this.$states.closest( '.llms-form-field' );\n\t\n\t\t\tthis.$holder = $( ' ' );\n\t\n\t\t\tthis.$holder.appendTo( $parent );\n\t\t\tthis.$states.find( 'optgroup' ).appendTo( this.$holder );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Updates the text of a label for a given field.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {Object} $field jQuery object of the form field.\n\t\t * @param {String} text Label text.\n\t\t * @return {void}\n\t\t */\n\t\tupdate_label: function( $field, text ) {\n\t\n\t\t\tvar $label = this.get_field_parent( $field ).find( 'label' ),\n\t\t\t\t$required = $label.find( '.llms-required' ).clone();\n\t\n\t\t\t$label.html( text );\n\t\t\t$label.append( $required );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Update form fields based on selected country\n\t\t *\n\t\t * Replaces label text with locale-specific language and\n\t\t * hides or shows zip fields based on whether or not\n\t\t * they are required for the given country.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {String} country_code Currently selected country code.\n\t\t * @return {void}\n\t\t */\n\t\tupdate_locale_info: function( country_code ) {\n\t\n\t\t\tif ( ! this.address_info || ! this.address_info[ country_code ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tvar info = this.address_info[ country_code ];\n\t\n\t\t\tthis.update_state_options( country_code );\n\t\t\tthis.update_label( this.$states, info.state );\n\t\n\t\t\tthis.update_locale_info_for_field( this.$cities, info.city );\n\t\t\tthis.update_locale_info_for_field( this.$zips, info.postcode );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Update locale info for a given field.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {Object} $field The jQuery object for the field.\n\t\t * @param {String|Boolean} label The text of the label, or `false` when the field isn't supported.\n\t\t * @return {Void}\n\t\t */\n\t\tupdate_locale_info_for_field: function( $field, label ) {\n\t\n\t\t\tif ( label ) {\n\t\t\t\tthis.update_label( $field, label );\n\t\t\t\tthis.enable_field( $field );\n\t\t\t} else {\n\t\t\t\tthis.disable_field( $field );\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Update the available options in the state field\n\t\t *\n\t\t * Removes existing options and copies the options\n\t\t * for the requested country from the hidden select field.\n\t\t *\n\t\t * If there are no states for the given country the state\n\t\t * field will be hidden.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {String} country_code Currently selected country code.\n\t\t * @return {void}\n\t\t */\n\t\tupdate_state_options: function( country_code ) {\n\t\n\t\t\tif ( ! this.$states.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tvar opts = this.$holder.find( 'optgroup[data-key=\"' + country_code + '\"] option' ).clone();\n\t\n\t\t\tif ( ! opts.length ) {\n\t\t\t\tthis.$states.html( '  ' );\n\t\t\t\tthis.disable_field( this.$states );\n\t\t\t} else {\n\t\t\t\tthis.enable_field( this.$states );\n\t\t\t\tthis.$states.html( opts );\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Disable a given field\n\t\t *\n\t\t * It also hides the parent element, and adds an empty hidden input field\n\t\t * with the same 'name' as teh being disabled field so to be sure to clear the field.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {Object} $field The jQuery object for the field.\n\t\t */\n\t\tdisable_field: function( $field ) {\n\t\t\t$(\n\t\t\t\t' ',\n\t\t\t\t{ name: $field.attr('name'), class: $field.attr( 'class' ) + ' hidden', type: 'hidden' }\n\t\t\t).insertAfter( $field );\n\t\t\t$field.attr( 'disabled', 'disabled' );\n\t\t\tthis.get_field_parent( $field ).hide();\n\t\t},\n\t\n\t\t/**\n\t\t * Enable a given field\n\t\t *\n\t\t * It also shows the parent element, and removes the empty hidden input field\n\t\t * previously added by disable_field().\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {Object} $field The jQuery object for the field.\n\t\t */\n\t\tenable_field: function( $field ) {\n\t\t\t$field.removeAttr( 'disabled' );\n\t\t\t$field.next( '.hidden[name='+$field.attr('name')+']' ).detach();\n\t\t\tthis.get_field_parent( $field ).show();\n\t\t}\n\t\n\t};\n\t\n\t\t/**\n\t * Instructors List\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since Unknown\n\t * @version Unknown\n\t */\n\t\n\tLLMS.Instructors = {\n\t\n\t\t/**\n\t\t * Init\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tif ( $( 'body' ).hasClass( 'wp-admin' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tif ( $( '.llms-instructors' ).length ) {\n\t\n\t\t\t\tLLMS.wait_for_matchHeight( function() {\n\t\t\t\t\tself.bind();\n\t\t\t\t} );\n\t\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind Method\n\t\t * Handles dom binding on load\n\t\t *\n\t\t * @return {[type]} [description]\n\t\t */\n\t\tbind: function() {\n\t\n\t\t\t$( '.llms-instructors .llms-author' ).matchHeight();\n\t\n\t\t},\n\t\n\t};\n\t\n\t\t/**\n\t * Localization functions for LifterLMS Javascript\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 2.7.3\n\t * @version 2.7.3\n\t *\n\t * @todo we need more robust translation functions to handle sprintf and pluralization\n\t * at this moment we don't need those and haven't stubbed them out\n\t * those will be added when they're needed\n\t */\n\t\n\tLLMS.l10n = LLMS.l10n || {};\n\t\n\tLLMS.l10n.translate = function ( string ) {\n\t\n\t\tvar self = this;\n\t\n\t\tif ( self.strings[string] ) {\n\t\n\t\t\treturn self.strings[string];\n\t\n\t\t} else {\n\t\n\t\t\treturn string;\n\t\n\t\t}\n\t\n\t};\n\t\n\t/**\n\t * Translate and replace placeholders in a string\n\t *\n\t * @example LLMS.l10n.replace( 'This is a %2$s %1$s String', {\n\t * \t'%1$s': 'cool',\n\t * \t\t\t'%2$s': 'very'\n\t * \t\t} );\n\t * \t\tOutput: \"This is a very cool String\"\n\t *\n\t * @param string string text string\n\t * @param object replacements object containing token => replacement pairs\n\t * @return string\n\t * @since 3.16.0\n\t * @version 3.16.0\n\t */\n\tLLMS.l10n.replace = function( string, replacements ) {\n\t\n\t\tvar str = this.translate( string );\n\t\n\t\t$.each( replacements, function( token, value ) {\n\t\n\t\t\tif ( -1 !== token.indexOf( 's' ) ) {\n\t\t\t\tvalue = value.toString();\n\t\t\t} else if ( -1 !== token.indexOf( 'd' ) ) {\n\t\t\t\tvalue = value * 1;\n\t\t\t}\n\t\n\t\t\tstr = str.replace( token, value );\n\t\n\t\t} );\n\t\n\t\treturn str;\n\t\n\t};\n\t\n\t\t/**\n\t * Handle Lesson Preview Elements\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 3.0.0\n\t * @version 3.16.12\n\t */\n\t\n\tLLMS.LessonPreview = {\n\t\n\t\t/**\n\t\t * A jQuery object of all outlines present on the current screen\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\t$els: null,\n\t\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tthis.$locked = $( 'a[href=\"#llms-lesson-locked\"]' );\n\t\n\t\t\tif ( this.$locked.length ) {\n\t\n\t\t\t\tself.bind();\n\t\n\t\t\t}\n\t\n\t\t\tif ( $( '.llms-course-navigation' ).length ) {\n\t\n\t\t\t\tLLMS.wait_for_matchHeight( function() {\n\t\n\t\t\t\t\tself.match_height();\n\t\n\t\t\t\t} );\n\t\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM events\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.16.12\n\t\t */\n\t\tbind: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tthis.$locked.on( 'click', function() {\n\t\t\t\treturn false;\n\t\t\t} );\n\t\n\t\t\tthis.$locked.on( 'mouseenter', function() {\n\t\n\t\t\t\tvar $tip = $( this ).find( '.llms-tooltip' );\n\t\t\t\tif ( ! $tip.length ) {\n\t\t\t\t\tvar msg = $( this ).attr( 'data-tooltip-msg' );\n\t\t\t\t\tif ( ! msg ) {\n\t\t\t\t\t\tmsg = LLMS.l10n.translate( 'You do not have permission to access this content' );\n\t\t\t\t\t}\n\t\t\t\t\t$tip = self.get_tooltip( msg );\n\t\t\t\t\t$( this ).append( $tip );\n\t\t\t\t}\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t$tip.addClass( 'show' );\n\t\t\t\t}, 10 );\n\t\n\t\t\t} );\n\t\n\t\t\tthis.$locked.on( 'mouseleave', function() {\n\t\n\t\t\t\tvar $tip = $( this ).find( '.llms-tooltip' );\n\t\t\t\t$tip.removeClass( 'show' );\n\t\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Match the height of lesson preview items in course navigation blocks\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tmatch_height: function() {\n\t\n\t\t\t$( '.llms-course-navigation .llms-lesson-link' ).matchHeight();\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Get a tooltip element\n\t\t *\n\t\t * @param string msg message to display inside the tooltip\n\t\t * @return obj\n\t\t * @since 3.0.0\n\t\t * @version 3.2.4\n\t\t */\n\t\tget_tooltip: function( msg ) {\n\t\t\tvar $el = $( '
' );\n\t\t\t$el.append( '' + msg + '
' );\n\t\t\treturn $el;\n\t\t},\n\t\n\t};\n\t\n\t\t/**\n\t * LifterLMS Loops JS\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 3.0.0\n\t * @version 3.14.0\n\t */\n\t\n\tLLMS.Loops = {\n\t\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tif ( $( '.llms-loop' ).length ) {\n\t\n\t\t\t\tLLMS.wait_for_matchHeight( function() {\n\t\n\t\t\t\t\tself.match_height();\n\t\n\t\t\t\t} );\n\t\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Match the height of .llms-loop-item\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.14.0\n\t\t */\n\t\tmatch_height: function() {\n\t\n\t\t\t$( '.llms-loop-item .llms-loop-item-content' ).matchHeight();\n\t\t\t$( '.llms-achievement-loop-item .llms-achievement' ).matchHeight();\n\t\t\t$( '.llms-certificate-loop-item .llms-certificate' ).matchHeight();\n\t\n\t\t},\n\t\n\t};\n\t\n\t\t/**\n\t * Handle the Collapsible Syllabus Widget / Shortcode\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since Unknown\n\t * @version Unknown\n\t */\n\t\n\tLLMS.OutlineCollapse = {\n\t\n\t\t/**\n\t\t * A jQuery object of all outlines present on the current screen\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\t$outlines: null,\n\t\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tthis.$outlines = $( '.llms-widget-syllabus--collapsible' );\n\t\n\t\t\tif ( this.$outlines.length ) {\n\t\n\t\t\t\tthis.bind();\n\t\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM events\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tbind: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tthis.$outlines.each( function() {\n\t\n\t\t\t\tvar $outline = $( this ),\n\t\t\t\t\t$headers = $outline.find( '.llms-section .section-header' );\n\t\n\t\t\t\t// bind header clicks\n\t\t\t\t$headers.on( 'click', function( e ) {\n\t\n\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\tvar $toggle = $( this ),\n\t\t\t\t\t\t$section = $toggle.closest( '.llms-section' ),\n\t\t\t\t\t\tstate = self.get_section_state( $section );\n\t\n\t\t\t\t\tswitch ( state ) {\n\t\n\t\t\t\t\t\tcase 'closed':\n\t\t\t\t\t\t\tself.open_section( $section );\n\t\t\t\t\t\tbreak;\n\t\n\t\t\t\t\t\tcase 'opened':\n\t\t\t\t\t\t\tself.close_section( $section );\n\t\t\t\t\t\tbreak;\n\t\n\t\t\t\t\t}\n\t\n\t\t\t\t} );\n\t\n\t\t\t\t// bind optional toggle \"buttons\"\n\t\t\t\t$outline.find( '.llms-collapse-toggle' ).on( 'click', function( e ) {\n\t\n\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\tvar $btn = $( this ),\n\t\t\t\t\t\taction = $btn.attr( 'data-action' ),\n\t\t\t\t\t\topposite_action = ( 'close' === action ) ? 'opened' : 'closed';\n\t\n\t\t\t\t\t$headers.each( function() {\n\t\n\t\t\t\t\t\tvar $section = $( this ).closest( '.llms-section' ),\n\t\t\t\t\t\t\tstate = self.get_section_state( $section );\n\t\n\t\t\t\t\t\tif ( opposite_action !== state ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tswitch ( state ) {\n\t\n\t\t\t\t\t\t\tcase 'closed':\n\t\t\t\t\t\t\t\tself.close_section( $section );\n\t\t\t\t\t\t\tbreak;\n\t\n\t\t\t\t\t\t\tcase 'opened':\n\t\t\t\t\t\t\t\tself.open_section( $section );\n\t\t\t\t\t\t\tbreak;\n\t\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t$( this ).trigger( 'click' );\n\t\n\t\t\t\t\t} );\n\t\n\t\t\t\t} );\n\t\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Close an outline section\n\t\t *\n\t\t * @param obj $section jQuery selector of a '.llms-section'\n\t\t * @return void\n\t\t */\n\t\tclose_section: function( $section ) {\n\t\n\t\t\t$section.removeClass( 'llms-section--opened' ).addClass( 'llms-section--closed' );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Open an outline section\n\t\t *\n\t\t * @param obj $section jQuery selector of a '.llms-section'\n\t\t * @return void\n\t\t */\n\t\topen_section: function( $section ) {\n\t\n\t\t\t$section.removeClass( 'llms-section--closed' ).addClass( 'llms-section--opened' );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Get the current state (open or closed) of an outline section\n\t\t *\n\t\t * @param obj $section jQuery selector of a '.llms-section'\n\t\t * @return string 'opened' or 'closed'\n\t\t */\n\t\tget_section_state: function( $section ) {\n\t\n\t\t\treturn $section.hasClass( 'llms-section--opened' ) ? 'opened' : 'closed';\n\t\n\t\t}\n\t\n\t};\n\t\n\t\t/**\n\t * Handle Password Strength Meter for registration and password update fields\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 3.0.0\n\t * @version 5.0.0\n\t */\n\t\n\t$.extend( LLMS.PasswordStrength, {\n\t\n\t\t/**\n\t\t * jQuery ref for the password strength meter object.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$meter: $( '.llms-password-strength-meter' ),\n\t\n\t\t/**\n\t\t * jQuery ref for the password field.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$pass: null,\n\t\n\t\t/**\n\t\t * jQuery ref for the password confirmation field\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$conf: null,\n\t\n\t\t/**\n\t\t * jQuery ref for form element.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$form: null,\n\t\n\t\t/**\n\t\t * Init\n\t\t * loads class methods\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.7.0 Unknown\n\t\t * @since 5.0.0 Move reference setup to `setup_references()`.\n\t\t * Use `LLMS.wait_for()` for dependency waiting.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tif ( $( 'body' ).hasClass( 'wp-admin' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tif ( ! this.setup_references() ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tLLMS.wait_for( function() {\n\t\t\t\treturn ( 'undefined' !== typeof wp && 'undefined' !== typeof wp.passwordStrength );\n\t\t\t}, function() {\n\t\t\t\tself.bind();\n\t\t\t\tself.$form.trigger( 'llms-password-strength-ready' );\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM Events\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tbind: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\t// add submission event handlers when not on a checkout form\n\t\t\tif ( ! this.$form.hasClass( 'llms-checkout' ) ) {\n\t\t\t\tself.$form.on( 'submit', self, self.submit );\n\t\t\t}\n\t\n\t\t\t// check password strength on keyup\n\t\t\tself.$pass.add( self.$conf ).on( 'keyup', function() {\n\t\t\t\tself.check_strength();\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Check the strength of a user entered password\n\t\t * and update elements depending on the current strength\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 5.0.0 Allow password confirmation to be optional when checking strength.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tcheck_strength: function() {\n\t\n\t\t\tvar $pass_field = this.$pass.closest( '.llms-form-field' ),\n\t\t\t\t$conf_field = this.$conf && this.$conf.length ? this.$conf.closest( '.llms-form-field' ) : null,\n\t\t\t\tpass_length = this.$pass.val().length,\n\t\t\t\tconf_length = this.$conf && this.$conf.length ? this.$conf.val().length : 0;\n\t\n\t\t\t// hide the meter if both fields are empty\n\t\t\tif ( ! pass_length && ! conf_length ) {\n\t\t\t\t$pass_field.removeClass( 'valid invalid' );\n\t\t\t\tif ( $conf_field ) {\n\t\t\t\t\t$conf_field.removeClass( 'valid invalid' );\n\t\t\t\t}\n\t\t\t\tthis.$meter.hide();\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tif ( this.get_current_strength_status() ) {\n\t\t\t\t$pass_field.removeClass( 'invalid' ).addClass( 'valid' );\n\t\t\t\tif ( conf_length ) {\n\t\t\t\t\t$conf_field.removeClass( 'invalid' ).addClass( 'valid' );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$pass_field.removeClass( 'valid' ).addClass( 'invalid' );\n\t\t\t\tif ( conf_length ) {\n\t\t\t\t\t$conf_field.removeClass( 'valid' ).addClass( 'invalid' );\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tthis.$meter.removeClass( 'too-short very-weak weak medium strong mismatch' );\n\t\t\tthis.$meter.show().addClass( this.get_current_strength( 'slug' ) );\n\t\t\tthis.$meter.html( this.get_current_strength( 'text' ) );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Form submission action called during registration on checkout screen\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @param obj self instance of this class\n\t\t * @param Function callback callback function, passes error message or success back to checkout handler\n\t\t * @return void\n\t\t */\n\t\tcheckout: function( self, callback ) {\n\t\n\t\t\tif ( self.get_current_strength_status() ) {\n\t\n\t\t\t\tcallback( true );\n\t\n\t\t\t} else {\n\t\n\t\t\t\tcallback( LLMS.l10n.translate( 'There is an issue with your chosen password.' ) );\n\t\n\t\t\t}\n\t\t},\n\t\n\t\t/**\n\t\t * Get the list of blocklisted strings\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @return array\n\t\t */\n\t\tget_blocklist: function() {\n\t\n\t\t\t// Default values from WP Core + any values added via settings filter..\n\t\t\tvar blocklist = wp.passwordStrength.userInputDisallowedList().concat( this.get_setting( 'blocklist', [] ) );\n\t\n\t\t\t// Add values from all text fields in the form.\n\t\t\tthis.$form.find( 'input[type=\"text\"], input[type=\"email\"], input[type=\"tel\"], input[type=\"number\"]' ).each( function() {\n\t\t\t\tvar val = $( this ).val();\n\t\t\t\tif ( val ) {\n\t\t\t\t\tblocklist.push( val );\n\t\t\t\t}\n\t\t\t} );\n\t\n\t\t\treturn blocklist;\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Retrieve current strength as a number, a slug, or a translated text string\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 5.0.0 Allow password confirmation to be optional when checking strength.\n\t\t *\n\t\t * @param {String} format Derived return format [int|slug|text] defaults to int.\n\t\t * @return mixed\n\t\t */\n\t\tget_current_strength: function( format ) {\n\t\n\t\t\tformat = format || 'int';\n\t\t\tvar pass = this.$pass.val(),\n\t\t\t\tconf = this.$conf && this.$conf.length ? this.$conf.val() : '',\n\t\t\t\tval;\n\t\n\t\t\t// enforce custom length requirement\n\t\t\tif ( pass.length < this.get_setting( 'min_length', 6 ) ) {\n\t\t\t\tval = -1;\n\t\t\t} else {\n\t\t\t\tval = wp.passwordStrength.meter( pass, this.get_blocklist(), conf );\n\t\t\t\t// 0 & 1 are both very-weak\n\t\t\t\tif ( 0 === val ) {\n\t\t\t\t\tval = 1;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif ( 'slug' === format ) {\n\t\t\t\treturn this.get_strength_slug( val );\n\t\t\t} else if ( 'text' === format ) {\n\t\t\t\treturn this.get_strength_text( val );\n\t\t\t} else {\n\t\t\t\treturn val;\n\t\t\t}\n\t\t},\n\t\n\t\t/**\n\t\t * Determines if the current password strength meets the user-defined\n\t\t * minimum password strength requirements\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @return boolean\n\t\t */\n\t\tget_current_strength_status: function() {\n\t\t\tvar curr = this.get_current_strength(),\n\t\t\t\tmin = this.get_strength_value( this.get_minimum_strength() );\n\t\t\treturn ( 5 === curr ) ? false : ( curr >= min );\n\t\t},\n\t\n\t\t/**\n\t\t * Retrieve the minimum password strength for the current form.\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 5.0.0 Replaces the version output via an inline PHP script in favor of utilizing values configured in the settings object.\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tget_minimum_strength: function() {\n\t\t\treturn this.get_setting( 'min_strength', 'strong' );\n\t\t},\n\t\n\t\t/**\n\t\t * Get a setting and fallback to a default value.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {String} key Setting key.\n\t\t * @param {mixed} default_val Default value when the requested setting cannot be located.\n\t\t * @return {mixed}\n\t\t */\n\t\tget_setting: function( key, default_val ) {\n\t\t\tvar settings = this.get_settings();\n\t\t\treturn settings[ key ] ? settings[ key ] : default_val;\n\t\t},\n\t\n\t\t/**\n\t\t * Get the slug associated with a strength value\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @param int strength_val Strength value number.\n\t\t * @return string\n\t\t */\n\t\tget_strength_slug: function( strength_val ) {\n\t\n\t\t\tvar slugs = {\n\t\t\t\t'-1': 'too-short',\n\t\t\t\t1: 'very-weak',\n\t\t\t\t2: 'weak',\n\t\t\t\t3: 'medium',\n\t\t\t\t4: 'strong',\n\t\t\t\t5: 'mismatch',\n\t\t\t};\n\t\n\t\t\treturn ( slugs[ strength_val ] ) ? slugs[ strength_val ] : slugs[5];\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Gets the translated text associated with a strength value\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @param {Integer} strength_val Strength value\n\t\t * @return {String}\n\t\t */\n\t\tget_strength_text: function( strength_val ) {\n\t\n\t\t\tvar texts = {\n\t\t\t\t'-1': LLMS.l10n.translate( 'Too Short' ),\n\t\t\t\t1: LLMS.l10n.translate( 'Very Weak' ),\n\t\t\t\t2: LLMS.l10n.translate( 'Weak' ),\n\t\t\t\t3: LLMS.l10n.translate( 'Medium' ),\n\t\t\t\t4: LLMS.l10n.translate( 'Strong' ),\n\t\t\t\t5: LLMS.l10n.translate( 'Mismatch' ),\n\t\t\t};\n\t\n\t\t\treturn ( texts[ strength_val ] ) ? texts[ strength_val ] : texts[5];\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Get the value associated with a strength slug\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @param string strength_slug A strength slug.\n\t\t * @return {Integer}\n\t\t */\n\t\tget_strength_value: function( strength_slug ) {\n\t\n\t\t\tvar values = {\n\t\t\t\t'too-short': -1,\n\t\t\t\t'very-weak': 1,\n\t\t\t\tweak: 2,\n\t\t\t\tmedium: 3,\n\t\t\t\tstrong: 4,\n\t\t\t\tmismatch: 5,\n\t\t\t};\n\t\n\t\t\treturn ( values[ strength_slug ] ) ? values[ strength_slug ] : values.mismatch;\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Setup jQuery references to DOM elements needed to power the password meter.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @return {Boolean} Returns `true` if a meter element and password field are found, otherwise returns `false`.\n\t\t */\n\t\tsetup_references: function() {\n\t\n\t\t\tif ( ! this.$meter.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\tthis.$form = this.$meter.closest( 'form' );\n\t\t\tthis.$pass = this.$form.find( 'input#password' );\n\t\n\t\t\tif ( this.$pass.length && this.$pass.attr( 'data-match' ) ) {\n\t\t\t\tthis.$conf = this.$form.find( '#' + this.$pass.attr( 'data-match' ) );\n\t\t\t}\n\t\n\t\t\treturn ( this.$pass.length > 0 );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Form submission handler for registration and update forms\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 5.0.0 Allow the account edit for to bypass strength checking when the password field is disabled (not being submitted).\n\t\t *\n\t\t * @param obj e Event data.\n\t\t * @return void\n\t\t */\n\t\tsubmit: function( e ) {\n\t\n\t\t\tvar self = e.data;\n\t\t\te.preventDefault();\n\t\t\tself.$pass.trigger( 'keyup' );\n\t\n\t\t\t// Meets the status requirements OR we're on the account edit form and the password field is disabled.\n\t\t\tif ( self.get_current_strength_status() || ( self.$form.hasClass( 'edit-account' ) && 'disabled' === self.$pass.attr( 'disabled' ) ) ) {\n\t\t\t\tself.$form.off( 'submit', self.submit );\n\t\t\t\tself.$form.trigger( 'submit' );\n\t\t\t} else {\n\t\t\t\t$( 'html, body' ).animate( {\n\t\t\t\t\tscrollTop: self.$meter.offset().top - 100,\n\t\t\t\t}, 200 );\n\t\t\t\tself.$meter.hide();\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\tself.$meter.fadeIn( 400 );\n\t\t\t\t}, 220 );\n\t\t\t}\n\t\t},\n\t\n\t\t/**\n\t\t * Get the list of blocklist strings\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @deprecated 5.0.0 `LLMS.PasswordStrength.get_blacklist()` is deprecated in favor of `LLMS.PasswordStrength.get_blocklist()`.\n\t\t *\n\t\t * @return array\n\t\t */\n\t\tget_blacklist: function() {\n\t\t\tconsole.log( 'Method `get_blacklist()` is deprecated in favor of `get_blocklist()`.' );\n\t\t\treturn this.get_blacklist();\n\t\t},\n\t\n\t} );\n\t\n\t\t/**\n\t * Pricing Table UI\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since Unknown.\n\t * @version Unknown.\n\t */\n\t\n\tLLMS.Pricing_Tables = {\n\t\n\t\t/**\n\t\t * Init\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tif ( $( 'body' ).hasClass( 'wp-admin' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tif ( $( '.llms-access-plans' ).length ) {\n\t\n\t\t\t\tLLMS.wait_for_matchHeight( function() {\n\t\t\t\t\tself.bind();\n\t\t\t\t} );\n\t\n\t\t\t\tthis.$locked = $( 'a[href=\"#llms-plan-locked\"]' );\n\t\n\t\t\t\tif ( this.$locked.length ) {\n\t\n\t\t\t\t\tLLMS.wait_for_popover( function() {\n\t\t\t\t\t\tself.bind_locked();\n\t\t\t\t\t} );\n\t\n\t\t\t\t}\n\t\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind Method\n\t\t * Handles dom binding on load\n\t\t *\n\t\t * @return {[type]} [description]\n\t\t */\n\t\tbind: function() {\n\t\n\t\t\t$( '.llms-access-plan-content' ).matchHeight();\n\t\t\t$( '.llms-access-plan-pricing.trial' ).matchHeight();\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Setup a popover for members-only restricted plans\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.9.1\n\t\t */\n\t\tbind_locked: function() {\n\t\n\t\t\tthis.$locked.each( function() {\n\t\n\t\t\t\t$( this ).webuiPopover( {\n\t\t\t\t\tanimation: 'pop',\n\t\t\t\t\tcloseable: true,\n\t\t\t\t\tcontent: function( e ) {\n\t\t\t\t\t\tvar $content = $( '
' );\n\t\t\t\t\t\t$content.append( e.$element.closest( '.llms-access-plan' ).find( '.llms-access-plan-restrictions ul' ).clone() );\n\t\t\t\t\t\treturn $content;\n\t\t\t\t\t},\n\t\t\t\t\tplacement: 'top',\n\t\t\t\t\tstyle: 'inverse',\n\t\t\t\t\ttitle: LLMS.l10n.translate( 'Members Only Pricing' ),\n\t\t\t\t\twidth: '280px',\n\t\t\t\t} );\n\t\n\t\t\t} );\n\t\n\t\t},\n\t\n\t};\n\t\n\t\t/**\n\t * Quiz Attempt\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 7.3.0\n\t * @version 7.3.0\n\t */\n\t\n\tLLMS.Quiz_Attempt = {\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\t$( '.llms-quiz-attempt-question-header a.toggle-answer' ).on( 'click', function( e ) {\n\t\n\t\t\t\te.preventDefault();\n\t\n\t\t\t\tvar $curr = $( this ).closest( 'header' ).next( '.llms-quiz-attempt-question-main' );\n\t\n\t\t\t\t$( this ).closest( 'li' ).siblings().find( '.llms-quiz-attempt-question-main' ).slideUp( 200 );\n\t\n\t\t\t\tif ( $curr.is( ':visible' ) ) {\n\t\t\t\t\t$curr.slideUp( 200 );\n\t\t\t\t} else {\n\t\t\t\t\t$curr.slideDown( 200 );\n\t\t\t\t}\n\t\n\t\t\t} );\n\t\t}\n\t\n\t}\n\t\n\t\t/**\n\t * LifterLMS Reviews JS\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since Unknown\n\t * @version Unknown\n\t */\n\t\n\tLLMS.Review = {\n\t\t/**\n\t\t * Init\n\t\t * loads class methods\n\t\t */\n\t\tinit: function() {\n\t\t\t// console.log('Initializing Review ');\n\t\t\tthis.bind();\n\t\t},\n\t\n\t\t/**\n\t\t * This function binds actions to the appropriate hooks\n\t\t */\n\t\tbind: function() {\n\t\t\t$( '#llms_review_submit_button' ).click(function()\n\t\t\t\t{\n\t\t\t\tif ($( '#review_title' ).val() !== '' && $( '#review_text' ).val() !== '') {\n\t\t\t\t\tjQuery.ajax({\n\t\t\t\t\t\ttype : 'post',\n\t\t\t\t\t\tdataType : 'json',\n\t\t\t\t\t\turl : window.llms.ajaxurl,\n\t\t\t\t\t\tdata : {\n\t\t\t\t\t\t\taction : 'LLMSSubmitReview',\n\t\t\t\t\t\t\treview_title: $( '#review_title' ).val(),\n\t\t\t\t\t\t\treview_text: $( '#review_text' ).val(),\n\t\t\t\t\t\t\tpageID : $( '#post_ID' ).val(),\n\t\t\t\t\t\t\tllms_review_nonce: $( '#llms_review_nonce' ).val()\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess: function()\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconsole.log( 'Review success' );\n\t\t\t\t\t\t\t$( '#review_box' ).hide( 'swing' );\n\t\t\t\t\t\t\t$( '#thank_you_box' ).show( 'swing' );\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror: function(jqXHR, textStatus, errorThrown )\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconsole.log( jqXHR );\n\t\t\t\t\t\t\tconsole.log( textStatus );\n\t\t\t\t\t\t\tconsole.log( errorThrown );\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tif ($( '#review_title' ).val() === '') {\n\t\t\t\t\t\t$( '#review_title_error' ).show( 'swing' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$( '#review_title_error' ).hide( 'swing' );\n\t\t\t\t\t}\n\t\t\t\t\tif ($( '#review_text' ).val() === '') {\n\t\t\t\t\t\t$( '#review_text_error' ).show( 'swing' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$( '#review_text_error' ).hide( 'swing' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif ( $( '#_llms_display_reviews' ).attr( 'checked' ) ) {\n\t\t\t\t$( '.llms-num-reviews-top' ).addClass( 'top' );\n\t\t\t\t$( '.llms-num-reviews-bottom' ).show();\n\t\n\t\t\t} else {\n\t\t\t\t$( '.llms-num-reviews-bottom' ).hide();\n\t\t\t}\n\t\t\t$( '#_llms_display_reviews' ).change(function() {\n\t\t\t\tif ( $( '#_llms_display_reviews' ).attr( 'checked' ) ) {\n\t\t\t\t\t$( '.llms-num-reviews-top' ).addClass( 'top' );\n\t\t\t\t\t$( '.llms-num-reviews-bottom' ).show();\n\t\t\t\t} else {\n\t\t\t\t\t$( '.llms-num-reviews-top' ).removeClass( 'top' );\n\t\t\t\t\t$( '.llms-num-reviews-bottom' ).hide();\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t},\n\t};\n\t\n\t\t/* global LLMS, $ */\n\t\n\t/*!\n\t * JavaScript Cookie v2.2.1\n\t * https://github.com/js-cookie/js-cookie\n\t *\n\t * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n\t * Released under the MIT license\n\t */\n\t;(function (factory) {\n\t\tvar registeredInModuleLoader;\n\t\tif (typeof define === 'function' && define.amd) {\n\t\t\tdefine(factory);\n\t\t\tregisteredInModuleLoader = true;\n\t\t}\n\t\tif (typeof exports === 'object') {\n\t\t\tmodule.exports = factory();\n\t\t\tregisteredInModuleLoader = true;\n\t\t}\n\t\tif (!registeredInModuleLoader) {\n\t\t\tvar OldCookies = window.Cookies;\n\t\t\tvar api = window.Cookies = factory();\n\t\t\tapi.noConflict = function () {\n\t\t\t\twindow.Cookies = OldCookies;\n\t\t\t\treturn api;\n\t\t\t};\n\t\t}\n\t}(function () {\n\t\tfunction extend () {\n\t\t\tvar i = 0;\n\t\t\tvar result = {};\n\t\t\tfor (; i < arguments.length; i++) {\n\t\t\t\tvar attributes = arguments[ i ];\n\t\t\t\tfor (var key in attributes) {\n\t\t\t\t\tresult[key] = attributes[key];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t\n\t\tfunction decode (s) {\n\t\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t\t}\n\t\n\t\tfunction init (converter) {\n\t\t\tfunction api() {}\n\t\n\t\t\tfunction set (key, value, attributes) {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tattributes = extend({\n\t\t\t\t\tpath: '/'\n\t\t\t\t}, api.defaults, attributes);\n\t\n\t\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t\t}\n\t\n\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\t\n\t\t\t\ttry {\n\t\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\t\tvalue = result;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\n\t\t\t\tvalue = converter.write ?\n\t\t\t\t\tconverter.write(value, key) :\n\t\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\t\n\t\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\t\n\t\t\t\tvar stringifiedAttributes = '';\n\t\t\t\tfor (var attributeName in attributes) {\n\t\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\n\t\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t\t// ...\n\t\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t\t// character:\n\t\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t\t// ...\n\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t\t}\n\t\n\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t\t}\n\t\n\t\t\tfunction get (key, json) {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tvar jar = {};\n\t\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t\t// in case there are no cookies at all.\n\t\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\t\tvar i = 0;\n\t\n\t\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\t\tvar cookie = parts.slice(1).join('=');\n\t\n\t\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t\t}\n\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\t\tdecode(cookie);\n\t\n\t\t\t\t\t\tif (json) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tjar[name] = cookie;\n\t\n\t\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t}\n\t\n\t\t\t\treturn key ? jar[key] : jar;\n\t\t\t}\n\t\n\t\t\tapi.set = set;\n\t\t\tapi.get = function (key) {\n\t\t\t\treturn get(key, false /* read as raw */);\n\t\t\t};\n\t\t\tapi.getJSON = function (key) {\n\t\t\t\treturn get(key, true /* read as json */);\n\t\t\t};\n\t\t\tapi.remove = function (key, attributes) {\n\t\t\t\tset(key, '', extend(attributes, {\n\t\t\t\t\texpires: -1\n\t\t\t\t}));\n\t\t\t};\n\t\n\t\t\tapi.defaults = {};\n\t\n\t\t\tapi.withConverter = init;\n\t\n\t\t\treturn api;\n\t\t}\n\t\n\t\treturn init(function () {});\n\t}));\n\t\n\t/**\n\t * Create a no conflict reference to JS Cookies.\n\t *\n\t * @type {Object}\n\t */\n\tLLMS.CookieStore = Cookies.noConflict();\n\t\n\t/**\n\t * Store information in Local Storage by group.\n\t *\n\t * @since 3.36.0\n\t * @since 3.37.14 Use persistent reference to JS Cookies.\n\t * @since 4.2.0 Set sameSite to `strict` for cookies.\n\t *\n\t * @param string group Storage group id/name.\n\t */\n\tLLMS.Storage = function( group ) {\n\t\n\t\tvar self = this,\n\t\t\tstore = LLMS.CookieStore;\n\t\n\t\t/**\n\t\t * Clear all data for the group.\n\t\t *\n\t\t * @since 3.36.0\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.clearAll = function() {\n\t\t\tstore.remove( group );\n\t\t};\n\t\n\t\t/**\n\t\t * Clear a single item from the group by key.\n\t\t *\n\t\t * @since 3.36.0\n\t\t *\n\t\t * @return obj\n\t\t */\n\t\tthis.clear = function( key ) {\n\t\t\tvar data = self.getAll();\n\t\t\tdelete data[ key ];\n\t\t\treturn store.set( group, data );\n\t\t};\n\t\n\t\t/**\n\t\t * Retrieve (and parse) all data stored for the group.\n\t\t *\n\t\t * @since 3.36.0\n\t\t *\n\t\t * @return obj\n\t\t */\n\t\tthis.getAll = function() {\n\t\t\treturn store.getJSON( group ) || {};\n\t\t}\n\t\n\t\t/**\n\t\t * Retrieve an item from the group by key.\n\t\t *\n\t\t * @since 3.36.0\n\t\t *\n\t\t * @param string key Item key/name.\n\t\t * @param mixed default_val Item default value to be returned when item not found in the group.\n\t\t * @return mixed\n\t\t */\n\t\tthis.get = function( key, default_val ) {\n\t\t\tvar data = self.getAll();\n\t\t\treturn data[ key ] ? data[ key ] : default_val;\n\t\t}\n\t\n\t\t/**\n\t\t * Store an item in the group by key.\n\t\t *\n\t\t * @since 3.36.0\n\t\t * @since 4.2.0 Set sameSite to `strict` for cookies.\n\t\t *\n\t\t * @param string key Item key name.\n\t\t * @param mixed val Item value\n\t\t * @return obj\n\t\t */\n\t\tthis.set = function( key, val ) {\n\t\t\tvar data = self.getAll();\n\t\t\tdata[ key ] = val;\n\t\t\treturn store.set( group, data, { sameSite: 'strict' } );\n\t\t};\n\t\n\t}\n\t\n\t\t/**\n\t * Student Dashboard related JS\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 3.7.0\n\t * @since 3.10.0 Bind events on the orders screen.\n\t * @since 5.0.0 Removed redundant password toggle logic for edit account screen.\n\t * @version 5.0.0\n\t */\n\tLLMS.StudentDashboard = {\n\t\n\t\t/**\n\t\t * Slug for the current screen/endpoint\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tscreen: '',\n\t\n\t\t/**\n\t\t * Init\n\t\t *\n\t\t * @since 3.7.0\n\t\t * @since 3.10.0 Unknown\n\t\t * @since 5.0.0 Removed password toggle logic.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tif ( $( '.llms-student-dashboard' ).length ) {\n\t\t\t\tthis.bind();\n\t\t\t\tif ( 'orders' === this.get_screen() ) {\n\t\t\t\t\tthis.bind_orders();\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM events\n\t\t *\n\t\t * @since 3.7.0\n\t\t * @since 3.7.4 Unknown.\n\t\t * @since 5.0.0 Removed password toggle logic.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tbind: function() {\n\t\n\t\t\t$( '.llms-donut' ).each( function() {\n\t\t\t\tLLMS.Donut( $( this ) );\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind events related to the orders screen on the dashboard\n\t\t *\n\t\t * @since 3.10.0\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tbind_orders: function() {\n\t\n\t\t\t$( '#llms-cancel-subscription-form' ).on( 'submit', this.order_cancel_warning );\n\t\t\t$( '#llms_update_payment_method' ).on( 'click', function() {\n\t\t\t\t$( 'input[name=\"llms_payment_gateway\"]:checked' ).trigger( 'change' );\n\t\t\t\t$( this ).closest( 'form' ).find( '.llms-switch-payment-source-main' ).slideToggle( '200' );\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Get the current dashboard endpoint/tab slug\n\t\t *\n\t\t * @since 3.10.0\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tget_screen: function() {\n\t\t\tif ( ! this.screen ) {\n\t\t\t\tthis.screen = $( '.llms-student-dashboard' ).attr( 'data-current' );\n\t\t\t}\n\t\t\treturn this.screen;\n\t\t},\n\t\n\t\t/**\n\t\t * Show a confirmation warning when Cancel Subscription form is submitted\n\t\t *\n\t\t * @since 3.10.0\n\t\t *\n\t\t * @param obj e JS event data.\n\t\t * @return void\n\t\t */\n\t\torder_cancel_warning: function( e ) {\n\t\t\te.preventDefault();\n\t\t\tvar msg = LLMS.l10n.translate( 'Are you sure you want to cancel your subscription?' );\n\t\t\tif ( window.confirm( LLMS.l10n.translate( msg ) ) ) {\n\t\t\t\t$( this ).off( 'submit', this.order_cancel_warning );\n\t\t\t\t$( this ).submit();\n\t\t\t}\n\t\t},\n\t\n\t};\n\t\n\t\t/* global LLMS, $ */\n\t\n\t/**\n\t * User event/interaction tracking.\n\t *\n\t * @since 3.36.0\n\t * @since 3.36.2 Fix JS error when settings aren't loaded.\n\t * @since 3.37.2 When adding an event to the storae also make sure the nonce is set for server-side verification.\n\t * @since 3.37.9 Fix IE compatibility issue related to usage of `Object.assign()`.\n\t * @since 3.37.14 Persist the tracking events via ajax when reaching the cookie size limit.\n\t * @since 5.0.0 Set `settings` as an empty object when no settings supplied.\n\t * @since 7.1.0 Only attempt to add a nonce to the datastore when a nonce exists in the settings object.\n\t */\n\tLLMS.Tracking = function( settings ) {\n\t\n\t\tsettings = settings || {};\n\t\n\t\tvar self = this,\n\t\t\tstore = new LLMS.Storage( 'llms-tracking' );\n\t\n\t\tsettings = 'string' === typeof settings ? JSON.parse( settings ) : settings;\n\t\n\t\t/**\n\t\t * Initialize / Bind all tracking event listeners.\n\t\t *\n\t\t * @since 3.36.0\n\t\t * @since 5.0.0 Only attempt to add a nonce to the datastore when a nonce exists in the settings object.\n\t\t * @since 7.1.0 Do not add a nonce to the datastore by default, will be added/updated\n\t\t * when storing an event to track.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tfunction init() {\n\t\n\t\t\tself.addEvent( 'page.load' );\n\t\n\t\t\twindow.addEventListener( 'beforeunload', onBeforeUnload );\n\t\t\twindow.addEventListener( 'unload', onUnload );\n\t\n\t\t\tdocument.addEventListener( 'visibilitychange', onVisibilityChange );\n\t\n\t\t};\n\t\n\t\t/**\n\t\t * Add an event.\n\t\t *\n\t\t * @since 3.36.0\n\t\t * @since 3.36.2 Fix error when settings aren't loaded.\n\t\t * @since 3.37.2 Always make sure the nonce is set for server-side verification.\n\t\t * @since 3.37.14 Persist the tracking events via ajax when reaching the cookie size limit.\n\t\t * @since 7.1.0 Only attempt to add a nonce to the datastore when a nonce exists in the settings object.\n\t\t *\n\t\t * @param string|obj event Event Id (type.event) or a full event object from `this.makeEventObj()`.\n\t\t * @param int args Optional additional arguments to pass to `this.makeEventObj()`.\n\t\t * @return {void}\n\t\t */\n\t\tthis.addEvent = function( event, args ) {\n\t\n\t\t\targs = args || {};\n\t\t\tif ( 'string' === typeof event ) {\n\t\t\t\targs.event = event;\n\t\t\t}\n\t\n\t\t\t// If the event isn't registered in the settings don't proceed.\n\t\t\tif ( !settings.events || -1 === settings.events.indexOf( args.event ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\t// Make sure the nonce is set for server-side verification.\n\t\t\tif ( settings.nonce ) {\n\t\t\t\tstore.set( 'nonce', settings.nonce );\n\t\t\t}\n\t\n\t\t\tevent = self.makeEventObj( args );\n\t\n\t\t\tvar all = store.get( 'events', [] );\n\t\t\tall.push( event );\n\t\t\tstore.set( 'events', all );\n\t\n\t\t\t// If couldn't store the latest event because of size limits.\n\t\t\tif ( all.length > store.get( 'events', [] ).length ) {\n\t\n\t\t\t\t// Copy the cookie in a temporary variable.\n\t\t\t\tvar _temp = store.getAll();\n\t\t\t\t// Clear the events from the cookie.\n\t\t\t\tstore.clear('events');\n\t\n\t\t\t\t// Add the latest event to the temporary variable.\n\t\t\t\t_temp['events'].push( event );\n\t\n\t\t\t\t// Send the temporary variable as string via ajax.\n\t\t\t\tLLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'persist_tracking_events',\n\t\t\t\t\t\t'llms-tracking': JSON.stringify(_temp)\n\t\t\t\t\t},\n\t\n\t\t\t\t\terror: function( xhr, status, error ) {\n\t\n\t\t\t\t\t\tconsole.log( xhr, status, error );\n\t\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( r ) {\n\t\n\t\t\t\t\t\tif ( 'error' === r.code ) {\n\t\t\t\t\t\t\tconsole.log(r.code, r.message);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t}\n\t\n\t\t\t\t} );\n\t\n\t\t\t}\n\t\n\t\t}\n\t\n\t\t/**\n\t\t * Retrieve initialization settings.\n\t\t *\n\t\t * @since 3.36.0\n\t\t *\n\t\t * @return obj\n\t\t */\n\t\tthis.getSettings = function() {\n\t\t\treturn settings;\n\t\t}\n\t\n\t\t/**\n\t\t * Create an event object suitable to save as an event.\n\t\t *\n\t\t * @since 3.36.0\n\t\t * @since 3.37.9 Use `$.extend()` in favor of `Object.assign()`.\n\t\t *\n\t\t * @param obj event {\n\t\t * Event hash\n\t\t *\n\t\t * @param {string} event (Required) Event ID, eg: \"page.load\".\n\t\t * @param {url} url Event URL. (Optional, added automatically) Stored as metadata and used to infer an object_id for post events.\n\t\t * @param {time} float (Optional, added automatically) Timestamp (in milliseconds). Used for the event creation date.\n\t\t * @param {int} obj_id (Optional). The object ID. Inferred automatically via `url` if not provided.\n\t\t * @param {obj} meta (Optional) Hash of metadata to store with the event.\n\t\t * }\n\t\t * @return obj\n\t\t */\n\t\tthis.makeEventObj = function( event ) {\n\t\t\treturn $.extend( event, {\n\t\t\t\turl: window.location.href,\n\t\t\t\ttime: Math.round( new Date().getTime() / 1000 ),\n\t\t\t} );\n\t\t}\n\t\n\t\n\t\t/**\n\t\t * Remove the visibility change event listener on window.beforeunload\n\t\t *\n\t\t * Prevents actual unloading from recording a blur event from the visibility change listener\n\t\t *\n\t\t * @param obj e JS event object.\n\t\t * @return void\n\t\t */\n\t\tfunction onBeforeUnload( e ) {\n\t\t\tdocument.removeEventListener( 'visibilitychange', onVisibilityChange );\n\t\t}\n\t\n\t\t/**\n\t\t * Record a `page.exit` event on window.unload.\n\t\t *\n\t\t * @since 3.36.0\n\t\t *\n\t\t * @param obj e JS event object.\n\t\t * @return void\n\t\t */\n\t\tfunction onUnload( e ) {\n\t\t\tself.addEvent( 'page.exit' );\n\t\t}\n\t\n\t\t/**\n\t\t * Record `page.blur` and `page.focus` events via document.visilibitychange events.\n\t\t *\n\t\t * @since 3.36.0\n\t\t *\n\t\t * @param obj e JS event object.\n\t\t * @return void\n\t\t */\n\t\tfunction onVisibilityChange( e ) {\n\t\n\t\t\tvar event = document.hidden ? 'page.blur' : 'page.focus';\n\t\t\tself.addEvent( event );\n\t\n\t\t}\n\t\n\t\t// Initialize on the frontend only.\n\t\tif ( ! $( 'body' ).hasClass( 'wp-admin' ) ) {\n\t\t\tinit();\n\t\t}\n\t\n\t};\n\t\n\tllms.tracking = new LLMS.Tracking( llms.tracking );\n\t\n\t\t/**\n\t * Rest Methods\n\t * Manages URL and Rest object parsing\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since Unknown\n\t * @version Unknown\n\t */\n\t\n\tLLMS.Rest = {\n\t\n\t\t/**\n\t\t * Init\n\t\t * loads class methods\n\t\t */\n\t\tinit: function() {\n\t\t\tthis.bind();\n\t\t},\n\t\n\t\t/**\n\t\t * Bind Method\n\t\t * Handles dom binding on load\n\t\t *\n\t\t * @return {[type]} [description]\n\t\t */\n\t\tbind: function() {\n\t\t},\n\t\n\t\t/**\n\t\t * Searches for string matches in url path\n\t\t *\n\t\t * @param {Array} strings [Array of strings to search for matches]\n\t\t * @return {Boolean} [Was a match found?]\n\t\t */\n\t\tis_path: function( strings ) {\n\t\n\t\t\tvar path_exists = false,\n\t\t\t\turl = window.location.href;\n\t\n\t\t\tfor ( var i = 0; i < strings.length; i++ ) {\n\t\n\t\t\t\tif ( url.search( strings[i] ) > 0 && ! path_exists ) {\n\t\n\t\t\t\t\tpath_exists = true;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\treturn path_exists;\n\t\t},\n\t\n\t\t/**\n\t\t * Retrieves query variables\n\t\t *\n\t\t * @return {[Array]} [array object of query variable key=>value pairs]\n\t\t */\n\t\tget_query_vars: function() {\n\t\n\t\t\tvar vars = [], hash,\n\t\t\t\thashes = window.location.href.slice( window.location.href.indexOf( '?' ) + 1 ).split( '&' );\n\t\n\t\t\tfor (var i = 0; i < hashes.length; i++) {\n\t\t\t\thash = hashes[i].split( '=' );\n\t\t\t\tvars.push( hash[0] );\n\t\t\t\tvars[hash[0]] = hash[1];\n\t\t\t}\n\t\n\t\t\treturn vars;\n\t\t}\n\t\n\t};\n\t\n\n\t(()=>{\"use strict\";var t={d:(n,e)=>{for(var r in e)t.o(e,r)&&!t.o(n,r)&&Object.defineProperty(n,r,{enumerable:!0,get:e[r]})},o:(t,n)=>Object.prototype.hasOwnProperty.call(t,n),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},n={};t.r(n),t.d(n,{get:()=>d,start:()=>p,stop:()=>c});const e=\"llms-spinning\",r=\"default\",o=window.wp.i18n;function i(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r;const i=document.createElement(\"div\"),l=(0,o.__)(\"Loading…\",\"lifterlms\");return i.innerHTML=`${l} `,i.classList.add(e),t.appendChild(i),i}function l(t){if((t=\"string\"==typeof t?document.querySelectorAll(t):t)instanceof NodeList)return Array.from(t);const n=[];return t instanceof Element?n.push(t):\"undefined\"!=typeof jQuery&&t instanceof jQuery&&t.toArray().forEach((t=>n.push(t))),n}function s(t){const n=t.querySelectorAll(\".llms-spinning\");return n.length?Array.from(n).find((n=>t===n.parentNode)):null}function a(){const t=\"llms-spinner-styles\";if(!document.getElementById(t)){const n=document.createElement(\"style\");n.textContent=\"\\n\\t.llms-spinning {\\n\\t\\tbackground: rgba( 250, 250, 250, 0.7 );\\n\\t\\tbottom: 0;\\n\\t\\tdisplay: none;\\n\\t\\tleft: 0;\\n\\t\\tposition: absolute;\\n\\t\\tright: 0;\\n\\t\\ttop: 0;\\n\\t\\tz-index: 2;\\n\\t}\\n\\n\\t.llms-spinner {\\n\\t\\tanimation: llms-spinning 1.5s linear infinite;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tborder: 4px solid #313131;\\n\\t\\tborder-radius: 50%;\\n\\t\\theight: 40px;\\n\\t\\tleft: 50%;\\n\\t\\tmargin-left: -20px;\\n\\t\\tmargin-top: -20px;\\n\\t\\tposition: absolute;\\n\\t\\ttop: 50%;\\n\\t\\twidth: 40px;\\n\\n\\t}\\n\\n\\t.llms-spinner.small {\\n\\t\\tborder-width: 2px;\\n\\t\\theight: 20px;\\n\\t\\tmargin-left: -10px;\\n\\t\\tmargin-top: -10px;\\n\\t\\twidth: 20px;\\n\\t}\\n\\n\\t@keyframes llms-spinning {\\n\\t\\t0% {\\n\\t\\t\\ttransform: rotate( 0deg )\\n\\t\\t}\\n\\t\\t50% {\\n\\t\\t\\tborder-radius: 5%;\\n\\t\\t}\\n\\t\\t100% {\\n\\t\\t\\ttransform: rotate( 220deg) \\n\\t\\t}\\n\\t}\\n\".replace(/\\n/g,\"\").replace(/\\t/g,\" \").replace(/\\s\\s+/g,\" \"),n.id=t,document.head.appendChild(n)}}function d(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,e=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];a();const o=l(t);if(!o.length)return null;const d=o[0],p=s(d)||i(d,n);return e&&\"undefined\"!=typeof jQuery?jQuery(p):p}function p(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r;l(t).forEach((t=>{const e=d(t,n,!1);e&&(e.style.display=\"block\")}))}function c(t){l(t).forEach((t=>{const n=d(t,r,!1);n&&(n.style.display=\"none\")}))}window.LLMS=window.LLMS||{},window.LLMS.Spinner=n})();\n\n\t/**\n\t * Initializes all classes within the LLMS Namespace\n\t *\n\t * @since Unknown\n\t *\n\t * @return {void}\n\t */\n\tLLMS.init = function() {\n\n\t\tfor (var func in LLMS) {\n\n\t\t\tif ( typeof LLMS[func] === 'object' && LLMS[func] !== null ) {\n\n\t\t\t\tif ( LLMS[func].init !== undefined ) {\n\n\t\t\t\t\tif ( typeof LLMS[func].init === 'function') {\n\t\t\t\t\t\tLLMS[func].init();\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t};\n\n\t/**\n\t * Determine if the current device is touch-enabled\n\t *\n\t * @since 3.24.3\n\t *\n\t * @see {@link https://stackoverflow.com/a/4819886/400568}\n\t *\n\t * @return {Boolean} Whether or not the device is touch-enabled.\n\t */\n\tLLMS.is_touch_device = function() {\n\n\t\tvar prefixes = ' -webkit- -moz- -o- -ms- '.split( ' ' );\n\t\tvar mq = function( query ) {\n\t\t\treturn window.matchMedia( query ).matches;\n\t\t}\n\n\t\tif ( ( 'ontouchstart' in window ) || window.DocumentTouch && document instanceof DocumentTouch ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t/**\n\t\t * Include the 'heartz' as a way to have a non matching MQ to help terminate the join.\n\t\t *\n\t\t * @see {@link https://git.io/vznFH}\n\t\t */\n\t\tvar query = ['(', prefixes.join( 'touch-enabled),(' ), 'heartz', ')'].join( '' );\n\t\treturn mq( query );\n\n\t};\n\n\t/**\n\t * Wait for matchHeight to load\n\t *\n\t * @since 3.0.0\n\t * @since 3.16.6 Unknown.\n\t * @since 5.3.3 Pass a dependency name to `wait_for()`.\n\t *\n\t * @param {Function} cb Callback function to run when matchheight is ready.\n\t * @return {void}\n\t */\n\tLLMS.wait_for_matchHeight = function( cb ) {\n\t\tthis.wait_for( function() {\n\t\t\treturn ( undefined !== $.fn.matchHeight );\n\t\t}, cb, 'matchHeight' );\n\t}\n\n\t/**\n\t * Wait for webuiPopover to load\n\t *\n\t * @since 3.9.1\n\t * @since 3.16.6 Unknown.\n\t *\n\t * @param {Function} cb Callback function to run when matchheight is ready.\n\t * @return {void}\n\t */\n\tLLMS.wait_for_popover = function( cb ) {\n\t\tthis.wait_for( function() {\n\t\t\treturn ( undefined !== $.fn.webuiPopover );\n\t\t}, cb, 'webuiPopover' );\n\t}\n\n\t/**\n\t * Wait for a dependency to load and then run a callback once it has\n\t *\n\t * Temporary fix for a less-than-optimal assets loading function on the PHP side of things.\n\t *\n\t * @since 3.9.1\n\t * @since 5.3.3 Added optional `name` parameter.\n\t *\n\t * @param {Function} test A function that returns a truthy if the dependency is loaded.\n\t * @param {Function} cb A callback function executed once the dependency is loaded.\n\t * @param {string} name The dependency name.\n\t * @return {void}\n\t */\n\tLLMS.wait_for = function( test, cb, name ) {\n\n\t\tvar counter = 0,\n\t\t\tinterval;\n\n\t\tname = name ? name : 'unnamed';\n\n\t\tinterval = setInterval( function() {\n\n\t\t\t// If we get to 30 seconds log an error message.\n\t\t\tif ( counter >= 300 ) {\n\n\t\t\t\tconsole.log( 'Unable to load dependency: ' + name );\n\n\t\t\t\t// If we can't access yet, increment and wait...\n\t\t\t} else {\n\n\t\t\t\t// Bind the events, we're good!\n\t\t\t\tif ( test() ) {\n\t\t\t\t\tcb();\n\t\t\t\t} else {\n\t\t\t\t\t// console.log( 'Waiting for dependency: ' + name );\n\t\t\t\t\tcounter++;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tclearInterval( interval );\n\n\t\t}, 100 );\n\n\t};\n\n\tLLMS.init( $ );\n\n} )( jQuery );\n"],"sourceRoot":"../../js/private"}
\ No newline at end of file
diff --git a/assets/maps/js/llms.min.js.map b/assets/maps/js/llms.min.js.map
new file mode 100644
index 0000000000..3452583ee1
--- /dev/null
+++ b/assets/maps/js/llms.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["llms.js"],"names":["LLMS","window","$","factory","OldCookies","api","Achievements","init","self","length","this","bind","maybe_open","each","create_modal","on","$this","id","attr","$modal","iziModal","$el","append","headerColor","group","history","loop","overlayColor","transitionIn","transitionOut","width","onOpening","modal","setTitle","find","html","setSubtitle","setContent","onClosing","pushState","document","title","location","pathname","search","let","hash","split","parseInt","Number","isInteger","a","querySelector","join","click","Ajax","url","ajaxurl","llms","type","data","cache","dataType","async","response","obj","_ajax_nonce","ajax_nonce","wp_ajax_data","nonce","query_vars","Rest","get_query_vars","post_id","post","val","call","settings","request","ajax","Donut","options","extend","element","percent","circle","stroke_width","css","radius","angle","hasClass","i","Math","round","first","increment","animate","timer","setInterval","d","radians","PI","x","cos","y","sin","clearInterval","Forms","address_info","$cities","$countries","$states","$states_holder","bind_matching_fields","bind_voucher_field","bind_edit_account","bind_l10n_selects","handle_toggle_click","$zips","wait_for","undefined","fn","llmsSelect2","prep_state_field","add","JSON","parse","update_locale_info","trigger","not","$parents","$field","$match","closest","val_1","val_2","addClass","removeClass","e","preventDefault","toggle","get_field_parent","get_label_text","$label","$clone","clone","remove","text","trim","event","$fields","isShowing","displayFunc","disabled","textAttr","$parent","$holder","appendTo","update_label","$required","country_code","info","update_state_options","state","update_locale_info_for_field","city","postcode","label","enable_field","disable_field","opts","name","class","insertAfter","hide","removeAttr","next","detach","show","Instructors","wait_for_matchHeight","matchHeight","l10n","translate","string","strings","replace","replacements","str","token","value","indexOf","toString","LessonPreview","$els","$locked","match_height","msg","$tip","get_tooltip","setTimeout","Loops","OutlineCollapse","$outlines","$outline","$headers","$section","get_section_state","open_section","close_section","opposite_action","PasswordStrength","$meter","$pass","$conf","$form","setup_references","wp","passwordStrength","submit","check_strength","$pass_field","$conf_field","pass_length","conf_length","get_current_strength_status","get_current_strength","checkout","callback","get_blocklist","blocklist","userInputDisallowedList","concat","get_setting","push","format","pass","conf","meter","get_strength_slug","get_strength_text","curr","min","get_strength_value","get_minimum_strength","key","default_val","get_settings","strength_val","slugs","-1","1","2","3","4","5","texts","strength_slug","values","too-short","very-weak","weak","medium","strong","mismatch","off","scrollTop","offset","top","fadeIn","get_blacklist","console","log","Pricing_Tables","wait_for_popover","bind_locked","webuiPopover","animation","closeable","content","$content","$element","placement","style","Quiz_Attempt","$curr","siblings","slideUp","is","slideDown","Review","jQuery","action","review_title","review_text","pageID","llms_review_nonce","success","error","jqXHR","textStatus","errorThrown","change","result","arguments","attributes","decode","s","decodeURIComponent","converter","set","path","defaults","expires","Date","toUTCString","stringify","test","write","encodeURIComponent","String","escape","attributeName","stringifiedAttributes","cookie","get","json","jar","cookies","parts","slice","charAt","read","getJSON","withConverter","define","amd","registeredInModuleLoader","exports","module","Cookies","noConflict","CookieStore","Storage","store","clearAll","clear","getAll","sameSite","StudentDashboard","screen","get_screen","bind_orders","order_cancel_warning","slideToggle","confirm","Tracking","onBeforeUnload","removeEventListener","onVisibilityChange","onUnload","addEvent","hidden","args","events","makeEventObj","all","_temp","llms-tracking","xhr","status","r","code","message","getSettings","href","time","getTime","addEventListener","tracking","is_path","path_exists","vars","hashes","t","n","o","Object","defineProperty","enumerable","prototype","hasOwnProperty","Symbol","toStringTag","start","l","forEach","display","stop","i18n","querySelectorAll","NodeList","Array","from","Element","toArray","getElementById","createElement","textContent","head","appendChild","p","parentNode","__","innerHTML","classList","Spinner","func","is_touch_device","prefixes","DocumentTouch","query","matchMedia","matches","cb","interval","counter"],"mappings":"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","file":"../../js/llms.min.js","sourcesContent":["/**\n * Main LLMS Namespace\n *\n * @since 1.0.0\n * @version 5.3.3\n */\n\nvar LLMS = window.LLMS || {};\n( function( $ ){\n\n\t'use strict';\n\n\t/**\n\t * Load all app modules\n\t */\n\t/**\n\t * Front End Achievements\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 3.14.0\n\t * @version 6.10.2\n\t */\n\t\n\tLLMS.Achievements = {\n\t\n\t\t/**\n\t\t * Init\n\t\t *\n\t\t * @since 3.14.0\n\t\t * @since 4.5.1 Fix conditional loading check.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tif ( $( '.llms-achievement' ).length ) {\n\t\n\t\t\t\tvar self = this;\n\t\n\t\t\t\t$( function() {\n\t\t\t\t\tself.bind();\n\t\t\t\t\tself.maybe_open();\n\t\t\t\t} );\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM events\n\t\t *\n\t\t * @since 3.14.0\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tbind: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\t$( '.llms-achievement' ).each( function() {\n\t\n\t\t\t\tself.create_modal( $( this ) );\n\t\n\t\t\t} );\n\t\n\t\t\t$( '.llms-achievement' ).on( 'click', function() {\n\t\n\t\t\t\tvar $this = $( this ),\n\t\t\t\t\tid = 'achievement-' + $this.attr( 'data-id' ),\n\t\t\t\t\t$modal = $( '#' + id );\n\t\n\t\t\t\tif ( ! $modal.length ) {\n\t\t\t\t\tself.create_modal( $this );\n\t\t\t\t}\n\t\n\t\t\t\t$modal.iziModal( 'open' );\n\t\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Creates modal a modal for an achievement\n\t\t *\n\t\t * @since 3.14.0\n\t\t *\n\t\t * @param obj $el The jQuery selector for the modal card.\n\t\t * @return {void}\n\t\t */\n\t\tcreate_modal: function( $el ) {\n\t\n\t\t\tvar id = 'achievement-' + $el.attr( 'data-id' ),\n\t\t\t\t$modal = $( '#' + id );\n\t\n\t\t\tif ( ! $modal.length ) {\n\t\t\t\t$modal = $( '
' );\n\t\t\t\t$( 'body' ).append( $modal );\n\t\t\t}\n\t\n\t\t\t$modal.iziModal( {\n\t\t\t\theaderColor: '#3a3a3a',\n\t\t\t\tgroup: 'achievements',\n\t\t\t\thistory: true,\n\t\t\t\tloop: true,\n\t\t\t\toverlayColor: 'rgba( 0, 0, 0, 0.6 )',\n\t\t\t\ttransitionIn: 'fadeInDown',\n\t\t\t\ttransitionOut: 'fadeOutDown',\n\t\t\t\twidth: 340,\n\t\t\t\tonOpening: function( modal ) {\n\t\n\t\t\t\t\tmodal.setTitle( $el.find( '.llms-achievement-title' ).html() );\n\t\t\t\t\tmodal.setSubtitle( $el.find( '.llms-achievement-date' ).html() );\n\t\t\t\t\tmodal.setContent( '' + $el.html() + '
' );\n\t\n\t\t\t\t},\n\t\n\t\t\t\tonClosing: function() {\n\t\t\t\t\twindow.history.pushState( '', document.title, window.location.pathname + window.location.search );\n\t\t\t\t},\n\t\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * On page load, opens a modal if the URL contains an achievement in the location hash\n\t\t *\n\t\t * @since 3.14.0\n\t\t * @since 6.10.2 Sanitize achievement IDs before using window.location.hash to trigger the modal open.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tmaybe_open: function() {\n\t\n\t\t\tlet hash = window.location.hash.split( '-' );\n\t\t\tif ( 2 !== hash.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\thash[1] = parseInt( hash[1] );\n\t\t\tif ( '#achievement-' !== hash[0] || ! Number.isInteger( hash[1] ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tconst a = document.querySelector( `a[href=\"${ hash.join( '-' ) }\"]` )\n\t\t\tif ( ! a ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\ta.click();\n\t\n\t\t}\n\t\n\t};\n\t\n\t\t/**\n\t * Main Ajax class\n\t * Handles Primary Ajax connection\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since Unknown\n\t * @version Unknown\n\t */\n\t\n\tLLMS.Ajax = {\n\t\n\t\t/**\n\t\t * Url\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\turl: window.ajaxurl || window.llms.ajaxurl,\n\t\n\t\t/**\n\t\t * Type\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\ttype: 'post',\n\t\n\t\t/**\n\t\t * Data\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\tdata: [],\n\t\n\t\t/**\n\t\t * Cache\n\t\t *\n\t\t * @type {[type]}\n\t\t */\n\t\tcache: false,\n\t\n\t\t/**\n\t\t * DataType\n\t\t * defaulted to json\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tdataType: 'json',\n\t\n\t\t/**\n\t\t * Async\n\t\t * default to false\n\t\t *\n\t\t * @type {Boolean}\n\t\t */\n\t\tasync: true,\n\t\n\t\tresponse:[],\n\t\n\t\t/**\n\t\t * Initialize Ajax methods\n\t\t *\n\t\t * @since Unknown\n\t\t * @since 4.4.0 Update ajax nonce source.\n\t\t *\n\t\t * @param {Object} obj Options object.\n\t\t * @return {Object}\n\t\t */\n\t\tinit: function( obj ) {\n\t\n\t\t\t// If obj is not of type object or null return false.\n\t\t\tif ( obj === null || typeof obj !== 'object' ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// set object defaults if values are not supplied\n\t\t\tobj.url = 'url' in obj ? obj.url : this.url;\n\t\t\tobj.type = 'type' \t\tin obj ? obj.type : this.type;\n\t\t\tobj.data = 'data' \t\tin obj ? obj.data : this.data;\n\t\t\tobj.cache = 'cache' \t\tin obj ? obj.cache : this.cache;\n\t\t\tobj.dataType = 'dataType'\tin obj ? obj.dataType : this.dataType;\n\t\t\tobj.async = 'async'\t\tin obj ? obj.async : this.async;\n\t\n\t\t\t// Add nonce to data object.\n\t\t\tobj.data._ajax_nonce = window.llms.ajax_nonce || wp_ajax_data.nonce;\n\t\n\t\t\t// Add post id to data object.\n\t\t\tvar $R = LLMS.Rest,\n\t\t\tquery_vars = $R.get_query_vars();\n\t\t\tobj.data.post_id = 'post' in query_vars ? query_vars.post : null;\n\t\t\tif ( ! obj.data.post_id && $( 'input#post_ID' ).length ) {\n\t\t\t\tobj.data.post_id = $( 'input#post_ID' ).val();\n\t\t\t}\n\t\n\t\t\treturn obj;\n\t\t},\n\t\n\t\t/**\n\t\t * Call\n\t\t * Called by external classes\n\t\t * Sets up jQuery Ajax object\n\t\t *\n\t\t * @param {[object]} [object of ajax settings]\n\t\t * @return {[mixed]} [false if not object or this]\n\t\t */\n\t\tcall: function(obj) {\n\t\n\t\t\t// get default variables if not included in call\n\t\t\tvar settings = this.init( obj );\n\t\n\t\t\t// if init return a response of false\n\t\t\tif ( ! settings) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tthis.request( settings );\n\t\t\t}\n\t\n\t\t\treturn this;\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Calls jQuery Ajax on settings object\n\t\t *\n\t\t * @return {[object]} [this]\n\t\t */\n\t\trequest: function(settings) {\n\t\n\t\t\t$.ajax( settings );\n\t\n\t\t\treturn this;\n\t\n\t\t}\n\t\n\t};\n\t\n\t\t/**\n\t * Create a Donut Chart\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 3.9.0\n\t * @version 4.15.0\n\t *\n\t * @link https://gist.github.com/joeyinbox/8205962\n\t *\n\t * @param {Object} $el jQuery element to draw a chart within.\n\t */\n\t\n\tLLMS.Donut = function( $el ) {\n\t\n\t\t/**\n\t\t * Constructor\n\t\t *\n\t\t * @since 3.9.0\n\t\t * @since 4.15.0 Flip animation in RTL.\n\t\t *\n\t\t * @param {Object} options Donut options.\n\t\t * @return {Void}\n\t\t */\n\t\tfunction Donut(options) {\n\t\n\t\t\tthis.settings = $.extend( {\n\t\t\t\telement: options.element,\n\t\t\t\tpercent: 100\n\t\t\t}, options );\n\t\n\t\t\tthis.circle = this.settings.element.find( 'path' );\n\t\t\tthis.settings.stroke_width = parseInt( this.circle.css( 'stroke-width' ) );\n\t\t\tthis.radius = ( parseInt( this.settings.element.css( 'width' ) ) - this.settings.stroke_width ) / 2;\n\t\t\tthis.angle = $( 'body' ).hasClass( 'rtl' ) ? 82.5 : 97.5; // Origin of the draw at the top of the circle\n\t\t\tthis.i = Math.round( 0.75 * this.settings.percent );\n\t\t\tthis.first = true;\n\t\t\tthis.increment = $( 'body' ).hasClass( 'rtl' ) ? -5 : 5;\n\t\n\t\t\tthis.animate = function() {\n\t\t\t\tthis.timer = setInterval( this.loop.bind( this ), 10 );\n\t\t\t};\n\t\n\t\t\tthis.loop = function() {\n\t\t\t\tthis.angle += this.increment;\n\t\t\t\tthis.angle %= 360;\n\t\t\t\tvar radians = ( this.angle / 180 ) * Math.PI,\n\t\t\t\t\tx = this.radius + this.settings.stroke_width / 2 + Math.cos( radians ) * this.radius,\n\t\t\t\t\ty = this.radius + this.settings.stroke_width / 2 + Math.sin( radians ) * this.radius,\n\t\t\t\t\td;\n\t\t\t\tif (this.first === true) {\n\t\t\t\t\td = this.circle.attr( 'd' ) + ' M ' + x + ' ' + y;\n\t\t\t\t\tthis.first = false;\n\t\t\t\t} else {\n\t\t\t\t\td = this.circle.attr( 'd' ) + ' L ' + x + ' ' + y;\n\t\t\t\t}\n\t\t\t\tthis.circle.attr( 'd', d );\n\t\t\t\tthis.i--;\n\t\n\t\t\t\tif (this.i <= 0) {\n\t\t\t\t\tclearInterval( this.timer );\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\n\t\t/**\n\t\t * Draw donut element\n\t\t *\n\t\t * @since 3.9.0\n\t\t *\n\t\t * @param {Object} $el jQuery element to draw a chart within.\n\t\t * @return {Void}\n\t\t */\n\t\tfunction draw( $el ) {\n\t\t\tvar path = ' ';\n\t\t\t$el.append( '' + path + ' ' );\n\t\t\tvar donut = new Donut( {\n\t\t\t\telement: $el,\n\t\t\t\tpercent: $el.attr( 'data-perc' )\n\t\t\t} );\n\t\t\tdonut.animate();\n\t\t}\n\t\n\t\tdraw( $el );\n\t\n\t};\n\t\n\t\t/**\n\t * Forms\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 5.0.0\n\t * @version 7.0.0\n\t */\n\t\n\tLLMS.Forms = {\n\t\n\t\t/**\n\t\t * Stores locale information.\n\t\t *\n\t\t * Added via PHP.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\taddress_info: {},\n\t\n\t\t/**\n\t\t * jQuery ref. to the city text field.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$cities: null,\n\t\n\t\t/**\n\t\t * jQuery ref. to the countries select field.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$countries: null,\n\t\n\t\t/**\n\t\t * jQuery ref. to the states select field.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$states: null,\n\t\n\t\t/**\n\t\t * jQuery ref. to the hidden states holder field.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$states_holder: null,\n\t\n\t\t/**\n\t\t * Init\n\t\t *\n\t \t * @since 5.0.0\n\t \t * @since 5.3.3 Move select2 dependency check into the `bind_l10_selects()` method.\n\t \t *\n\t \t * @return {void}\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tif ( $( 'body' ).hasClass( 'wp-admin' ) ) {\n\t\t\t\tif ( ! ( $( 'body' ).hasClass( 'profile-php' ) || $( 'body' ).hasClass( 'user-edit-php' ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tself.bind_matching_fields();\n\t\t\tself.bind_voucher_field();\n\t\t\tself.bind_edit_account();\n\t\t\tself.bind_l10n_selects();\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM events for the edit account screen.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tbind_edit_account: function() {\n\t\n\t\t\t// Not an edit account form.\n\t\t\tif ( ! $( 'form.llms-person-form.edit-account' ).length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\t$( '.llms-toggle-fields' ).on( 'click', this.handle_toggle_click );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM Events fields with dynamic localization values and language.\n\t\t *\n\t\t * @since 5.0.0\n\t\t * @since 5.3.3 Bind select2-related events after ensuring select2 is available.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tbind_l10n_selects: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tself.$cities = $( '#llms_billing_city' );\n\t\t\tself.$countries = $( '.llms-l10n-country-select select' );\n\t\t\tself.$states = $( '.llms-l10n-state-select select' );\n\t\t\tself.$zips = $( '#llms_billing_zip' );\n\t\n\t\t\tif ( ! self.$countries.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tvar isSelect2Available = function() {\n\t\t\t\treturn ( undefined !== $.fn.llmsSelect2 );\n\t\t\t};\n\t\n\t\t\tLLMS.wait_for( isSelect2Available, function() {\n\t\n\t\t\t\tif ( self.$states.length ) {\n\t\t\t\t\tself.prep_state_field();\n\t\t\t\t}\n\t\n\t\t\t\tself.$countries.add( self.$states ).llmsSelect2( { width: '100%' } );\n\t\n\t\t\t\tif ( window.llms.address_info ) {\n\t\t\t\t\tself.address_info = JSON.parse( window.llms.address_info );\n\t\t\t\t}\n\t\n\t\t\t\tself.$countries.on( 'change', function() {\n\t\n\t\t\t\t\tvar val = $( this ).val();\n\t\t\t\t\tself.update_locale_info( val );\n\t\n\t\t\t\t} ).trigger( 'change' );\n\t\n\t\t\t}, 'llmsSelect2' );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Ensure \"matching\" fields match.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tbind_matching_fields: function() {\n\t\n\t\t\tvar $fields = $( 'input[data-match]' ).not( '[type=\"password\"]' );\n\t\n\t\t\t$fields.each( function() {\n\t\n\t\t\t\tvar $field = $( this ),\n\t\t\t\t\t$match = $( '#' + $field.attr( 'data-match' ) ),\n\t\t\t\t\t$parents;\n\t\n\t\t\t\tif ( $match.length ) {\n\t\n\t\t\t\t\t$parents = $field.closest( '.llms-form-field' ).add( $match.closest( '.llms-form-field' ) );\n\t\n\t\t\t\t\t$field.on( 'input change', function() {\n\t\n\t\t\t\t\t\tvar val_1 = $field.val(),\n\t\t\t\t\t\t\tval_2 = $match.val();\n\t\n\t\t\t\t\t\tif ( val_1 && val_2 && val_1 !== val_2 ) {\n\t\t\t\t\t\t\t$parents.addClass( 'invalid' );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$parents.removeClass( 'invalid' );\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t} );\n\t\n\t\t\t\t}\n\t\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM events for voucher toggles UX.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tbind_voucher_field: function() {\n\t\n\t\t\t$( '#llms-voucher-toggle' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$( '#llms_voucher' ).toggle();\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Retrieve the parent element for a given field.\n\t\t *\n\t\t * The parent element is hidden when the field isn't required.\n\t\t *\n\t\t * @since 5.0.0\n\t\t * @since 7.0.0 Do not look for a WP column wrapper anymore, always return the field's wrapper div.\n\t\t *\n\t\t * @param {Object} $field jQuery dom object.\n\t\t * @return {Object}\n\t\t */\n\t\tget_field_parent: function( $field ) {\n\t\n\t\t\treturn $field.closest( '.llms-form-field' );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Retrieve the text of a label\n\t\t *\n\t\t * Removes any children HTML elements (eg: required span elements) and returns only the labels text.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {Object} $label jQuery object for a label element.\n\t\t * @return {String}\n\t\t */\n\t\tget_label_text: function( $label ) {\n\t\n\t\t\tvar $clone = $label.clone();\n\t\t\t$clone.find( '*' ).remove();\n\t\t\treturn $clone.text().trim();\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Callback function to handle the \"toggle\" button links for changing email address and password on account edit forms\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {Object} event Native JS event object.\n\t\t * @return {void}\n\t\t */\n\t\thandle_toggle_click: function( event ) {\n\t\n\t\t\tevent.preventDefault();\n\t\n\t\t\tvar $this = $( this ),\n\t\t\t\t$fields = $( $( this ).attr( 'data-fields' ) ),\n\t\t\t\tisShowing = $this.attr( 'data-is-showing' ) || 'no',\n\t\t\t\tdisplayFunc = 'yes' === isShowing ? 'hide' : 'show',\n\t\t\t\tdisabled = 'yes' === isShowing ? 'disabled' : null,\n\t\t\t\ttextAttr = 'yes' === isShowing ? 'data-change-text' : 'data-cancel-text';\n\t\n\t\t\t$fields.each( function() {\n\t\n\t\t\t\t$( this ).closest( '.llms-form-field' )[ displayFunc ]();\n\t\t\t\t$( this ).attr( 'disabled', disabled );\n\t\n\t\t\t} );\n\t\n\t\t\t$this.text( $this.attr( textAttr ) );\n\t\t\t$this.attr( 'data-is-showing', 'yes' === isShowing ? 'no' : 'yes' );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Prepares the state select field.\n\t\t *\n\t\t * Moves All optgroup elements into a hidden & disabled select element.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tprep_state_field: function() {\n\t\n\t\t\tvar $parent = this.$states.closest( '.llms-form-field' );\n\t\n\t\t\tthis.$holder = $( ' ' );\n\t\n\t\t\tthis.$holder.appendTo( $parent );\n\t\t\tthis.$states.find( 'optgroup' ).appendTo( this.$holder );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Updates the text of a label for a given field.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {Object} $field jQuery object of the form field.\n\t\t * @param {String} text Label text.\n\t\t * @return {void}\n\t\t */\n\t\tupdate_label: function( $field, text ) {\n\t\n\t\t\tvar $label = this.get_field_parent( $field ).find( 'label' ),\n\t\t\t\t$required = $label.find( '.llms-required' ).clone();\n\t\n\t\t\t$label.html( text );\n\t\t\t$label.append( $required );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Update form fields based on selected country\n\t\t *\n\t\t * Replaces label text with locale-specific language and\n\t\t * hides or shows zip fields based on whether or not\n\t\t * they are required for the given country.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {String} country_code Currently selected country code.\n\t\t * @return {void}\n\t\t */\n\t\tupdate_locale_info: function( country_code ) {\n\t\n\t\t\tif ( ! this.address_info || ! this.address_info[ country_code ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tvar info = this.address_info[ country_code ];\n\t\n\t\t\tthis.update_state_options( country_code );\n\t\t\tthis.update_label( this.$states, info.state );\n\t\n\t\t\tthis.update_locale_info_for_field( this.$cities, info.city );\n\t\t\tthis.update_locale_info_for_field( this.$zips, info.postcode );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Update locale info for a given field.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {Object} $field The jQuery object for the field.\n\t\t * @param {String|Boolean} label The text of the label, or `false` when the field isn't supported.\n\t\t * @return {Void}\n\t\t */\n\t\tupdate_locale_info_for_field: function( $field, label ) {\n\t\n\t\t\tif ( label ) {\n\t\t\t\tthis.update_label( $field, label );\n\t\t\t\tthis.enable_field( $field );\n\t\t\t} else {\n\t\t\t\tthis.disable_field( $field );\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Update the available options in the state field\n\t\t *\n\t\t * Removes existing options and copies the options\n\t\t * for the requested country from the hidden select field.\n\t\t *\n\t\t * If there are no states for the given country the state\n\t\t * field will be hidden.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {String} country_code Currently selected country code.\n\t\t * @return {void}\n\t\t */\n\t\tupdate_state_options: function( country_code ) {\n\t\n\t\t\tif ( ! this.$states.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tvar opts = this.$holder.find( 'optgroup[data-key=\"' + country_code + '\"] option' ).clone();\n\t\n\t\t\tif ( ! opts.length ) {\n\t\t\t\tthis.$states.html( '  ' );\n\t\t\t\tthis.disable_field( this.$states );\n\t\t\t} else {\n\t\t\t\tthis.enable_field( this.$states );\n\t\t\t\tthis.$states.html( opts );\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Disable a given field\n\t\t *\n\t\t * It also hides the parent element, and adds an empty hidden input field\n\t\t * with the same 'name' as teh being disabled field so to be sure to clear the field.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {Object} $field The jQuery object for the field.\n\t\t */\n\t\tdisable_field: function( $field ) {\n\t\t\t$(\n\t\t\t\t' ',\n\t\t\t\t{ name: $field.attr('name'), class: $field.attr( 'class' ) + ' hidden', type: 'hidden' }\n\t\t\t).insertAfter( $field );\n\t\t\t$field.attr( 'disabled', 'disabled' );\n\t\t\tthis.get_field_parent( $field ).hide();\n\t\t},\n\t\n\t\t/**\n\t\t * Enable a given field\n\t\t *\n\t\t * It also shows the parent element, and removes the empty hidden input field\n\t\t * previously added by disable_field().\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {Object} $field The jQuery object for the field.\n\t\t */\n\t\tenable_field: function( $field ) {\n\t\t\t$field.removeAttr( 'disabled' );\n\t\t\t$field.next( '.hidden[name='+$field.attr('name')+']' ).detach();\n\t\t\tthis.get_field_parent( $field ).show();\n\t\t}\n\t\n\t};\n\t\n\t\t/**\n\t * Instructors List\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since Unknown\n\t * @version Unknown\n\t */\n\t\n\tLLMS.Instructors = {\n\t\n\t\t/**\n\t\t * Init\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tif ( $( 'body' ).hasClass( 'wp-admin' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tif ( $( '.llms-instructors' ).length ) {\n\t\n\t\t\t\tLLMS.wait_for_matchHeight( function() {\n\t\t\t\t\tself.bind();\n\t\t\t\t} );\n\t\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind Method\n\t\t * Handles dom binding on load\n\t\t *\n\t\t * @return {[type]} [description]\n\t\t */\n\t\tbind: function() {\n\t\n\t\t\t$( '.llms-instructors .llms-author' ).matchHeight();\n\t\n\t\t},\n\t\n\t};\n\t\n\t\t/**\n\t * Localization functions for LifterLMS Javascript\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 2.7.3\n\t * @version 2.7.3\n\t *\n\t * @todo we need more robust translation functions to handle sprintf and pluralization\n\t * at this moment we don't need those and haven't stubbed them out\n\t * those will be added when they're needed\n\t */\n\t\n\tLLMS.l10n = LLMS.l10n || {};\n\t\n\tLLMS.l10n.translate = function ( string ) {\n\t\n\t\tvar self = this;\n\t\n\t\tif ( self.strings[string] ) {\n\t\n\t\t\treturn self.strings[string];\n\t\n\t\t} else {\n\t\n\t\t\treturn string;\n\t\n\t\t}\n\t\n\t};\n\t\n\t/**\n\t * Translate and replace placeholders in a string\n\t *\n\t * @example LLMS.l10n.replace( 'This is a %2$s %1$s String', {\n\t * \t'%1$s': 'cool',\n\t * \t\t\t'%2$s': 'very'\n\t * \t\t} );\n\t * \t\tOutput: \"This is a very cool String\"\n\t *\n\t * @param string string text string\n\t * @param object replacements object containing token => replacement pairs\n\t * @return string\n\t * @since 3.16.0\n\t * @version 3.16.0\n\t */\n\tLLMS.l10n.replace = function( string, replacements ) {\n\t\n\t\tvar str = this.translate( string );\n\t\n\t\t$.each( replacements, function( token, value ) {\n\t\n\t\t\tif ( -1 !== token.indexOf( 's' ) ) {\n\t\t\t\tvalue = value.toString();\n\t\t\t} else if ( -1 !== token.indexOf( 'd' ) ) {\n\t\t\t\tvalue = value * 1;\n\t\t\t}\n\t\n\t\t\tstr = str.replace( token, value );\n\t\n\t\t} );\n\t\n\t\treturn str;\n\t\n\t};\n\t\n\t\t/**\n\t * Handle Lesson Preview Elements\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 3.0.0\n\t * @version 3.16.12\n\t */\n\t\n\tLLMS.LessonPreview = {\n\t\n\t\t/**\n\t\t * A jQuery object of all outlines present on the current screen\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\t$els: null,\n\t\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tthis.$locked = $( 'a[href=\"#llms-lesson-locked\"]' );\n\t\n\t\t\tif ( this.$locked.length ) {\n\t\n\t\t\t\tself.bind();\n\t\n\t\t\t}\n\t\n\t\t\tif ( $( '.llms-course-navigation' ).length ) {\n\t\n\t\t\t\tLLMS.wait_for_matchHeight( function() {\n\t\n\t\t\t\t\tself.match_height();\n\t\n\t\t\t\t} );\n\t\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM events\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.16.12\n\t\t */\n\t\tbind: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tthis.$locked.on( 'click', function() {\n\t\t\t\treturn false;\n\t\t\t} );\n\t\n\t\t\tthis.$locked.on( 'mouseenter', function() {\n\t\n\t\t\t\tvar $tip = $( this ).find( '.llms-tooltip' );\n\t\t\t\tif ( ! $tip.length ) {\n\t\t\t\t\tvar msg = $( this ).attr( 'data-tooltip-msg' );\n\t\t\t\t\tif ( ! msg ) {\n\t\t\t\t\t\tmsg = LLMS.l10n.translate( 'You do not have permission to access this content' );\n\t\t\t\t\t}\n\t\t\t\t\t$tip = self.get_tooltip( msg );\n\t\t\t\t\t$( this ).append( $tip );\n\t\t\t\t}\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\t$tip.addClass( 'show' );\n\t\t\t\t}, 10 );\n\t\n\t\t\t} );\n\t\n\t\t\tthis.$locked.on( 'mouseleave', function() {\n\t\n\t\t\t\tvar $tip = $( this ).find( '.llms-tooltip' );\n\t\t\t\t$tip.removeClass( 'show' );\n\t\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Match the height of lesson preview items in course navigation blocks\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.0.0\n\t\t */\n\t\tmatch_height: function() {\n\t\n\t\t\t$( '.llms-course-navigation .llms-lesson-link' ).matchHeight();\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Get a tooltip element\n\t\t *\n\t\t * @param string msg message to display inside the tooltip\n\t\t * @return obj\n\t\t * @since 3.0.0\n\t\t * @version 3.2.4\n\t\t */\n\t\tget_tooltip: function( msg ) {\n\t\t\tvar $el = $( '
' );\n\t\t\t$el.append( '' + msg + '
' );\n\t\t\treturn $el;\n\t\t},\n\t\n\t};\n\t\n\t\t/**\n\t * LifterLMS Loops JS\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 3.0.0\n\t * @version 3.14.0\n\t */\n\t\n\tLLMS.Loops = {\n\t\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tif ( $( '.llms-loop' ).length ) {\n\t\n\t\t\t\tLLMS.wait_for_matchHeight( function() {\n\t\n\t\t\t\t\tself.match_height();\n\t\n\t\t\t\t} );\n\t\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Match the height of .llms-loop-item\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.14.0\n\t\t */\n\t\tmatch_height: function() {\n\t\n\t\t\t$( '.llms-loop-item .llms-loop-item-content' ).matchHeight();\n\t\t\t$( '.llms-achievement-loop-item .llms-achievement' ).matchHeight();\n\t\t\t$( '.llms-certificate-loop-item .llms-certificate' ).matchHeight();\n\t\n\t\t},\n\t\n\t};\n\t\n\t\t/**\n\t * Handle the Collapsible Syllabus Widget / Shortcode\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since Unknown\n\t * @version Unknown\n\t */\n\t\n\tLLMS.OutlineCollapse = {\n\t\n\t\t/**\n\t\t * A jQuery object of all outlines present on the current screen\n\t\t *\n\t\t * @type obj\n\t\t */\n\t\t$outlines: null,\n\t\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tthis.$outlines = $( '.llms-widget-syllabus--collapsible' );\n\t\n\t\t\tif ( this.$outlines.length ) {\n\t\n\t\t\t\tthis.bind();\n\t\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM events\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tbind: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tthis.$outlines.each( function() {\n\t\n\t\t\t\tvar $outline = $( this ),\n\t\t\t\t\t$headers = $outline.find( '.llms-section .section-header' );\n\t\n\t\t\t\t// bind header clicks\n\t\t\t\t$headers.on( 'click', function( e ) {\n\t\n\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\tvar $toggle = $( this ),\n\t\t\t\t\t\t$section = $toggle.closest( '.llms-section' ),\n\t\t\t\t\t\tstate = self.get_section_state( $section );\n\t\n\t\t\t\t\tswitch ( state ) {\n\t\n\t\t\t\t\t\tcase 'closed':\n\t\t\t\t\t\t\tself.open_section( $section );\n\t\t\t\t\t\tbreak;\n\t\n\t\t\t\t\t\tcase 'opened':\n\t\t\t\t\t\t\tself.close_section( $section );\n\t\t\t\t\t\tbreak;\n\t\n\t\t\t\t\t}\n\t\n\t\t\t\t} );\n\t\n\t\t\t\t// bind optional toggle \"buttons\"\n\t\t\t\t$outline.find( '.llms-collapse-toggle' ).on( 'click', function( e ) {\n\t\n\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\tvar $btn = $( this ),\n\t\t\t\t\t\taction = $btn.attr( 'data-action' ),\n\t\t\t\t\t\topposite_action = ( 'close' === action ) ? 'opened' : 'closed';\n\t\n\t\t\t\t\t$headers.each( function() {\n\t\n\t\t\t\t\t\tvar $section = $( this ).closest( '.llms-section' ),\n\t\t\t\t\t\t\tstate = self.get_section_state( $section );\n\t\n\t\t\t\t\t\tif ( opposite_action !== state ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tswitch ( state ) {\n\t\n\t\t\t\t\t\t\tcase 'closed':\n\t\t\t\t\t\t\t\tself.close_section( $section );\n\t\t\t\t\t\t\tbreak;\n\t\n\t\t\t\t\t\t\tcase 'opened':\n\t\t\t\t\t\t\t\tself.open_section( $section );\n\t\t\t\t\t\t\tbreak;\n\t\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t$( this ).trigger( 'click' );\n\t\n\t\t\t\t\t} );\n\t\n\t\t\t\t} );\n\t\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Close an outline section\n\t\t *\n\t\t * @param obj $section jQuery selector of a '.llms-section'\n\t\t * @return void\n\t\t */\n\t\tclose_section: function( $section ) {\n\t\n\t\t\t$section.removeClass( 'llms-section--opened' ).addClass( 'llms-section--closed' );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Open an outline section\n\t\t *\n\t\t * @param obj $section jQuery selector of a '.llms-section'\n\t\t * @return void\n\t\t */\n\t\topen_section: function( $section ) {\n\t\n\t\t\t$section.removeClass( 'llms-section--closed' ).addClass( 'llms-section--opened' );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Get the current state (open or closed) of an outline section\n\t\t *\n\t\t * @param obj $section jQuery selector of a '.llms-section'\n\t\t * @return string 'opened' or 'closed'\n\t\t */\n\t\tget_section_state: function( $section ) {\n\t\n\t\t\treturn $section.hasClass( 'llms-section--opened' ) ? 'opened' : 'closed';\n\t\n\t\t}\n\t\n\t};\n\t\n\t\t/**\n\t * Handle Password Strength Meter for registration and password update fields\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 3.0.0\n\t * @version 5.0.0\n\t */\n\t\n\t$.extend( LLMS.PasswordStrength, {\n\t\n\t\t/**\n\t\t * jQuery ref for the password strength meter object.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$meter: $( '.llms-password-strength-meter' ),\n\t\n\t\t/**\n\t\t * jQuery ref for the password field.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$pass: null,\n\t\n\t\t/**\n\t\t * jQuery ref for the password confirmation field\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$conf: null,\n\t\n\t\t/**\n\t\t * jQuery ref for form element.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t$form: null,\n\t\n\t\t/**\n\t\t * Init\n\t\t * loads class methods\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.7.0 Unknown\n\t\t * @since 5.0.0 Move reference setup to `setup_references()`.\n\t\t * Use `LLMS.wait_for()` for dependency waiting.\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tif ( $( 'body' ).hasClass( 'wp-admin' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tif ( ! this.setup_references() ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tLLMS.wait_for( function() {\n\t\t\t\treturn ( 'undefined' !== typeof wp && 'undefined' !== typeof wp.passwordStrength );\n\t\t\t}, function() {\n\t\t\t\tself.bind();\n\t\t\t\tself.$form.trigger( 'llms-password-strength-ready' );\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM Events\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tbind: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\t// add submission event handlers when not on a checkout form\n\t\t\tif ( ! this.$form.hasClass( 'llms-checkout' ) ) {\n\t\t\t\tself.$form.on( 'submit', self, self.submit );\n\t\t\t}\n\t\n\t\t\t// check password strength on keyup\n\t\t\tself.$pass.add( self.$conf ).on( 'keyup', function() {\n\t\t\t\tself.check_strength();\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Check the strength of a user entered password\n\t\t * and update elements depending on the current strength\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 5.0.0 Allow password confirmation to be optional when checking strength.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tcheck_strength: function() {\n\t\n\t\t\tvar $pass_field = this.$pass.closest( '.llms-form-field' ),\n\t\t\t\t$conf_field = this.$conf && this.$conf.length ? this.$conf.closest( '.llms-form-field' ) : null,\n\t\t\t\tpass_length = this.$pass.val().length,\n\t\t\t\tconf_length = this.$conf && this.$conf.length ? this.$conf.val().length : 0;\n\t\n\t\t\t// hide the meter if both fields are empty\n\t\t\tif ( ! pass_length && ! conf_length ) {\n\t\t\t\t$pass_field.removeClass( 'valid invalid' );\n\t\t\t\tif ( $conf_field ) {\n\t\t\t\t\t$conf_field.removeClass( 'valid invalid' );\n\t\t\t\t}\n\t\t\t\tthis.$meter.hide();\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tif ( this.get_current_strength_status() ) {\n\t\t\t\t$pass_field.removeClass( 'invalid' ).addClass( 'valid' );\n\t\t\t\tif ( conf_length ) {\n\t\t\t\t\t$conf_field.removeClass( 'invalid' ).addClass( 'valid' );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$pass_field.removeClass( 'valid' ).addClass( 'invalid' );\n\t\t\t\tif ( conf_length ) {\n\t\t\t\t\t$conf_field.removeClass( 'valid' ).addClass( 'invalid' );\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tthis.$meter.removeClass( 'too-short very-weak weak medium strong mismatch' );\n\t\t\tthis.$meter.show().addClass( this.get_current_strength( 'slug' ) );\n\t\t\tthis.$meter.html( this.get_current_strength( 'text' ) );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Form submission action called during registration on checkout screen\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @param obj self instance of this class\n\t\t * @param Function callback callback function, passes error message or success back to checkout handler\n\t\t * @return void\n\t\t */\n\t\tcheckout: function( self, callback ) {\n\t\n\t\t\tif ( self.get_current_strength_status() ) {\n\t\n\t\t\t\tcallback( true );\n\t\n\t\t\t} else {\n\t\n\t\t\t\tcallback( LLMS.l10n.translate( 'There is an issue with your chosen password.' ) );\n\t\n\t\t\t}\n\t\t},\n\t\n\t\t/**\n\t\t * Get the list of blocklisted strings\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @return array\n\t\t */\n\t\tget_blocklist: function() {\n\t\n\t\t\t// Default values from WP Core + any values added via settings filter..\n\t\t\tvar blocklist = wp.passwordStrength.userInputDisallowedList().concat( this.get_setting( 'blocklist', [] ) );\n\t\n\t\t\t// Add values from all text fields in the form.\n\t\t\tthis.$form.find( 'input[type=\"text\"], input[type=\"email\"], input[type=\"tel\"], input[type=\"number\"]' ).each( function() {\n\t\t\t\tvar val = $( this ).val();\n\t\t\t\tif ( val ) {\n\t\t\t\t\tblocklist.push( val );\n\t\t\t\t}\n\t\t\t} );\n\t\n\t\t\treturn blocklist;\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Retrieve current strength as a number, a slug, or a translated text string\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 5.0.0 Allow password confirmation to be optional when checking strength.\n\t\t *\n\t\t * @param {String} format Derived return format [int|slug|text] defaults to int.\n\t\t * @return mixed\n\t\t */\n\t\tget_current_strength: function( format ) {\n\t\n\t\t\tformat = format || 'int';\n\t\t\tvar pass = this.$pass.val(),\n\t\t\t\tconf = this.$conf && this.$conf.length ? this.$conf.val() : '',\n\t\t\t\tval;\n\t\n\t\t\t// enforce custom length requirement\n\t\t\tif ( pass.length < this.get_setting( 'min_length', 6 ) ) {\n\t\t\t\tval = -1;\n\t\t\t} else {\n\t\t\t\tval = wp.passwordStrength.meter( pass, this.get_blocklist(), conf );\n\t\t\t\t// 0 & 1 are both very-weak\n\t\t\t\tif ( 0 === val ) {\n\t\t\t\t\tval = 1;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif ( 'slug' === format ) {\n\t\t\t\treturn this.get_strength_slug( val );\n\t\t\t} else if ( 'text' === format ) {\n\t\t\t\treturn this.get_strength_text( val );\n\t\t\t} else {\n\t\t\t\treturn val;\n\t\t\t}\n\t\t},\n\t\n\t\t/**\n\t\t * Determines if the current password strength meets the user-defined\n\t\t * minimum password strength requirements\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @return boolean\n\t\t */\n\t\tget_current_strength_status: function() {\n\t\t\tvar curr = this.get_current_strength(),\n\t\t\t\tmin = this.get_strength_value( this.get_minimum_strength() );\n\t\t\treturn ( 5 === curr ) ? false : ( curr >= min );\n\t\t},\n\t\n\t\t/**\n\t\t * Retrieve the minimum password strength for the current form.\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 5.0.0 Replaces the version output via an inline PHP script in favor of utilizing values configured in the settings object.\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tget_minimum_strength: function() {\n\t\t\treturn this.get_setting( 'min_strength', 'strong' );\n\t\t},\n\t\n\t\t/**\n\t\t * Get a setting and fallback to a default value.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @param {String} key Setting key.\n\t\t * @param {mixed} default_val Default value when the requested setting cannot be located.\n\t\t * @return {mixed}\n\t\t */\n\t\tget_setting: function( key, default_val ) {\n\t\t\tvar settings = this.get_settings();\n\t\t\treturn settings[ key ] ? settings[ key ] : default_val;\n\t\t},\n\t\n\t\t/**\n\t\t * Get the slug associated with a strength value\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @param int strength_val Strength value number.\n\t\t * @return string\n\t\t */\n\t\tget_strength_slug: function( strength_val ) {\n\t\n\t\t\tvar slugs = {\n\t\t\t\t'-1': 'too-short',\n\t\t\t\t1: 'very-weak',\n\t\t\t\t2: 'weak',\n\t\t\t\t3: 'medium',\n\t\t\t\t4: 'strong',\n\t\t\t\t5: 'mismatch',\n\t\t\t};\n\t\n\t\t\treturn ( slugs[ strength_val ] ) ? slugs[ strength_val ] : slugs[5];\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Gets the translated text associated with a strength value\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @param {Integer} strength_val Strength value\n\t\t * @return {String}\n\t\t */\n\t\tget_strength_text: function( strength_val ) {\n\t\n\t\t\tvar texts = {\n\t\t\t\t'-1': LLMS.l10n.translate( 'Too Short' ),\n\t\t\t\t1: LLMS.l10n.translate( 'Very Weak' ),\n\t\t\t\t2: LLMS.l10n.translate( 'Weak' ),\n\t\t\t\t3: LLMS.l10n.translate( 'Medium' ),\n\t\t\t\t4: LLMS.l10n.translate( 'Strong' ),\n\t\t\t\t5: LLMS.l10n.translate( 'Mismatch' ),\n\t\t\t};\n\t\n\t\t\treturn ( texts[ strength_val ] ) ? texts[ strength_val ] : texts[5];\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Get the value associated with a strength slug\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @param string strength_slug A strength slug.\n\t\t * @return {Integer}\n\t\t */\n\t\tget_strength_value: function( strength_slug ) {\n\t\n\t\t\tvar values = {\n\t\t\t\t'too-short': -1,\n\t\t\t\t'very-weak': 1,\n\t\t\t\tweak: 2,\n\t\t\t\tmedium: 3,\n\t\t\t\tstrong: 4,\n\t\t\t\tmismatch: 5,\n\t\t\t};\n\t\n\t\t\treturn ( values[ strength_slug ] ) ? values[ strength_slug ] : values.mismatch;\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Setup jQuery references to DOM elements needed to power the password meter.\n\t\t *\n\t\t * @since 5.0.0\n\t\t *\n\t\t * @return {Boolean} Returns `true` if a meter element and password field are found, otherwise returns `false`.\n\t\t */\n\t\tsetup_references: function() {\n\t\n\t\t\tif ( ! this.$meter.length ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\tthis.$form = this.$meter.closest( 'form' );\n\t\t\tthis.$pass = this.$form.find( 'input#password' );\n\t\n\t\t\tif ( this.$pass.length && this.$pass.attr( 'data-match' ) ) {\n\t\t\t\tthis.$conf = this.$form.find( '#' + this.$pass.attr( 'data-match' ) );\n\t\t\t}\n\t\n\t\t\treturn ( this.$pass.length > 0 );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Form submission handler for registration and update forms\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 5.0.0 Allow the account edit for to bypass strength checking when the password field is disabled (not being submitted).\n\t\t *\n\t\t * @param obj e Event data.\n\t\t * @return void\n\t\t */\n\t\tsubmit: function( e ) {\n\t\n\t\t\tvar self = e.data;\n\t\t\te.preventDefault();\n\t\t\tself.$pass.trigger( 'keyup' );\n\t\n\t\t\t// Meets the status requirements OR we're on the account edit form and the password field is disabled.\n\t\t\tif ( self.get_current_strength_status() || ( self.$form.hasClass( 'edit-account' ) && 'disabled' === self.$pass.attr( 'disabled' ) ) ) {\n\t\t\t\tself.$form.off( 'submit', self.submit );\n\t\t\t\tself.$form.trigger( 'submit' );\n\t\t\t} else {\n\t\t\t\t$( 'html, body' ).animate( {\n\t\t\t\t\tscrollTop: self.$meter.offset().top - 100,\n\t\t\t\t}, 200 );\n\t\t\t\tself.$meter.hide();\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\tself.$meter.fadeIn( 400 );\n\t\t\t\t}, 220 );\n\t\t\t}\n\t\t},\n\t\n\t\t/**\n\t\t * Get the list of blocklist strings\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @deprecated 5.0.0 `LLMS.PasswordStrength.get_blacklist()` is deprecated in favor of `LLMS.PasswordStrength.get_blocklist()`.\n\t\t *\n\t\t * @return array\n\t\t */\n\t\tget_blacklist: function() {\n\t\t\tconsole.log( 'Method `get_blacklist()` is deprecated in favor of `get_blocklist()`.' );\n\t\t\treturn this.get_blacklist();\n\t\t},\n\t\n\t} );\n\t\n\t\t/**\n\t * Pricing Table UI\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since Unknown.\n\t * @version Unknown.\n\t */\n\t\n\tLLMS.Pricing_Tables = {\n\t\n\t\t/**\n\t\t * Init\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tvar self = this;\n\t\n\t\t\tif ( $( 'body' ).hasClass( 'wp-admin' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\tif ( $( '.llms-access-plans' ).length ) {\n\t\n\t\t\t\tLLMS.wait_for_matchHeight( function() {\n\t\t\t\t\tself.bind();\n\t\t\t\t} );\n\t\n\t\t\t\tthis.$locked = $( 'a[href=\"#llms-plan-locked\"]' );\n\t\n\t\t\t\tif ( this.$locked.length ) {\n\t\n\t\t\t\t\tLLMS.wait_for_popover( function() {\n\t\t\t\t\t\tself.bind_locked();\n\t\t\t\t\t} );\n\t\n\t\t\t\t}\n\t\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind Method\n\t\t * Handles dom binding on load\n\t\t *\n\t\t * @return {[type]} [description]\n\t\t */\n\t\tbind: function() {\n\t\n\t\t\t$( '.llms-access-plan-content' ).matchHeight();\n\t\t\t$( '.llms-access-plan-pricing.trial' ).matchHeight();\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Setup a popover for members-only restricted plans\n\t\t *\n\t\t * @return void\n\t\t * @since 3.0.0\n\t\t * @version 3.9.1\n\t\t */\n\t\tbind_locked: function() {\n\t\n\t\t\tthis.$locked.each( function() {\n\t\n\t\t\t\t$( this ).webuiPopover( {\n\t\t\t\t\tanimation: 'pop',\n\t\t\t\t\tcloseable: true,\n\t\t\t\t\tcontent: function( e ) {\n\t\t\t\t\t\tvar $content = $( '
' );\n\t\t\t\t\t\t$content.append( e.$element.closest( '.llms-access-plan' ).find( '.llms-access-plan-restrictions ul' ).clone() );\n\t\t\t\t\t\treturn $content;\n\t\t\t\t\t},\n\t\t\t\t\tplacement: 'top',\n\t\t\t\t\tstyle: 'inverse',\n\t\t\t\t\ttitle: LLMS.l10n.translate( 'Members Only Pricing' ),\n\t\t\t\t\twidth: '280px',\n\t\t\t\t} );\n\t\n\t\t\t} );\n\t\n\t\t},\n\t\n\t};\n\t\n\t\t/**\n\t * Quiz Attempt\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 7.3.0\n\t * @version 7.3.0\n\t */\n\t\n\tLLMS.Quiz_Attempt = {\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\t$( '.llms-quiz-attempt-question-header a.toggle-answer' ).on( 'click', function( e ) {\n\t\n\t\t\t\te.preventDefault();\n\t\n\t\t\t\tvar $curr = $( this ).closest( 'header' ).next( '.llms-quiz-attempt-question-main' );\n\t\n\t\t\t\t$( this ).closest( 'li' ).siblings().find( '.llms-quiz-attempt-question-main' ).slideUp( 200 );\n\t\n\t\t\t\tif ( $curr.is( ':visible' ) ) {\n\t\t\t\t\t$curr.slideUp( 200 );\n\t\t\t\t} else {\n\t\t\t\t\t$curr.slideDown( 200 );\n\t\t\t\t}\n\t\n\t\t\t} );\n\t\t}\n\t\n\t}\n\t\n\t\t/**\n\t * LifterLMS Reviews JS\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since Unknown\n\t * @version Unknown\n\t */\n\t\n\tLLMS.Review = {\n\t\t/**\n\t\t * Init\n\t\t * loads class methods\n\t\t */\n\t\tinit: function() {\n\t\t\t// console.log('Initializing Review ');\n\t\t\tthis.bind();\n\t\t},\n\t\n\t\t/**\n\t\t * This function binds actions to the appropriate hooks\n\t\t */\n\t\tbind: function() {\n\t\t\t$( '#llms_review_submit_button' ).click(function()\n\t\t\t\t{\n\t\t\t\tif ($( '#review_title' ).val() !== '' && $( '#review_text' ).val() !== '') {\n\t\t\t\t\tjQuery.ajax({\n\t\t\t\t\t\ttype : 'post',\n\t\t\t\t\t\tdataType : 'json',\n\t\t\t\t\t\turl : window.llms.ajaxurl,\n\t\t\t\t\t\tdata : {\n\t\t\t\t\t\t\taction : 'LLMSSubmitReview',\n\t\t\t\t\t\t\treview_title: $( '#review_title' ).val(),\n\t\t\t\t\t\t\treview_text: $( '#review_text' ).val(),\n\t\t\t\t\t\t\tpageID : $( '#post_ID' ).val(),\n\t\t\t\t\t\t\tllms_review_nonce: $( '#llms_review_nonce' ).val()\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsuccess: function()\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconsole.log( 'Review success' );\n\t\t\t\t\t\t\t$( '#review_box' ).hide( 'swing' );\n\t\t\t\t\t\t\t$( '#thank_you_box' ).show( 'swing' );\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror: function(jqXHR, textStatus, errorThrown )\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconsole.log( jqXHR );\n\t\t\t\t\t\t\tconsole.log( textStatus );\n\t\t\t\t\t\t\tconsole.log( errorThrown );\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tif ($( '#review_title' ).val() === '') {\n\t\t\t\t\t\t$( '#review_title_error' ).show( 'swing' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$( '#review_title_error' ).hide( 'swing' );\n\t\t\t\t\t}\n\t\t\t\t\tif ($( '#review_text' ).val() === '') {\n\t\t\t\t\t\t$( '#review_text_error' ).show( 'swing' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$( '#review_text_error' ).hide( 'swing' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif ( $( '#_llms_display_reviews' ).attr( 'checked' ) ) {\n\t\t\t\t$( '.llms-num-reviews-top' ).addClass( 'top' );\n\t\t\t\t$( '.llms-num-reviews-bottom' ).show();\n\t\n\t\t\t} else {\n\t\t\t\t$( '.llms-num-reviews-bottom' ).hide();\n\t\t\t}\n\t\t\t$( '#_llms_display_reviews' ).change(function() {\n\t\t\t\tif ( $( '#_llms_display_reviews' ).attr( 'checked' ) ) {\n\t\t\t\t\t$( '.llms-num-reviews-top' ).addClass( 'top' );\n\t\t\t\t\t$( '.llms-num-reviews-bottom' ).show();\n\t\t\t\t} else {\n\t\t\t\t\t$( '.llms-num-reviews-top' ).removeClass( 'top' );\n\t\t\t\t\t$( '.llms-num-reviews-bottom' ).hide();\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t},\n\t};\n\t\n\t\t/* global LLMS, $ */\n\t\n\t/*!\n\t * JavaScript Cookie v2.2.1\n\t * https://github.com/js-cookie/js-cookie\n\t *\n\t * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n\t * Released under the MIT license\n\t */\n\t;(function (factory) {\n\t\tvar registeredInModuleLoader;\n\t\tif (typeof define === 'function' && define.amd) {\n\t\t\tdefine(factory);\n\t\t\tregisteredInModuleLoader = true;\n\t\t}\n\t\tif (typeof exports === 'object') {\n\t\t\tmodule.exports = factory();\n\t\t\tregisteredInModuleLoader = true;\n\t\t}\n\t\tif (!registeredInModuleLoader) {\n\t\t\tvar OldCookies = window.Cookies;\n\t\t\tvar api = window.Cookies = factory();\n\t\t\tapi.noConflict = function () {\n\t\t\t\twindow.Cookies = OldCookies;\n\t\t\t\treturn api;\n\t\t\t};\n\t\t}\n\t}(function () {\n\t\tfunction extend () {\n\t\t\tvar i = 0;\n\t\t\tvar result = {};\n\t\t\tfor (; i < arguments.length; i++) {\n\t\t\t\tvar attributes = arguments[ i ];\n\t\t\t\tfor (var key in attributes) {\n\t\t\t\t\tresult[key] = attributes[key];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t\n\t\tfunction decode (s) {\n\t\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t\t}\n\t\n\t\tfunction init (converter) {\n\t\t\tfunction api() {}\n\t\n\t\t\tfunction set (key, value, attributes) {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tattributes = extend({\n\t\t\t\t\tpath: '/'\n\t\t\t\t}, api.defaults, attributes);\n\t\n\t\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t\t}\n\t\n\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\t\n\t\t\t\ttry {\n\t\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\t\tvalue = result;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\n\t\t\t\tvalue = converter.write ?\n\t\t\t\t\tconverter.write(value, key) :\n\t\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\t\n\t\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\t\n\t\t\t\tvar stringifiedAttributes = '';\n\t\t\t\tfor (var attributeName in attributes) {\n\t\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\n\t\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t\t// ...\n\t\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t\t// character:\n\t\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t\t// ...\n\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t\t}\n\t\n\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t\t}\n\t\n\t\t\tfunction get (key, json) {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tvar jar = {};\n\t\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t\t// in case there are no cookies at all.\n\t\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\t\tvar i = 0;\n\t\n\t\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\t\tvar cookie = parts.slice(1).join('=');\n\t\n\t\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t\t}\n\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\t\tdecode(cookie);\n\t\n\t\t\t\t\t\tif (json) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tjar[name] = cookie;\n\t\n\t\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t}\n\t\n\t\t\t\treturn key ? jar[key] : jar;\n\t\t\t}\n\t\n\t\t\tapi.set = set;\n\t\t\tapi.get = function (key) {\n\t\t\t\treturn get(key, false /* read as raw */);\n\t\t\t};\n\t\t\tapi.getJSON = function (key) {\n\t\t\t\treturn get(key, true /* read as json */);\n\t\t\t};\n\t\t\tapi.remove = function (key, attributes) {\n\t\t\t\tset(key, '', extend(attributes, {\n\t\t\t\t\texpires: -1\n\t\t\t\t}));\n\t\t\t};\n\t\n\t\t\tapi.defaults = {};\n\t\n\t\t\tapi.withConverter = init;\n\t\n\t\t\treturn api;\n\t\t}\n\t\n\t\treturn init(function () {});\n\t}));\n\t\n\t/**\n\t * Create a no conflict reference to JS Cookies.\n\t *\n\t * @type {Object}\n\t */\n\tLLMS.CookieStore = Cookies.noConflict();\n\t\n\t/**\n\t * Store information in Local Storage by group.\n\t *\n\t * @since 3.36.0\n\t * @since 3.37.14 Use persistent reference to JS Cookies.\n\t * @since 4.2.0 Set sameSite to `strict` for cookies.\n\t *\n\t * @param string group Storage group id/name.\n\t */\n\tLLMS.Storage = function( group ) {\n\t\n\t\tvar self = this,\n\t\t\tstore = LLMS.CookieStore;\n\t\n\t\t/**\n\t\t * Clear all data for the group.\n\t\t *\n\t\t * @since 3.36.0\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.clearAll = function() {\n\t\t\tstore.remove( group );\n\t\t};\n\t\n\t\t/**\n\t\t * Clear a single item from the group by key.\n\t\t *\n\t\t * @since 3.36.0\n\t\t *\n\t\t * @return obj\n\t\t */\n\t\tthis.clear = function( key ) {\n\t\t\tvar data = self.getAll();\n\t\t\tdelete data[ key ];\n\t\t\treturn store.set( group, data );\n\t\t};\n\t\n\t\t/**\n\t\t * Retrieve (and parse) all data stored for the group.\n\t\t *\n\t\t * @since 3.36.0\n\t\t *\n\t\t * @return obj\n\t\t */\n\t\tthis.getAll = function() {\n\t\t\treturn store.getJSON( group ) || {};\n\t\t}\n\t\n\t\t/**\n\t\t * Retrieve an item from the group by key.\n\t\t *\n\t\t * @since 3.36.0\n\t\t *\n\t\t * @param string key Item key/name.\n\t\t * @param mixed default_val Item default value to be returned when item not found in the group.\n\t\t * @return mixed\n\t\t */\n\t\tthis.get = function( key, default_val ) {\n\t\t\tvar data = self.getAll();\n\t\t\treturn data[ key ] ? data[ key ] : default_val;\n\t\t}\n\t\n\t\t/**\n\t\t * Store an item in the group by key.\n\t\t *\n\t\t * @since 3.36.0\n\t\t * @since 4.2.0 Set sameSite to `strict` for cookies.\n\t\t *\n\t\t * @param string key Item key name.\n\t\t * @param mixed val Item value\n\t\t * @return obj\n\t\t */\n\t\tthis.set = function( key, val ) {\n\t\t\tvar data = self.getAll();\n\t\t\tdata[ key ] = val;\n\t\t\treturn store.set( group, data, { sameSite: 'strict' } );\n\t\t};\n\t\n\t}\n\t\n\t\t/**\n\t * Student Dashboard related JS\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since 3.7.0\n\t * @since 3.10.0 Bind events on the orders screen.\n\t * @since 5.0.0 Removed redundant password toggle logic for edit account screen.\n\t * @version 5.0.0\n\t */\n\tLLMS.StudentDashboard = {\n\t\n\t\t/**\n\t\t * Slug for the current screen/endpoint\n\t\t *\n\t\t * @type {String}\n\t\t */\n\t\tscreen: '',\n\t\n\t\t/**\n\t\t * Init\n\t\t *\n\t\t * @since 3.7.0\n\t\t * @since 3.10.0 Unknown\n\t\t * @since 5.0.0 Removed password toggle logic.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tinit: function() {\n\t\n\t\t\tif ( $( '.llms-student-dashboard' ).length ) {\n\t\t\t\tthis.bind();\n\t\t\t\tif ( 'orders' === this.get_screen() ) {\n\t\t\t\t\tthis.bind_orders();\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind DOM events\n\t\t *\n\t\t * @since 3.7.0\n\t\t * @since 3.7.4 Unknown.\n\t\t * @since 5.0.0 Removed password toggle logic.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tbind: function() {\n\t\n\t\t\t$( '.llms-donut' ).each( function() {\n\t\t\t\tLLMS.Donut( $( this ) );\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Bind events related to the orders screen on the dashboard\n\t\t *\n\t\t * @since 3.10.0\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tbind_orders: function() {\n\t\n\t\t\t$( '#llms-cancel-subscription-form' ).on( 'submit', this.order_cancel_warning );\n\t\t\t$( '#llms_update_payment_method' ).on( 'click', function() {\n\t\t\t\t$( 'input[name=\"llms_payment_gateway\"]:checked' ).trigger( 'change' );\n\t\t\t\t$( this ).closest( 'form' ).find( '.llms-switch-payment-source-main' ).slideToggle( '200' );\n\t\t\t} );\n\t\n\t\t},\n\t\n\t\t/**\n\t\t * Get the current dashboard endpoint/tab slug\n\t\t *\n\t\t * @since 3.10.0\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tget_screen: function() {\n\t\t\tif ( ! this.screen ) {\n\t\t\t\tthis.screen = $( '.llms-student-dashboard' ).attr( 'data-current' );\n\t\t\t}\n\t\t\treturn this.screen;\n\t\t},\n\t\n\t\t/**\n\t\t * Show a confirmation warning when Cancel Subscription form is submitted\n\t\t *\n\t\t * @since 3.10.0\n\t\t *\n\t\t * @param obj e JS event data.\n\t\t * @return void\n\t\t */\n\t\torder_cancel_warning: function( e ) {\n\t\t\te.preventDefault();\n\t\t\tvar msg = LLMS.l10n.translate( 'Are you sure you want to cancel your subscription?' );\n\t\t\tif ( window.confirm( LLMS.l10n.translate( msg ) ) ) {\n\t\t\t\t$( this ).off( 'submit', this.order_cancel_warning );\n\t\t\t\t$( this ).submit();\n\t\t\t}\n\t\t},\n\t\n\t};\n\t\n\t\t/* global LLMS, $ */\n\t\n\t/**\n\t * User event/interaction tracking.\n\t *\n\t * @since 3.36.0\n\t * @since 3.36.2 Fix JS error when settings aren't loaded.\n\t * @since 3.37.2 When adding an event to the storae also make sure the nonce is set for server-side verification.\n\t * @since 3.37.9 Fix IE compatibility issue related to usage of `Object.assign()`.\n\t * @since 3.37.14 Persist the tracking events via ajax when reaching the cookie size limit.\n\t * @since 5.0.0 Set `settings` as an empty object when no settings supplied.\n\t * @since 7.1.0 Only attempt to add a nonce to the datastore when a nonce exists in the settings object.\n\t */\n\tLLMS.Tracking = function( settings ) {\n\t\n\t\tsettings = settings || {};\n\t\n\t\tvar self = this,\n\t\t\tstore = new LLMS.Storage( 'llms-tracking' );\n\t\n\t\tsettings = 'string' === typeof settings ? JSON.parse( settings ) : settings;\n\t\n\t\t/**\n\t\t * Initialize / Bind all tracking event listeners.\n\t\t *\n\t\t * @since 3.36.0\n\t\t * @since 5.0.0 Only attempt to add a nonce to the datastore when a nonce exists in the settings object.\n\t\t * @since 7.1.0 Do not add a nonce to the datastore by default, will be added/updated\n\t\t * when storing an event to track.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tfunction init() {\n\t\n\t\t\tself.addEvent( 'page.load' );\n\t\n\t\t\twindow.addEventListener( 'beforeunload', onBeforeUnload );\n\t\t\twindow.addEventListener( 'unload', onUnload );\n\t\n\t\t\tdocument.addEventListener( 'visibilitychange', onVisibilityChange );\n\t\n\t\t};\n\t\n\t\t/**\n\t\t * Add an event.\n\t\t *\n\t\t * @since 3.36.0\n\t\t * @since 3.36.2 Fix error when settings aren't loaded.\n\t\t * @since 3.37.2 Always make sure the nonce is set for server-side verification.\n\t\t * @since 3.37.14 Persist the tracking events via ajax when reaching the cookie size limit.\n\t\t * @since 7.1.0 Only attempt to add a nonce to the datastore when a nonce exists in the settings object.\n\t\t *\n\t\t * @param string|obj event Event Id (type.event) or a full event object from `this.makeEventObj()`.\n\t\t * @param int args Optional additional arguments to pass to `this.makeEventObj()`.\n\t\t * @return {void}\n\t\t */\n\t\tthis.addEvent = function( event, args ) {\n\t\n\t\t\targs = args || {};\n\t\t\tif ( 'string' === typeof event ) {\n\t\t\t\targs.event = event;\n\t\t\t}\n\t\n\t\t\t// If the event isn't registered in the settings don't proceed.\n\t\t\tif ( !settings.events || -1 === settings.events.indexOf( args.event ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\n\t\t\t// Make sure the nonce is set for server-side verification.\n\t\t\tif ( settings.nonce ) {\n\t\t\t\tstore.set( 'nonce', settings.nonce );\n\t\t\t}\n\t\n\t\t\tevent = self.makeEventObj( args );\n\t\n\t\t\tvar all = store.get( 'events', [] );\n\t\t\tall.push( event );\n\t\t\tstore.set( 'events', all );\n\t\n\t\t\t// If couldn't store the latest event because of size limits.\n\t\t\tif ( all.length > store.get( 'events', [] ).length ) {\n\t\n\t\t\t\t// Copy the cookie in a temporary variable.\n\t\t\t\tvar _temp = store.getAll();\n\t\t\t\t// Clear the events from the cookie.\n\t\t\t\tstore.clear('events');\n\t\n\t\t\t\t// Add the latest event to the temporary variable.\n\t\t\t\t_temp['events'].push( event );\n\t\n\t\t\t\t// Send the temporary variable as string via ajax.\n\t\t\t\tLLMS.Ajax.call( {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'persist_tracking_events',\n\t\t\t\t\t\t'llms-tracking': JSON.stringify(_temp)\n\t\t\t\t\t},\n\t\n\t\t\t\t\terror: function( xhr, status, error ) {\n\t\n\t\t\t\t\t\tconsole.log( xhr, status, error );\n\t\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function( r ) {\n\t\n\t\t\t\t\t\tif ( 'error' === r.code ) {\n\t\t\t\t\t\t\tconsole.log(r.code, r.message);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t}\n\t\n\t\t\t\t} );\n\t\n\t\t\t}\n\t\n\t\t}\n\t\n\t\t/**\n\t\t * Retrieve initialization settings.\n\t\t *\n\t\t * @since 3.36.0\n\t\t *\n\t\t * @return obj\n\t\t */\n\t\tthis.getSettings = function() {\n\t\t\treturn settings;\n\t\t}\n\t\n\t\t/**\n\t\t * Create an event object suitable to save as an event.\n\t\t *\n\t\t * @since 3.36.0\n\t\t * @since 3.37.9 Use `$.extend()` in favor of `Object.assign()`.\n\t\t *\n\t\t * @param obj event {\n\t\t * Event hash\n\t\t *\n\t\t * @param {string} event (Required) Event ID, eg: \"page.load\".\n\t\t * @param {url} url Event URL. (Optional, added automatically) Stored as metadata and used to infer an object_id for post events.\n\t\t * @param {time} float (Optional, added automatically) Timestamp (in milliseconds). Used for the event creation date.\n\t\t * @param {int} obj_id (Optional). The object ID. Inferred automatically via `url` if not provided.\n\t\t * @param {obj} meta (Optional) Hash of metadata to store with the event.\n\t\t * }\n\t\t * @return obj\n\t\t */\n\t\tthis.makeEventObj = function( event ) {\n\t\t\treturn $.extend( event, {\n\t\t\t\turl: window.location.href,\n\t\t\t\ttime: Math.round( new Date().getTime() / 1000 ),\n\t\t\t} );\n\t\t}\n\t\n\t\n\t\t/**\n\t\t * Remove the visibility change event listener on window.beforeunload\n\t\t *\n\t\t * Prevents actual unloading from recording a blur event from the visibility change listener\n\t\t *\n\t\t * @param obj e JS event object.\n\t\t * @return void\n\t\t */\n\t\tfunction onBeforeUnload( e ) {\n\t\t\tdocument.removeEventListener( 'visibilitychange', onVisibilityChange );\n\t\t}\n\t\n\t\t/**\n\t\t * Record a `page.exit` event on window.unload.\n\t\t *\n\t\t * @since 3.36.0\n\t\t *\n\t\t * @param obj e JS event object.\n\t\t * @return void\n\t\t */\n\t\tfunction onUnload( e ) {\n\t\t\tself.addEvent( 'page.exit' );\n\t\t}\n\t\n\t\t/**\n\t\t * Record `page.blur` and `page.focus` events via document.visilibitychange events.\n\t\t *\n\t\t * @since 3.36.0\n\t\t *\n\t\t * @param obj e JS event object.\n\t\t * @return void\n\t\t */\n\t\tfunction onVisibilityChange( e ) {\n\t\n\t\t\tvar event = document.hidden ? 'page.blur' : 'page.focus';\n\t\t\tself.addEvent( event );\n\t\n\t\t}\n\t\n\t\t// Initialize on the frontend only.\n\t\tif ( ! $( 'body' ).hasClass( 'wp-admin' ) ) {\n\t\t\tinit();\n\t\t}\n\t\n\t};\n\t\n\tllms.tracking = new LLMS.Tracking( llms.tracking );\n\t\n\t\t/**\n\t * Rest Methods\n\t * Manages URL and Rest object parsing\n\t *\n\t * @package LifterLMS/Scripts\n\t *\n\t * @since Unknown\n\t * @version Unknown\n\t */\n\t\n\tLLMS.Rest = {\n\t\n\t\t/**\n\t\t * Init\n\t\t * loads class methods\n\t\t */\n\t\tinit: function() {\n\t\t\tthis.bind();\n\t\t},\n\t\n\t\t/**\n\t\t * Bind Method\n\t\t * Handles dom binding on load\n\t\t *\n\t\t * @return {[type]} [description]\n\t\t */\n\t\tbind: function() {\n\t\t},\n\t\n\t\t/**\n\t\t * Searches for string matches in url path\n\t\t *\n\t\t * @param {Array} strings [Array of strings to search for matches]\n\t\t * @return {Boolean} [Was a match found?]\n\t\t */\n\t\tis_path: function( strings ) {\n\t\n\t\t\tvar path_exists = false,\n\t\t\t\turl = window.location.href;\n\t\n\t\t\tfor ( var i = 0; i < strings.length; i++ ) {\n\t\n\t\t\t\tif ( url.search( strings[i] ) > 0 && ! path_exists ) {\n\t\n\t\t\t\t\tpath_exists = true;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\treturn path_exists;\n\t\t},\n\t\n\t\t/**\n\t\t * Retrieves query variables\n\t\t *\n\t\t * @return {[Array]} [array object of query variable key=>value pairs]\n\t\t */\n\t\tget_query_vars: function() {\n\t\n\t\t\tvar vars = [], hash,\n\t\t\t\thashes = window.location.href.slice( window.location.href.indexOf( '?' ) + 1 ).split( '&' );\n\t\n\t\t\tfor (var i = 0; i < hashes.length; i++) {\n\t\t\t\thash = hashes[i].split( '=' );\n\t\t\t\tvars.push( hash[0] );\n\t\t\t\tvars[hash[0]] = hash[1];\n\t\t\t}\n\t\n\t\t\treturn vars;\n\t\t}\n\t\n\t};\n\t\n\n\t(()=>{\"use strict\";var t={d:(n,e)=>{for(var r in e)t.o(e,r)&&!t.o(n,r)&&Object.defineProperty(n,r,{enumerable:!0,get:e[r]})},o:(t,n)=>Object.prototype.hasOwnProperty.call(t,n),r:t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})}},n={};t.r(n),t.d(n,{get:()=>d,start:()=>p,stop:()=>c});const e=\"llms-spinning\",r=\"default\",o=window.wp.i18n;function i(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r;const i=document.createElement(\"div\"),l=(0,o.__)(\"Loading…\",\"lifterlms\");return i.innerHTML=`${l} `,i.classList.add(e),t.appendChild(i),i}function l(t){if((t=\"string\"==typeof t?document.querySelectorAll(t):t)instanceof NodeList)return Array.from(t);const n=[];return t instanceof Element?n.push(t):\"undefined\"!=typeof jQuery&&t instanceof jQuery&&t.toArray().forEach((t=>n.push(t))),n}function s(t){const n=t.querySelectorAll(\".llms-spinning\");return n.length?Array.from(n).find((n=>t===n.parentNode)):null}function a(){const t=\"llms-spinner-styles\";if(!document.getElementById(t)){const n=document.createElement(\"style\");n.textContent=\"\\n\\t.llms-spinning {\\n\\t\\tbackground: rgba( 250, 250, 250, 0.7 );\\n\\t\\tbottom: 0;\\n\\t\\tdisplay: none;\\n\\t\\tleft: 0;\\n\\t\\tposition: absolute;\\n\\t\\tright: 0;\\n\\t\\ttop: 0;\\n\\t\\tz-index: 2;\\n\\t}\\n\\n\\t.llms-spinner {\\n\\t\\tanimation: llms-spinning 1.5s linear infinite;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tborder: 4px solid #313131;\\n\\t\\tborder-radius: 50%;\\n\\t\\theight: 40px;\\n\\t\\tleft: 50%;\\n\\t\\tmargin-left: -20px;\\n\\t\\tmargin-top: -20px;\\n\\t\\tposition: absolute;\\n\\t\\ttop: 50%;\\n\\t\\twidth: 40px;\\n\\n\\t}\\n\\n\\t.llms-spinner.small {\\n\\t\\tborder-width: 2px;\\n\\t\\theight: 20px;\\n\\t\\tmargin-left: -10px;\\n\\t\\tmargin-top: -10px;\\n\\t\\twidth: 20px;\\n\\t}\\n\\n\\t@keyframes llms-spinning {\\n\\t\\t0% {\\n\\t\\t\\ttransform: rotate( 0deg )\\n\\t\\t}\\n\\t\\t50% {\\n\\t\\t\\tborder-radius: 5%;\\n\\t\\t}\\n\\t\\t100% {\\n\\t\\t\\ttransform: rotate( 220deg) \\n\\t\\t}\\n\\t}\\n\".replace(/\\n/g,\"\").replace(/\\t/g,\" \").replace(/\\s\\s+/g,\" \"),n.id=t,document.head.appendChild(n)}}function d(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,e=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];a();const o=l(t);if(!o.length)return null;const d=o[0],p=s(d)||i(d,n);return e&&\"undefined\"!=typeof jQuery?jQuery(p):p}function p(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r;l(t).forEach((t=>{const e=d(t,n,!1);e&&(e.style.display=\"block\")}))}function c(t){l(t).forEach((t=>{const n=d(t,r,!1);n&&(n.style.display=\"none\")}))}window.LLMS=window.LLMS||{},window.LLMS.Spinner=n})();\n\n\t/**\n\t * Initializes all classes within the LLMS Namespace\n\t *\n\t * @since Unknown\n\t *\n\t * @return {void}\n\t */\n\tLLMS.init = function() {\n\n\t\tfor (var func in LLMS) {\n\n\t\t\tif ( typeof LLMS[func] === 'object' && LLMS[func] !== null ) {\n\n\t\t\t\tif ( LLMS[func].init !== undefined ) {\n\n\t\t\t\t\tif ( typeof LLMS[func].init === 'function') {\n\t\t\t\t\t\tLLMS[func].init();\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t};\n\n\t/**\n\t * Determine if the current device is touch-enabled\n\t *\n\t * @since 3.24.3\n\t *\n\t * @see {@link https://stackoverflow.com/a/4819886/400568}\n\t *\n\t * @return {Boolean} Whether or not the device is touch-enabled.\n\t */\n\tLLMS.is_touch_device = function() {\n\n\t\tvar prefixes = ' -webkit- -moz- -o- -ms- '.split( ' ' );\n\t\tvar mq = function( query ) {\n\t\t\treturn window.matchMedia( query ).matches;\n\t\t}\n\n\t\tif ( ( 'ontouchstart' in window ) || window.DocumentTouch && document instanceof DocumentTouch ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t/**\n\t\t * Include the 'heartz' as a way to have a non matching MQ to help terminate the join.\n\t\t *\n\t\t * @see {@link https://git.io/vznFH}\n\t\t */\n\t\tvar query = ['(', prefixes.join( 'touch-enabled),(' ), 'heartz', ')'].join( '' );\n\t\treturn mq( query );\n\n\t};\n\n\t/**\n\t * Wait for matchHeight to load\n\t *\n\t * @since 3.0.0\n\t * @since 3.16.6 Unknown.\n\t * @since 5.3.3 Pass a dependency name to `wait_for()`.\n\t *\n\t * @param {Function} cb Callback function to run when matchheight is ready.\n\t * @return {void}\n\t */\n\tLLMS.wait_for_matchHeight = function( cb ) {\n\t\tthis.wait_for( function() {\n\t\t\treturn ( undefined !== $.fn.matchHeight );\n\t\t}, cb, 'matchHeight' );\n\t}\n\n\t/**\n\t * Wait for webuiPopover to load\n\t *\n\t * @since 3.9.1\n\t * @since 3.16.6 Unknown.\n\t *\n\t * @param {Function} cb Callback function to run when matchheight is ready.\n\t * @return {void}\n\t */\n\tLLMS.wait_for_popover = function( cb ) {\n\t\tthis.wait_for( function() {\n\t\t\treturn ( undefined !== $.fn.webuiPopover );\n\t\t}, cb, 'webuiPopover' );\n\t}\n\n\t/**\n\t * Wait for a dependency to load and then run a callback once it has\n\t *\n\t * Temporary fix for a less-than-optimal assets loading function on the PHP side of things.\n\t *\n\t * @since 3.9.1\n\t * @since 5.3.3 Added optional `name` parameter.\n\t *\n\t * @param {Function} test A function that returns a truthy if the dependency is loaded.\n\t * @param {Function} cb A callback function executed once the dependency is loaded.\n\t * @param {string} name The dependency name.\n\t * @return {void}\n\t */\n\tLLMS.wait_for = function( test, cb, name ) {\n\n\t\tvar counter = 0,\n\t\t\tinterval;\n\n\t\tname = name ? name : 'unnamed';\n\n\t\tinterval = setInterval( function() {\n\n\t\t\t// If we get to 30 seconds log an error message.\n\t\t\tif ( counter >= 300 ) {\n\n\t\t\t\tconsole.log( 'Unable to load dependency: ' + name );\n\n\t\t\t\t// If we can't access yet, increment and wait...\n\t\t\t} else {\n\n\t\t\t\t// Bind the events, we're good!\n\t\t\t\tif ( test() ) {\n\t\t\t\t\tcb();\n\t\t\t\t} else {\n\t\t\t\t\t// console.log( 'Waiting for dependency: ' + name );\n\t\t\t\t\tcounter++;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tclearInterval( interval );\n\n\t\t}, 100 );\n\n\t};\n\n\tLLMS.init( $ );\n\n} )( jQuery );\n"],"sourceRoot":"../../js"}
\ No newline at end of file
diff --git a/assets/scss/_includes/_buttons.scss b/assets/scss/_includes/_buttons.scss
deleted file mode 100644
index 41911310d0..0000000000
--- a/assets/scss/_includes/_buttons.scss
+++ /dev/null
@@ -1,169 +0,0 @@
-.llms-button-action,
-.llms-button-danger,
-.llms-button-primary,
-.llms-button-secondary {
- border:none;
- border-radius: 8px;
- color: $color-white;
- cursor: pointer;
- display: inline-block;
- font-size: 18px;
- font-weight: 700;
- text-decoration: none;
- text-shadow: none;
- line-height: 1;
- margin: 0;
- max-width: 100%;
- padding: 12px 24px;
- position: relative;
- transition: all .5s ease;
-
- &:disabled {
- opacity: 0.5;
- }
- &:hover, &:active {
- color: $color-white;
- }
- &:focus {
- color: $color-white;
- }
-
- &.auto {
- width: auto;
- }
-
- &.full {
- display: block;
- text-align: center;
- width: 100%;
- }
-
- &.square {
- padding: 12px;
- }
-
- &.small {
- font-size: 13px;
- padding: 8px 14px;
- &.square { padding: 8px; }
- }
-
- &.large {
- font-size: 18px;
- line-height: 1.2;
- padding: 16px 32px;
- &.square { padding: 16px; }
- .fa {
- left: -7px;
- position: relative;
- }
- }
-
-}
-
-/* Fix for cases where link color overrides the button color */
-a.llms-button-action,
-a.llms-button-danger,
-a.llms-button-primary {
- color: $color-white;
-}
-
-.llms-button-primary {
- background: $color-brand-blue;
- &:hover,
- &.clicked {
- background: $color-brand-blue-dark;
- }
- &:focus,
- &:active {
- background: $color-brand-blue-light;
- }
-}
-
-.llms-button-secondary {
- background: #e1e1e1;
- color: $color-cinder;
- &:hover {
- color: #414141;
- background: darken( #e1e1e1, 8 );
- }
- &:focus,
- &:active {
- color: #414141;
- background: lighten( #e1e1e1, 4 );
- }
-}
-/* Fix for cases where link color overrides the button color */
-a.llms-button-secondary {
- color: $color-cinder;
-}
-
-.llms-button-action {
- background: $color-orange;
- &:hover,
- &.clicked {
- background: $color-brand-orange-dark;
- }
- &:focus,
- &:active {
- background: $color-brand-orange-light;
- }
-}
-
-.llms-button-danger {
- background: $color-danger;
- &:hover {
- background: darken( $color-danger, 8 );
- }
- &:focus,
- &:active {
- background: lighten( $color-danger, 4 );
- }
-}
-
-.llms-button-outline {
- background: transparent;
- border: 3px solid #1D2327;
- border-radius: 8px;
- color: #1D2327;
- cursor: pointer;
- font-size: 16px;
- font-weight: 700;
- text-decoration: none;
- text-shadow: none;
- line-height: 1;
- margin: 0;
- max-width: 100%;
- padding: 12px 24px;
- position: relative;
- transition: all .5s ease;
-
- &:disabled {
- opacity: 0.5;
- }
- &:hover, &:active {
- color: #1D2327;
- }
- &:focus {
- color: #1D2327;
- }
-
- &.auto {
- width: auto;
- }
-
- &.full {
- display: block;
- text-align: center;
- width: 100%;
- }
-
- &.square {
- padding: 12px;
- }
-
-}
-
-.llms-course-continue-button {
- display: inline-block;
-}
diff --git a/assets/scss/_includes/_extends.scss b/assets/scss/_includes/_extends.scss
deleted file mode 100644
index 3ff4e48156..0000000000
--- a/assets/scss/_includes/_extends.scss
+++ /dev/null
@@ -1,30 +0,0 @@
-%cf,
-%clearfix {
- &:before,
- &:after {
- content: " ";
- display: table;
- }
-
- &:after {
- clear: both;
- }
-}
-
-
-
-%llms-element {
- background: $el-background;
- box-shadow: $el-box-shadow;
- display: block;
- color: #212121;
- min-height: 85px;
- padding: 15px;
- text-decoration: none;
- position: relative;
- transition: background .4s ease;
-
- &:hover {
- background: $el-background-hover;
- }
-}
diff --git a/assets/scss/_includes/_grid.scss b/assets/scss/_includes/_grid.scss
deleted file mode 100644
index 4306e6099d..0000000000
--- a/assets/scss/_includes/_grid.scss
+++ /dev/null
@@ -1,46 +0,0 @@
-//
-// Floated columns.
-//
-// Utilized prior to the introduction of `.llms-flex-cols`. Prefer
-// usage of flex cols for new code where possible.
-//
-.llms-cols {
- @extend %clearfix;
-
- .llms-col { width: 100%; }
-
- @media all and (min-width: 600px) {
- [class*="llms-col-"] {
- float: left;
- }
- }
-
-}
-
-//
-// Flex-box columns.
-//
-// Preferred over floated `.llms-cols` wherever possible.
-//
-.llms-flex-cols {
- display: flex;
- flex-flow: row wrap;
-
- [class*="llms-col"] {
- flex: 0 1 auto;
- width: 100%;
- }
-}
-
-@media all and (min-width: 600px) {
- .llms-cols, .llms-flex-cols {
- $cols: 1;
- @while $cols <= 12 {
- .llms-col-#{$cols} {
- width: calc( 100% / $cols );
- }
- $cols: $cols + 1;
- }
- }
-}
-
diff --git a/assets/scss/_includes/_llms-donut.scss b/assets/scss/_includes/_llms-donut.scss
deleted file mode 100644
index fb9a10f1a7..0000000000
--- a/assets/scss/_includes/_llms-donut.scss
+++ /dev/null
@@ -1,82 +0,0 @@
-.llms-donut {
-
- @include clearfix;
-
- background-color: #f1f1f1;
- background-image: none;
- border-radius: 50%;
- color: $color-brand-blue;
- height: 200px;
- overflow: hidden;
- position: relative;
- width: 200px;
-
- svg {
- overflow: visible !important;
- pointer-events: none;
- width: 100%;
- }
-
- svg path {
- fill: none;
- stroke-width: 35px;
- stroke: $color-brand-blue;
- }
-
- &.mini {
- height: 36px;
- width: 36px;
- .percentage {
- font-size: 10px;
- }
- }
- &.small {
- height: 100px;
- width: 100px;
- .percentage {
- font-size: 18px;
- }
- }
- &.medium {
- height: 130px;
- width: 130px;
- .percentage {
- font-size: 26px;
- }
- }
- &.large {
- height: 260px;
- width: 260px;
- .percentage {
- font-size: 48px;
- }
- }
-
- .inside {
- align-items: center;
- background: #fff;
- border-radius: 50%;
- box-sizing: border-box;
- display: flex;
- flex-wrap: wrap;
- height: 80%;
- justify-content: center;
- left: 50%;
- position: absolute;
- text-align: center;
- transform: translate(-50%, -50%);
- width: 80%;
- top: 50%;
- z-index: 3;
- }
-
- .percentage {
- line-height: 1.2;
- font-size: 34px;
- }
-
- .caption {
- font-size: 75%;
- }
-
-}
diff --git a/assets/scss/_includes/_llms-form-field.scss b/assets/scss/_includes/_llms-form-field.scss
deleted file mode 100644
index d6fb817cd6..0000000000
--- a/assets/scss/_includes/_llms-form-field.scss
+++ /dev/null
@@ -1,280 +0,0 @@
-.llms-form-fields {
- @extend %clearfix;
- box-sizing: border-box;
- & * {
- box-sizing: border-box;
- }
- &.flush {
- .llms-form-field {
- padding: 0 0 20px;
- }
- }
-
- label:not(.llms-field-html label) {
- font-weight: 700;
- }
-
- .wp-block-columns, .wp-block-column {
- margin-bottom: 0;
- }
-}
-
- .llms-form-heading {
- padding: 0 10px 10px;
- }
-
- .llms-form-field {
- float: left;
- padding: 0 10px 20px;
- position: relative;
- width: 100%;
-
- // Ensure "empty" labels don't break the layout.
- // See the billing_address_2 field which has no label.
- label:empty:after {
- content: '\00a0';
- }
-
- [type="text"],
- [type="password"],
- [type="email"],
- [type="url"],
- [type="tel"],
- [type="number"] {
- background-color: $color-white;
- background-clip: padding-box;
- border: 1px solid $color-grey;
- border-radius: $radius-small;
- box-sizing: border-box;
- font-size: 16px;
- line-height: 1;
- padding: 8px 12px;
- transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
- width: 100%;
- }
-
- input:focus,
- input:focus-visible {
- border-color: $color-brand-blue-light;
- outline: thin solid;
- }
-
- select {
- -webkit-appearance: none;
- -moz-appearance: none;
- -ms-appearance: none;
- appearance: none;
- background-color: $color-white;
- border: 1px solid $color-grey;
- border-radius: $radius-small;
- box-sizing: border-box;
- color: $color-black;
- padding: 8px 12px;
- margin: 0;
- width: 100%;
- font-family: inherit;
- font-size: 16px;
- cursor: inherit;
- line-height: 1.6;
- z-index: 1;
- outline: none;
- background-repeat: no-repeat;
- background-image: linear-gradient(45deg, transparent 50%, currentcolor 50%), linear-gradient(135deg, currentcolor 50%, transparent 50%);
- background-position: right 15px top 1.3rem, right 10px top 1.3rem;
- background-size: 5px 5px, 5px 5px;
- }
-
- select::-ms-expand {
- display: none;
- }
-
- select:focus {
- border: 1px solid $color-brand-blue-light;
- outline: thin solid;
- }
-
- &.valid {
- input[type="date"], input[type="time"], input[type="datetime-local"], input[type="week"], input[type="month"], input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="tel"], input[type="number"], textarea, select {
- background: rgba( #83c373, .3 );
- border-color: #83c373;
- }
- }
-
- &.error,
- &.invalid {
- input[type="date"], input[type="time"], input[type="datetime-local"], input[type="week"], input[type="month"], input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="tel"], input[type="number"], textarea, select {
- background: rgba( $color-red, .3 );
- border-color: $color-red;
- }
- }
-
- &.llms-visually-hidden-field {
- display: none;
- }
-
- &.align-right {
- text-align: right;
- }
-
- @media screen and ( min-width: 600px ) {
- $i: 1;
- @while $i <= 12 {
- &.llms-cols-#{$i} {
- width: calc( $i / 12 ) * 100%;
- $i: $i + 1;
- }
- }
- }
-
- &.type-hidden { padding: 0; }
-
- &.type-radio,
- &.type-checkbox {
- input,
- label {
- display: inline-block;
- width: auto;
- }
- input {
- margin-right: 10px;
- }
- label + .llms-description {
- display: block;
- }
- }
-
- &.type-radio:not(.is-group) {
-
- input[type="radio"] {
- position: absolute;
- opacity: 0;
- visibility: none;
- }
-
- label:before {
- background: #fafafa;
- background-position: -24px 0;
- background-repeat: no-repeat;
- border-radius: 50%;
- box-shadow: hsla( 0,0%,100%,.15) 0 1px 1px, inset hsla(0,0%,0%,.35) 0 0 0 1px;
- content: '';
- cursor: pointer;
- display: inline-block;
- height: 22px;
- margin-right: 5px;
- position: relative;
- transition: background-position .15s cubic-bezier(.8, 0, 1, 1);
- top: -3px;
- vertical-align: middle;
- width: 22px;
- z-index: 2;
- }
-
- input[type="radio"]:checked + label:before {
- transition: background-position .2s .15s cubic-bezier(0, 0, .2, 1);
- background-position: 0 0;
- background-image: radial-gradient(ellipse at center, $color-brand-blue 0%,$color-brand-blue 40%, #fafafa 45%);
- }
-
- }
-
- .llms-input-group {
- margin-top: 5px;
- .llms-form-field {
- padding: 0 0 5px 5px;
- }
- }
-
- &.type-reset,
- &.type-button,
- &.type-submit {
- button:not(.auto) { width: 100%; }
- }
-
- .llms-description {
- font-size: 14px;
- font-style: italic;
- line-height: 18px;
- }
-
- .llms-required {
- color: $color-red;
- margin-left: 4px;
- }
-
- input, textarea, select {
- width: 100%;
- margin-bottom: 5px;
- }
-
- .select2-container .select2-selection--single {
- height: auto;
- padding: 4px 6px;
- }
- .select2-container--default .select2-selection--single .select2-selection__arrow {
- height: 100%;
- }
-
- }
-
-
- .llms-password-strength-meter {
- border: 1px solid #dadada;
- display: none;
- font-size: 10px;
- margin-top: -10px;
- padding: 1px;
- position: relative;
- text-align: center;
-
- &:before {
- bottom: 0;
- content: '';
- left: 0;
- position: absolute;
- top: 0;
- transition: width .4s ease;
- }
-
- &.mismatch,
- &.too-short,
- &.very-weak {
- border-color: #e35b5b;
- &:before {
- background: rgba( #e35b5b, 0.25 );
- width: 25%;
- }
- }
-
- &.too-short:before {
- width: 0;
- }
-
- &.weak {
- border-color: #f78b53;
- &:before {
- background: rgba( #f78b53, 0.25 );
- width: 50%;
- }
- }
-
- &.medium {
- border-color: #ffc733;
- &:before {
- background: rgba( #ffc733, 0.25 );
- width: 75%;
- }
- }
-
- &.strong {
- border-color: #83c373;
- &:before {
- background: rgba( #83c373, 0.25 );
- width: 100%;
- }
- }
-
- + .llms-description {
- display: block;
- }
- }
diff --git a/assets/scss/_includes/_mixins.scss b/assets/scss/_includes/_mixins.scss
deleted file mode 100644
index c4f49c316b..0000000000
--- a/assets/scss/_includes/_mixins.scss
+++ /dev/null
@@ -1,121 +0,0 @@
-
-@mixin clearfix() {
- &:before,
- &:after {
- content: " ";
- display: table;
- }
- &:after {
- clear: both;
- }
-}
-
-//
-// Positioning mixin
-//
-// @param [string] $position: position
-// @param [list] $args (()): offsets list
-//
-// @source http://hugogiraudel.com/2013/08/05/offsets-sass-mixin/
-//
-@mixin position($position, $args: ()) {
- $offsets: top right bottom left;
- position: $position;
-
- @each $offset in $offsets {
- $index: index($args, $offset);
-
- @if $index {
- @if $index == length($args) {
- #{$offset}: 0;
- }
- @else {
- $next: nth($args, $index + 1);
- @if is-valid-length($next) {
- #{$offset}: $next;
- }
- @else if index($offsets, $next) {
- #{$offset}: 0;
- }
- @else {
- @warn "Invalid value `#{$next}` for offset `#{$offset}`.";
- }
- }
- }
- }
-}
-
-//
-// Function checking if $value is a valid length
-// @param [literal] $value: value to test
-// @return [bool]
-//
-@function is-valid-length($value) {
- $r: (type-of($value) == "number" and not unitless($value)) or (index(auto initial inherit 0, $value) != null);
- @return $r;
-}
-
-//
-// Shorthands
-//
-@mixin absolute($args: ()) {
- @include position(absolute, $args);
-}
-
-@mixin fixed($args: ()) {
- @include position(fixed, $args);
-}
-
-@mixin relative($args: ()) {
- @include position(relative, $args);
-}
-
-
-
-@mixin order_status_badges() {
-
- .llms-status {
- border-radius: $radius-small;
- display: inline-block;
- font-size: 13px;
- font-weight: 700;
- line-height: 1.4;
- padding: 2px 6px;
- vertical-align: middle;
-
- &.llms-size--large {
- font-size: 105%;
- padding: 6px 12px;
- }
-
- &.llms-active,
- &.llms-completed,
- &.llms-pass, // quiz
- &.llms-txn-succeeded {
- color: $color-green;
- background-color: rgba( $color-green, .15 );
- }
-
- &.llms-fail, // quiz
- &.llms-failed,
- &.llms-expired,
- &.llms-cancelled,
- &.llms-txn-failed {
- color: $color-red;
- background-color: rgba( $color-red, .15 );
- }
-
- &.llms-incomplete, // assignment
- &.llms-on-hold,
- &.llms-pending,
- &.llms-pending-cancel,
- &.llms-refunded,
- &.llms-txn-pending,
- &.llms-txn-refunded {
- color: $color-orange;
- background-color: rgba( $color-orange, .15 );
- }
-
- }
-
-}
diff --git a/assets/scss/_includes/_quiz-result-question-list.scss b/assets/scss/_includes/_quiz-result-question-list.scss
deleted file mode 100644
index 56a5b68d38..0000000000
--- a/assets/scss/_includes/_quiz-result-question-list.scss
+++ /dev/null
@@ -1,136 +0,0 @@
-.llms-quiz-attempt-results {
- margin: 0;
- padding: 0;
- list-style-type: none;
-
- .llms-quiz-attempt-question {
- background: #efefef;
- border-radius: $radius-small;
- margin: 0 0 15px;
- position: relative;
- list-style-type: none;
- .toggle-answer {
- color: inherit;
- display: flex;
- gap: 10px;
- justify-content: space-between;
- padding: 15px 35px 15px 15px;
- text-decoration: none;
- }
-
- &.status--waiting.correct,
- &.status--waiting.incorrect {
- background: rgba( $color-orange, 0.2 );
- .llms-status-icon {
- background-color: $color-orange;
- }
- }
-
- &.status--graded.correct {
- background: rgba( $color-green, 0.15 );
- .llms-status-icon {
- background-color: $color-green;
- }
- }
- &.status--graded.incorrect {
- background: rgba( $color-red, 0.15 );
- .llms-status-icon {
- background-color: $color-red;
- }
- }
- pre {
- overflow: auto;
- }
- .llms-question-title {
- font-size: 22px;
- margin: 0;
- line-height: 1.4;
- }
-
- .llms-points {
- line-height: 1.4;
- }
-
- .llms-status-icon-tip {
- position: absolute;
- right: -12px;
- top: -2px;
- }
-
- .llms-status-icon {
- color: rgba( 255, 255, 255, 0.65 );
- border-radius: 50%;
- font-size: 30px;
- height: 40px;
- line-height: 40px;
- text-align: center;
- width: 40px;
- }
-
- .llms-quiz-attempt-question-main {
- display: none;
- padding: 0 15px 15px;
-
- .llms-quiz-results-label {
- font-weight: 700;
- margin: 0 0 10px;
- padding: 0;
- }
-
- ul.llms-quiz-attempt-answers {
- margin: 0;
- padding: 0;
- li.llms-quiz-attempt-answer {
- padding: 0;
- margin: 0 0 0 30px;
- &:only-child {
- list-style-type: none;
- margin-left: 0;
- }
- }
- }
-
- img {
- height: auto;
- max-width: 200px;
- }
-
- .llms-quiz-attempt-answer-section {
- border-top: 2px solid rgba( #fff, 0.5 );
- margin-top: 20px;
- padding-top: 20px;
- &:first-child {
- border-top: none;
- margin-top: 0;
- padding-top: 0;
- }
- }
-
- }
-
- &.type--picture_choice,
- &.type--picture_reorder {
- ul.llms-quiz-attempt-answers {
- list-style-type: none;
- margin: 0;
- padding: 0;
-
- li.llms-quiz-attempt-answer {
- display: inline-block;
- list-style-type: none;
- margin: 0;
- padding: 5px;
- }
- }
- }
-
- &.type--removed {
- .llms-question-title {
- font-style: italic;
- font-weight: normal;
- }
- opacity: .5;
- }
-
- }
-}
diff --git a/assets/scss/_includes/_tooltip.scss b/assets/scss/_includes/_tooltip.scss
deleted file mode 100644
index 4f7b39613e..0000000000
--- a/assets/scss/_includes/_tooltip.scss
+++ /dev/null
@@ -1,135 +0,0 @@
-.lifterlms, // Settings & Course Builder.
-.llms-metabox, // Some Metaboxes.
-.llms-mb-container, // Other Metaboxes.
-.llms-quiz-wrapper { // Quiz results.
-
- [data-tip],
- [data-title-default],
- [data-title-active] {
-
- $bgcolor: #444;
-
- position: relative;
-
- &.tip--top-right {
- &:before {
- bottom: 100%;
- left: -10px;
- }
- &:hover:before {
- bottom: calc( 100% + 6px );
- }
- &:after {
- border-top-color: $bgcolor;
- left: 6px;
- top: 0;
- }
- &:hover:after {
- top: -6px;
- }
- }
-
-
- &.tip--top-left {
- &:before {
- bottom: 100%;
- right: -10px;
- }
- &:hover:before {
- bottom: calc( 100% + 6px );
- }
- &:after {
- border-top-color: $bgcolor;
- right: 6px;
- top: 0;
- }
- &:hover:after {
- top: -6px;
- }
- }
-
-
-
- &.tip--bottom-left {
- &:before {
- top: 100%;
- right: -10px;
- }
- &:hover:before {
- top: calc( 100% + 6px );
- }
- &:after {
- border-bottom-color: $bgcolor;
- right: 6px;
- bottom: 0;
- }
- &:hover:after {
- bottom: -6px;
- }
- }
-
- &.tip--bottom-right {
- &:before {
- top: 100%;
- left: -10px;
- }
- &:hover:before {
- top: calc( 100% + 6px );
- }
- &:after {
- border-bottom-color: $bgcolor;
- left: 6px;
- bottom: 0;
- }
- &:hover:after {
- bottom: -6px;
- }
- }
-
- &:before {
- background: $bgcolor;
- border-radius: 4px;
- color: #fff;
- font-size: 13px;
- line-height: 1.2;
- padding: 8px;
- max-width: 300px;
- width: max-content;
- }
- &:after {
- content: '';
- border: 6px solid transparent;
- height: 0;
- width: 0;
- }
-
- &:before,
- &:after {
- opacity: 0;
- transition: all 0.2s 0.1s ease;
- position: absolute;
- pointer-events: none;
- visibility: hidden;
- }
- &:hover:before,
- &:hover:after {
- opacity: 1;
- transition: all 0 0.1s ease;
- visibility: visible;
- z-index: 99999999;
- }
-
- }
-
- [data-tip] {
- &:before {
- content: attr(data-tip);
- }
- }
- [data-tip].active {
- &:before {
- content: attr(data-tip-active);
- }
- }
-
-}
diff --git a/assets/scss/_includes/_vars-brand-colors.scss b/assets/scss/_includes/_vars-brand-colors.scss
deleted file mode 100644
index 9f4660b944..0000000000
--- a/assets/scss/_includes/_vars-brand-colors.scss
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// LifterLMS Brand Colors
-// Currently overrides brand colors on the admin panel
-//
-
-$color-brand-blue: #466dd8;
-$color-brand-blue-dark: darken( $color-brand-blue, 8 );
-$color-brand-dark-blue: darken( $color-brand-blue, 24 );
-$color-brand-blue-light: lighten( $color-brand-blue, 8 );
-
-$color-brand-orange: #f8954f;
-$color-brand-orange-dark: #f67d28;
-$color-brand-orange-light: lighten( $color-brand-orange, 8 );
-
-$color-brand-aqua: #17bebb;
-
-$color-brand-pink: #ef476f;
-
-$color-blue: $color-brand-blue;
diff --git a/assets/scss/_includes/_vars.scss b/assets/scss/_includes/_vars.scss
deleted file mode 100644
index 9f0f440e30..0000000000
--- a/assets/scss/_includes/_vars.scss
+++ /dev/null
@@ -1,72 +0,0 @@
-// ----- LifterLMS Brand Colors ----- \\
-$color-brand-dark-blue: #243c56;
-
-$color-brand-blue: #466dd8;
-$color-brand-blue-dark: darken( $color-brand-blue, 12 ); // #0077e4
-$color-brand-blue-light: lighten( $color-brand-blue, 8 );
-
-$color-brand-orange: #f8954f;
-$color-brand-orange-dark: #f67d28;
-$color-brand-orange-light: lighten( $color-brand-orange, 8 );
-
-$color-brand-aqua: #17bebb;
-
-$color-brand-pink: #ef476f;
-
-
-
-// ----- name our versions of common colors ----- \\
-$color-black: #010101;
-$color-green: #4d8d3c;
-$color-blue: $color-brand-blue;
-$color-red: #bb231c;
-$color-white: #fefefe;
-$color-aqua: #35bbaa;
-$color-purple: #845ef7;
-$color-orange: #c05621;
-
-$color-red-hover: darken($color-red,5);
-
-
-// ----- state / action names ----- \\
-$color-success: $color-green;
-$color-danger: $color-red;
-
-
-
-
-
-
-
-
-$color-lightgrey: #ccc;
-$color-grey: #999;
-$color-darkgrey: #666;
-$color-cinder: #444;
-$color-lightblue: #33b1cb;
-$color-darkblue: #0185a3;
-
-
-
-
-
-
-
-
-
-
-
-
-$color-border: #dedede;
-
-$el-box-shadow: 0 1px 2px 0 rgba($color-black,0.4);
-$el-background: #f1f1f1;
-$el-background-hover: #eaeaea;
-
-$break-xsmall: 320px;
-$break-small: 641px;
-$break-medium: 768px;
-$break-large: 1024px;
-
-$radius-small: 6px;
-$radius-medium: 12px;
diff --git a/assets/scss/_includes/vendor/_font-awesome.scss b/assets/scss/_includes/vendor/_font-awesome.scss
deleted file mode 100644
index ee906a8196..0000000000
--- a/assets/scss/_includes/vendor/_font-awesome.scss
+++ /dev/null
@@ -1,2337 +0,0 @@
-/*!
- * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
- * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-/* FONT PATH
- * -------------------------- */
-@font-face {
- font-family: 'FontAwesome';
- src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');
- src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
- font-weight: normal;
- font-style: normal;
-}
-.fa {
- display: inline-block;
- font: normal normal normal 14px/1 FontAwesome;
- font-size: inherit;
- text-rendering: auto;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-/* makes the font 33% larger relative to the icon container */
-.fa-lg {
- font-size: 1.33333333em;
- line-height: 0.75em;
- vertical-align: -15%;
-}
-.fa-2x {
- font-size: 2em;
-}
-.fa-3x {
- font-size: 3em;
-}
-.fa-4x {
- font-size: 4em;
-}
-.fa-5x {
- font-size: 5em;
-}
-.fa-fw {
- width: 1.28571429em;
- text-align: center;
-}
-.fa-ul {
- padding-left: 0;
- margin-left: 2.14285714em;
- list-style-type: none;
-}
-.fa-ul > li {
- position: relative;
-}
-.fa-li {
- position: absolute;
- left: -2.14285714em;
- width: 2.14285714em;
- top: 0.14285714em;
- text-align: center;
-}
-.fa-li.fa-lg {
- left: -1.85714286em;
-}
-.fa-border {
- padding: .2em .25em .15em;
- border: solid 0.08em #eeeeee;
- border-radius: .1em;
-}
-.fa-pull-left {
- float: left;
-}
-.fa-pull-right {
- float: right;
-}
-.fa.fa-pull-left {
- margin-right: .3em;
-}
-.fa.fa-pull-right {
- margin-left: .3em;
-}
-/* Deprecated as of 4.4.0 */
-.pull-right {
- float: right;
-}
-.pull-left {
- float: left;
-}
-.fa.pull-left {
- margin-right: .3em;
-}
-.fa.pull-right {
- margin-left: .3em;
-}
-.fa-spin {
- -webkit-animation: fa-spin 2s infinite linear;
- animation: fa-spin 2s infinite linear;
-}
-.fa-pulse {
- -webkit-animation: fa-spin 1s infinite steps(8);
- animation: fa-spin 1s infinite steps(8);
-}
-@-webkit-keyframes fa-spin {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(359deg);
- transform: rotate(359deg);
- }
-}
-@keyframes fa-spin {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(359deg);
- transform: rotate(359deg);
- }
-}
-.fa-rotate-90 {
- -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
- -webkit-transform: rotate(90deg);
- -ms-transform: rotate(90deg);
- transform: rotate(90deg);
-}
-.fa-rotate-180 {
- -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
- -webkit-transform: rotate(180deg);
- -ms-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-.fa-rotate-270 {
- -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
- -webkit-transform: rotate(270deg);
- -ms-transform: rotate(270deg);
- transform: rotate(270deg);
-}
-.fa-flip-horizontal {
- -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
- -webkit-transform: scale(-1, 1);
- -ms-transform: scale(-1, 1);
- transform: scale(-1, 1);
-}
-.fa-flip-vertical {
- -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
- -webkit-transform: scale(1, -1);
- -ms-transform: scale(1, -1);
- transform: scale(1, -1);
-}
-:root .fa-rotate-90,
-:root .fa-rotate-180,
-:root .fa-rotate-270,
-:root .fa-flip-horizontal,
-:root .fa-flip-vertical {
- filter: none;
-}
-.fa-stack {
- position: relative;
- display: inline-block;
- width: 2em;
- height: 2em;
- line-height: 2em;
- vertical-align: middle;
-}
-.fa-stack-1x,
-.fa-stack-2x {
- position: absolute;
- left: 0;
- width: 100%;
- text-align: center;
-}
-.fa-stack-1x {
- line-height: inherit;
-}
-.fa-stack-2x {
- font-size: 2em;
-}
-.fa-inverse {
- color: #ffffff;
-}
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
- readers do not read off random characters that represent icons */
-.fa-glass:before {
- content: "\f000";
-}
-.fa-music:before {
- content: "\f001";
-}
-.fa-search:before {
- content: "\f002";
-}
-.fa-envelope-o:before {
- content: "\f003";
-}
-.fa-heart:before {
- content: "\f004";
-}
-.fa-star:before {
- content: "\f005";
-}
-.fa-star-o:before {
- content: "\f006";
-}
-.fa-user:before {
- content: "\f007";
-}
-.fa-film:before {
- content: "\f008";
-}
-.fa-th-large:before {
- content: "\f009";
-}
-.fa-th:before {
- content: "\f00a";
-}
-.fa-th-list:before {
- content: "\f00b";
-}
-.fa-check:before {
- content: "\f00c";
-}
-.fa-remove:before,
-.fa-close:before,
-.fa-times:before {
- content: "\f00d";
-}
-.fa-search-plus:before {
- content: "\f00e";
-}
-.fa-search-minus:before {
- content: "\f010";
-}
-.fa-power-off:before {
- content: "\f011";
-}
-.fa-signal:before {
- content: "\f012";
-}
-.fa-gear:before,
-.fa-cog:before {
- content: "\f013";
-}
-.fa-trash-o:before {
- content: "\f014";
-}
-.fa-home:before {
- content: "\f015";
-}
-.fa-file-o:before {
- content: "\f016";
-}
-.fa-clock-o:before {
- content: "\f017";
-}
-.fa-road:before {
- content: "\f018";
-}
-.fa-download:before {
- content: "\f019";
-}
-.fa-arrow-circle-o-down:before {
- content: "\f01a";
-}
-.fa-arrow-circle-o-up:before {
- content: "\f01b";
-}
-.fa-inbox:before {
- content: "\f01c";
-}
-.fa-play-circle-o:before {
- content: "\f01d";
-}
-.fa-rotate-right:before,
-.fa-repeat:before {
- content: "\f01e";
-}
-.fa-refresh:before {
- content: "\f021";
-}
-.fa-list-alt:before {
- content: "\f022";
-}
-.fa-lock:before {
- content: "\f023";
-}
-.fa-flag:before {
- content: "\f024";
-}
-.fa-headphones:before {
- content: "\f025";
-}
-.fa-volume-off:before {
- content: "\f026";
-}
-.fa-volume-down:before {
- content: "\f027";
-}
-.fa-volume-up:before {
- content: "\f028";
-}
-.fa-qrcode:before {
- content: "\f029";
-}
-.fa-barcode:before {
- content: "\f02a";
-}
-.fa-tag:before {
- content: "\f02b";
-}
-.fa-tags:before {
- content: "\f02c";
-}
-.fa-book:before {
- content: "\f02d";
-}
-.fa-bookmark:before {
- content: "\f02e";
-}
-.fa-print:before {
- content: "\f02f";
-}
-.fa-camera:before {
- content: "\f030";
-}
-.fa-font:before {
- content: "\f031";
-}
-.fa-bold:before {
- content: "\f032";
-}
-.fa-italic:before {
- content: "\f033";
-}
-.fa-text-height:before {
- content: "\f034";
-}
-.fa-text-width:before {
- content: "\f035";
-}
-.fa-align-left:before {
- content: "\f036";
-}
-.fa-align-center:before {
- content: "\f037";
-}
-.fa-align-right:before {
- content: "\f038";
-}
-.fa-align-justify:before {
- content: "\f039";
-}
-.fa-list:before {
- content: "\f03a";
-}
-.fa-dedent:before,
-.fa-outdent:before {
- content: "\f03b";
-}
-.fa-indent:before {
- content: "\f03c";
-}
-.fa-video-camera:before {
- content: "\f03d";
-}
-.fa-photo:before,
-.fa-image:before,
-.fa-picture-o:before {
- content: "\f03e";
-}
-.fa-pencil:before {
- content: "\f040";
-}
-.fa-map-marker:before {
- content: "\f041";
-}
-.fa-adjust:before {
- content: "\f042";
-}
-.fa-tint:before {
- content: "\f043";
-}
-.fa-edit:before,
-.fa-pencil-square-o:before {
- content: "\f044";
-}
-.fa-share-square-o:before {
- content: "\f045";
-}
-.fa-check-square-o:before {
- content: "\f046";
-}
-.fa-arrows:before {
- content: "\f047";
-}
-.fa-step-backward:before {
- content: "\f048";
-}
-.fa-fast-backward:before {
- content: "\f049";
-}
-.fa-backward:before {
- content: "\f04a";
-}
-.fa-play:before {
- content: "\f04b";
-}
-.fa-pause:before {
- content: "\f04c";
-}
-.fa-stop:before {
- content: "\f04d";
-}
-.fa-forward:before {
- content: "\f04e";
-}
-.fa-fast-forward:before {
- content: "\f050";
-}
-.fa-step-forward:before {
- content: "\f051";
-}
-.fa-eject:before {
- content: "\f052";
-}
-.fa-chevron-left:before {
- content: "\f053";
-}
-.fa-chevron-right:before {
- content: "\f054";
-}
-.fa-plus-circle:before {
- content: "\f055";
-}
-.fa-minus-circle:before {
- content: "\f056";
-}
-.fa-times-circle:before {
- content: "\f057";
-}
-.fa-check-circle:before {
- content: "\f058";
-}
-.fa-question-circle:before {
- content: "\f059";
-}
-.fa-info-circle:before {
- content: "\f05a";
-}
-.fa-crosshairs:before {
- content: "\f05b";
-}
-.fa-times-circle-o:before {
- content: "\f05c";
-}
-.fa-check-circle-o:before {
- content: "\f05d";
-}
-.fa-ban:before {
- content: "\f05e";
-}
-.fa-arrow-left:before {
- content: "\f060";
-}
-.fa-arrow-right:before {
- content: "\f061";
-}
-.fa-arrow-up:before {
- content: "\f062";
-}
-.fa-arrow-down:before {
- content: "\f063";
-}
-.fa-mail-forward:before,
-.fa-share:before {
- content: "\f064";
-}
-.fa-expand:before {
- content: "\f065";
-}
-.fa-compress:before {
- content: "\f066";
-}
-.fa-plus:before {
- content: "\f067";
-}
-.fa-minus:before {
- content: "\f068";
-}
-.fa-asterisk:before {
- content: "\f069";
-}
-.fa-exclamation-circle:before {
- content: "\f06a";
-}
-.fa-gift:before {
- content: "\f06b";
-}
-.fa-leaf:before {
- content: "\f06c";
-}
-.fa-fire:before {
- content: "\f06d";
-}
-.fa-eye:before {
- content: "\f06e";
-}
-.fa-eye-slash:before {
- content: "\f070";
-}
-.fa-warning:before,
-.fa-exclamation-triangle:before {
- content: "\f071";
-}
-.fa-plane:before {
- content: "\f072";
-}
-.fa-calendar:before {
- content: "\f073";
-}
-.fa-random:before {
- content: "\f074";
-}
-.fa-comment:before {
- content: "\f075";
-}
-.fa-magnet:before {
- content: "\f076";
-}
-.fa-chevron-up:before {
- content: "\f077";
-}
-.fa-chevron-down:before {
- content: "\f078";
-}
-.fa-retweet:before {
- content: "\f079";
-}
-.fa-shopping-cart:before {
- content: "\f07a";
-}
-.fa-folder:before {
- content: "\f07b";
-}
-.fa-folder-open:before {
- content: "\f07c";
-}
-.fa-arrows-v:before {
- content: "\f07d";
-}
-.fa-arrows-h:before {
- content: "\f07e";
-}
-.fa-bar-chart-o:before,
-.fa-bar-chart:before {
- content: "\f080";
-}
-.fa-twitter-square:before {
- content: "\f081";
-}
-.fa-facebook-square:before {
- content: "\f082";
-}
-.fa-camera-retro:before {
- content: "\f083";
-}
-.fa-key:before {
- content: "\f084";
-}
-.fa-gears:before,
-.fa-cogs:before {
- content: "\f085";
-}
-.fa-comments:before {
- content: "\f086";
-}
-.fa-thumbs-o-up:before {
- content: "\f087";
-}
-.fa-thumbs-o-down:before {
- content: "\f088";
-}
-.fa-star-half:before {
- content: "\f089";
-}
-.fa-heart-o:before {
- content: "\f08a";
-}
-.fa-sign-out:before {
- content: "\f08b";
-}
-.fa-linkedin-square:before {
- content: "\f08c";
-}
-.fa-thumb-tack:before {
- content: "\f08d";
-}
-.fa-external-link:before {
- content: "\f08e";
-}
-.fa-sign-in:before {
- content: "\f090";
-}
-.fa-trophy:before {
- content: "\f091";
-}
-.fa-github-square:before {
- content: "\f092";
-}
-.fa-upload:before {
- content: "\f093";
-}
-.fa-lemon-o:before {
- content: "\f094";
-}
-.fa-phone:before {
- content: "\f095";
-}
-.fa-square-o:before {
- content: "\f096";
-}
-.fa-bookmark-o:before {
- content: "\f097";
-}
-.fa-phone-square:before {
- content: "\f098";
-}
-.fa-twitter:before {
- content: "\f099";
-}
-.fa-facebook-f:before,
-.fa-facebook:before {
- content: "\f09a";
-}
-.fa-github:before {
- content: "\f09b";
-}
-.fa-unlock:before {
- content: "\f09c";
-}
-.fa-credit-card:before {
- content: "\f09d";
-}
-.fa-feed:before,
-.fa-rss:before {
- content: "\f09e";
-}
-.fa-hdd-o:before {
- content: "\f0a0";
-}
-.fa-bullhorn:before {
- content: "\f0a1";
-}
-.fa-bell:before {
- content: "\f0f3";
-}
-.fa-certificate:before {
- content: "\f0a3";
-}
-.fa-hand-o-right:before {
- content: "\f0a4";
-}
-.fa-hand-o-left:before {
- content: "\f0a5";
-}
-.fa-hand-o-up:before {
- content: "\f0a6";
-}
-.fa-hand-o-down:before {
- content: "\f0a7";
-}
-.fa-arrow-circle-left:before {
- content: "\f0a8";
-}
-.fa-arrow-circle-right:before {
- content: "\f0a9";
-}
-.fa-arrow-circle-up:before {
- content: "\f0aa";
-}
-.fa-arrow-circle-down:before {
- content: "\f0ab";
-}
-.fa-globe:before {
- content: "\f0ac";
-}
-.fa-wrench:before {
- content: "\f0ad";
-}
-.fa-tasks:before {
- content: "\f0ae";
-}
-.fa-filter:before {
- content: "\f0b0";
-}
-.fa-briefcase:before {
- content: "\f0b1";
-}
-.fa-arrows-alt:before {
- content: "\f0b2";
-}
-.fa-group:before,
-.fa-users:before {
- content: "\f0c0";
-}
-.fa-chain:before,
-.fa-link:before {
- content: "\f0c1";
-}
-.fa-cloud:before {
- content: "\f0c2";
-}
-.fa-flask:before {
- content: "\f0c3";
-}
-.fa-cut:before,
-.fa-scissors:before {
- content: "\f0c4";
-}
-.fa-copy:before,
-.fa-files-o:before {
- content: "\f0c5";
-}
-.fa-paperclip:before {
- content: "\f0c6";
-}
-.fa-save:before,
-.fa-floppy-o:before {
- content: "\f0c7";
-}
-.fa-square:before {
- content: "\f0c8";
-}
-.fa-navicon:before,
-.fa-reorder:before,
-.fa-bars:before {
- content: "\f0c9";
-}
-.fa-list-ul:before {
- content: "\f0ca";
-}
-.fa-list-ol:before {
- content: "\f0cb";
-}
-.fa-strikethrough:before {
- content: "\f0cc";
-}
-.fa-underline:before {
- content: "\f0cd";
-}
-.fa-table:before {
- content: "\f0ce";
-}
-.fa-magic:before {
- content: "\f0d0";
-}
-.fa-truck:before {
- content: "\f0d1";
-}
-.fa-pinterest:before {
- content: "\f0d2";
-}
-.fa-pinterest-square:before {
- content: "\f0d3";
-}
-.fa-google-plus-square:before {
- content: "\f0d4";
-}
-.fa-google-plus:before {
- content: "\f0d5";
-}
-.fa-money:before {
- content: "\f0d6";
-}
-.fa-caret-down:before {
- content: "\f0d7";
-}
-.fa-caret-up:before {
- content: "\f0d8";
-}
-.fa-caret-left:before {
- content: "\f0d9";
-}
-.fa-caret-right:before {
- content: "\f0da";
-}
-.fa-columns:before {
- content: "\f0db";
-}
-.fa-unsorted:before,
-.fa-sort:before {
- content: "\f0dc";
-}
-.fa-sort-down:before,
-.fa-sort-desc:before {
- content: "\f0dd";
-}
-.fa-sort-up:before,
-.fa-sort-asc:before {
- content: "\f0de";
-}
-.fa-envelope:before {
- content: "\f0e0";
-}
-.fa-linkedin:before {
- content: "\f0e1";
-}
-.fa-rotate-left:before,
-.fa-undo:before {
- content: "\f0e2";
-}
-.fa-legal:before,
-.fa-gavel:before {
- content: "\f0e3";
-}
-.fa-dashboard:before,
-.fa-tachometer:before {
- content: "\f0e4";
-}
-.fa-comment-o:before {
- content: "\f0e5";
-}
-.fa-comments-o:before {
- content: "\f0e6";
-}
-.fa-flash:before,
-.fa-bolt:before {
- content: "\f0e7";
-}
-.fa-sitemap:before {
- content: "\f0e8";
-}
-.fa-umbrella:before {
- content: "\f0e9";
-}
-.fa-paste:before,
-.fa-clipboard:before {
- content: "\f0ea";
-}
-.fa-lightbulb-o:before {
- content: "\f0eb";
-}
-.fa-exchange:before {
- content: "\f0ec";
-}
-.fa-cloud-download:before {
- content: "\f0ed";
-}
-.fa-cloud-upload:before {
- content: "\f0ee";
-}
-.fa-user-md:before {
- content: "\f0f0";
-}
-.fa-stethoscope:before {
- content: "\f0f1";
-}
-.fa-suitcase:before {
- content: "\f0f2";
-}
-.fa-bell-o:before {
- content: "\f0a2";
-}
-.fa-coffee:before {
- content: "\f0f4";
-}
-.fa-cutlery:before {
- content: "\f0f5";
-}
-.fa-file-text-o:before {
- content: "\f0f6";
-}
-.fa-building-o:before {
- content: "\f0f7";
-}
-.fa-hospital-o:before {
- content: "\f0f8";
-}
-.fa-ambulance:before {
- content: "\f0f9";
-}
-.fa-medkit:before {
- content: "\f0fa";
-}
-.fa-fighter-jet:before {
- content: "\f0fb";
-}
-.fa-beer:before {
- content: "\f0fc";
-}
-.fa-h-square:before {
- content: "\f0fd";
-}
-.fa-plus-square:before {
- content: "\f0fe";
-}
-.fa-angle-double-left:before {
- content: "\f100";
-}
-.fa-angle-double-right:before {
- content: "\f101";
-}
-.fa-angle-double-up:before {
- content: "\f102";
-}
-.fa-angle-double-down:before {
- content: "\f103";
-}
-.fa-angle-left:before {
- content: "\f104";
-}
-.fa-angle-right:before {
- content: "\f105";
-}
-.fa-angle-up:before {
- content: "\f106";
-}
-.fa-angle-down:before {
- content: "\f107";
-}
-.fa-desktop:before {
- content: "\f108";
-}
-.fa-laptop:before {
- content: "\f109";
-}
-.fa-tablet:before {
- content: "\f10a";
-}
-.fa-mobile-phone:before,
-.fa-mobile:before {
- content: "\f10b";
-}
-.fa-circle-o:before {
- content: "\f10c";
-}
-.fa-quote-left:before {
- content: "\f10d";
-}
-.fa-quote-right:before {
- content: "\f10e";
-}
-.fa-spinner:before {
- content: "\f110";
-}
-.fa-circle:before {
- content: "\f111";
-}
-.fa-mail-reply:before,
-.fa-reply:before {
- content: "\f112";
-}
-.fa-github-alt:before {
- content: "\f113";
-}
-.fa-folder-o:before {
- content: "\f114";
-}
-.fa-folder-open-o:before {
- content: "\f115";
-}
-.fa-smile-o:before {
- content: "\f118";
-}
-.fa-frown-o:before {
- content: "\f119";
-}
-.fa-meh-o:before {
- content: "\f11a";
-}
-.fa-gamepad:before {
- content: "\f11b";
-}
-.fa-keyboard-o:before {
- content: "\f11c";
-}
-.fa-flag-o:before {
- content: "\f11d";
-}
-.fa-flag-checkered:before {
- content: "\f11e";
-}
-.fa-terminal:before {
- content: "\f120";
-}
-.fa-code:before {
- content: "\f121";
-}
-.fa-mail-reply-all:before,
-.fa-reply-all:before {
- content: "\f122";
-}
-.fa-star-half-empty:before,
-.fa-star-half-full:before,
-.fa-star-half-o:before {
- content: "\f123";
-}
-.fa-location-arrow:before {
- content: "\f124";
-}
-.fa-crop:before {
- content: "\f125";
-}
-.fa-code-fork:before {
- content: "\f126";
-}
-.fa-unlink:before,
-.fa-chain-broken:before {
- content: "\f127";
-}
-.fa-question:before {
- content: "\f128";
-}
-.fa-info:before {
- content: "\f129";
-}
-.fa-exclamation:before {
- content: "\f12a";
-}
-.fa-superscript:before {
- content: "\f12b";
-}
-.fa-subscript:before {
- content: "\f12c";
-}
-.fa-eraser:before {
- content: "\f12d";
-}
-.fa-puzzle-piece:before {
- content: "\f12e";
-}
-.fa-microphone:before {
- content: "\f130";
-}
-.fa-microphone-slash:before {
- content: "\f131";
-}
-.fa-shield:before {
- content: "\f132";
-}
-.fa-calendar-o:before {
- content: "\f133";
-}
-.fa-fire-extinguisher:before {
- content: "\f134";
-}
-.fa-rocket:before {
- content: "\f135";
-}
-.fa-maxcdn:before {
- content: "\f136";
-}
-.fa-chevron-circle-left:before {
- content: "\f137";
-}
-.fa-chevron-circle-right:before {
- content: "\f138";
-}
-.fa-chevron-circle-up:before {
- content: "\f139";
-}
-.fa-chevron-circle-down:before {
- content: "\f13a";
-}
-.fa-html5:before {
- content: "\f13b";
-}
-.fa-css3:before {
- content: "\f13c";
-}
-.fa-anchor:before {
- content: "\f13d";
-}
-.fa-unlock-alt:before {
- content: "\f13e";
-}
-.fa-bullseye:before {
- content: "\f140";
-}
-.fa-ellipsis-h:before {
- content: "\f141";
-}
-.fa-ellipsis-v:before {
- content: "\f142";
-}
-.fa-rss-square:before {
- content: "\f143";
-}
-.fa-play-circle:before {
- content: "\f144";
-}
-.fa-ticket:before {
- content: "\f145";
-}
-.fa-minus-square:before {
- content: "\f146";
-}
-.fa-minus-square-o:before {
- content: "\f147";
-}
-.fa-level-up:before {
- content: "\f148";
-}
-.fa-level-down:before {
- content: "\f149";
-}
-.fa-check-square:before {
- content: "\f14a";
-}
-.fa-pencil-square:before {
- content: "\f14b";
-}
-.fa-external-link-square:before {
- content: "\f14c";
-}
-.fa-share-square:before {
- content: "\f14d";
-}
-.fa-compass:before {
- content: "\f14e";
-}
-.fa-toggle-down:before,
-.fa-caret-square-o-down:before {
- content: "\f150";
-}
-.fa-toggle-up:before,
-.fa-caret-square-o-up:before {
- content: "\f151";
-}
-.fa-toggle-right:before,
-.fa-caret-square-o-right:before {
- content: "\f152";
-}
-.fa-euro:before,
-.fa-eur:before {
- content: "\f153";
-}
-.fa-gbp:before {
- content: "\f154";
-}
-.fa-dollar:before,
-.fa-usd:before {
- content: "\f155";
-}
-.fa-rupee:before,
-.fa-inr:before {
- content: "\f156";
-}
-.fa-cny:before,
-.fa-rmb:before,
-.fa-yen:before,
-.fa-jpy:before {
- content: "\f157";
-}
-.fa-ruble:before,
-.fa-rouble:before,
-.fa-rub:before {
- content: "\f158";
-}
-.fa-won:before,
-.fa-krw:before {
- content: "\f159";
-}
-.fa-bitcoin:before,
-.fa-btc:before {
- content: "\f15a";
-}
-.fa-file:before {
- content: "\f15b";
-}
-.fa-file-text:before {
- content: "\f15c";
-}
-.fa-sort-alpha-asc:before {
- content: "\f15d";
-}
-.fa-sort-alpha-desc:before {
- content: "\f15e";
-}
-.fa-sort-amount-asc:before {
- content: "\f160";
-}
-.fa-sort-amount-desc:before {
- content: "\f161";
-}
-.fa-sort-numeric-asc:before {
- content: "\f162";
-}
-.fa-sort-numeric-desc:before {
- content: "\f163";
-}
-.fa-thumbs-up:before {
- content: "\f164";
-}
-.fa-thumbs-down:before {
- content: "\f165";
-}
-.fa-youtube-square:before {
- content: "\f166";
-}
-.fa-youtube:before {
- content: "\f167";
-}
-.fa-xing:before {
- content: "\f168";
-}
-.fa-xing-square:before {
- content: "\f169";
-}
-.fa-youtube-play:before {
- content: "\f16a";
-}
-.fa-dropbox:before {
- content: "\f16b";
-}
-.fa-stack-overflow:before {
- content: "\f16c";
-}
-.fa-instagram:before {
- content: "\f16d";
-}
-.fa-flickr:before {
- content: "\f16e";
-}
-.fa-adn:before {
- content: "\f170";
-}
-.fa-bitbucket:before {
- content: "\f171";
-}
-.fa-bitbucket-square:before {
- content: "\f172";
-}
-.fa-tumblr:before {
- content: "\f173";
-}
-.fa-tumblr-square:before {
- content: "\f174";
-}
-.fa-long-arrow-down:before {
- content: "\f175";
-}
-.fa-long-arrow-up:before {
- content: "\f176";
-}
-.fa-long-arrow-left:before {
- content: "\f177";
-}
-.fa-long-arrow-right:before {
- content: "\f178";
-}
-.fa-apple:before {
- content: "\f179";
-}
-.fa-windows:before {
- content: "\f17a";
-}
-.fa-android:before {
- content: "\f17b";
-}
-.fa-linux:before {
- content: "\f17c";
-}
-.fa-dribbble:before {
- content: "\f17d";
-}
-.fa-skype:before {
- content: "\f17e";
-}
-.fa-foursquare:before {
- content: "\f180";
-}
-.fa-trello:before {
- content: "\f181";
-}
-.fa-female:before {
- content: "\f182";
-}
-.fa-male:before {
- content: "\f183";
-}
-.fa-gittip:before,
-.fa-gratipay:before {
- content: "\f184";
-}
-.fa-sun-o:before {
- content: "\f185";
-}
-.fa-moon-o:before {
- content: "\f186";
-}
-.fa-archive:before {
- content: "\f187";
-}
-.fa-bug:before {
- content: "\f188";
-}
-.fa-vk:before {
- content: "\f189";
-}
-.fa-weibo:before {
- content: "\f18a";
-}
-.fa-renren:before {
- content: "\f18b";
-}
-.fa-pagelines:before {
- content: "\f18c";
-}
-.fa-stack-exchange:before {
- content: "\f18d";
-}
-.fa-arrow-circle-o-right:before {
- content: "\f18e";
-}
-.fa-arrow-circle-o-left:before {
- content: "\f190";
-}
-.fa-toggle-left:before,
-.fa-caret-square-o-left:before {
- content: "\f191";
-}
-.fa-dot-circle-o:before {
- content: "\f192";
-}
-.fa-wheelchair:before {
- content: "\f193";
-}
-.fa-vimeo-square:before {
- content: "\f194";
-}
-.fa-turkish-lira:before,
-.fa-try:before {
- content: "\f195";
-}
-.fa-plus-square-o:before {
- content: "\f196";
-}
-.fa-space-shuttle:before {
- content: "\f197";
-}
-.fa-slack:before {
- content: "\f198";
-}
-.fa-envelope-square:before {
- content: "\f199";
-}
-.fa-wordpress:before {
- content: "\f19a";
-}
-.fa-openid:before {
- content: "\f19b";
-}
-.fa-institution:before,
-.fa-bank:before,
-.fa-university:before {
- content: "\f19c";
-}
-.fa-mortar-board:before,
-.fa-graduation-cap:before {
- content: "\f19d";
-}
-.fa-yahoo:before {
- content: "\f19e";
-}
-.fa-google:before {
- content: "\f1a0";
-}
-.fa-reddit:before {
- content: "\f1a1";
-}
-.fa-reddit-square:before {
- content: "\f1a2";
-}
-.fa-stumbleupon-circle:before {
- content: "\f1a3";
-}
-.fa-stumbleupon:before {
- content: "\f1a4";
-}
-.fa-delicious:before {
- content: "\f1a5";
-}
-.fa-digg:before {
- content: "\f1a6";
-}
-.fa-pied-piper-pp:before {
- content: "\f1a7";
-}
-.fa-pied-piper-alt:before {
- content: "\f1a8";
-}
-.fa-drupal:before {
- content: "\f1a9";
-}
-.fa-joomla:before {
- content: "\f1aa";
-}
-.fa-language:before {
- content: "\f1ab";
-}
-.fa-fax:before {
- content: "\f1ac";
-}
-.fa-building:before {
- content: "\f1ad";
-}
-.fa-child:before {
- content: "\f1ae";
-}
-.fa-paw:before {
- content: "\f1b0";
-}
-.fa-spoon:before {
- content: "\f1b1";
-}
-.fa-cube:before {
- content: "\f1b2";
-}
-.fa-cubes:before {
- content: "\f1b3";
-}
-.fa-behance:before {
- content: "\f1b4";
-}
-.fa-behance-square:before {
- content: "\f1b5";
-}
-.fa-steam:before {
- content: "\f1b6";
-}
-.fa-steam-square:before {
- content: "\f1b7";
-}
-.fa-recycle:before {
- content: "\f1b8";
-}
-.fa-automobile:before,
-.fa-car:before {
- content: "\f1b9";
-}
-.fa-cab:before,
-.fa-taxi:before {
- content: "\f1ba";
-}
-.fa-tree:before {
- content: "\f1bb";
-}
-.fa-spotify:before {
- content: "\f1bc";
-}
-.fa-deviantart:before {
- content: "\f1bd";
-}
-.fa-soundcloud:before {
- content: "\f1be";
-}
-.fa-database:before {
- content: "\f1c0";
-}
-.fa-file-pdf-o:before {
- content: "\f1c1";
-}
-.fa-file-word-o:before {
- content: "\f1c2";
-}
-.fa-file-excel-o:before {
- content: "\f1c3";
-}
-.fa-file-powerpoint-o:before {
- content: "\f1c4";
-}
-.fa-file-photo-o:before,
-.fa-file-picture-o:before,
-.fa-file-image-o:before {
- content: "\f1c5";
-}
-.fa-file-zip-o:before,
-.fa-file-archive-o:before {
- content: "\f1c6";
-}
-.fa-file-sound-o:before,
-.fa-file-audio-o:before {
- content: "\f1c7";
-}
-.fa-file-movie-o:before,
-.fa-file-video-o:before {
- content: "\f1c8";
-}
-.fa-file-code-o:before {
- content: "\f1c9";
-}
-.fa-vine:before {
- content: "\f1ca";
-}
-.fa-codepen:before {
- content: "\f1cb";
-}
-.fa-jsfiddle:before {
- content: "\f1cc";
-}
-.fa-life-bouy:before,
-.fa-life-buoy:before,
-.fa-life-saver:before,
-.fa-support:before,
-.fa-life-ring:before {
- content: "\f1cd";
-}
-.fa-circle-o-notch:before {
- content: "\f1ce";
-}
-.fa-ra:before,
-.fa-resistance:before,
-.fa-rebel:before {
- content: "\f1d0";
-}
-.fa-ge:before,
-.fa-empire:before {
- content: "\f1d1";
-}
-.fa-git-square:before {
- content: "\f1d2";
-}
-.fa-git:before {
- content: "\f1d3";
-}
-.fa-y-combinator-square:before,
-.fa-yc-square:before,
-.fa-hacker-news:before {
- content: "\f1d4";
-}
-.fa-tencent-weibo:before {
- content: "\f1d5";
-}
-.fa-qq:before {
- content: "\f1d6";
-}
-.fa-wechat:before,
-.fa-weixin:before {
- content: "\f1d7";
-}
-.fa-send:before,
-.fa-paper-plane:before {
- content: "\f1d8";
-}
-.fa-send-o:before,
-.fa-paper-plane-o:before {
- content: "\f1d9";
-}
-.fa-history:before {
- content: "\f1da";
-}
-.fa-circle-thin:before {
- content: "\f1db";
-}
-.fa-header:before {
- content: "\f1dc";
-}
-.fa-paragraph:before {
- content: "\f1dd";
-}
-.fa-sliders:before {
- content: "\f1de";
-}
-.fa-share-alt:before {
- content: "\f1e0";
-}
-.fa-share-alt-square:before {
- content: "\f1e1";
-}
-.fa-bomb:before {
- content: "\f1e2";
-}
-.fa-soccer-ball-o:before,
-.fa-futbol-o:before {
- content: "\f1e3";
-}
-.fa-tty:before {
- content: "\f1e4";
-}
-.fa-binoculars:before {
- content: "\f1e5";
-}
-.fa-plug:before {
- content: "\f1e6";
-}
-.fa-slideshare:before {
- content: "\f1e7";
-}
-.fa-twitch:before {
- content: "\f1e8";
-}
-.fa-yelp:before {
- content: "\f1e9";
-}
-.fa-newspaper-o:before {
- content: "\f1ea";
-}
-.fa-wifi:before {
- content: "\f1eb";
-}
-.fa-calculator:before {
- content: "\f1ec";
-}
-.fa-paypal:before {
- content: "\f1ed";
-}
-.fa-google-wallet:before {
- content: "\f1ee";
-}
-.fa-cc-visa:before {
- content: "\f1f0";
-}
-.fa-cc-mastercard:before {
- content: "\f1f1";
-}
-.fa-cc-discover:before {
- content: "\f1f2";
-}
-.fa-cc-amex:before {
- content: "\f1f3";
-}
-.fa-cc-paypal:before {
- content: "\f1f4";
-}
-.fa-cc-stripe:before {
- content: "\f1f5";
-}
-.fa-bell-slash:before {
- content: "\f1f6";
-}
-.fa-bell-slash-o:before {
- content: "\f1f7";
-}
-.fa-trash:before {
- content: "\f1f8";
-}
-.fa-copyright:before {
- content: "\f1f9";
-}
-.fa-at:before {
- content: "\f1fa";
-}
-.fa-eyedropper:before {
- content: "\f1fb";
-}
-.fa-paint-brush:before {
- content: "\f1fc";
-}
-.fa-birthday-cake:before {
- content: "\f1fd";
-}
-.fa-area-chart:before {
- content: "\f1fe";
-}
-.fa-pie-chart:before {
- content: "\f200";
-}
-.fa-line-chart:before {
- content: "\f201";
-}
-.fa-lastfm:before {
- content: "\f202";
-}
-.fa-lastfm-square:before {
- content: "\f203";
-}
-.fa-toggle-off:before {
- content: "\f204";
-}
-.fa-toggle-on:before {
- content: "\f205";
-}
-.fa-bicycle:before {
- content: "\f206";
-}
-.fa-bus:before {
- content: "\f207";
-}
-.fa-ioxhost:before {
- content: "\f208";
-}
-.fa-angellist:before {
- content: "\f209";
-}
-.fa-cc:before {
- content: "\f20a";
-}
-.fa-shekel:before,
-.fa-sheqel:before,
-.fa-ils:before {
- content: "\f20b";
-}
-.fa-meanpath:before {
- content: "\f20c";
-}
-.fa-buysellads:before {
- content: "\f20d";
-}
-.fa-connectdevelop:before {
- content: "\f20e";
-}
-.fa-dashcube:before {
- content: "\f210";
-}
-.fa-forumbee:before {
- content: "\f211";
-}
-.fa-leanpub:before {
- content: "\f212";
-}
-.fa-sellsy:before {
- content: "\f213";
-}
-.fa-shirtsinbulk:before {
- content: "\f214";
-}
-.fa-simplybuilt:before {
- content: "\f215";
-}
-.fa-skyatlas:before {
- content: "\f216";
-}
-.fa-cart-plus:before {
- content: "\f217";
-}
-.fa-cart-arrow-down:before {
- content: "\f218";
-}
-.fa-diamond:before {
- content: "\f219";
-}
-.fa-ship:before {
- content: "\f21a";
-}
-.fa-user-secret:before {
- content: "\f21b";
-}
-.fa-motorcycle:before {
- content: "\f21c";
-}
-.fa-street-view:before {
- content: "\f21d";
-}
-.fa-heartbeat:before {
- content: "\f21e";
-}
-.fa-venus:before {
- content: "\f221";
-}
-.fa-mars:before {
- content: "\f222";
-}
-.fa-mercury:before {
- content: "\f223";
-}
-.fa-intersex:before,
-.fa-transgender:before {
- content: "\f224";
-}
-.fa-transgender-alt:before {
- content: "\f225";
-}
-.fa-venus-double:before {
- content: "\f226";
-}
-.fa-mars-double:before {
- content: "\f227";
-}
-.fa-venus-mars:before {
- content: "\f228";
-}
-.fa-mars-stroke:before {
- content: "\f229";
-}
-.fa-mars-stroke-v:before {
- content: "\f22a";
-}
-.fa-mars-stroke-h:before {
- content: "\f22b";
-}
-.fa-neuter:before {
- content: "\f22c";
-}
-.fa-genderless:before {
- content: "\f22d";
-}
-.fa-facebook-official:before {
- content: "\f230";
-}
-.fa-pinterest-p:before {
- content: "\f231";
-}
-.fa-whatsapp:before {
- content: "\f232";
-}
-.fa-server:before {
- content: "\f233";
-}
-.fa-user-plus:before {
- content: "\f234";
-}
-.fa-user-times:before {
- content: "\f235";
-}
-.fa-hotel:before,
-.fa-bed:before {
- content: "\f236";
-}
-.fa-viacoin:before {
- content: "\f237";
-}
-.fa-train:before {
- content: "\f238";
-}
-.fa-subway:before {
- content: "\f239";
-}
-.fa-medium:before {
- content: "\f23a";
-}
-.fa-yc:before,
-.fa-y-combinator:before {
- content: "\f23b";
-}
-.fa-optin-monster:before {
- content: "\f23c";
-}
-.fa-opencart:before {
- content: "\f23d";
-}
-.fa-expeditedssl:before {
- content: "\f23e";
-}
-.fa-battery-4:before,
-.fa-battery:before,
-.fa-battery-full:before {
- content: "\f240";
-}
-.fa-battery-3:before,
-.fa-battery-three-quarters:before {
- content: "\f241";
-}
-.fa-battery-2:before,
-.fa-battery-half:before {
- content: "\f242";
-}
-.fa-battery-1:before,
-.fa-battery-quarter:before {
- content: "\f243";
-}
-.fa-battery-0:before,
-.fa-battery-empty:before {
- content: "\f244";
-}
-.fa-mouse-pointer:before {
- content: "\f245";
-}
-.fa-i-cursor:before {
- content: "\f246";
-}
-.fa-object-group:before {
- content: "\f247";
-}
-.fa-object-ungroup:before {
- content: "\f248";
-}
-.fa-sticky-note:before {
- content: "\f249";
-}
-.fa-sticky-note-o:before {
- content: "\f24a";
-}
-.fa-cc-jcb:before {
- content: "\f24b";
-}
-.fa-cc-diners-club:before {
- content: "\f24c";
-}
-.fa-clone:before {
- content: "\f24d";
-}
-.fa-balance-scale:before {
- content: "\f24e";
-}
-.fa-hourglass-o:before {
- content: "\f250";
-}
-.fa-hourglass-1:before,
-.fa-hourglass-start:before {
- content: "\f251";
-}
-.fa-hourglass-2:before,
-.fa-hourglass-half:before {
- content: "\f252";
-}
-.fa-hourglass-3:before,
-.fa-hourglass-end:before {
- content: "\f253";
-}
-.fa-hourglass:before {
- content: "\f254";
-}
-.fa-hand-grab-o:before,
-.fa-hand-rock-o:before {
- content: "\f255";
-}
-.fa-hand-stop-o:before,
-.fa-hand-paper-o:before {
- content: "\f256";
-}
-.fa-hand-scissors-o:before {
- content: "\f257";
-}
-.fa-hand-lizard-o:before {
- content: "\f258";
-}
-.fa-hand-spock-o:before {
- content: "\f259";
-}
-.fa-hand-pointer-o:before {
- content: "\f25a";
-}
-.fa-hand-peace-o:before {
- content: "\f25b";
-}
-.fa-trademark:before {
- content: "\f25c";
-}
-.fa-registered:before {
- content: "\f25d";
-}
-.fa-creative-commons:before {
- content: "\f25e";
-}
-.fa-gg:before {
- content: "\f260";
-}
-.fa-gg-circle:before {
- content: "\f261";
-}
-.fa-tripadvisor:before {
- content: "\f262";
-}
-.fa-odnoklassniki:before {
- content: "\f263";
-}
-.fa-odnoklassniki-square:before {
- content: "\f264";
-}
-.fa-get-pocket:before {
- content: "\f265";
-}
-.fa-wikipedia-w:before {
- content: "\f266";
-}
-.fa-safari:before {
- content: "\f267";
-}
-.fa-chrome:before {
- content: "\f268";
-}
-.fa-firefox:before {
- content: "\f269";
-}
-.fa-opera:before {
- content: "\f26a";
-}
-.fa-internet-explorer:before {
- content: "\f26b";
-}
-.fa-tv:before,
-.fa-television:before {
- content: "\f26c";
-}
-.fa-contao:before {
- content: "\f26d";
-}
-.fa-500px:before {
- content: "\f26e";
-}
-.fa-amazon:before {
- content: "\f270";
-}
-.fa-calendar-plus-o:before {
- content: "\f271";
-}
-.fa-calendar-minus-o:before {
- content: "\f272";
-}
-.fa-calendar-times-o:before {
- content: "\f273";
-}
-.fa-calendar-check-o:before {
- content: "\f274";
-}
-.fa-industry:before {
- content: "\f275";
-}
-.fa-map-pin:before {
- content: "\f276";
-}
-.fa-map-signs:before {
- content: "\f277";
-}
-.fa-map-o:before {
- content: "\f278";
-}
-.fa-map:before {
- content: "\f279";
-}
-.fa-commenting:before {
- content: "\f27a";
-}
-.fa-commenting-o:before {
- content: "\f27b";
-}
-.fa-houzz:before {
- content: "\f27c";
-}
-.fa-vimeo:before {
- content: "\f27d";
-}
-.fa-black-tie:before {
- content: "\f27e";
-}
-.fa-fonticons:before {
- content: "\f280";
-}
-.fa-reddit-alien:before {
- content: "\f281";
-}
-.fa-edge:before {
- content: "\f282";
-}
-.fa-credit-card-alt:before {
- content: "\f283";
-}
-.fa-codiepie:before {
- content: "\f284";
-}
-.fa-modx:before {
- content: "\f285";
-}
-.fa-fort-awesome:before {
- content: "\f286";
-}
-.fa-usb:before {
- content: "\f287";
-}
-.fa-product-hunt:before {
- content: "\f288";
-}
-.fa-mixcloud:before {
- content: "\f289";
-}
-.fa-scribd:before {
- content: "\f28a";
-}
-.fa-pause-circle:before {
- content: "\f28b";
-}
-.fa-pause-circle-o:before {
- content: "\f28c";
-}
-.fa-stop-circle:before {
- content: "\f28d";
-}
-.fa-stop-circle-o:before {
- content: "\f28e";
-}
-.fa-shopping-bag:before {
- content: "\f290";
-}
-.fa-shopping-basket:before {
- content: "\f291";
-}
-.fa-hashtag:before {
- content: "\f292";
-}
-.fa-bluetooth:before {
- content: "\f293";
-}
-.fa-bluetooth-b:before {
- content: "\f294";
-}
-.fa-percent:before {
- content: "\f295";
-}
-.fa-gitlab:before {
- content: "\f296";
-}
-.fa-wpbeginner:before {
- content: "\f297";
-}
-.fa-wpforms:before {
- content: "\f298";
-}
-.fa-envira:before {
- content: "\f299";
-}
-.fa-universal-access:before {
- content: "\f29a";
-}
-.fa-wheelchair-alt:before {
- content: "\f29b";
-}
-.fa-question-circle-o:before {
- content: "\f29c";
-}
-.fa-blind:before {
- content: "\f29d";
-}
-.fa-audio-description:before {
- content: "\f29e";
-}
-.fa-volume-control-phone:before {
- content: "\f2a0";
-}
-.fa-braille:before {
- content: "\f2a1";
-}
-.fa-assistive-listening-systems:before {
- content: "\f2a2";
-}
-.fa-asl-interpreting:before,
-.fa-american-sign-language-interpreting:before {
- content: "\f2a3";
-}
-.fa-deafness:before,
-.fa-hard-of-hearing:before,
-.fa-deaf:before {
- content: "\f2a4";
-}
-.fa-glide:before {
- content: "\f2a5";
-}
-.fa-glide-g:before {
- content: "\f2a6";
-}
-.fa-signing:before,
-.fa-sign-language:before {
- content: "\f2a7";
-}
-.fa-low-vision:before {
- content: "\f2a8";
-}
-.fa-viadeo:before {
- content: "\f2a9";
-}
-.fa-viadeo-square:before {
- content: "\f2aa";
-}
-.fa-snapchat:before {
- content: "\f2ab";
-}
-.fa-snapchat-ghost:before {
- content: "\f2ac";
-}
-.fa-snapchat-square:before {
- content: "\f2ad";
-}
-.fa-pied-piper:before {
- content: "\f2ae";
-}
-.fa-first-order:before {
- content: "\f2b0";
-}
-.fa-yoast:before {
- content: "\f2b1";
-}
-.fa-themeisle:before {
- content: "\f2b2";
-}
-.fa-google-plus-circle:before,
-.fa-google-plus-official:before {
- content: "\f2b3";
-}
-.fa-fa:before,
-.fa-font-awesome:before {
- content: "\f2b4";
-}
-.fa-handshake-o:before {
- content: "\f2b5";
-}
-.fa-envelope-open:before {
- content: "\f2b6";
-}
-.fa-envelope-open-o:before {
- content: "\f2b7";
-}
-.fa-linode:before {
- content: "\f2b8";
-}
-.fa-address-book:before {
- content: "\f2b9";
-}
-.fa-address-book-o:before {
- content: "\f2ba";
-}
-.fa-vcard:before,
-.fa-address-card:before {
- content: "\f2bb";
-}
-.fa-vcard-o:before,
-.fa-address-card-o:before {
- content: "\f2bc";
-}
-.fa-user-circle:before {
- content: "\f2bd";
-}
-.fa-user-circle-o:before {
- content: "\f2be";
-}
-.fa-user-o:before {
- content: "\f2c0";
-}
-.fa-id-badge:before {
- content: "\f2c1";
-}
-.fa-drivers-license:before,
-.fa-id-card:before {
- content: "\f2c2";
-}
-.fa-drivers-license-o:before,
-.fa-id-card-o:before {
- content: "\f2c3";
-}
-.fa-quora:before {
- content: "\f2c4";
-}
-.fa-free-code-camp:before {
- content: "\f2c5";
-}
-.fa-telegram:before {
- content: "\f2c6";
-}
-.fa-thermometer-4:before,
-.fa-thermometer:before,
-.fa-thermometer-full:before {
- content: "\f2c7";
-}
-.fa-thermometer-3:before,
-.fa-thermometer-three-quarters:before {
- content: "\f2c8";
-}
-.fa-thermometer-2:before,
-.fa-thermometer-half:before {
- content: "\f2c9";
-}
-.fa-thermometer-1:before,
-.fa-thermometer-quarter:before {
- content: "\f2ca";
-}
-.fa-thermometer-0:before,
-.fa-thermometer-empty:before {
- content: "\f2cb";
-}
-.fa-shower:before {
- content: "\f2cc";
-}
-.fa-bathtub:before,
-.fa-s15:before,
-.fa-bath:before {
- content: "\f2cd";
-}
-.fa-podcast:before {
- content: "\f2ce";
-}
-.fa-window-maximize:before {
- content: "\f2d0";
-}
-.fa-window-minimize:before {
- content: "\f2d1";
-}
-.fa-window-restore:before {
- content: "\f2d2";
-}
-.fa-times-rectangle:before,
-.fa-window-close:before {
- content: "\f2d3";
-}
-.fa-times-rectangle-o:before,
-.fa-window-close-o:before {
- content: "\f2d4";
-}
-.fa-bandcamp:before {
- content: "\f2d5";
-}
-.fa-grav:before {
- content: "\f2d6";
-}
-.fa-etsy:before {
- content: "\f2d7";
-}
-.fa-imdb:before {
- content: "\f2d8";
-}
-.fa-ravelry:before {
- content: "\f2d9";
-}
-.fa-eercast:before {
- content: "\f2da";
-}
-.fa-microchip:before {
- content: "\f2db";
-}
-.fa-snowflake-o:before {
- content: "\f2dc";
-}
-.fa-superpowers:before {
- content: "\f2dd";
-}
-.fa-wpexplorer:before {
- content: "\f2de";
-}
-.fa-meetup:before {
- content: "\f2e0";
-}
-.sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- border: 0;
-}
-.sr-only-focusable:active,
-.sr-only-focusable:focus {
- position: static;
- width: auto;
- height: auto;
- margin: 0;
- overflow: visible;
- clip: auto;
-}
diff --git a/assets/scss/admin-importer.scss b/assets/scss/admin-importer.scss
deleted file mode 100644
index 5585932e5c..0000000000
--- a/assets/scss/admin-importer.scss
+++ /dev/null
@@ -1,105 +0,0 @@
-@import "_includes/vars";
-@import "_includes/mixins";
-
-.llms-import-file-wrap {
- background: #fafafa;
- border: 1px solid #ccd0d4;
- padding: 10px;
- margin: 20px auto;
- display: inline-flex;
- justify-content: space-between;
- align-items: center;
-}
-
-.llms-cloud-import-help.button-link {
- color: inherit;
- vertical-align: top;
- text-decoration: none;
-}
-
-.wrap.llms-import-export {
-
- ul.llms-importable-courses {
- display: flex;
- flex-direction: column;
- flex-wrap: wrap;
- gap: 20px;
-
- @media only screen and ( min-width: 680px ) {
- flex-direction: row;
- }
-
- .llms-importable-course {
- background-color: #FFF;
- border: 1px solid #dedede;
- border-radius: 12px;
- box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
- list-style: none;
- margin: 20px 0;
- overflow: hidden;
-
- @media only screen and ( min-width: 680px ) {
- -webkit-box-flex: 0;
- flex-grow: 0;
- flex-shrink: 1;
- flex-basis: calc(31%);
- }
-
- img {
- display: block;
- max-width: 100%;
- }
-
- h3 {
- color: #1d2327;
- font-size: 20px;
- line-height: 1.5;
- margin: 30px 20px 15px;
- }
-
- p {
- font-size: 15px;
- line-height: 1.5;
- margin: 0 20px 15px;
- }
-
- &.has-action-button {
- padding-bottom: 10px;
- position: relative;
- .button {
- bottom: 20px;
- right: 20px;
- position: absolute;
- }
- }
-
- }
-
- }
-
- @media only screen and (min-width: 600px) {
- ul.llms-importable-courses {
- display: flex;
- flex-wrap: wrap;
- }
- }
-
- @media only screen and (min-width: 600px) and (max-width: 767px) {
- ul.llms-importable-courses {
- li.llms-importable-course {
- flex: 1 0 calc( 50% - 20px );
- max-width: calc( 50% - 20px );
- }
- }
- }
-
- @media only screen and (min-width: 768px) {
- ul.llms-importable-courses {
- li.llms-importable-course {
- flex: 1 0 calc( 33% - 20px );
- max-width: calc( 33% - 20px );
- }
- }
- }
-
-}
diff --git a/assets/scss/admin-wizard.scss b/assets/scss/admin-wizard.scss
deleted file mode 100644
index 9540abdc27..0000000000
--- a/assets/scss/admin-wizard.scss
+++ /dev/null
@@ -1,345 +0,0 @@
-@import "_includes/vars";
-
-$input_padding: 0.3em 0.6em;
-
-#wpadminbar, #adminmenumain, #wpfooter {
- display: none;
-}
-
-#llms-setup-wizard {
-
- background-color: #F0F0F1;
- height: 100%;
- left: 0;
- overflow: scroll;
- position: fixed;
- top: 0;
- width: 100%;
-
-}
-
-.llms-setup-wrapper {
- margin: 30px auto;
- max-width: 640px;
-}
-
-#llms-logo {
- text-align: center;
-
- a {
- display: inline-block;
- }
-
- img {
- max-width: 200px;
- }
-
-}
-
-.llms-setup-content {
- background-color: #FFF;
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
- padding: 30px;
-
- h1, h2, h3, h4, h5, h6 {
- color: #3C434A;
- }
-
- a:not( .llms-button-primary ):not( .llms-button-secondary ) {
- color: $color-brand-blue;
- }
-
- p, li {
- color: #3C434A;
- font-size: 16px;
- }
-
- p.error {
- color: $color-red;
- background: rgba($color-red,0.1);
- border: 1px solid currentColor;
- padding: 1em;
- border-radius: 4px;
- margin: 1.5em 0 0;
- font-size: 15px;
- text-align: left;
- }
-
- label {
- font-weight: 500;
- }
-
- table {
- border-bottom: 1px solid #f1f1f1;
- border-collapse: collapse;
- width: 100%;
- }
-
- td {
- border-top: 1px solid #f1f1f1;
-
- &:first-child {
- padding-right: 10px;
- width: 33%;
-
- a {
- font-size: 16px;
- font-weight: 500;
- }
-
- i {
- display: block;
- font-size: 13px;
- margin-top: 10px;
-
- a {
- font-size: 13px;
- }
- }
-
- }
-
- }
-
- small {
- font-size: small;
- }
-
- .has-checkbox-field {
- display: flex;
- flex-direction: row-reverse;
- justify-content: flex-end;
- align-items: center;
- align-content: center;
- gap: 0.5em;
- font-weight: normal;
- font-size: 16px;
-
- input {
- margin: 0;
- }
- }
-
- label {
- font-size: 16px;
- display: block;
- margin-bottom: 0.5em;
- }
-
- small + label {
- margin-top: 1em;
- }
-
- [type=text] {
- width: 100%;
- clear: both;
- margin: 0;
- padding: $input_padding;
- }
-
- .has-date-field {
- font-size: 16px;
- display: flex;
- margin-bottom: 0.5em;
- flex-wrap: wrap;
- flex-direction: column;
- gap: 0.5em;
- }
-
- [type=date] {
- padding: $input_padding;
- }
-
- .is-hidden {
- display: none;
- }
-}
-
-.llms-setup-date-fields {
- display: flex;
- justify-content: space-between;
- gap: 1em;
- padding-top: 2em;
-}
-
-.llms-setup-date-field {
- flex: 1;
-}
-
-.llms-setup-actions {
- margin-top: 2em;
- text-align: right;
- display: flex;
- justify-content: space-between;
- align-items: center;
- gap: 1em;
-
- .llms-button-primary {
- display: inline-block;
-
- &:after {
- content: "\f054";
- font-family: 'FontAwesome';
- font-weight: 900;
- padding-left: 10px;
- }
-
- }
-}
-
-.llms-exit-setup {
- color: inherit !important;
- margin-right: 10px;
-
- + .llms-button-primary,
- + .llms-button-secondary {
- margin-left: auto;
- }
-}
-
-.llms-importing-msgs {
- a {
- color: $color-brand-blue;
- }
-
- .llms-importing-msg {
- display: none;
- font-size: 14px;
- font-style: italic;
- text-align: right;
- }
-}
-
-ul.llms-importable-courses {
- border-bottom: 1px solid #f1f1f1;
- display: block;
-
- li.llms-importable-course {
- border-top: 1px solid #f1f1f1;
- display: block;
- margin: 0;
- max-width: 100%;
- padding: 20px 0;
-
- h3 {
- grid-area: title;
- line-height: 1.5;
- margin: 0;
- }
-
- p {
- grid-area: description;
- margin: 0;
- }
-
- label {
- column-gap: 20px;
- display: grid;
- font-weight: 400;
- grid-template-areas:
- "image title switch"
- "image description switch";
- ;
- grid-template-columns: 1fr 3fr auto;
- row-gap: 5px;
- }
-
- img {
- grid-area: image;
- max-width: 160px;
- }
-
- .llms-switch {
- grid-area: switch;
-
- input.llms-toggle-round:checked + label {
- border-color: $color-brand-blue;
- background-color: $color-brand-blue;
- }
-
- }
-
- }
-}
-
-.llms-setup-progress {
- display: flex;
- margin: 20px 0;
-
- li {
- border-bottom: 4px solid $color-brand-blue;
- display: inline-block;
- font-size: 14px;
- padding-bottom: 10px;
- position: relative;
- text-align: center;
- flex: 1;
-
- a {
- color: $color-brand-blue;
- text-decoration: none;
- }
-
- &:after {
- background: $color-brand-blue;
- bottom: 0;
- content: '';
- border: 4px solid $color-brand-blue;
- border-radius: 100%;
- height: 4px;
- position: absolute;
- left: 50%;
- margin-left: -6px;
- margin-bottom: -8px;
- width: 4px;
- }
-
- &.current {
- font-weight: 700;
-
- &:after {
- background: #fff;
- }
- }
-
- &.current ~ li {
- border-bottom-color: #ccc;
-
- &:after {
- background: #ccc;
- border-color: #ccc;
- }
-
- a {
- color: #bbb;
- }
- }
-
- }
-}
-
-.llms-setup-wrapper {
-
- // Calendar icon for custom date fields.
- [type="text"].llms-datepicker {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512' fill='%23ccc'%3E%3Cpath d='M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H64C28.7 64 0 92.7 0 128v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64h-40V24c0-13.3-10.7-24-24-24s-24 10.7-24 24v40H152V24zM48 192h352v256c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z'/%3E%3C/svg%3E");
- background-repeat: no-repeat;
- background-position: right 8px center;
- background-size: 16px 16px;
- padding-right: 40px;
- }
-}
-
-@media only screen and ( max-width: 782px ) {
- ul.llms-importable-courses {
- li.llms-importable-course {
- label {
- grid-template-areas:
- "image switch"
- "title title"
- "description description";
- grid-template-columns: 3fr auto;
- }
- }
- }
-}
diff --git a/assets/scss/admin.scss b/assets/scss/admin.scss
deleted file mode 100644
index 545fc80d5b..0000000000
--- a/assets/scss/admin.scss
+++ /dev/null
@@ -1,94 +0,0 @@
-//
-// Main Admin CSS File
-//
-
-@import "_includes/vars";
-@import "_includes/vars-brand-colors";
-
-@import "_includes/extends";
-@import "_includes/buttons";
-@import "_includes/mixins";
-
-@import "_includes/tooltip";
-
-// wp menu item
-@import "admin/_wp-menu";
-
-// grid layout for breakpoints
-@import "admin/partials/grid";
-
-// forms
-@import "admin/modules/forms";
-
-// voucher
-@import "admin/modules/voucher";
-
-// widgets
-@import "admin/modules/widgets";
-
-// icons
-@import "admin/modules/icons";
-
-// icons
-@import "admin/modules/mb-tabs";
-
-// icons
-@import "admin/modules/top-modal";
-
-@import "admin/modules/merge-codes";
-
-// Base (mobile)
-@import "admin/breakpoints/base";
-
-// Larger mobile devices
-@media only screen and (min-width: 481px) {
- @import "admin/breakpoints/481up";
-}
-
-// Tablets and smaller laptops
-@media only screen and (min-width: 768px) {
- @import "admin/breakpoints/768up";
-}
-
-// Desktops
-@media only screen and (min-width: 1030px) {
- @import "admin/breakpoints/1030up";
-}
-
-// Larger Monitors and TVs
-@media only screen and (min-width: 1240px) {
- @import "admin/breakpoints/1240up";
-}
-
-@import "admin/main";
-
-@import "admin/llms-table";
-@import "admin/modules/llms-order-note";
-
-// metabox related
-@import "admin/metaboxes/llms-metabox";
-@import "admin/metaboxes/metabox-instructors";
-@import "admin/metaboxes/metabox-orders";
-@import "admin/metaboxes/metabox-engagements-type";
-@import "admin/metaboxes/metabox-product";
-@import "admin/metaboxes/metabox-students";
-@import "admin/metaboxes/metabox-field-repeater";
-@import "admin/metaboxes/builder-launcher";
-
-@import "admin/post-tables/llms_orders";
-@import "admin/post-tables/post-tables";
-
-@import "admin/tabs";
-@import "admin/fonts";
-@import "admin/reporting";
-
-@import "admin/settings";
-
-@import "admin/dashboard";
-@import "admin/dashboard-widget";
-@import "admin/resources";
-
-@import "admin/quiz-attempt-review";
-
-@import "_includes/llms-form-field";
-@import "_includes/vendor/_font-awesome";
diff --git a/assets/scss/admin/_course-builder.scss b/assets/scss/admin/_course-builder.scss
deleted file mode 100644
index 29923cd2a8..0000000000
--- a/assets/scss/admin/_course-builder.scss
+++ /dev/null
@@ -1,1702 +0,0 @@
-body.admin_page_llms-course-builder {
- background: #fff;
-
- #adminmenumain { display: none; }
- #wpbody-content { padding-bottom: 0; }
- #wpfooter { display: none; }
-
- #wpcontent, #wpfooter {
- margin-left: 0;
- }
-
- .llms-button-secondary {
- .fa {
- margin-right: 5px;
- }
- }
-
- // &.folded {
- // .llms-course-builder {
- // left: 56px;
- // }
- // }
-
- .webui-popover {
- .select2-container--default {
- .select2-results__group {
- font-size: 16px;
- }
- .select2-results__option .select2-results__option {
- padding-left: 2em;
- }
- }
-
- }
-}
-
-.wrap.lifterlms.llms-builder {
- margin: 0;
- padding: 0;
- position: relative;
-
-
- &.editor-active {
- .llms-video-explainer {
- display: none;
- }
-
- .llms-builder-sidebar {
- padding: 10px;
- width: calc( 100% - 200px );
- z-index: 3;
- }
- @media only screen and ( min-width: 1200px ) {
- .llms-builder-main {
- width: 560px;
- }
- .llms-builder-sidebar {
- width: calc( 100% - 640px );
- }
- }
- @media only screen and ( min-width: 1440px ) {
- .llms-builder-main {
- width: calc( 100% - 780px );
- }
- .llms-builder-sidebar {
- width: 720px;
- }
- }
- @media only screen and ( min-width: 1680px ) {
- .llms-builder-main {
- width: calc( 100% - 1000px );
- }
- .llms-builder-sidebar {
- width: 940px;
- }
- }
- @media only screen and ( max-width: 782px ) {
- .llms-builder-sidebar {
- position: absolute;
- top: 0;
- width: auto;
- }
- }
- }
-
- .llms-headline {
- display: inline-block;
- font-weight: 400;
- margin: 0;
- padding: 0;
- transition: width 0.3s ease-in-out;
- vertical-align: middle;
- }
-
- .llms-builder-main {
- padding: 30px 30px 30px 0;
- position: relative;
- width: calc( 100% - 450px );
- z-index: 2;
-
- .llms-action-icons {
- display: inline-block;
- position: relative;
- vertical-align: middle;
- button {
- background: none;
- color: inherit;
- border: none;
- padding: 0;
- cursor: pointer;
- outline: inherit;
- }
- }
-
- .llms-action-icons-lesson-id {
- vertical-align: top;
- }
-
- // Course
- .llms-course-header {
- align-items: center;
- display: flex;
- flex-wrap: wrap;
- gap: 15px;
- position: relative;
- z-index: 1;
- .llms-button-secondary {
- margin-right: 10px;
- }
- }
-
-
- // Sections
- ul.llms-sections {
- box-shadow: 0 0 0 3px transparent;
- min-height: 60px;
- padding: 10px 0;
- transition: box-shadow 0.6s ease, min-height 0.2s ease;
- &.dragging {
- box-shadow: 0 0 0 3px $color-brand-blue;
- }
- }
-
- li.llms-section {
- background: #fff;
- border: 1px solid #efefef;
- border-radius: 6px;
- box-shadow: 2px 2px 8px rgba( 0, 0, 0, 0.08 );
- position: relative;
- margin: 0 0 20px 0;
- padding: 0;
-
- > .llms-builder-header {
- align-items: center;
- display: flex;
- gap: 15px;
- justify-content: space-between;
- padding: 20px 10px 20px 30px;
- .llms-action-icons {
- align-items: center;
- display: flex;
- gap: 15px;
- justify-content: space-between;
- .llms-action-icons-right {
- display: flex;
- gap: 0px;
- margin-top: -5px;
- .llms-action-icon {
- padding: 5px 10px;
- }
- }
- .llms-action-icons-left {
- display: flex;
- gap: 15px;
- }
- @media only screen and ( min-width: 1200px ) {
- .llms-action-icons-right,
- .llms-action-icons-left {
- white-space: nowrap;
- }
- }
- }
- }
-
- &.expanded {
- .llms-lessons { overflow: visible; }
- }
- &.selected {
- .llms-drag-utility.drag-section {
- border-color: $color-brand-blue;
- }
- > .llms-builder-header .llms-headline {
- font-weight: 400;
- color: $color-brand-blue;
- }
- }
-
- > .llms-builder-footer {
- border-top: 1px solid #efefef;
- padding: 20px 20px 20px 30px;
- }
- }
-
- li.llms-section:first-child:before {
- top: 30px;
- }
-
- li.llms-section:last-child:before {
- bottom: 55px;
- }
-
- li.llms-section.expanded:last-child:before {
- bottom: 86px;
- }
-
- // Lessons
- ul.llms-lessons {
- box-shadow: 0 0 0 3px transparent;
- height: 0;
- margin: 0;
- padding: 0;
- transition: box-shadow 0.6s ease, min-height 0.2s ease;
- &.dragging {
- box-shadow: 0 0 0 3px $color-brand-blue;
- min-height: 60px;
- }
- &.expanded, // added via backbone view events
- &.drag-expanded { // added only during dragover events and ignores model attrs
- height: auto;
- li.llms-lesson {
- pointer-events: auto;
- visibility: visible;
- }
- }
-
- }
-
- li.llms-lesson {
- background: #fff;
- border-top: 1px solid #efefef;
- margin: 0;
- padding: 20px 10px 20px 30px;
- position: relative;
- pointer-events: none;
- visibility: hidden;
-
- &.selected {
- .llms-drag-utility.drag-lesson {
- border-color: $color-brand-blue;
- }
- > .llms-builder-header .llms-headline {
- color: $color-brand-blue;
- }
- }
-
- > .llms-builder-header {
- .llms-headline {
- font-weight: 700;
- margin-left: 10px;
- cursor: pointer;
- }
- align-items: center;
- display: flex;
- flex-wrap: wrap;
- gap: 15px;
- justify-content: space-between;
- .llms-action-icons {
- align-items: center;
- display: flex;
- flex: 1;
- gap: 15px;
- justify-content: space-between;
- .llms-action-icons-left {
- display: flex;
- gap: 15px;
- }
- .llms-action-icons-right {
- display: flex;
- gap: 0;
- margin-top: -5px;
- .llms-action-icon {
- padding: 5px 10px;
- }
- }
- @media only screen and ( min-width: 1200px ) {
- .llms-action-icons-right,
- .llms-action-icons-left {
- white-space: nowrap;
- }
- }
- }
-
- @media only screen and ( min-width: 1200px ) {
- > .llms-builder-header {
- flex-wrap: nowrap;
- }
- }
- }
-
- }
-
- // Drag Utilities
- li.llms-section .llms-drag-utility {
- background: #fff;
- border: 2px solid #ccc;
- border-radius: 50%;
- height: 10px;
- left: 13px;
- position: absolute;
- top: 24px;
- width: 10px;
- }
-
- li.llms-lesson .llms-drag-utility {
- height: 6px;
- left: 14px;
- top: 25px !important;
- width: 6px;
- }
-
- .llms-section:hover > .llms-drag-utility,
- .llms-lesson:hover > .llms-drag-utility {
- border-color: #fff;
- cursor: move;
- &:hover:after {
- color: $color-brand-blue;
- }
- &:after {
- background: #fff;
- content: '\00b7\00b7\A\00b7\00b7\A\00b7\00b7';
- color: #ccc;
- display: block;
- font-size: 36px;
- height: 29px;
- letter-spacing: -1px;
- line-height: 8px;
- left: -7px;
- position: absolute;
- text-align: center;
- top: -12px;
- width: 23px;
- }
- }
-
- // Sortable
- li.llms-section,
- li.llms-lesson {
- &.ui-sortable-helper,
- &.ui-draggable-dragging {
- border: 1px solid #ccc;
- background: #fff;
- transform: rotate( 2deg );
- visibility: visible !important;
- z-index: 999;
- }
-
- &.llms-sortable-placeholder {
- border: 3px dashed $color-brand-blue;
- background: rgba( $color-brand-blue, 0.3 );
- margin: 0 10px;
- padding: 5px;
- &:before { display: none; }
- }
- }
-
- ul.llms-sections > li.llms-lesson.ui-draggable-dragging .llms-drag-utility {
- position: relative;
- &:after {
- left: -35px;
- top: -28px;
- }
- }
-
- }
-
- // Editable
- .llms-input-wrapper {
- position: relative;
- }
-
- .llms-input-formatting.ql-container {
- font-size: inherit;
- font-family: inherit;
- .ql-editor.ql-blank::before {
- color: #a0a0a0;
- left: 8px;
- right: 8px;
- }
- .ql-editor {
- p {
- font-size: inherit;
- line-height: 1;
- }
- }
- .ql-tooltip {
- z-index: 1;
- }
- }
-
- .llms-input,
- .llms-input-formatting .ql-editor {
- border: none;
- border-bottom: 2px dotted transparent;
- box-shadow: none;
- cursor: text;
- display: inline-block;
- font-size: inherit;
- font-weight: 700;
- height: auto;
- line-height: 1;
- margin: 0 8px;
- min-width: 60px;
- padding: 0;
- transition: border 0.2s ease, box-shadow 0.2s ease;
- &:empty:before {
- color: #a0a0a0;
- content: attr( data-placeholder );
- }
- &:hover {
- border-bottom-color: $color-brand-blue;
- }
- &[disabled] {
- cursor: not-allowed;
- &:hover {
- border-bottom-color: transparent;
- }
- }
- &:focus {
- background: #fff;
- box-shadow: 0 0 0 4px #fff, 0 0 0 6px $color-brand-blue;
- border-bottom: none;
- outline: none;
- }
- b, strong {
- font-weight: 700;
- }
- &.standard {
- border: 1px solid #e6e6e6;
- margin: 2px;
- padding: 5px 3px;
- &:hover {
- border-color: #d6d6d6;
- }
- &:focus {
- box-shadow: 0 0 0 2px $color-brand-blue;
- }
- }
- &.permalink {
- display: none;
- }
- }
-
- .llms-input-formatting .ql-editor {
- padding: 0 1px;
- }
-
- .llms-label {
- font-weight: 500;
- .fa {
- color: #aaa;
- padding-left: 6px;
- }
- }
-
- // .llms-editable-image,
- // .llms-editable-video,
- // .llms-editable-editor {
- // }
-
- .llms-editable-editor {
- .llms-label {
- float: left;
- margin-right: 10px;
- position: relative;
- top: 10px;
- }
- textarea {
- border: none;
- padding: 10px;
- display: block;
- width: 100%;
- }
- }
-
- .llms-editable-image {
- button.llms-add-image {
- width: 130px;
- }
- .llms-image {
- display: inline-block;
- position: relative;
- &:hover .llms-action-icon {
- opacity: 1;
- }
- .llms-action-icon {
- color: #fff;
- font-size: 24px;
- opacity: 0;
- padding: 0;
- position: absolute;
- transition: opacity 0.2s ease;
- right: 3px;
- top: 1px;
- z-index: 1;
- }
- img {
- display: block;
- height: 100px;
- max-width: 100%;
- width: auto;
- }
- }
- }
-
- .llms-settings-field,
- .llms-editable-toggle-group {
- background: #f4f4f4;
- padding: 10px;
- position: relative;
- margin: 0 1px;
-
- &.has-label-after {
- align-items: center;
- display: flex;
- flex-wrap: wrap;
-
- .llms-label {
- min-width: 100%;
- }
- .llms-editable-input {
- flex: 2;
- }
- .llms-label--after {
- color: #888;
- min-width: auto;
- font-size: 85%;
- padding-left: 10px;
- }
- }
-
- .llms-switch {
- display: block;
- width: 100%;
- @include clearfix;
-
- .llms-label {
- width: calc( 100% - 34px );
- }
- }
-
- .llms-editable-image,
- .llms-editable-video,
- .llms-editable-editor {
- margin-top: 2px;
- }
-
- .llms-input.standard {
- display: block;
- width: 100%;
- &.two-digits,
- &.three-digits,
- &.four-digits {
- display: inline-block;
- }
- }
-
- }
-
- .llms-editable-number {
- .llms-input {
- color: #888;
- min-width: 30px;
- text-align: right;
- &.two-digits {
- width: 30px;
- }
- &.three-digits {
- width: 40px;
- }
- &.four-digits {
- width: 60px;
- }
- }
- small {
- color: #888;
- text-transform: uppercase;
- }
- }
-
- .llms-model-settings {
- background-color: #FFF;
- -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
- @include clearfix();
-
- .llms-settings-group-header {
- border-bottom: 1px solid #efefef;
- padding: 10px;
-
- .fa-caret-up { display: block; }
- .fa-caret-down { display: none; }
- }
- &.hidden {
- .llms-settings-group-header {
- .fa-caret-up { display: none; }
- .fa-caret-down { display: block; }
- }
- .llms-settings-group-body { display: none; }
- }
- }
-
- .llms-settings-group-header {
- @include clearfix();
- .llms-settings-group-title {
- display: inline-block;
- font-size: 16px;
- font-weight: 700;
- line-height: 1.5;
- margin: 0 5px;
- padding: 0;
- }
- .llms-settings-group-toggle {
- float: right;
- font-size: 18px;
- padding: 2px;
- }
- }
-
- .llms-settings-group-body {
- padding: 16px;
- }
-
- .llms-settings-row {
- display: flex;
- flex-wrap: wrap;
- margin: 2px 0;
-
- .llms-settings-field,
- .llms-editable-toggle-group {
- flex: 1;
- &:first-child {
- margin-left: 0;
- }
- &:last-child {
- margin-right: 0;
- }
- }
-
- .llms-breaker {
- margin: 2px 0;
- width: 100%;
- }
- }
-
- .llms-editable-select {
- margin: 2px 0;
- .select2-container--default.select2-container--focus .select2-selection--multiple {
- border-color: #aaa;
- }
- }
-
- .llms-editable-radio {
- label {
- display: block;
- }
- &.has-images {
- input { display: none; }
- label {
- display: inline-block;
- margin: 0 3px;
- }
- label > span {
- transition: background 0.2s ease;
- display: inline-block;
- padding: 3px;
- }
- img { display: block; }
- input:checked + span {
- background: $color-brand-blue;
- }
- }
- }
-
- .settings-field--disabled {
- opacity: 0.5;
- }
-
- // Icons
- .llms-action-icon {
- color: #666;
- display: inline-block;
- font-size: 13px;
- text-decoration: none;
- &:hover {
- color: $color-brand-blue;
- &.danger { color: $color-danger; }
- }
- &.circle {
- border: 2px solid #aaa;
- border-radius: 50%;
- font-size: 9px;
- height: 8px;
- line-height: 1;
- padding: 5px;
- text-align: center;
- width: 8px;
- &:hover {
- border-color: $color-brand-blue;
- &.danger {
- border-color: $color-danger;
- }
- }
- }
- }
-
- ul.llms-info-list {
- display: flex;
- flex-wrap: wrap;
- gap: 15px;
- margin: 10px 0 0 8px;
- padding: 0;
- li.llms-info-item {
- color: #666;
- font-size: 13px;
- margin: 0;
- &.active,
- &.active .llms-action-icon {
- color: $color-brand-blue;
- .fa {
- margin-right: 5px;
- }
- }
- button {
- background: none;
- color: inherit;
- border: none;
- padding: 0;
- cursor: pointer;
- outline: inherit;
- &:hover {
- text-decoration: underline;
- }
- }
- }
- }
-
- // Sidebar
- .llms-builder-sidebar {
- background: #e6e6e6;
- bottom: 0;
- overflow: hidden;
- padding: 30px;
- position: fixed;
- transition: width 0.3s ease-in-out;
- top: 32px;
- right: 0;
- width: 360px;
- z-index: 1;
-
- .llms-utilities {
-
- ul, li {
- margin: 0;
- padding: 0;
- }
-
- ul {
- display: flex;
- gap: 15px;
- li {
- flex: 1;
- &:last-child {
- margin-right: 0;
- }
- }
- }
-
- .llms-utility {
- background: #efefef;
- border: 1px solid #ccc;
- border-radius: 8px;
- color: inherit;
- cursor: pointer;
- display: block;
- overflow: hidden;
- padding: 6px 12px;
- position: relative;
- text-align: center;
- width: 100%;
-
- &:hover {
- background: #fefefe;
- }
-
- .fa {
- background: #848484;
- position: absolute;
- left: 0;
- top: 0;
- padding: 7px;
- color: #fff;
- }
- }
-
- }
-
- .llms-sidebar-headline {
- margin: 0 0 10px;
- font-size: 22px;
- }
-
- .llms-elements-list {
- margin-bottom: 30px;
- li {
- margin-bottom: 10px;
- }
- }
-
- .llms-utility {
- color: #444;
- text-decoration: none;
- }
-
- .llms-element-button {
- background: $color-brand-blue;
- border-radius: 8px;
- border: none;
- color: #fff;
- cursor: pointer;
- display: block;
- margin: 0;
- overflow: hidden;
- padding: 17px 20px;
- position: relative;
- transition: background 0.2s ease, color 0.2s ease;
- text-align: center;
- width: 100%;
-
- &:hover {
- background: $color-brand-blue-dark;
- }
-
- &.secondary {
- background: #efefef;
- color: #444;
- &:hover {
- background: #fefefe;
- }
- .fa {
- background: #848484;
- }
- }
-
- .fa {
- background: $color-brand-dark-blue;
- border-radius: 4px 0 0 4px;
- color: #fff;
- display: block;
- font-size: 20px;
- padding: 15px 20px;
- position: absolute;
- top: 0;
- left: 0;
- }
-
- &[disabled="disabled"] {
- opacity: 0.4;
- }
-
- &.small {
-
- padding: 8px 10px 8px 46px;
- .fa {
- font-size: 15px;
- padding: 9px 10px;
- width: 20px;
- }
-
- }
-
- &.right {
-
- &.small {
- padding-left: 10px;
- padding-right: 46px;
- }
-
- .fa {
- border-radius: 0 4px 4px 0;
- left: auto;
- right: 0;
- }
-
- }
-
- }
-
-
-
- .llms-editor {
- height: 100%;
- min-height: 100%;
- position: relative;
- }
-
- // .llms-builder-close-editor {
- // background: $color-brand-blue;
- // border: none;
- // border-radius: 50%;
- // color: #fff;
- // cursor: pointer;
- // display: inline-block;
- // font-size: 18px;
- // height: 30px;
- // margin: 0;
- // position: absolute;
- // right: 0;
- // text-align: center;
- // top: 3px;
- // width: 30px;
- // z-index: 3;
- // }
-
- .llms-editor-nav {
- background-color: $color-brand-dark-blue;
- margin: 0;
- padding: 8px 0 0 8px;
- font-size: 0;
- margin: -10px -10px 10px -10px;
- position: relative;
- z-index: 2;
-
- .llms-editor-menu {
- list-style-type: none;
- margin: 0;
- padding: 0;
- position: relative;
-
- .llms-editor-menu-item {
- display: inline-block;
- margin: 0 6px 0 0;
- padding: 0;
-
- > .llms-editor-menu {
- display: none;
- &:before {
- border: 8px solid transparent;
- border-left-color: #cacaca;
- content: '';
- position: absolute;
- top: 11px;
- left: 0;
- }
-
- .llms-editor-menu-item:hover > a,
- .llms-editor-menu-item.active > a {
- background: #dfdfdf;
- }
-
- }
-
- &:hover > a {
- background-color: $color-brand-blue;
- }
-
- &.active > a {
- background-color: #e6e6e6;
- color: $color-brand-blue;
- font-weight: 700;
-
- &:focus {
- box-shadow: none;
- }
- }
-
- &.active > .llms-editor-menu {
- display: inline-block;
- }
-
- a {
- border-top-left-radius: 4px;
- border-top-right-radius: 4px;
- color: #FFF;
- display: inline-block;
- padding: 9px 18px;
- text-decoration: none;
- transition: background 0.2s ease;
- font-size: 15px;
- }
-
-
- &.right {
- float: right;
-
- a,
- &:hover {
- background: transparent;
- }
- }
-
- }
- }
- }
-
- .llms-editor-tab {
- display: none;
- height: calc( 100% - 90px );
- overflow: scroll;
- position: relative;
- z-index: 1;
- &.active {
- display: block;
-
- &.tab--quiz {
-
- display: flex;
- flex-direction: column;
-
- .llms-quiz-questions {
- flex: 1 0 auto;
- overflow: scroll;
-
- // groups
- .llms-quiz-questions {
- overflow: visible;
- }
- }
-
- }
- }
-
- }
-
-
- // .llms-builder-editor {
-
- // opacity: 0;
- // margin: 10px 0;
- // transition: opacity 0.2s linear;
-
- // &.ready {
- // opacity: 1;
- // }
-
- // textarea {
- // border: none;
- // display: block;
- // width: 100%;
- // }
- // }
-
- .llms-builder-save {
-
- bottom: 10px;
- left: 10px;
- position: absolute;
- right: 10px;
- z-index: 1;
-
- .llms-builder-error {
- background: $color-danger;
- border-radius: 4px;
- color: #fff;
- display: inline-block;
- font-style: italic;
- padding: 5px 15px 7px 25px;
- margin: 0 0 10px;
-
- li {
- margin: 0;
- padding: 0;
- }
-
- }
-
- .llms-save {
- width: 75%;
- }
- .llms-exit {
- padding-left: 5px;
- padding-right: 5px;
- width: 23%;
- }
-
- button {
- position: relative;
- i {
- position: absolute;
- left: 10px;
- top: 10px;
-
- .llms-spinner {
- border-color: #fff;
- }
- }
- }
- button[data-status] .llms-status-indicator { display: none; }
- button[data-status="saved"] .status--saved { display: block; }
- button[data-status="unsaved"] {
- background-color: $color-brand-orange;
- .status--unsaved { display: block; }
- }
- button[data-status="saving"] .status--saving { display: block; }
- button[data-status="error"] .status--error { display: block; }
-
- }
-
- }
- @media only screen and ( max-width: 782px ) {
- .llms-builder-sidebar {
- margin-right: 10px;
- position: relative;
- top: 0;
- width: auto;
- }
- .llms-builder-main {
- padding-right: 10px;
- width: auto;
- }
- }
-
- // Search Popover
- .select2-container {
- z-index: 99999999;
- }
-
- .select2-results__option {
- padding: 0;
- }
-
- .select2-container--default .select2-results__option--highlighted[aria-selected] {
- background: $color-brand-blue;
- .llms-existing-action {
- color: #fff;
- }
- }
-
- .llms-existing-lesson-result {
-
- align-items: center;
- display: flex;
- padding: 5px 5px 5px 0;
-
- .llms-existing-info {
- flex: 6;
-
- h4, h5 {
- margin: 0;
- }
-
- h4 {
- font-weight: 400;
- }
-
- h5 {
- font-weight: 300;
- }
- }
-
- .llms-existing-action {
- color: $color-brand-blue;
- flex: 1;
- text-align: center;
-
- .fa {
- display: block;
- font-size: 30px;
- }
-
- small {
- text-transform: uppercase;
- }
-
- }
-
-
- }
-
-
- // Quiz
- .llms-quiz-empty {
- margin: 100px auto;
- text-align: center;
-
- p { font-size: 18px; }
- button.llms-element-button {
- max-width: 320px;
- margin: 0 auto;
- }
-
- }
-
- .llms-editor-tab.tab--quiz {
- .llms-model-header {
- .llms-model-title {
- width: calc( 100% - 310px );
- }
- .llms-quiz-points {
- float: left;
- margin-right: 10px;
- width: 100px;
- }
- }
- }
-
- .llms-model-header {
- background-color: #FFF;
- -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
- padding: 10px;
- @include clearfix();
-
- .llms-model-title {
- float: left;
- margin-right: 10px;
- width: calc( 100% - 200px );
- .llms-input {
- width: calc( 100% - 65px );
- }
- }
- .llms-model-status.llms-switch {
- float: left;
- margin-right: 10px;
- position: relative;
- text-align: right;
- top: -2px;
- width: 100px;
- }
- .llms-action-icons {
- float: left;
- position: relative;
- text-align: right;
- width: 80px;
- z-index: 1;
- .llms-action-icon {
- margin-left: 10px;
- }
- .fa {
- max-width: 15px;
- }
- }
- }
-
- .llms-model-header + .llms-model-settings.active {
- margin-top: -10px;
- }
-
- .llms-model-settings {
- clear: both;
- display: none;
-
- &.active {
- display: block;
- margin-top: 10px;
- }
- }
-
- .llms-quiz-footer {
- display: flex;
- button.llms-element-button {
- flex: 1;
- margin: 0 5px;
- &:first-child { margin-left: 0; }
- &:last-child { margin-right: 0; }
- &.llms-show-question-bank {
- flex: 2;
- }
- }
- }
-
- // Question Bank
- .llms-quiz-tools {
- display: none;
- width: 100%;
- position: relative;
-
- // .llms-quiz-tools-search {
- // padding: 0 10px;
- // margin-bottom: 15px;
-
- // .fa {
- // color: #888;
- // font-size: 16px;
- // }
-
- // input[type="search"] {
- // background: inherit;
- // border: none;
- // border-bottom: 1px solid #bbb;
- // box-shadow: none;
- // font-size: 16px;
- // margin: 8px 0 0;
- // padding: 2px 5px;
- // width: calc( 100% - 200px );
-
- // &:focus {
- // border-bottom-color: $color-brand-blue;
- // }
- // }
-
- // }
-
- }
-
- ul.llms-question-bank {
-
- list-style-type: none;
- margin: 0;
- padding: 0;
- @include clearfix;
-
- li.llms-question-bank-header {
- clear: both;
- padding-top: 20px;
- &:first-child {
- padding-top: 0;
- }
- h4 {
- font-size: 20px;
- margin: 10px 5px;
- }
- }
-
- li.llms-question-type {
- box-sizing: border-box;
- float: left;
- margin: 0;
- padding: 3px;
- width: 33.3333%;
- transition: opacity 0.3s ease-in-out;
-
- &.filtered {
- opacity: 0.3;
- }
-
- .llms-type-unavailable {
- display: block;
- position: relative;
- text-decoration: none;
- .llms-element-button {
- opacity: 0.5;
- pointer-events: none;
- }
- }
-
- }
-
- }
-
- // Quiz Questions
- ul.llms-quiz-questions {
-
- margin: 10px 3px;
- padding: 5px;
- transition: box-shadow 0.6s ease;
-
- &.dragging {
- box-shadow: 0 0 0 3px $color-brand-blue;
- }
-
- &:empty:before {
- background: #fff;
- content: attr(data-empty-msg);
- display: block;
- font-size: 18px;
- margin: 0 auto;
- padding: 100px 0;
- text-align: center;
- }
-
- li.llms-question {
-
- background: #fff;
- margin: 0 0 3px;
- padding: 15px 12px 10px;
-
- &:hover {
- > .llms-builder-header .llms-action-icons {
- opacity: 1;
- pointer-events: auto;
- }
- }
-
- // groups
- ul.llms-quiz-questions {
- margin-left: 12px;
- .llms-question {
- border-bottom: 2px solid #e6e6e6;
- }
- &:empty:before {
- content: attr(data-empty-msg);
- display: block;
- font-size: 18px;
- text-align: center;
- margin: 20px auto;
- }
- li.llms-question.llms-sortable-placeholder.qtype--group {
- display: none !important;
- }
- }
-
- .llms-builder-header {
- @include clearfix;
- > * {
- float: left;
- }
- }
-
- .llms-question-body {
- display: none;
- &.active {
- display: block;
- }
- }
-
- .llms-data-stamp {
- background: $color-brand-blue;
- border-radius: 4px;
- color: #fff;
- cursor: move;
- font-size: 90%;
- margin-top: -5px;
- padding: 4px 10px 6px;
-
- small, .fa {
- line-height: 1.2;
- vertical-align: middle;
- }
-
- .fa {
- margin-right: 4px;
- }
-
- }
-
- .llms-headline {
- width: calc( 100% - 110px - 90px - 55px );
- .ql-editor {
- width: calc( 100% - 16px );
- }
- }
-
- .llms-action-icons {
- width: 110px;
- opacity: 0;
- pointer-events: none;
- }
-
- .llms-question-points {
- width: 90px;
- }
-
- .llms-question-features {
- margin: 10px 0 0;
- &:last-child {
- margin: 0;
- }
- .llms-switch {
- margin-right: 15px;
- }
- }
-
- .llms-editable-video {
- position: relative;
- z-index: 1;
- }
-
- }
-
- .llms-question-choices-wrapper {
- background: #f4f4f4;
- margin: 2px 1px;
- padding: 10px;
- }
-
- .llms-question-choices-list-header {
- @include clearfix;
- margin-bottom: 10px;
-
- .llms-switch {
- float: right;
- text-align: right;
- width: 260px;
- }
- }
-
- ul.llms-question-choices {
- border: 3px solid #f4f4f4;
- margin: -3px;
- padding: 0;
- transition: box-shadow 0.6s ease;
-
- &.dragging {
- box-shadow: 0 0 0 3px $color-brand-blue;
- }
-
- &.multi-choices li.llms-question-choice .llms-choice-id span {
- border-radius: 4px;
- }
-
- }
-
- li.llms-question-choice {
- margin: 0 0 5px;
- padding: 0;
- &:last-child { margin-bottom: 0; }
-
- .llms-choice-id {
-
- input[type="checkbox"] {
- display: none;
- }
-
- input[type="checkbox"]:checked + .llms-marker {
- background: $color-green;
- }
-
- .llms-marker {
- border-radius: 50%;
- background: #d0d0d0;
- box-shadow: inset 0 0 1px #848484;
- color: #444;
- display: inline-block;
- font-size: 16px;
- height: 20px;
- line-height: 20px;
- padding: 5px;
- position: relative;
- text-align: center;
- transition: background 0.1s ease;
- width: 20px;
-
- .fa {
- left: 7px;
- opacity: 0;
- position: absolute;
- top: 7px;
- }
- &.selectable:hover {
- b { opacity: 0 }
- .fa { opacity: 1; }
- }
-
- }
-
- }
-
- .llms-input-wrapper,
- .llms-editable-image {
- display: inline-block;
- // action icons width, label width, ul margins
- width: calc( 100% - 55px - 35px - 5px );
- }
-
- .llms-input {
- width: calc( 100% - 16px );
- }
-
- .llms-editable-image .llms-image {
- vertical-align: middle;
- img {
- height: 50px;
- }
- }
-
- .llms-action-icons {
- display: inline-block;
- opacity: 1;
- pointer-events: auto;
- text-align: right;
- width: 55px;
- }
-
- }
-
- li.llms-question-choice.llms-sortable-placeholder {
- border: 3px dashed $color-brand-blue !important;
- background: rgba( $color-brand-blue, 0.3 );
- }
-
- li.llms-question-choice.ui-sortable-helper {
- border: 1px solid #ccc;
- background: #fff;
- padding: 10px;
- transform: rotate( 2deg );
- z-index: 999;
- }
-
- li.llms-question.ui-sortable-helper,
- li.llms-question.ui-draggable-dragging {
- border: 1px solid #ccc;
- background: #fff;
- transform: rotate( 2deg );
- z-index: 999;
- }
-
- li.llms-question.llms-sortable-placeholder {
- border: 3px dashed $color-brand-blue !important;
- background: rgba( $color-brand-blue, 0.3 );
- }
-
- }
-
-
- .llms-switch {
- display: inline-block;
- float: none;
- width: auto;
-
- input[type="checkbox"] {
- display: none;
- }
-
- input[type="checkbox"]:checked + .llms-switch-slider {
- background: $color-green;
- }
-
- input[type="checkbox"]:checked + .llms-switch-slider:after {
- transform: translateX( 14px );
- }
-
- .llms-label {
- display: inline-block;
- vertical-align: top;
- }
-
- .llms-switch-slider {
- background: #e0e0e0;
- border-radius: 8px;
- display: inline-block;
- height: 16px;
- margin-top: 2px;
- position: relative;
- transition: background 0.2s ease;
- vertical-align: top;
- width: 30px;
-
- &:after {
- background: #fff;
- border-radius: 8px;
- content: '';
- display: block;
- height: 12px;
- left: 2px;
- position: relative;
- transition: transform 0.2s ease;
- top: 2px;
- width: 12px;
- }
-
- }
-
- }
-
- .llms-video-explainer-trigger {
- display: block;
- margin: 40px 0 0;
- cursor: pointer;
- position: relative;
- width: 100%;
- transition: color 0.2s ease;
- color: initial;
- &:hover {
- color: currentColor;
- }
- &:after {
- position: absolute;
- inset: 0;
- margin: auto;
- pointer-events: none;
- content: '▶';
- display: flex;
- justify-content: center;
- align-items: center;
- clear: both;
- height: 2em;
- width: 2em;
- border-radius: 4em;
- border: 4px solid currentColor;
- font-size: 2.5em;
- }
- img {
- display: block;
- width: 100%;
- border-radius: 4px;
- }
- }
-}
-
-
-
-.llms-multi-input .llms-input-wrapper {
- width: 50%;
- float: left;
- margin-bottom: 6px;
- font-size: 12px;
-}
-
-.llms-multi-input .llms-input-wrapper .llms-input {
- font-size: 12px;
- padding: 5px;
-}
diff --git a/assets/scss/admin/_dashboard-widget.scss b/assets/scss/admin/_dashboard-widget.scss
deleted file mode 100644
index bdb6da73d7..0000000000
--- a/assets/scss/admin/_dashboard-widget.scss
+++ /dev/null
@@ -1,101 +0,0 @@
-#llms_dashboard_widget {
-
- .inside {
- margin: 0;
- padding-bottom: 8px;
- }
-
- .llms-dashboard-widget-wrap {
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding-top: 12px;
- }
-
- .activity-block {
- padding-bottom: 8px;
- border-color: #e8e8e8;
- }
-
- h3 {
- margin-bottom: 0;
- }
-
- .llms-charts-wrapper {
- display: none;
- }
-
- .llms-widget-row {
- display: flex;
- justify-content: space-between;
- gap: 8px;
- width: 100%;
- align-items: stretch;
- padding: 4px 0;
-
- &:before,
- &:after {
- display: none;
- }
- }
-
- .llms-widget-1-4 {
- padding: 0;
- flex: 1;
- }
-
- .llms-widget {
- padding: 8px 8px 12px;
- margin: 0;
- border-radius: 6px;
- border: 1px solid #e8e8e8;
- box-shadow: 0px 2px 4px rgb(246 247 247);
- height: 100%;
- display: flex;
- flex-wrap: wrap;
- justify-content: center;
- align-items: flex-end;
- }
-
- .llms-label {
- font-size: 14px;
- width: 100%;
- align-self: flex-start;
- white-space: nowrap;
- text-overflow: ellipsis;
- overflow: hidden;
- }
-
- .llms-widget-content {
- font-size: 20px;
- margin: 0;
- }
-
- .llms-widget-info-toggle {
- display: none;
- }
-
- a {
- border: 0;
- }
-
- .subsubsub {
- color: #dcdcde;
- }
-}
-
-.llms-dashboard-widget-feed {
- margin: 0 -12px;
- padding: 0;
- background-color: #f6f7f7;
-
- li {
- margin: 0;
- padding: 8px 12px;
- border-bottom: 1px solid #e8e8e8;
- }
-
- span {
- display: block;
- }
-}
diff --git a/assets/scss/admin/_dashboard.scss b/assets/scss/admin/_dashboard.scss
deleted file mode 100644
index af676ec486..0000000000
--- a/assets/scss/admin/_dashboard.scss
+++ /dev/null
@@ -1,183 +0,0 @@
-.wrap.llms-dashboard {
-
- .llms-inside-wrap {
- padding-top: 30px;
- }
-
- #poststuff {
-
- h2 {
- padding: 12px 20px;
- }
-
- }
-
- .llms-dashboard-activity {
-
- h2 {
- font-size: 20px;
- font-weight: 700;
- line-height: 1.5;
- margin-top: 0;
- text-align: center;
- }
- }
-
- .postbox {
- background-color: #FFF;
- border: none;
- box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.13 );
-
- .postbox-header {
- border-bottom-color: #efefef;
-
- }
-
- .inside {
- padding: 20px;
- }
- }
-
- #llms_dashboard_addons {
-
- .llms-addons-wrap {
- margin-top: 0;
-
- .llms-add-on-item {
- margin-top: 0;
-
- p {
- text-align: left;
- }
-
- footer.llms-actions {
- padding-top: 0;
- }
- }
-
- }
-
- p {
- text-align: center;
-
- .llms-button-primary {
- display: inline-block;
- margin-top: 15px;
- }
- }
-
- }
-
- #llms_dashboard_quick_links {
-
- ul {
- list-style: disc;
- margin: 5px 0 0 20px;
-
- li {
- font-size: 15px;
- line-height: 1.5;
- }
- }
-
- .llms-quick-links {
- display: grid;
- grid-template-columns: 1fr;
- grid-gap: 30px;
-
- a {
- display: inline-block;
- }
-
- .llms-list {
-
- h3 {
- margin: 0 0 10px 0;
- }
-
- ul {
- margin-bottom: 20px;
-
- &.llms-checklist {
- list-style: none;
- margin-left: 0;
- }
- }
-
- .fa {
- text-align: center;
- width: 16px;
- }
-
- .fa-check {
- color: #008a20;
- }
-
- .fa-times {
- color: #d63638;
- }
-
- .llms-button-primary,
- .llms-button-secondary,
- .llms-button-action {
- display: block;
- text-align: center;
- }
-
- }
-
- @media only screen and (min-width: 782px) {
- grid-template-columns: 1fr 1fr 1fr;
- }
- }
-
- .llms-help-links {
- display: grid;
- grid-template-columns: 1fr 1fr;
- grid-gap: 20px;
-
- .llms-list {
-
- h3 {
- margin: 0;
-
- .dashicons {
- color: #AAA;
- }
- }
-
- }
-
- @media only screen and (min-width: 782px) {
- grid-template-columns: 1fr 1fr 1fr 1fr;
- }
-
- }
-
- }
- #llms_dashboard_blog,
- #llms_dashboard_podcast {
-
- ul {
- margin: 0;
-
- li {
- margin: 0 0 15px 0;
-
- a {
- display: block;
- }
- }
- }
-
- p {
- margin: 15px 0;
- text-align: center;
-
- a {
- display: inline-block;
- }
- }
- }
-
-}
diff --git a/assets/scss/admin/_fonts.scss b/assets/scss/admin/_fonts.scss
deleted file mode 100644
index d2b834e87e..0000000000
--- a/assets/scss/admin/_fonts.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-#llms-options-page-contents {
- h2 {
- color: #999;
- font-weight: 500;
- letter-spacing: 2px;
- border-bottom: 1px solid #999;
- }
-}
diff --git a/assets/scss/admin/_llms-table.scss b/assets/scss/admin/_llms-table.scss
deleted file mode 100644
index 9d02556df3..0000000000
--- a/assets/scss/admin/_llms-table.scss
+++ /dev/null
@@ -1,226 +0,0 @@
-.llms-table-wrap {
- position: relative;
-}
-
-.llms-table-header {
- padding: 0;
-
- @include clearfix();
-
- h2 {
- font-size: 20px;
- padding: 0;
- display: inline-block;
- line-height: 1.5;
- margin: 0 0 20px 0;
- vertical-align: middle;
- }
-
- .llms-table-search,
- .llms-table-filters {
- float: right;
- padding-left: 10px;
- }
-
- .llms-table-search input {
- margin: 0;
- padding: 0 8px;
- }
-
-}
-
-.llms-table {
-
- border: 1px solid #c3c4c7;
- border-collapse: collapse;
- width: 100%;
-
- a:not(.small) {
- color: $color-brand-blue;
- &:hover {
- color: $color-brand-blue-dark;
- }
- }
-
- td, th {
- border-bottom: 1px solid #c3c4c7;
- padding: 10px 12px;
- text-align: center;
-
- &.expandable.closed {
- display: none;
- }
-
- .llms-button-primary,
- .llms-button-secondary,
- .llms-button-action,
- .llms-button-danger {
- display: inline-block;
- }
-
- }
-
- tr.llms-quiz-pending {
- td {
- font-weight: 700;
- }
- }
-
- thead th,
- tfoot th {
- background-color: #FFF;
- font-weight: 700;
-
- a.llms-sortable {
- // display: block;
- padding-right: 16px;
- position: relative;
- text-decoration: none;
- width: 100%;
- &.active {
- // show the current sorted when a sort is active
- &[data-order="DESC"] .asc { opacity: 1; }
- &[data-order="ASC"] .desc { opacity: 1; }
- }
- // show the opposite on hover
- &:hover {
- &[data-order="DESC"] {
- .asc { opacity: 0; }
- .desc { opacity: 1; }
- }
- &[data-order="ASC"] {
- .asc { opacity: 1; }
- .desc { opacity: 0; }
- }
- }
- .dashicons {
- color: #444;
- font-size: 16px;
- height: 16px;
- opacity: 0;
- position: absolute;
- width: 16px;
- }
- }
- }
-
- tfoot th {
- border-bottom: none;
-
- .llms-table-export {
- float: left;
- .llms-table-progress {
- background: #efefef;
- display: none;
- margin-left: 8px;
- vertical-align: middle;
- width: 100px;
- }
- }
-
- .llms-clear-resumable-attempts {
- float: left;
- }
-
- .llms-table-pagination {
- float: right;
- }
-
- }
-
- &.zebra tbody tr:nth-child( even ) {
- th, td { background-color: #fff; }
- }
-
- &.zebra tbody tr:nth-child( odd ) {
- th, td { background-color: #f6f7f7; }
- }
-
- &.text-left {
- td, th {
- text-align: left;
- }
- }
-
- &.size-large {
- td, th {
- font-size: 14px;
- padding: 10px 12px;
- }
- }
-
- .llms-drag-handle {
- color: #777;
- cursor: pointer;
- -webkit-transition: color 0.4s ease;
- transition: color 0.4s ease;
- }
-
- .llms-action-icon {
- color: #777;
- text-decoration: none;
-
- .tooltip {
- cursor: pointer;
- }
-
- &:hover {
- color: $color-blue;
- }
-
- &.danger:hover {
- color: $color-danger;
- }
- }
-
- .llms-table-page-count {
- font-size: 12px;
- padding: 0 5px;
- }
-
-}
-
-// progress bars within the tables
-.llms-table-progress {
- text-align: center;
- .llms-table-progress-bar {
- background: #eee;
- border-radius: 10px;
- height: 16px;
- overflow: hidden;
- position: relative;
- .llms-table-progress-inner {
- background: $color-brand-blue;
- height: 100%;
- transition: width 0.2s ease;
- }
- }
- .llms-table-progress-text {
- color: $color-brand-blue;
- font-size: 12px;
- font-weight: 700;
- line-height: 16px;
- }
-}
-
-
-.llms-table.llms-gateway-table,
-.llms-table.llms-integrations-table {
- .status {
- .fa {
- color: $color-brand-blue;
- font-size: 22px;
- }
- }
- .sort {
- cursor: move;
- text-align: center;
- width: 10px;
- }
-}
-
-.llms-gb-table-notifications {
- th, td {
- text-align: left;
- }
-}
diff --git a/assets/scss/admin/_main.scss b/assets/scss/admin/_main.scss
deleted file mode 100644
index 79588aa040..0000000000
--- a/assets/scss/admin/_main.scss
+++ /dev/null
@@ -1,340 +0,0 @@
-.wrap.lifterlms {
- margin-top: 0;
-}
-
-.llms-header {
- background-color: #FFF;
- margin: 0 0 0 -20px;
- padding: 20px 10px;
- position: relative;
- z-index: 1;
-
- .llms-inside-wrap {
- display: flex;
- padding: 0 10px;
- }
-
-
- .lifterlms-logo {
- flex: 0 0 190px;
- max-height: 52px;
- margin-right: 10px;
- }
-
- .llms-meta {
- align-self: center;
- display: flex;
- flex: 1;
- font-size: 16px;
- justify-content: space-between;
- line-height: 1.5;
-
- .llms-version {
- background-color: #1d2327;
- color: #FFF;
- border-radius: 999px;
- font-size: 13px;
- font-weight: 700;
- padding: 6px 12px;
- }
-
- a {
- display: inline-block;
- }
-
- .llms-license {
- border-right: 1px solid #CCC;
- font-weight: 700;
- margin-right: 12px;
- padding-right: 12px;
-
- a {
- text-decoration: none;
-
- &:before {
- content: "\f534";
- display: inline-block;
- font: 400 16px/1 dashicons;
- left: 0;
- padding-right: 3px;
- position: relative;
- text-decoration: none;
- vertical-align: text-bottom;
- }
-
- &.llms-license-none {
- color: #888;
-
- &:before {
- content: "\f335";
- }
- }
-
- &.llms-license-active {
- color: #008a20;
-
- &:before {
- content: "\f112";
- }
-
- }
-
- }
- }
-
- .llms-support {
- font-weight: 700;
-
- a {
- color: #1d2327;
- text-decoration: none;
- }
-
- }
-
- }
-
-}
-
-.llms-subheader {
- align-items: center;
- background-color: #FFF;
- box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.15 );
- display: flex;
- flex-direction: row;
- margin-left: -20px;
- padding: 10px 20px;
- width: 100%;
- z-index: 1;
-
- h1 {
- font-weight: 700;
- padding: 0;
-
- a {
- color: inherit;
- text-decoration: none;
- }
- }
-
-}
-
-#post_course_difficulty {
- min-width: 200px;
-}
-#_video-embed, #_audio-embed {
- width: 100%;
-}
-
-hr {
- background-color: #CCC;
- border: none;
- height: 1px;
- margin: 30px 0;
- padding: 0;
-}
-
-.llms_certificate_default_image, .llms_certificate_image {
- width: 300px;
-}
-
-.llms_achievement_default_image, .llms_achievement_image {
- width: 120px;
-}
-
-div[id^="lifterlms-"] .inside {
- overflow: visible;
-}
-
-.notice.llms-admin-notice {
- background-color: #FFF;
- border: 1px solid #ccd0d4;
- box-shadow: 0 1px 4px rgba( 0, 0, 0, 0.15 );
- display: flex;
- padding: 0 !important;
- position: relative;
-
- .notice-dismiss {
- text-decoration: none;
- }
-
- &.notice-warning {
- border-left: 4px solid #F8954F;
-
- .llms-admin-notice-icon {
- background-color: #FEF4ED;
- }
- }
-
- &.notice-info {
- border-left: 4px solid #466DD8;
-
- h3 {
- color: #466DD8;
- }
-
- .llms-admin-notice-icon {
- background-color: #EDF0FB;
- }
-
- }
-
- &.notice-success {
- border-left: 4px solid #18A957;
-
- h3 {
- color: #18A957;
- }
-
- .llms-admin-notice-icon {
- background-color: #E8F6EE;
- }
-
- }
-
- &.notice-error {
- border-left: 4px solid #DF1642;
-
- h3 {
- color: #9C0F2E;
- }
-
- .llms-admin-notice-icon {
- background-color: #FCE8EC;
- }
-
- }
-
- .llms-admin-notice-icon {
- background-image: url(../../assets/images/lifterlms-icon-color.png);
- background-position: center center;
- background-repeat: no-repeat;
- background-size: 30px;
- min-width: 70px;
-
- }
-
- .llms-admin-notice-content {
- color: #111;
- padding: 20px;
- }
-
- h3 {
- font-size: 18px;
- font-weight: 700;
- line-height: 25px;
- margin: 0 0 15px 0;
- }
-
- button,
- .llms-button-primary {
- display: inline-block;
- }
-
- p {
- font-size: 14px;
- line-height: 22px;
- margin: 0 0 15px 0;
- max-width: 65em;
- padding: 0;
- }
-
- p:last-of-type {
- margin-bottom: 0;
- }
-}
-
-.llms-button-action,
-.llms-button-danger,
-.llms-button-primary,
-.llms-button-secondary {
- &.small .dashicons {
- font-size: 13px;
- height: 13px;
- width: 13px;
- }
-
- &:hover {
- box-shadow: none;
- }
-}
-
-a.llms-view-as {
- line-height: 2;
- margin-right: 8px;
-}
-
-.llms-image-field-preview {
- max-height: 80px;
- vertical-align: middle;
- width: auto;
-}
-
-.llms-image-field-remove {
- &.hidden { display: none; }
-}
-
-.llms-log-viewer {
- background: #fff;
- border: 1px solid #e5e5e5;
- box-shadow: 0 1px 1px rgba(0,0,0,.04);
- margin: 20px 0;
- padding: 25px;
-
- pre {
- font-family: monospace;
- margin: 0;
- padding: 0;
- white-space: pre-wrap;
- }
-}
-
-.llms-status--tools {
- .llms-table {
- background: #fff;
- border: 1px solid #e5e5e5;
- box-shadow: 0 1px 1px rgba(0,0,0,.04);
- td, th {
- padding: 10px;
- vertical-align: top;
- }
- th {
- width: 28%;
- }
- p {
- margin: 0 0 10px;
- }
- }
-}
-
-.llms-error {
- color: $color-red;
- font-style: italic;
-}
-
-.llms-rating-stars {
- color: #ffb900;
- text-decoration: none;
-}
-
-@media screen and (max-width: 782px) {
- .llms-header {
- top: 46px;
-
- .llms-inside-wrap {
- flex-direction: column;
- gap: 20px;
-
- .lifterlms-logo {
- align-self: center;
- flex: inherit;
- max-height: initial;
- max-width: 200px;
- }
-
- .llms-meta {
- column-gap: 10px;
- }
- }
- }
-}
diff --git a/assets/scss/admin/_quiz-attempt-review.scss b/assets/scss/admin/_quiz-attempt-review.scss
deleted file mode 100644
index a4b7d85f41..0000000000
--- a/assets/scss/admin/_quiz-attempt-review.scss
+++ /dev/null
@@ -1,23 +0,0 @@
-.llms-remarks {
-
- .llms-remarks-field {
- height: 120px;
- width: 100%;
- }
-
- input[type="number"] {
- width: 60px;
- }
-
-
-}
-
-
-button[name="llms_quiz_attempt_action"] {
- .save { display: none; }
- &.grading {
- .default { display: none };
- .save { display: inline; }
- }
-}
-
diff --git a/assets/scss/admin/_reporting.scss b/assets/scss/admin/_reporting.scss
deleted file mode 100644
index 5b8459dde6..0000000000
--- a/assets/scss/admin/_reporting.scss
+++ /dev/null
@@ -1,457 +0,0 @@
-.llms-reporting.wrap {
-
- .llms-options-page-contents {
-
- .llms-nav-tab-wrapper.llms-nav-secondary {
- box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.15 );
- margin: 0;
- padding: 0;
-
- }
- }
-
- .llms-stab-title {
- color: $color-brand-dark-blue;
- font-size: 36px;
- font-weight: 300;
- margin-bottom: 20px;
- }
-
- td.id a {
- text-decoration: none;
- }
-
- th.id, td.id,
- th.name, td.name,
- th.registered, td.registered,
- th.last_seen, td.last_seen,
- th.overall_progress, td.overall_progress,
- th.title, td.title,
- th.course, td.course,
- th.lesson, td.lesson { text-align: left; }
-
- td.section-title {
- background: #eaeaea;
- text-align: left;
- font-weight: 700;
- padding: 16px 4px;
- }
-
- td.questions-table {
- text-align: left;
-
- .correct,
- .question,
- .selected {
- text-align: left;
- max-width: 300px;
-
- img {
- height: auto;
- max-width: 64px;
- }
- }
- }
-
- table.quiz-attempts {
- margin-bottom: 40px;
- }
-
- &.tab--students {
- .llms-options-page-contents {
-
- #llms-award-certificate-wrapper .components-button.is-secondary {
- background: #e1e1e1;
- border-radius: 8px;
- box-shadow: none;
- color: #414141;
- font-size: 13px;
- font-weight: 700;
- height: auto;
- padding: 8px 14px;
- }
-
- }
- }
-
- &.tab--enrollments,
- &.tab--sales {
-
- .llms-nav-tab-wrapper.llms-nav-secondary {
- margin-bottom: 0;
- }
-
- .llms-options-page-contents {
- box-shadow: none;
- background: none;
- margin-top: 20px;
- padding: 0;
- }
-
- .llms-nav-style-filters {
-
- .llms-analytics-form {
- align-items: center;
- align-self: center;
- color: #FFF;
- display: flex;
- font-size: 13px;
- gap: 5px;
-
- label {
- font-weight: 700;
- }
-
- input {
- border: 0;
- font-size: 13px;
- margin: 0;
- padding: 0 4px;
- vertical-align: middle;
- width: 110px;
- }
-
- .select2-container {
- input {
- width: 100% !important;
- }
- }
- }
-
- }
-
- .button.small {
- height: 23px;
- line-height: 23px;
- }
-
- .llms-analytics-filters {
- display: none;
-
- .llms-inside-wrap {
- background-color: #FFF;
- background-color: #FFF;
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
- margin: -20px 10px 20px 10px;
- padding: 20px;
- }
-
- .llms-nav-items {
- display: flex;
- flex-direction: column;
- gap: 20px;
- justify-content: space-between;
- margin: 0;
-
- @media only screen and (min-width: 782px) {
- flex-direction: row;
- }
-
- }
-
- .llms-nav-item {
- box-sizing: border-box;
- width: 100%;
-
- label {
- display: block;
- font-weight: 700;
- margin: 0 0 5px 0;
- }
-
- .select2-selection__rendered{
- word-wrap: break-word;
- text-overflow: inherit;
- white-space: normal;
- }
-
- }
-
- p {
- margin: 0;
- text-align: right;
-
- .llms-button-primary {
- display: inline-block;
- }
-
- }
-
- }
- }
-
- .llms-reporting-tab.llms-reporting-quiz .llms-table-filter-wrap {
- width: 160px;
- }
-
- .llms-table-header {
- form { display: inline; }
- .button {
- margin-left: 5px;
- }
- }
-}
-
-.llms-charts-wrapper {
- background-color: #FFF;
- border: 1px solid #dedede;
- border-radius: 12px;
- box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
- padding: 20px;
-}
-
-.llms-reporting-tab {
-
- h1, h2, h3, h4, h5, h6 {
- margin: 0;
- a {
- color: $color-brand-blue;
- text-decoration: none;
- &:hover {
- color: $color-brand-blue;
- }
- }
- }
-
- h2 {
- font-size: 22px;
- line-height: 1.5;
-
- &.llms-table-title {
- margin-bottom: 20px;
- }
-
- }
-
- h5 {
- font-size: 15px;
- line-height: 1.5;
- }
-
- .llms-reporting-body {
- background-color: #FFF;
- box-shadow: 0 1px 3px rgba( 0, 0, 0, .13 );
- margin: 20px auto;
- padding: 0;
-
- .llms-reporting-stab {
- padding: 30px;
-
- .llms-table-header {
- margin: 0;
- }
- }
-
- .llms-gb-tab {
- padding: 30px;
- }
-
- .llms-reporting-header {
- padding: 30px;
- margin: 0;
-
- .llms-reporting-header-img {
- border-radius: 50%;
- display: inline-block;
- margin-right: 10px;
- overflow: hidden;
- vertical-align: middle;
- img {
- display: block;
- max-height: 64px;
- width: auto;
- }
- }
-
- .llms-reporting-header-info {
- display: inline-block;
- vertical-align: middle;
-
- }
-
- }
- }
-
-}
-
-.llms-reporting-breadcrumbs {
- margin: 0;
- padding: 0;
- a {
- color: $color-brand-blue;
- font-size: 15px;
- text-decoration: none;
- &:hover {
- color: $color-brand-blue-dark;
- }
- &:after {
- content: ' > ';
- color: #646970;
- }
-
- &:last-child {
- color: #000;
- font-weight: 700;
- &:after { display: none; }
- }
- }
-}
-
-#llms-students-table .name {
- text-align: left;
-}
-
-.llms-reporting-tab-content {
- display: flex;
-
- > header {
- @include clearfix;
- }
-
- h3 {
- margin-bottom: 20px;
- }
-
- .llms-reporting-tab-filter {
- float: right;
- position: relative;
- margin-right: 0.75em;
- width: 180px;
- top: -3px;
- }
-
-
- .llms-reporting-tab-main {
- flex: 3;
- max-width: 75%;
- }
- .llms-reporting-tab-side {
- flex: 1;
- margin-left: 20px;
- }
-
- > .llms-table-wrap {
- flex: 1;
- }
-
-}
-
-
-.llms-reporting-widgets {
- @include clearfix;
-}
-
-.llms-reporting-widget {
-
- border-top: 4px solid $color-brand-blue;
- background: #fafafa;
- margin-bottom: 10px;
- padding: 30px;
- @include clearfix;
-
- .fa {
- color: #999;
- float: left;
- font-size: 32px;
- margin-right: 10px;
- }
-
- strong {
- color: #333;
- font-size: 20px;
- line-height: 1.2;
- }
-
- &.llms-reporting-student-address {
- strong {
- line-height: 1.1;
- }
- }
-
- sup,
- .llms-price-currency-symbol {
- font-size: 75%;
- position: relative;
- top: -4px;
- vertical-align: baseline;
- }
-
- small {
- font-size: 13px;
- &.compare {
- margin-left: 5px;
- &.positive {
- color: $color-green;
- }
- &.negative {
- color: $color-red;
- }
- }
- }
-}
-
-
-.llms-reporting-event {
- border-left: 4px solid #555;
- background: #fafafa;
- font-size: 11px;
- line-height: 1.2;
- margin-bottom: 0.75em;
- padding: 10px;
- @include clearfix;
-
- &.color--blue {
- border-left-color: $color-blue;
- }
-
- &.color--green,
- &._enrollment_trigger,
- &._is_complete.yes {
- border-left-color: $color-green;
- }
-
- &.color--purple,
- &._status.enrolled {
- border-left-color: $color-purple;
- }
-
- &.color--red,
- &._status.expired,
- &._status.cancelled {
- border-left-color: $color-red;
- }
- &.color--orange,
- &._achievement_earned,
- &._certificate_earned,
- &._email_sent {
- border-left-color: $color-orange;
- }
-
- time {
- color: #888;
- }
-
- .llms-student-avatar {
- margin-left: 10px;
- float: right;
- }
-
- a {
- text-decoration: none;
- color: inherit;
- }
-
-}
-
-@media only screen and (min-width: 782px) {
- .llms-reporting.wrap {
- .llms-options-page-contents {
- .llms-nav-tab-wrapper.llms-nav-secondary {
- margin-left: 0;
- margin-right: 0;
- }
- }
- }
-}
-
-@import "../_includes/quiz-result-question-list";
diff --git a/assets/scss/admin/_resources.scss b/assets/scss/admin/_resources.scss
deleted file mode 100644
index c39557bff2..0000000000
--- a/assets/scss/admin/_resources.scss
+++ /dev/null
@@ -1,162 +0,0 @@
-.wrap.llms-resources {
-
- .llms-inside-wrap {
- padding-top: 30px;
- }
-
- #poststuff {
-
- #post-body.columns-2 {
- margin-right: 350px;
-
- #side-sortables {
- width: 330px;
-
- @media only screen and (max-width: 850px) {
- width: auto;
- }
-
- }
-
- }
-
- #postbox-container-1 {
- float: right;
- margin-right: -350px;
- width: 330px
- }
-
- h2 {
- padding: 12px 20px;
- }
-
- }
-
- #poststuff
- .postbox {
- background-color: #FFF;
- border: none;
- box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.13 );
-
- .postbox-header {
- border-bottom-color: #efefef;
-
- }
-
- .inside {
- margin: 0;
- padding: 20px;
- }
- }
-
- #llms_dashboard_welcome_video {
-
- .llms-welcome-video {
-
- p {
- font-size: 15px;
- line-height: 1.5;
- margin: 0 0 40px 0;
- }
-
- .llms-welcome-video-container {
- height: 0;
- overflow: hidden;
- padding-top: 30px;
- padding-bottom: 56.25%;
- position: relative;
-
- iframe,
- object,
- embed {
- left: 0;
- height: 100%;
- position: absolute;
- top: 0;
- width: 100%;
- }
-
- }
-
- }
-
- }
-
- #llms_dashboard_getting_started {
-
- ul {
- margin: 0 0 20px 0;
-
- li {
- font-size: 15px;
- line-height: 1.5;
- margin-bottom: 15px;
- }
- }
-
- .llms-button-primary {
- display: block;
- margin-top: auto;
- max-width: 300px;
- text-align: center;
- }
-
- }
-
- #llms_dashboard_resource_links {
-
- ul {
- list-style: disc;
- margin: 5px 0 0 20px;
-
- li {
- font-size: 15px;
- line-height: 1.5;
- }
- }
-
- .llms-resource-links {
- display: grid;
- grid-template-columns: 1fr;
- grid-gap: 60px;
-
- a {
- display: inline-block;
- }
-
- .llms-list {
- display: flex;
- flex-direction: column;
-
- h3 {
- margin: 0 0 10px 0;
-
- .dashicons {
- color: #AAA;
- }
-
- }
-
- ul {
- margin-bottom: 20px;
- }
-
- .llms-button-primary,
- .llms-button-secondary,
- .llms-button-action {
- display: block;
- margin-top: auto;
- max-width: 300px;
- text-align: center;
- }
-
- }
-
- @media only screen and (min-width: 782px) {
- grid-template-columns: 1fr 1fr 1fr;
- }
- }
-
- }
-
-}
diff --git a/assets/scss/admin/_settings.scss b/assets/scss/admin/_settings.scss
deleted file mode 100644
index 92bbe89ecd..0000000000
--- a/assets/scss/admin/_settings.scss
+++ /dev/null
@@ -1,194 +0,0 @@
-.wrap.llms-reporting,
-.wrap.lifterlms-settings,
-.wrap.llms-status {
-
- .llms-inside-wrap {
- box-sizing: border-box;
- margin: 0 auto;
-
- .llms-nav-text {
- margin: 0 auto;
- }
- }
-
- .llms-subheader {
-
- .llms-save {
- flex: auto;
- text-align: right;
- }
-
- }
-
- .llms-nav-tab-wrapper.llms-nav-secondary {
- background-color: #FFF;
- box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.15 );
- margin: 0 -20px 20px -10px;
-
- .llms-nav-items {
- padding-left: 0;
- }
-
- .llms-nav-item {
- .llms-nav-link:hover {
- background: #f0f0f1;
- color: #222222;
- }
-
- &.llms-active .llms-nav-link {
- background: #fafafa;
- color: $color-blue;
- border-top-color: $color-blue;
- }
-
- &.llms-active .llms-nav-link {
- font-weight: 700;
- }
- }
-
- .llms-nav-link {
- border-top: 2px solid transparent;
- padding: 14px;
- }
-
- }
-
- .llms-setting-group {
- background-color: #FFF;
- box-shadow: 0 1px 3px rgba( 0, 0, 0, .13 );
- margin: 20px auto;
- padding: 20px;
-
- .llms-label {
- border-bottom: 1px solid #efefef;
- font-weight: 700;
- font-size: 20px;
- padding: 20px;
- margin: -20px -20px 20px;
-
- .llms-button-primary {
- margin-left: 10px;
- }
- }
-
- .llms-help-tooltip .dashicons {
- color: #444;
- cursor: help;
- }
-
- .form-table {
- margin: 0;
- tr:first-child .llms-subtitle {
- margin-top: 0;
- }
- }
-
- td[colspan="2"] {
- padding-top: 0;
- padding-left: 0;
- }
-
- tr.llms-disabled-field {
- opacity: 0.5;
- pointer-events: none;
- }
-
- p {
- font-size: 14px;
- }
- input[type="text"],
- input[type="password"],
- input[type="datetime"],
- input[type="datetime-local"],
- input[type="date"],
- input[type="month"],
- input[type="time"],
- input[type="week"],
- input[type="number"],
- input[type="email"],
- input[type="url"],
- input[type="search"],
- input[type="tel"],
- input[type="color"],
- select,
- textarea:not(.wp-editor-area) {
- width: 50%;
- &.medium { width: 30%; }
- &.small { width: 20%; }
- &.tiny { width: 10%; }
- }
- }
-
- @media only screen and (min-width: 782px) {
- .llms-nav-tab-wrapper.llms-nav-secondary {
- .llms-nav-item {
- &.llms-active .llms-nav-link {
- background: #fff;
- }
- }
- }
- }
-
- // Email Delivery providers.
- #llms-mailhawk-connect {
- height: auto;
- margin: 0 0 6px;
- position: relative;
-
- .dashicons {
- margin: -4px 4px 0 0;
- vertical-align: middle;
- }
- }
- #llms-sendwp-connect {
- height: auto;
- margin: 0 0 6px;
- position: relative;
-
- .fa {
- margin-right: 4px;
- }
- }
-
-}
-
-@media only screen and (min-width: 782px) {
- .wrap.lifterlms-settings {
- .llms-subheader {
- height: 40px;
- position: sticky;
- top: 32px;
- }
- .llms-nav-tab-wrapper.llms-nav-secondary {
- margin: 0 -20px 20px -22px;
-
- .llms-nav-items {
- padding-left: 10px;
- }
-
- }
- }
-
- .wrap.llms-reporting {
- .llms-nav-tab-wrapper.llms-nav-secondary {
- margin: 0 -20px 20px -22px;
-
- .llms-nav-items {
- padding-left: 10px;
- }
-
- }
- }
-
-
- .wrap.llms-status {
- .llms-nav-tab-wrapper.llms-nav-secondary {
- margin: 0 -20px 20px -22px;
-
- .llms-nav-items {
- padding-left: 10px;
- }
-
- }
- }
-}
diff --git a/assets/scss/admin/_tabs.scss b/assets/scss/admin/_tabs.scss
deleted file mode 100644
index 6ec7c3af44..0000000000
--- a/assets/scss/admin/_tabs.scss
+++ /dev/null
@@ -1,162 +0,0 @@
-.llms-nav-tab-wrapper {
- background: $color-blue;
- margin: 20px 0;
-
- &.llms-nav-secondary {
- background: #e1e1e1;
-
- .llms-nav-item {
- margin: 0;
-
- .llms-nav-link:hover,
- &.llms-active .llms-nav-link {
- background: darken( #e1e1e1, 8 );
- }
-
- }
-
- .llms-nav-link {
- color: #414141;
- font-size: 15px;
- padding: 8px 14px;
-
- .dashicons {
- font-size: 15px;
- height: 15px;
- width: 15px;
- }
- }
-
- }
-
- &.llms-nav-text {
- background: inherit;
- .llms-nav-items {
- padding-left: 0;
- }
- .llms-nav-item {
- background: inherit;
- color: #646970;
- &:last-child:after {
- display: none;
- }
- &:after {
- content: '|';
- display: inline-block;
- margin: 0 8px 0 6px;
- }
- .llms-nav-link:hover {
- background: inherit;
- color: $color-brand-blue;
- }
- &.llms-active .llms-nav-link {
- background: inherit;
- color: #000;
- font-weight: 600;
- text-decoration: none;
- }
- .llms-nav-link {
- color: $color-brand-blue;
- display: inline-block;
- letter-spacing: 0;
- margin: 0;
- padding: 0;
- text-decoration: underline;
- text-transform: none;
- }
- }
- }
-
- &.llms-nav-style-tabs {
- background-color: $color-brand-dark-blue;
- margin: 0;
- padding-top: 8px;
-
- .llms-nav-item {
- margin: 0 3px;
-
- .llms-nav-link {
- border-top-left-radius: 4px;
- border-top-right-radius: 4px;
- }
-
- &.llms-active .llms-nav-link {
- background-color: #FFF;
- color: $color-brand-blue;
- font-weight: 700;
- }
- }
-
- }
-
- &.llms-nav-style-filters {
- background-color: $color-brand-blue;
- border-radius: 12px;
- margin: 20px 0;
- overflow: hidden;
- padding: 0;
-
- .llms-nav-items {
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- padding-left: 0;
-
- @media only screen and (min-width: 782px) {
- flex-direction: row;
- }
-
- .llms-nav-item {
- float: none;
-
- .llms-nav-link {
- padding: 14px;
- }
- }
- }
- }
-
- .llms-nav-items {
- @include clearfix;
- margin: 0;
- padding-left: 10px;
- }
-
- .llms-nav-item {
- margin: 0;
-
- .llms-nav-link:hover {
- background: $color-brand-blue;
- }
- &.llms-active .llms-nav-link {
- background: $color-brand-dark-blue;
- }
-
- &.llms-active .llms-nav-link {
- font-weight: 400;
- }
-
- @media only screen and (min-width: 768px) {
- float: left;
-
- &.llms-nav-item-right {
- float: right;
- }
- }
-
- }
-
- .llms-nav-link {
-
- color: #fff;
- cursor: pointer;
- display: block;
- font-weight: 400;
- font-size: 15px;
- padding: 9px 18px;
- text-align: center;
- text-decoration: none;
- transition: all .3s ease;
-
- }
-}
diff --git a/assets/scss/admin/_wp-menu.scss b/assets/scss/admin/_wp-menu.scss
deleted file mode 100644
index 30168cc419..0000000000
--- a/assets/scss/admin/_wp-menu.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-#adminmenu {
-
- .toplevel_page_lifterlms .wp-menu-image img {
- padding-top: 6px;
- width: 20px;
- }
-
- .toplevel_page_lifterlms,
- .opensub .wp-submenu li.current,
- .wp-submenu li.current,
- .wp-submenu li.current,
- .wp-submenu li.current,
- a.wp-has-current-submenu:focus+.wp-submenu li.current {
- a[href*="page=llms-add-ons"] {
- color: $color-brand-orange;
- }
- }
-
-}
-
-
diff --git a/assets/scss/admin/breakpoints/_1030up.scss b/assets/scss/admin/breakpoints/_1030up.scss
deleted file mode 100644
index 2c94494dcd..0000000000
--- a/assets/scss/admin/breakpoints/_1030up.scss
+++ /dev/null
@@ -1,76 +0,0 @@
-/******************************************************************
-
-Desktop Stylesheet
-
-******************************************************************/
-
-//option page tab menu
-.llms-nav-tab {
- display: inline-block;
- width: 33.333%;
-}
-.llms-nav-tab-settings {
- display: inline-block;
- width: 25%;
-}
-
-//select box form wrapper
-#llms-form-wrapper {
- .llms-select {
- display: inline-block;
- width: 47.5%;
- &:first-child {
- margin-right: 5%;
- }
-
- }.llms-filter-options {
- display: inline-block;
- width: 47.5%;
-
- &.date-filter {
- margin-right: 5%;
- }.llms-date-select {
- margin-bottom: 0;
- }
-
- }.llms-date-select {
- width: 47.5%;
-
- &:first-child {
- margin-right: 5%
- }
-
- }
-}
-
-.llms-widget-row {
- @include clearfix;
- .llms-widget-1-5 {
- vertical-align: top;
- width: 20%;
- float: left;
- box-sizing: border-box;
- padding: 0 5px;
- }
- .llms-widget-1-4 {
- vertical-align: top;
- width: 25%;
- float: left;
- box-sizing: border-box;
- padding: 0 5px;
- }
- .llms-widget-1-3 {
- width: 33.3%;
- float: left;
- box-sizing: border-box;
- padding: 0 5px;
- }
- .llms-widget-1-2 {
- width: 50%;
- float: left;
- box-sizing: border-box;
- padding: 0 5px;
- vertical-align: top;
- }
-
-}
diff --git a/assets/scss/admin/breakpoints/_1240up.scss b/assets/scss/admin/breakpoints/_1240up.scss
deleted file mode 100644
index 2b3457079d..0000000000
--- a/assets/scss/admin/breakpoints/_1240up.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-/******************************************************************
-
-large Monitor Stylesheet
-
-******************************************************************/
-
-.llms-nav-tab-filters,
-.llms-nav-tab-settings {
- float: left;
- width: 12.5%;
-}
diff --git a/assets/scss/admin/breakpoints/_481up.scss b/assets/scss/admin/breakpoints/_481up.scss
deleted file mode 100644
index 05e7bc2f76..0000000000
--- a/assets/scss/admin/breakpoints/_481up.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-/******************************************************************
-
-Larger Phones
-
-******************************************************************/
-
-//select box form wrapper
-#llms-form-wrapper {
-
- .llms-checkbox {
- width: 33%;
- //text-align: center;
-
- }
-}
diff --git a/assets/scss/admin/breakpoints/_768up.scss b/assets/scss/admin/breakpoints/_768up.scss
deleted file mode 100644
index be119130ce..0000000000
--- a/assets/scss/admin/breakpoints/_768up.scss
+++ /dev/null
@@ -1,73 +0,0 @@
-/******************************************************************
-
-Tablets and small computers
-
-******************************************************************/
-
-ul.tabs li{
- display: inline-block;
- }
-
-//option page tab menu
-.llms-nav-tab {
- display: inline-block;
- width: 33%;
-}
-.llms-nav-tab-settings {
- display: inline-block;
- width: 25%;
-}
-
-//select box form wrapper
-#llms-form-wrapper {
- .llms-select {
- width: 50%;
- max-width: 500px;
-
- }.llms-filter-options {
- width: 50%;
- //display: inline-block;
- max-width: 500px;
-
- }.llms-date-select {
- width: 47.5%;
-
- &:first-child {
- margin-right: 5%
- }
-
- }
-}
-
-.llms-widget {
- input[type="text"],
- input[type="password"],
- input[type="datetime"],
- input[type="datetime-local"],
- input[type="date"],
- input[type="month"],
- input[type="time"],
- input[type="week"],
- input[type="number"],
- input[type="email"],
- input[type="url"],
- input[type="search"],
- input[type="tel"],
- input[type="color"],
- select,
- textarea, {
- width: 50%;
-
- &.medium { width: 30%; }
- &.small { width: 20%; }
- &.tiny { width: 10%; }
- }
-
- // .form-table th {
- // width: 140px;
- // }
-
-}
-
-
-
diff --git a/assets/scss/admin/breakpoints/_base.scss b/assets/scss/admin/breakpoints/_base.scss
deleted file mode 100644
index 4e196a12a8..0000000000
--- a/assets/scss/admin/breakpoints/_base.scss
+++ /dev/null
@@ -1,93 +0,0 @@
-/******************************************************************
-
-Base Mobile
-
-******************************************************************/
-
-.llms-nav-tab,
-.llms-nav-tab-filters {
- display: block;
- width: 100%;
-}
-
-form.llms-nav-tab-filters.full-width {
- width: 100%;
-
- label {
- display: inline-block;
- width: 10%;
- text-align: left;
- }
-
- .select2-container {
- width: 85% !important;
- }
-}
-
-.llms-nav-tab-settings {
- display: block;
- width: 100%;
-}
-
-//select box form wrapper
-#llms-form-wrapper {
- .llms-select {
- width: 100%;
- margin-bottom: 20px;
-
- }.llms-checkbox {
- display: inline-block;
- width: 100%;
- text-align: left;
-
- }.llms-filter-options {
- width: 100%;
- //margin-bottom: 20px;
-
- }.llms-date-select {
- width: 100%;
- display: inline-block;
- margin-bottom: 20px;
- input[type="text"] {
- width: 100%;
- }
-
- }.llms-search-button {
- //display: inline-block;
- //width: 30%;
- #llms-search-button {
-
- //float: right;
- }
-
- }
-
-}
-
-// .llms-widget-full {
-// &.top {
-// margin-top: 20px;
-// }
-// }
-// .llms-widget {
-// .form-table td {
-// padding: 15px 0;
-// ul { margin: 5px 0 0; }
-
-
-// .conditional-field {
-// display: none;
-// margin-left: 25px;
-// }
-// .conditional-radio:checked ~ .conditional-field {
-// display: block;
-// }
-
-
-// }
-// }
-
-ul.tabs li{
- display: block;
- }
-
diff --git a/assets/scss/admin/metaboxes/_builder-launcher.scss b/assets/scss/admin/metaboxes/_builder-launcher.scss
deleted file mode 100644
index 0e40e50c30..0000000000
--- a/assets/scss/admin/metaboxes/_builder-launcher.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-.llms-builder-launcher {
-
- p {
- margin-top: 0;
- }
-
- ol {
- margin-top: -6px;
- }
-
- .llms-button-primary {
- box-sizing: border-box;
- }
-
-}
diff --git a/assets/scss/admin/metaboxes/_llms-metabox.scss b/assets/scss/admin/metaboxes/_llms-metabox.scss
deleted file mode 100644
index dcf8af205b..0000000000
--- a/assets/scss/admin/metaboxes/_llms-metabox.scss
+++ /dev/null
@@ -1,267 +0,0 @@
-
-// This is a "legacy" rule that may be removable
-.llms-mb-list {
-
- label {
- font-size: 15px;
- font-weight: 700;
- line-height: 1.5;
- display: block;
- width: 100%;
- }
-
- .description {
- margin-bottom: 8px;
- }
-
- .input-full {
- width: 100%;
- }
-}
-
-
-#poststuff .llms-metabox {
-
- @extend %cf;
-
- h2, h3, h4, h6 {
- margin: 0;
- padding: 0;
- }
-
- h2 {
- font-size: 18px;
- font-weight: 700;
- }
-
- h3 {
- color: #1e1e1e;
- font-size: 16px;
- }
-
- h4 {
- color: #1e1e1e;
- font-size: 16px;
- line-height: 1.5;
- padding: 0;
- margin: 0;
- }
-
- h4:not(.llms-collapsible-body h4:first-of-type) {
- margin-top: 20px;
- }
-
- .llms-transaction-test-mode {
- background: #ffffd7;
- font-style: italic;
- left: 0;
- padding: 2px;
- position: absolute;
- right: 0;
- top: 0;
- text-align: center;
- }
-
- a.llms-editable,
- .llms-metabox-icon,
- button.llms-editable {
- color: $color-grey;
- text-decoration: none;
- &:hover {
- color: $color-brand-blue;
- }
- }
-
- button.llms-editable {
- border: none;
- background: none;
- cursor: pointer;
- padding: 0;
- vertical-align: top;
- }
-
- h4 button.llms-editable {
- float: right;
- }
-
- .llms-table {
- margin-top: 10px;
-
- }
-
- button.llms-button-primary {
- border-radius: 8px;
- font-size: 16px;
- font-weight: 700;
- height: auto;
- }
-}
-
-.llms-metabox-section {
- background: #fff;
- margin-top: 25px;
- position: relative;
-
- &.no-top-margin {
- margin-top: 0;
- }
-
- .llms-metabox-field {
- margin: 5px 0;
- position: relative;
- label {
- color: #1e1e1e;
- display: block;
- margin-bottom: 5px;
- font-size: 14px;
- font-weight: 400;
- }
-
- select,
- textarea,
- input[type="text"],
- input[type="number"] {
- width: 100%;
- }
-
- input.md-text {
- width: 105px;
- }
-
- input.sm-text {
- width: 45px;
- }
-
- .llms-datetime-field {
-
- .llms-date-input {
- width: 95px;
- }
- .llms-time-input {
- width: 45px;
- }
- em {
- font-style: normal;
- padding: 0 3px;
- }
-
- }
-
- .select2-container--default .select2-search--inline .select2-search__field {
- min-height: auto;
- }
-
- .select2-container--default .select2-selection--multiple .select2-selection__rendered li {
- margin-bottom: 0;
- }
-
- }
-
- /* Fixes to tighten the space between tinymce editor and label */
- .llms-metabox-field:has(.wp-editor-wrap) label {
- position: relative;
- z-index: 5;
- }
-
- .llms-metabox-field .wp-editor-wrap {
- margin-top: -30px;
- }
-
-}
-
-.llms-collapsible {
-
- @extend %clearfix;
-
- background: #fff;
- border: 1px solid #efefef;
- border-radius: 6px;
- box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.08);
- display: block;
- margin: 0;
- padding: 0;
- position: relative;
- text-align: center;
- margin-top: 0;
-
- &:last-child {
- margin-bottom: 0;
- }
-
- &.opened .llms-collapsible-header {
- .dashicons-arrow-down {
- display: none;
- }
- .dashicons-arrow-up {
- display: inline;
- }
- }
-
- .llms-collapsible-header {
- @extend %clearfix;
- padding: 15px;
-
- [class^="d-"] {
- align-items: center;
- display: flex;
- gap: 5px;
- }
-
- .d-right {
- justify-content: flex-end;
- padding-right: 0;
- }
-
- h3 {
- color: #1e1e1e;
- display: inline;
- margin: 0;
- font-size: 16px;
- font-weight: 700;
-
- small {
- font-weight: 400;
- }
- }
-
- .dashicons-arrow-up {
- display: inline;
- }
- .dashicons-arrow-up {
- display: none;
- }
-
- a {
- text-decoration: none;
- }
-
- .dashicons {
- color: #1e1e1e;
- cursor: pointer;
- transition: color .4s ease;
- &:hover {
- color: $color-blue;
- }
-
- &.dashicons-warning,&.dashicons-warning:hover,
- &.dashicons-trash:hover,
- &.dashicons-no:hover {
- color: $color-danger;
- }
- &.dashicons-warning.medium-danger {
- &,
- &:hover {
- color: $color-orange;
- }
- }
- }
-
- }
-
- .llms-collapsible-body {
- @extend %clearfix;
- display: none;
- padding: 15px;
- }
-
-}
diff --git a/assets/scss/admin/metaboxes/_metabox-engagements-type.scss b/assets/scss/admin/metaboxes/_metabox-engagements-type.scss
deleted file mode 100644
index d50c36466b..0000000000
--- a/assets/scss/admin/metaboxes/_metabox-engagements-type.scss
+++ /dev/null
@@ -1,42 +0,0 @@
-.submitbox .llms-mb-section,
-.llms-award-engagement-submitbox .llms-mb-list {
- margin-bottom: 12px;
- &:last-of-type {
- margin-bottom: 0;
- }
- @at-root .sync-action,
- &.student-info,
- &.post_author_override label {
- &:before {
- // dashicons-admin-users.
- font: normal 20px/1 dashicons;
- speak: never;
- display: inline-block;
- margin-left: -1px;
- padding-right: 3px;
- vertical-align: top;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- position: relative;
- top: -1px;
- color: #8c8f94;
- body:not(.admin-color-fresh) & {
- color: currentColor; // Used when selecting a different admin color scheme from the default one.
- }
- }
- }
- &.student-info,
- &.post_author_override label {
- &:before {
- content: '\f110';
- }
- }
- @at-root .sync-action:before {
- content: '\f113';
- color: white;
- }
- &.post_author_override label {
- display: inline-block;
- width: auto;;
- }
-}
diff --git a/assets/scss/admin/metaboxes/_metabox-field-repeater.scss b/assets/scss/admin/metaboxes/_metabox-field-repeater.scss
deleted file mode 100644
index 8c64687be5..0000000000
--- a/assets/scss/admin/metaboxes/_metabox-field-repeater.scss
+++ /dev/null
@@ -1,36 +0,0 @@
-.llms-mb-container .tab-content ul:not(.select2-selection__rendered).llms-mb-repeater-fields > li.llms-mb-list {
- border-bottom: none;
- padding: 0 0 10px;
-}
-
-.llms-mb-list.repeater {
-
- .llms-repeater-rows {
- position: relative;
- margin-top: 10px;
- min-height: 10px;
-
- &.dragging {
- background: #efefef;
- box-shadow: inset 0 0 0 1px #e5e5e5;
- }
- }
-
- .llms-repeater-row {
- background: #fff;
- }
-
- .llms-mb-repeater-fields {
-
- }
-
- .llms-mb-repeater-footer {
- text-align: right;
- margin-top: 20px;
- }
-
- .tmce-active .wp-editor-area {
- color: #32373c; // wp core default color
- }
-
-}
diff --git a/assets/scss/admin/metaboxes/_metabox-instructors.scss b/assets/scss/admin/metaboxes/_metabox-instructors.scss
deleted file mode 100644
index f03294ceed..0000000000
--- a/assets/scss/admin/metaboxes/_metabox-instructors.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-._llms_instructors_data.repeater {
- .llms-repeater-rows .llms-repeater-row:first-child {
- .llms-repeater-remove { display: none; }
- }
-
- .llms-mb-list {
- padding: 0 5px !important;
- }
-}
diff --git a/assets/scss/admin/metaboxes/_metabox-orders.scss b/assets/scss/admin/metaboxes/_metabox-orders.scss
deleted file mode 100644
index 3f4a603064..0000000000
--- a/assets/scss/admin/metaboxes/_metabox-orders.scss
+++ /dev/null
@@ -1,62 +0,0 @@
-.post-type-llms_order #post-body-content { display: none; }
-#lifterlms-order-details {
- .handlediv,
- .handlediv.button-link,
- .postbox-header { display: none;}
- .inside {
- padding: 20px;
- margin-top: 0;
-
- }
-}
-
-// failed transaction color
-.llms-table tbody tr.llms-txn-failed td {
- background-color: rgba( $color-red, 0.5 );
- border-bottom-color: rgba( $color-red, 0.5 );
-}
-
-// refunded transaction color
-.llms-table tbody tr.llms-txn-refunded td {
- background-color: rgba( orange, 0.5 );
- border-bottom-color: rgba( orange, 0.5 );
-}
-
-.llms-txn-refund-form,
-.llms-manual-txn-form {
- .llms-metabox-section {
- margin-top: 0;
- }
- .llms-metabox-field {
- text-align: right;
- input {
- &[type="number"] { max-width: 100px; }
- &[type="text"] { max-width: 340px; }
-
- }
- }
-}
-
-.llms-manual-txn-form {
- background-color: #eaeaea;
- .llms-metabox-section {
- background-color: #eaeaea;
- }
-}
-
-#llms-remaining-edit {
- display: none;
-}
-.llms-remaining-edit--content {
- label, span, textarea {
- display: block;
- }
-
- label {
- margin-bottom: 20px;
- }
-
- textarea, input {
- width: 100%;
- }
-}
diff --git a/assets/scss/admin/metaboxes/_metabox-product.scss b/assets/scss/admin/metaboxes/_metabox-product.scss
deleted file mode 100644
index 3dd5803819..0000000000
--- a/assets/scss/admin/metaboxes/_metabox-product.scss
+++ /dev/null
@@ -1,82 +0,0 @@
-.llms-metabox {
-
- > p:first-child {
- margin-top: 0;
- }
-
- #llms-new-access-plan-model {
- display: none;
- }
-
- .llms-access-plans {
- @extend %clearfix;
- color: #1e1e1e;
-
- > .llms-no-plans-msg {
- display: none;
- .notice {
- margin-right: 0;
- margin-left: 0;
- }
- }
- > .llms-no-plans-msg:last-child {
- display: block;
- }
-
- &.dragging {
- background: #efefef;
- box-shadow: inset 0 0 0 1px #e5e5e5;
- }
-
- .llms-spinning {
- z-index: 1;
- }
-
- .llms-invalid {
- border-color: $color-danger;
- .dashicons-warning {
- display: inline;
- }
- }
- .llms-needs-attention .dashicons-warning.medium-danger {
- display: inline;
- }
- .dashicons-warning {
- display: none;
- }
- }
-
- .llms-access-plan {
- margin-bottom: 20px;
- text-align: left;
-
- [data-tip]:before {
- text-align: center;
- }
-
- .llms-plan-link,
- [data-controller] {
- display: none;
- }
-
- &:hover,
- &.opened {
- .llms-plan-link {
- display: inline-block;
- }
- }
-
- .llms-metabox-field {
- margin: 15px 0;
- }
-
- .llms-required {
- color: $color-danger;
- margin-left: 3px;
- }
- .notice {
- margin-left: 0;
- }
- }
-
-}
diff --git a/assets/scss/admin/metaboxes/_metabox-students.scss b/assets/scss/admin/metaboxes/_metabox-students.scss
deleted file mode 100644
index 7b0aef36ef..0000000000
--- a/assets/scss/admin/metaboxes/_metabox-students.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-.llms-metabox-students {
- .llms-table {
- tr .name {
- text-align: left;
- }
- }
-
- .llms-add-student:hover {
- color: $color-green;
- }
- .llms-remove-student:hover {
- color: $color-red;
- }
-
-}
diff --git a/assets/scss/admin/modules/_forms.scss b/assets/scss/admin/modules/_forms.scss
deleted file mode 100644
index fac4a4b803..0000000000
--- a/assets/scss/admin/modules/_forms.scss
+++ /dev/null
@@ -1,190 +0,0 @@
-/******************************************************************
-
-Form Styles
-
-******************************************************************/
-
-// lifterlms form wrapper
-#llms-form-wrapper {
-
- // setup defaults
- input[type="text"],
- input[type="password"],
- input[type="datetime"],
- input[type="datetime-local"],
- input[type="date"],
- input[type="month"],
- input[type="time"],
- input[type="week"],
- input[type="number"],
- input[type="email"],
- input[type="url"],
- input[type="search"],
- input[type="tel"],
- input[type="color"],
- input[type="checkbox"],
- select,
- textarea,
- .llms-field {
-
- // a focused input (or hovered on)
- &:focus,
- &:active {
-
- } // end hover or focus
- }
-
- // sub wrapper for search filter form (analytics)
- .llms-search-form-wrapper {
- border-bottom: 1px solid $color-grey;
- margin: 20px 0;
-
- }
-
-
- #llms_analytics_search {
- border:none !important;
- text-shadow: none !important;
- border: none !important;
- outline: none !important;
- box-shadow: none !important;
- margin: 0 !important;
- color: $color-white !important;
- background: $color-blue !important;
- border-radius: 0;
- transition: .5s;
-
- &:hover {
- background: $color-darkblue !important;
-
- }&:active {
- background: $color-lightblue !important;
- }
- }
-
-} // end input defaults
-
-
-#llms-skip-setup-form {
- .llms-admin-link {
- background:none!important;
- border:none;
- padding:0!important;
- color:#0074a2;
- cursor:pointer;
- &:hover {
- color:#2ea2cc
- }&:focus{
- color:#124964;
- }
-
- }
-
-}
-
-/**
- * Toggle Switch ( replaces checkbox on admin panels )
- */
-.llms-switch {
- position: relative;
-
- .llms-toggle {
- position: absolute;
- margin-left: -9999px;
- visibility: hidden;
- }
-
- .llms-toggle + label {
- box-sizing: border-box;
- display: block;
- position: relative;
- cursor: pointer;
- outline: none;
- user-select: none;
- }
-
- input.llms-toggle-round + label {
- border: 2px solid #6c7781;
- border-radius: 10px;
- height: 20px;
- width: 36px;
- }
- input.llms-toggle-round + label:before,
- input.llms-toggle-round + label:after {
- box-sizing: border-box;
- content: '';
- display: block;
- position: absolute;
- transition: background 0.4s;
- }
-
- input.llms-toggle-round:checked + label {
- border-color: #11a0d2;
- background-color: #11a0d2;
- }
-
- // Primary dot (that moves.)
- input.llms-toggle-round + label:after {
- height: 12px;
- left: 2px;
- top: 2px;
- background-color: #6c7781;
- border-radius: 50%;
- transition: margin 0.4s;
- width: 12px;
- z-index: 3;
- }
-
- // Primary dot when toggle on.
- input.llms-toggle-round:checked + label:after {
- background-color: $color-white;
- margin-left: 16px;
- }
-
- // Secondary dot: empty on the right side of the toggle when toggled off.
- input.llms-toggle-round + label:before {
- height: 8px;
- top: 4px;
- border: 1px solid #6c7781;
- border-radius: 50%;
- right: 4px;
- width: 8px;
- z-index: 2;
- }
-
- input.llms-toggle-round:checked + label:before {
- border-color: $color-white;
- border-radius: 0;
- left: 6px;
- right: auto;
- width: 2px;
- }
-
-}
-
-#llms-profile-fields {
- margin: 50px 0;
- .llms-form-field {
- padding-left: 0;
- }
- label {
- display: block;
- font-weight: bold;
- padding: 8px 0 2px;
- }
- .type-checkbox .type-checkbox {
- label {
- display: initial;
- font-weight: initial;
- padding: 0;
- }
- input {
- display: inline-block;
- margin-bottom: 0;
- width: 1rem;
- }
- }
- select {
- max-width: 100%;
- }
-}
diff --git a/assets/scss/admin/modules/_icons.scss b/assets/scss/admin/modules/_icons.scss
deleted file mode 100644
index b937c1072c..0000000000
--- a/assets/scss/admin/modules/_icons.scss
+++ /dev/null
@@ -1,92 +0,0 @@
-/******************************************************************
-
-SVG Styles
-
-******************************************************************/
-
-svg {
- &.icon {
- height: 24px;
- width: 24px;
- display: inline-block;
- fill: currentColor; // Inherit color
- vertical-align: baseline; // Options: baseline, sub, super, text-top, text-bottom, middle, top, bottom
-
- // Different styling for when an icon appears in a button element
- button & {
- height: 18px;
- width: 18px;
- margin: 4px -4px 0 4px;
- filter: drop-shadow( 0 1px #eee );
- float: right;
-
- }&.menu-icon {
- height: 20px;
- width: 20px;
- display: inline-block;
- fill: currentColor;
- vertical-align: text-bottom;
- margin-right: 10px;
-
- }&.tree-icon {
- height: 13px;
- width: 13px;
- vertical-align: middle;
-
- }&.section-icon {
- height: 16px;
- width: 16px;
- vertical-align: text-bottom;
-
- }&.button-icon {
- height: 16px;
- width: 16px;
- vertical-align: text-bottom;
-
- }&.button-icon-attr {
- height: 10px;
- width: 10px;
- vertical-align: middle;
-
- }&.list-icon {
- height: 12px;
- width: 12px;
- vertical-align: middle;
-
- &.on {
- color: $color-blue;
-
- }&.off {
- color: $color-cinder;
- }
-
- }&.detail-icon {
- height: 16px;
- width: 16px;
- vertical-align: text-bottom;
- cursor:default;
-
- &.on {
- color: $color-blue;
-
- }&.off {
- color: $color-lightgrey;
- }
- }
-
- }
-
- &.icon-ion {}
-
- &.icon-ion-edit {}
-
- // rotate for arrow tips
- &.icon-ion-arrow-up {
- transform: rotate(90deg);
- }
-
- use {
- pointer-events: none;
- }
-
-}
\ No newline at end of file
diff --git a/assets/scss/admin/modules/_llms-order-note.scss b/assets/scss/admin/modules/_llms-order-note.scss
deleted file mode 100644
index b055ebb144..0000000000
--- a/assets/scss/admin/modules/_llms-order-note.scss
+++ /dev/null
@@ -1,35 +0,0 @@
-.llms-order-note {
-
- .llms-order-note-content {
- background: #efefef;
- margin-bottom: 10px;
- padding: 10px;
- position: relative;
- &:after {
- border-style: solid;
- border-color: #efefef transparent;
- border-width: 10px 10px 0 0;
- bottom: -10px;
- content: '';
- display: block;
- height: 0;
- left: 20px;
- position: absolute;
- width: 0;
-
- }
- p {
- font-size: 13px;
- margin: 0;
- line-height: 1.5;
- }
- }
-
- .llms-order-note-meta {
- color: #999;
- font-size: 11px;
- margin-left: 10px;
- }
-
-
-}
diff --git a/assets/scss/admin/modules/_mb-tabs.scss b/assets/scss/admin/modules/_mb-tabs.scss
deleted file mode 100644
index d8ea24e292..0000000000
--- a/assets/scss/admin/modules/_mb-tabs.scss
+++ /dev/null
@@ -1,57 +0,0 @@
-/******************************************************************
-
-Metabox Tabs
-
-******************************************************************/
-
-// free space up if the metabox is on the side
-#side-sortables .tab-content {
- padding: 0;
-}
-
-.llms-mb-container .tab-content{
- display: none;
- background-color: #FFF;
- padding: 0 20px;
-
- ul:not(.select2-selection__rendered) {
- margin: 0 0 15px 0;
-
- > li {
- padding: 20px 0;
- margin: 0;
-
- &.select:not([class*="d-"]) {
- width: 100%;
- }
-
- &:last-child {
- border: 0;
- padding-bottom: 0;
-
- }
-
- &.top {
- border-bottom: 0;
- padding-bottom: 0;
- }
-
- }
- }
-
- .full-width { width: 100%; }
-
- #wp-content-editor-tools {
- background: none;
- }
-
-}
-
-.llms-mb-container .tab-content.llms-active{
- display: inherit;
-}
-
-
-.llms-mb-container .tab-content .no-border {
- border-bottom: 0px;
-}
diff --git a/assets/scss/admin/modules/_merge-codes.scss b/assets/scss/admin/modules/_merge-codes.scss
deleted file mode 100644
index 51a800991b..0000000000
--- a/assets/scss/admin/modules/_merge-codes.scss
+++ /dev/null
@@ -1,61 +0,0 @@
-.button.llms-merge-code-button {
- vertical-align: middle;
- svg {
- margin-right: 2px;
- position: relative;
- top: 4px;
- width: 16px;
- g {
- fill: currentColor;
- }
- }
-}
-
-.llms-mb-container {
- .llms-merge-code-wrapper {
- float: right;
- top: -5px;
- }
-}
-
-.llms-merge-code-wrapper {
- display: inline;
- position: relative;
-}
-
-.llms-merge-codes {
- background: #f7f7f7;
- border: 1px solid #ccc;
- border-radius: 3px;
- box-shadow: 0 1px 0 #ccc;
- color: #555;
- display: none;
- left: 1px;
- overflow: hidden;
- position: absolute;
- top: 30px;
- width: 200px;
-
- ul {
- margin: 0;
- padding: 0;
- }
-
- li {
- cursor: pointer;
- margin: 0;
- padding: 4px 8px !important;
- border-bottom: 1px solid #ccc;
- }
-
- li:hover {
- color: #23282d;
- background: #fefefe;
- }
-
- &.active {
- display: block;
- z-index: 777;
- }
-
-}
diff --git a/assets/scss/admin/modules/_top-modal.scss b/assets/scss/admin/modules/_top-modal.scss
deleted file mode 100644
index 9a118bcebc..0000000000
--- a/assets/scss/admin/modules/_top-modal.scss
+++ /dev/null
@@ -1,203 +0,0 @@
-/******************************************************************
-
-Styles for topModal modal
-
-******************************************************************/
-
-/**
- * Base modal styles
- */
-.topModal {
- display:none;
- position:relative;
- border:4px solid #808080;
- background:#fff;
- z-index:1000001;
- padding:2px;
- max-width:500px;
- margin: 34px auto 0;
- box-sizing: border-box;
- box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
- background-color: #ffffff;
- border-radius: 2px;
- border: 1px solid #dddddd;
-
-}.topModalClose {
- float:right;
- cursor:pointer;
- margin-right: 10px;
- margin-top: 10px;
-
-}.topModalContainer {
- display: none;
- overflow: auto;
- overflow-y: hidden;
- position: fixed;
- top: 0 !important;
- right: 0;
- bottom: 0;
- left: 0;
- -webkit-overflow-scrolling: touch;
- width: auto !important;
- margin-left: 0 !important;
- background-color: transparent !important;
- z-index: 100002 !important;
-
-}.topModalBackground {
- display:none;
- background:#000;
- position:fixed;
- height:100%;
- width:100%;
- top:0 !important;
- left:0;
- margin-left: 0 !important;
- z-index: 100002 !important;
- box-sizing: border-box;
- overflow: auto;
- overflow-y: hidden;
-
-}body.modal-open {
- overflow: hidden;
-
-}.llms-modal-header {
- border-top-right-radius: 1px;
- border-top-left-radius: 1px;
- background: $color-blue;
- color: #eeeeee;
- padding: 10px 15px;
- font-size: 18px;
-
-}#llms-icon-modal-close {
- width:16px;
- height: 16px;
- fill: $color-white;
-
-}.llms-modal-content {
- padding: 20px;
-
- h3 {
- margin-top: 0;
- }
-
-}
-
-/**
- * Custom Modal Styles for LifterLMS
- */
-.llms-modal-form {
-
- h1 {
- margin-top: 0;
- }
-
- input[type=text] {
- width: 100%;
- }
-
- textarea,
- input[type="text"],
- input[type="password"],
- input[type="file"],
- input[type="datetime"],
- input[type="datetime-local"],
- input[type="date"],
- input[type="month"],
- input[type="time"],
- input[type="week"],
- input[type="number"],
- input[type="email"],
- input[type="url"],
- input[type="search"],
- input[type="tel"],
- input[type="color"] {
- padding: 0 .4em 0 .4em;
- margin-bottom: 2em;
- vertical-align: middle;
- border-radius: 3px;
- min-width: 50px;
- max-width: 635px;
- width: 100%;
- min-height: 32px;
- background-color: #fff;
- border: 1px solid $color-lightgrey;
- margin: 0 0 24px 0;
- outline: none;
- transition: border 0.3s ease-in-out 0s;
-
- &:focus {
- background: $color-white;
- border: 1px solid $color-blue;
-
- }
- }
-
- textarea {
- padding: .4em !important;
- height: 100px !important;
- border-radius: 3px;
- vertical-align: middle;
- min-height: 32px;
- outline: none;
- box-sizing: border-box;
-
- &:focus {
- background: $color-white;
- border: 1px solid $color-blue;
-
- }
-
- }
-
- .chosen-container-single .chosen-single {
- border-radius: 3px;
- vertical-align: middle;
- min-height: 32px;
- border: 1px solid $color-lightgrey;
- width: 100%;
- background: $color-white !important;
- outline: none;
- box-sizing: border-box;
- box-shadow: 0 0 0 #fff;
- line-height: 32px;
- margin: 0 0 24px 0;
-
- &:focus {
- background: $color-white;
- border: 1px solid $color-blue;
- }
- }
-
- .chosen-container-single .chosen-single div b {
- margin-top: 4px;
- }
-
- .chosen-search input[type=text] {
- border: 1px solid $color-lightgrey;
-
- &:focus {
- background-color: $color-white;
- border: 1px solid $color-blue;
- }
-
- }
-
- .chosen-container-single .chosen-drop {
- margin-top: -28px;
- }
-
- .llms-button-primary, .llms-button-secondary {
- padding: 10px 10px;
- border-radius: 0;
- transition: .5s;
- box-shadow: 0 1px 1px #ccc;
-
- &.full {
- width: 100%;
- }
- }
-}
-
-.modal-open .select2-dropdown {
- z-index: 1000005;
-}
diff --git a/assets/scss/admin/modules/_voucher.scss b/assets/scss/admin/modules/_voucher.scss
deleted file mode 100644
index 7262f52e43..0000000000
--- a/assets/scss/admin/modules/_voucher.scss
+++ /dev/null
@@ -1,133 +0,0 @@
-a.llms-voucher-delete {
- background: $color-danger;
- color: $color-white;
- display: block;
- padding: 4px 2px;
- text-decoration: none;
- transition: ease .3s all;
-
- &:hover {
- background: #af3a26;
- }
-}
-
-
-
-.llms-voucher-codes-wrapper,
-.llms-voucher-redemption-wrapper {
-
- table {
- width: 100%;
- border-collapse: collapse;
-
- th, td {
- border: none;
- }
-
- thead {
- background-color: $color-blue;
- color:#fff;
- th {
- padding: 10px 10px;
- }
- }
-
- tr {
- counter-increment: row-counter;
- &:nth-child(even) {
- background-color: #F1F1F1;
- }
-
- td {
- padding: 5px;
- &:first-child:before {
- content: counter( row-counter );
- }
- }
- }
- }
-}
-
-.llms-voucher-codes-wrapper {
-
- table {
- width: 100%;
- border-collapse: collapse;
-
- th, td {
- border: none;
- }
-
- thead {
- background-color: $color-blue;
- color:#fff;
- }
-
- tr {
- &:nth-child(even) {
- background-color: #F1F1F1;
- }
-
- td {
-
- span {
- display: inline-block;
- min-width: 30px;
- }
- }
- }
- }
-
- button {
- cursor: pointer;
- }
-
- .llms-voucher-delete {
- float: right;
- margin-right: 15px;
- }
-
- .llms-voucher-uses {
- width: 50px;
- }
-
- .llms-voucher-add-codes {
- float: right;
-
- input[type="text"] {
- width: 30px;
- }
- }
-}
-
-.llms-voucher-export-wrapper {
-
- .llms-voucher-export-type {
- width: 100%;
-
- p {
- margin: 0 0 0 15px;
- }
- }
-
- .llms-voucher-email-wrapper {
- width: 100%;
- margin: 25px 0;
-
- input[type="text"] {
- width: 100%;
- }
-
- p {
- margin: 0;
- }
- }
-
- > button {
- float: right;
- }
-}
-
-.postbox .inside {
- overflow: auto;
-}
diff --git a/assets/scss/admin/modules/_widgets.scss b/assets/scss/admin/modules/_widgets.scss
deleted file mode 100644
index a596a084d6..0000000000
--- a/assets/scss/admin/modules/_widgets.scss
+++ /dev/null
@@ -1,174 +0,0 @@
-.llms-widget {
- background-color: #FFF;
- border: 1px solid #dedede;
- border-radius: 12px;
- box-shadow: 0px 0px 1px rgba(48, 49, 51, 0.05), 0px 2px 4px rgba(48, 49, 51, 0.1);
- box-sizing: border-box;
- margin-bottom: 20px;
- padding: 20px;
- position: relative;
- width: 100%;
-
- &.alt {
-
- border: 1px solid $color-lightgrey;
- background-color: #efefef;
- margin-bottom: 10px;
-
- .llms-label {
- color: #777;
- font-size: 14px;
- margin-bottom: 10px;
- padding-bottom: 5px;
- }
-
- h2 {
- color: #444;
- font-weight: 300;
- }
-
- }
-
- a {
- border-bottom: 1px dotted $color-brand-blue;
- display: inline-block;
- text-decoration: none;
-
- &:hover {
- border-bottom: 1px dotted $color-brand-blue-dark;
- }
- }
-
- // Nested for specificity (matches h1).
- .llms-widget-content {
- margin: .67em 0;
- color: $color-brand-blue;
- font-size: 2.4em;
- font-weight: 700;
- line-height: 1;
- word-break: break-all;
- }
-
- h2 {
- font-size: 1.8em;
- }
-
- .llms-label {
- box-sizing: border-box;
- font-size: 18px;
- font-weight: 400;
- margin: 0 0 10px 0;
- text-align: center;
- }
-
- .llms-chart {
- width: 100%;
- padding: 10px;
- box-sizing: border-box;
- }
-
- mark.yes {
- background-color: #7ad03a;
- }
-
- .llms-subtitle {
- margin-bottom: 0;
- }
-
- .spinner {
- float: none;
- left: 50%;
- margin: -10px 0 0 -10px;
- position: absolute;
- top: 50%;
- z-index: 2;
- }
-
- &.is-loading {
-
- &:before {
- background: $color-white;
- bottom: 0;
- content: '';
- left: 0;
- opacity: 0.9;
- position: absolute;
- right: 0;
- top: 0;
- z-index: 1;
- }
-
- .spinner {
- visibility: visible;
- }
-
- }
-
- td[colspan="2"] {
- padding-left: 0;
- }
-
- tr.llms-disabled-field {
- opacity: 0.5;
- pointer-events: none;
- }
-
-}
-
-.llms-widget-1-3,
-.llms-widget-1-4,
-.llms-widget-1-5 {
- text-align: center;
-}
-
-
-.llms-widget {
- .llms-widget-info-toggle {
- color: #AAA;
- cursor: pointer;
- font-size: 16px;
- position: absolute;
- right: 20px;
- top: 20px;
- }
-
- &.info-showing {
- .llms-widget-info {
- display: block;
- }
- }
-}
-.llms-widget-info {
- background: $color-cinder;
- color: $color-white;
- bottom: -50px;
- display: none;
- padding: 15px;
- position: absolute;
- text-align: center;
- left: 10px;
- right: 15px;
- z-index: 3;
- &:before {
- content: '';
- border: 12px solid transparent;
- border-bottom-color: $color-cinder;
- left: 50%;
- margin-left: -12px;
- position: absolute;
- top: -24px;
- }
-
- p {
- margin: 0;
- }
-
-}
-
-.llms-widget-row {
- @include clearfix();
-}
-
-.llms-widget-row .no-padding {
- padding: 0 !important;
-}
diff --git a/assets/scss/admin/partials/_grid.scss b/assets/scss/admin/partials/_grid.scss
deleted file mode 100644
index add6846568..0000000000
--- a/assets/scss/admin/partials/_grid.scss
+++ /dev/null
@@ -1,276 +0,0 @@
-/******************************************************************
-
-Grids for Breakpoints
-
-******************************************************************/
-
-// using a mixin since we can't use placeholder selectors
-@mixin grid-col {
- float: left;
- padding-right: 0.75em;
- box-sizing: border-box;
-
-}
-
-// the last column
-.last-col {
- float: right;
- padding-right: 0 !important;
-}
-.last-col:after {
- clear: both;
-}
-
-/*
-Mobile Grid Styles
-These are the widths for the mobile grid.
-There are four types, but you can add or customize
-them however you see fit.
-*/
-@media (max-width: 767px) {
-
- .m-all {
- @include grid-col;
- width: 100%;
- padding-right: 0;
- }
-
- .m-1of2 {
- @include grid-col;
- width: 50%;
- }
-
- .m-1of3 {
- @include grid-col;
- width: 33.33%;
- }
-
- .m-2of3 {
- @include grid-col;
- width: 66.66%;
- }
-
- .m-1of4 {
- @include grid-col;
- width: 25%;
- }
-
- .m-3of4 {
- @include grid-col;
- width: 75%;
- }
-
- .m-right {
- text-align: center;
- }
- .m-center {
- text-align: center;
- }
- .m-left {
- text-align: center;
- }
-
- .d-right {
- text-align: right;
- }
- .d-center {
- text-align: center;
- }
- .d-left {
- text-align: left;
- }
-
-} // end mobile styles
-
-
-/* Portrait tablet to landscape */
-@media (min-width: 768px) and (max-width: 1029px) {
-
- .t-all {
- @include grid-col;
- width: 100%;
- padding-right: 0;
- }
-
- .t-1of2 {
- @include grid-col;
- width: 50%;
- }
-
- .t-1of3 {
- @include grid-col;
- width: 33.33%;
- }
-
- .t-2of3 {
- @include grid-col;
- width: 66.66%;
- }
-
- .t-1of4 {
- @include grid-col;
- width: 25%;
- }
-
- .t-3of4 {
- @include grid-col;
- width: 75%;
- }
-
- .t-1of5 {
- @include grid-col;
- width: 20%;
- }
-
- .t-2of5 {
- @include grid-col;
- width: 40%;
- }
-
- .t-3of5 {
- @include grid-col;
- width: 60%;
- }
-
- .t-4of5 {
- @include grid-col;
- width: 80%;
- }
-
- .d-right {
- text-align: right;
- }
- .d-center {
- text-align: center;
- }
- .d-left {
- text-align: left;
- }
-
-} // end tablet
-
-/* Landscape to small desktop */
-@media (min-width: 1030px) {
-
- .d-all {
- @include grid-col;
- width: 100%;
- padding-right: 0;
- }
-
- .d-1of2 {
- @include grid-col;
- width: 50%;
- }
-
- .d-1of3 {
- @include grid-col;
- width: 33.33%;
- }
-
- .d-2of3 {
- @include grid-col;
- width: 66.66%;
- }
-
- .d-1of4 {
- @include grid-col;
- width: 25%;
- }
-
- .d-3of4 {
- @include grid-col;
- width: 75%;
- }
-
- .d-1of5 {
- @include grid-col;
- width: 20%;
- }
-
- .d-2of5 {
- @include grid-col;
- width: 40%;
- }
-
- .d-3of5 {
- @include grid-col;
- width: 60%;
- }
-
- .d-4of5 {
- @include grid-col;
- width: 80%;
- }
-
- .d-1of6 {
- @include grid-col;
- width: 16.6666666667%;
- }
-
- .d-1of7 {
- @include grid-col;
- width: 14.2857142857%;
- }
-
- .d-2of7 {
- @include grid-col;
- width: 28.5714286%;
- }
-
- .d-3of7 {
- @include grid-col;
- width: 42.8571429%;
- }
-
- .d-4of7 {
- @include grid-col;
- width: 57.1428572%;
- }
-
- .d-5of7 {
- @include grid-col;
- width: 71.4285715%;
- }
-
- .d-6of7 {
- @include grid-col;
- width: 85.7142857%;
- }
-
- .d-1of8 {
- @include grid-col;
- width: 12.5%;
- }
-
- .d-1of9 {
- @include grid-col;
- width: 11.1111111111%;
- }
-
- .d-1of10 {
- @include grid-col;
- width: 10%;
- }
-
- .d-1of11 {
- @include grid-col;
- width: 9.09090909091%;
- }
-
- .d-1of12 {
- @include grid-col;
- width: 8.33%;
- }
-
- .d-right {
- text-align: right;
- }
- .d-center {
- text-align: center;
- }
- .d-left {
- text-align: left;
- }
-
-} // end desktop styles
diff --git a/assets/scss/admin/post-tables/_llms_orders.scss b/assets/scss/admin/post-tables/_llms_orders.scss
deleted file mode 100644
index 27bf992fb0..0000000000
--- a/assets/scss/admin/post-tables/_llms_orders.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-.wp-list-table {
- @include order_status_badges();
-}
-
-#lifterlms-order-transactions .llms-table tfoot th {
- text-align: right;
-}
diff --git a/assets/scss/admin/post-tables/_post-tables.scss b/assets/scss/admin/post-tables/_post-tables.scss
deleted file mode 100644
index f3843b0916..0000000000
--- a/assets/scss/admin/post-tables/_post-tables.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-.llms-post-table-post-filter {
- display: inline-block;
- margin-right: 6px;
- max-width: 100%;
- width: 220px;
-}
diff --git a/assets/scss/builder.scss b/assets/scss/builder.scss
deleted file mode 100644
index f6341b9f07..0000000000
--- a/assets/scss/builder.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-@import "_includes/vars";
-@import "_includes/vars-brand-colors";
-@import "_includes/extends";
-@import "_includes/mixins";
-
-@import "admin/course-builder";
diff --git a/assets/scss/certificates.scss b/assets/scss/certificates.scss
deleted file mode 100644
index 7837f8fc64..0000000000
--- a/assets/scss/certificates.scss
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * Reset.
- */
-body {
- background-color: #fff;
- background-image: none;
- margin: 0 auto;
-}
-
-.header, .footer,
-.wrap-header, .wrap-footer,
-.site-header, .site-footer,
-.nav-primary, .primary-nav {
- display: none;
-}
-
-.llms-certificate-container {
- margin: 40px auto 0;
-}
-
-/**
- * Legacy Template.
- */
-.llms-certificate-container:not(.cert-template-v2) {
-
- padding: 0;
- overflow: hidden;
-
- .certificate-background {
- position: relative;
- z-index: 1;
- width: 100%;
- display: block;
- }
-
- .llms_certificate,
- .llms_my_certificate {
- margin: 80px;
- position: relative;
- z-index: 2;
- }
-
- h1:first-child {
- text-align: center;
- }
-
-}
-
-/**
- * V2 Template
- */
-.llms-certificate-wrapper {
- margin: 0 auto;
-}
-.llms-certificate-container.cert-template-v2 {
- width: 100%;
- height: 100%;
- background-size: 100% 100% !important;
- box-sizing: border-box;
-
- .wp-block-columns .wp-block-column > * {
- margin-top: 0 !important;
- margin-bottom: 0 !important;
- }
-}
-
-/**
- * Certificate Actions Footer.
- */
-.llms-print-certificate {
- margin-top: 40px;
- margin-bottom: 40px;
- text-align: center;
-
- form {
- display: inline;
- }
-}
-
-
-
-@media print {
-
- html, body {
- print-color-adjust: exact !important;
- height: 100%;
- overflow: hidden;
- }
-
- @page { size: auto; }
-
- .no-print {
- display: none;
- }
-
- // Make everything on the page invisible.
- body * {
- visibility: hidden !important;
- background: #fff none;
- }
-
- .site, .site-content {
- overflow: visible;
- }
-
- // Remove all headers, menus and footers.
- header, aside, nav, footer {
- display: none !important;
- }
-
- // Make sure a .container parent doesn't shift the certificate see: https://github.com/gocodebox/lifterlms/issues/1163.
- .single-llms_my_certificate .container,
- .single-llms_certificate .container {
- width: 100%;
- }
-
- // Make only the certificate container and its children visible.
- .llms-certificate-container,
- .llms-certificate-container * {
- visibility: visible !important;
- background: transparent none;
- }
-
- // Position certificate absolutely and center horizontally.
- .llms-certificate-container:not(.cert-template-v2) {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- margin: 0 auto;
- background: #fff none;
- }
-
- .llms-certificate-container.cert-template-v2 {
- margin: 0 auto !important;
- print-color-adjust: exact !important;
- transform: scale( 0.95 ); // Don't ram the edge of the paper.
- }
-
-}
diff --git a/assets/scss/editor.scss b/assets/scss/editor.scss
deleted file mode 100644
index 0c54087c58..0000000000
--- a/assets/scss/editor.scss
+++ /dev/null
@@ -1,37 +0,0 @@
-.llms-block-empty,
-.llms-block-error {
- padding: 1em;
- border: 1px solid #e0e0e0;
- font-size: 16px;
-}
-
-.llms-block-empty {
- font-style: italic;
-}
-
-.wp-block .llms-button-primary {
- text-decoration: none;
-}
-
-.llms-navigation-link-settings .components-panel__row > .components-base-control {
- width: 100%;
-}
-
-.llms-block-icon {
- transform: scale(0.75);
-}
-
-.llms-loop-item {
- .llms-video-wrapper {
- aspect-ratio: 16/9;
- position: relative;
- iframe {
- width: 100%;
- height: 100%;
- position: absolute;
- left: 0;
- top: 0;
- object-fit: cover;
- }
- }
-}
diff --git a/assets/scss/frontend/_checkout.scss b/assets/scss/frontend/_checkout.scss
deleted file mode 100644
index a98c34e0a2..0000000000
--- a/assets/scss/frontend/_checkout.scss
+++ /dev/null
@@ -1,202 +0,0 @@
-.llms-checkout-wrapper {
- .llms-person-login-form-wrapper {
- margin-bottom: 40px;
- }
- form.llms-login {
- display: none;
- }
- .llms-form-heading {
- margin: 0 0 20px;
- }
-}
-
-.llms-checkout {
- position: relative;
-}
-
-.llms-checkout-cols-2 {
- @extend %clearfix;
-
- &.llms-col-2 {
-
- section {
- background-color: $color-white;
- border: 1px solid $color-lightgrey;
- border-radius: $radius-medium;
- padding: 20px;
-
- .llms-form-heading {
- padding: 0;
- }
- }
- }
-
- @media all and (min-width: 800px) {
-
- .llms-checkout-col {
- float: left;
-
- &.llms-col-1 {
- margin-right: 20px;
- width: calc( 58% - 20px );
- }
- &.llms-col-2 {
- margin-left: 20px;
- width: calc( 42% - 20px );
-
- button {
- width: 100%;
- }
- }
- }
-
- }
-
-}
-
- .llms-checkout-section {
- margin-bottom: 40px;
- position: relative;
- }
-
- .llms-checkout-section-content {
- &.llms-form-fields {
- margin: 0px;
- }
-
- .llms-label {
- font-weight: 400;
- }
-
- .llms-order-summary {
- list-style-type: none;
- margin: 0;
- padding: 0;
-
- li {
- list-style-type: none;
- margin: 0 0 15px 0;
-
- }
-
- :not(.llms-label) {
- font-weight: 700;
- }
-
- li.llms-pricing {
- &.on-sale,
- &.has-coupon {
- .price-regular { text-decoration: line-through; }
- }
- }
-
-
- }
-
- .llms-coupon-wrapper {
- border-top: 1px solid $color-border;
- margin-top: 20px;
- padding-top: 20px;
-
- .llms-coupon-entry {
- display: none;
- margin-top: 20px;
- }
- }
-
- }
-
- .llms-form-field.llms-payment-gateway-option {
- align-items: center;
- display: flex;
- gap: 8px;
-
- label + span.llms-description {
- display: inline-block;
- margin-left: 5px;
- }
-
- .llms-description {
- a {
- border: none;
- box-shadow: none;
- text-decoration: none;
- }
- img {
- display: inline;
- max-height: 22px;
- vertical-align: middle;
- }
- }
-
- }
-
- .llms-checkout-wrapper ul.llms-payment-gateways {
- margin: 5px 0 0;
- padding: 0;
- }
- ul.llms-payment-gateways {
- list-style-type: none;
-
- li:last-child:after {
- border-bottom: 1px solid $color-border;
- content: '';
- display: block;
- margin: 20px 0;
- }
-
- .llms-payment-gateway {
- margin-bottom: 30px;
- list-style-type: none;
- &:last-child {
- margin-bottom: none;
- }
-
- &.is-selected {
- .llms-payment-gateway-option label {
- font-weight: 700;
- }
- .llms-gateway-fields {
- display: block;
-
- .llms-notice {
- margin-left: 10px;
- margin-right: 10px;
- }
- }
- }
-
- .llms-form-field {
- padding-bottom: 0;
- }
- }
-
- .llms-gateway-description {
- margin-left: 40px;
- }
-
- .llms-gateway-fields {
- display: none;
- margin: 5px 0 20px;
- }
-
- .llms-payment-gateway-error {
- padding: 0 10px;
- }
- }
-
- .llms-checkout-confirm {
- margin: 0;
- }
-
- .llms-payment-method {
- margin: 10px 10px 0;
- }
-
- .llms-gateway-description {
- p {
- font-size: 14px;
- font-style: italic;
- margin: 0;
- }
- }
diff --git a/assets/scss/frontend/_course.scss b/assets/scss/frontend/_course.scss
deleted file mode 100644
index 637700cbdd..0000000000
--- a/assets/scss/frontend/_course.scss
+++ /dev/null
@@ -1,19 +0,0 @@
-.llms-meta-info {
- margin: 40px 0;
- .llms-meta-title {
- margin: 0;
- }
- .llms-meta {
- p {
- margin-bottom: 0;
- }
- span {
- font-weight: 700;
- }
- }
-}
-.llms-course-progress {
- margin: 40px auto;
- max-width: 480px;
- text-align: center;
-}
diff --git a/assets/scss/frontend/_llms-access-plans.scss b/assets/scss/frontend/_llms-access-plans.scss
deleted file mode 100644
index b04c4c5dfb..0000000000
--- a/assets/scss/frontend/_llms-access-plans.scss
+++ /dev/null
@@ -1,226 +0,0 @@
-.llms-access-plans {
- @extend %clearfix;
-
- @media all and (min-width: 600px) {
- $cols: 1;
- @while $cols <= 5 {
- &.cols-#{$cols} .llms-access-plan {
- width: calc( 100% / $cols );
- }
- $cols: $cols + 1;
- }
- }
-
-}
-
-.llms-free-enroll-form {
- margin-bottom: 0;
-}
-
-.llms-access-plan {
- box-sizing: border-box;
- float: left;
- text-align: center;
- width: 100%;
-
- .llms-access-plan-content,
- .llms-access-plan-footer {
- background: #f1f1f1;
- }
-
- &.featured {
-
- .llms-access-plan-featured {
- background: $color-brand-blue;
- border-top-left-radius: $radius-small;
- border-top-right-radius: $radius-small;
- }
-
- .llms-access-plan-content {
- border-radius: 0;
- }
-
- .llms-access-plan-title {
- border-top-left-radius: 0;
- border-top-right-radius: 0;
- }
-
- .llms-access-plan-footer,
- .llms-access-plan-content {
- border-left: 3px solid $color-brand-blue;
- border-right: 3px solid $color-brand-blue;
- }
-
- .llms-access-plan-footer {
- border-bottom-color: $color-brand-blue;
- }
-
- }
-
- &.on-sale {
- .price-regular {
- text-decoration: line-through;
- .lifterlms-price {
- font-weight: 400;
- }
- }
- }
-
- .stamp {
- background: $color-brand-blue;
- border-radius: $radius-small;
- color: $color-white;
- display: inline-block;
- font-size: 14px;
- font-style: normal;
- font-weight: bold;
- line-height: 1;
- padding: 5px 8px 4px;
- }
-}
-
-.llms-access-plan-featured {
- color: #fff;
- font-size: 14px;
- font-weight: 700;
- letter-spacing: 1px;
- margin: 0 2px 0 2px;
- padding: 5px 0 0;
-}
-
-.llms-access-plan-content {
- border-top-right-radius: $radius-small;
- border-top-left-radius: $radius-small;
- margin: 0 2px 0;
- overflow: hidden;
-
- .llms-access-plan-pricing {
- color: $color-black;
- padding: 20px 0 0;
- }
-
- .llms-form-fields {
- padding: 10px;
- }
-}
-
-.llms-access-plan-title {
- background: $color-brand-blue;
- color: $color-white;
- margin: 0;
- padding: 10px 15px;
-}
-
-.llms-access-plan-pricing {
-
- .llms-price-currency-symbol {
- font-size: 14px;
- vertical-align: top;
- }
-
-}
-
-.llms-access-plan-price {
-
- .lifterlms-price {
- font-weight: 700;
- }
-
- &.sale {
- padding: 5px 0;
- border-top: 1px solid #d0d0d0;
- border-bottom: 1px solid #d0d0d0;
- }
-}
-
-.llms-access-plan-trial,
-.llms-access-plan-schedule,
-.llms-access-plan-sale-end,
-.llms-access-plan-expiration {
- font-size: 16px;
-}
-
-.llms-access-plan-description {
- color: $color-black;
- font-size: 16px;
- padding: 10px 10px 0;
-
- ul {
- margin: 0;
- li {
- border-bottom: 1px solid #d0d0d0;
- list-style-type: none;
- &:last-child {
- border-bottom: none;
- }
- }
- }
-
- div, img, p, ul, li {
- &:last-child { margin-bottom: 0; }
- }
-}
-
-.llms-access-plan-restrictions {
- margin-top: 20px;
-
- .stamp {
- vertical-align: baseline;
- }
-
- ul {
- margin: 5px 0 0 0;
- padding: 0;
-
- li {
- font-size: 14px;
- list-style-type: none;
- margin: 0;
- padding: 0;
- }
- }
-
- a {
- color: $color-orange;
- &:hover {
- color: $color-brand-orange-dark;
- }
- }
-}
-
-.llms-access-plan-footer {
- border-bottom: 3px solid #f1f1f1;
- border-bottom-left-radius: $radius-small;
- border-bottom-right-radius: $radius-small;
- padding: 15px;
- margin: 0 2px 2px 2px;
-
- .button {
- display: inline-block;
- }
-
- .llms-access-plan-pricing {
- padding: 0 0 10px;
- }
-}
-
-.webui-popover-content .llms-members-only-restrictions {
- text-align: center;
- ul,ol,li,p {
- margin: 0;
- padding: 0;
- }
- ul,ol,li {
- list-style-type: none;
- }
- li {
- padding: 8px 0;
- border-top: 1px solid #3b3b3b;
- &:first-child {
- border-top: none;
- }
- a {
- display: block;
- }
- }
-}
diff --git a/assets/scss/frontend/_llms-achievements-certs.scss b/assets/scss/frontend/_llms-achievements-certs.scss
deleted file mode 100644
index 334ae3dee3..0000000000
--- a/assets/scss/frontend/_llms-achievements-certs.scss
+++ /dev/null
@@ -1,110 +0,0 @@
-ul.llms-achievements-loop,
-.lifterlms ul.llms-achievements-loop,
-ul.llms-certificates-loop,
-.lifterlms ul.llms-certificates-loop {
-
- @include clearfix();
- list-style-type: none;
- margin: 0 -10px;
- padding: 0;
-
- li.llms-achievement-loop-item,
- li.llms-certificate-loop-item {
- box-sizing: border-box;
- display: block;
- float: left;
- list-style-type: none;
- margin: 0;
- padding: 10px;
- width: 100%;
- }
-
- @media all and (min-width: 600px) {
- $cols: 1;
- @while $cols <= 5 {
- &.loop-cols-#{$cols} li.llms-achievement-loop-item,
- &.loop-cols-#{$cols} li.llms-certificate-loop-item {
- width: calc( 100% / $cols );
- }
- $cols: $cols + 1;
- }
- }
-
-}
-
-.llms-achievement,
-.llms-certificate {
-
- background: $color-white;
- border: none;
- border-radius: $radius-medium;
- color: $color-black;
- display: block;
- padding: 20px 0;
- text-decoration: none;
- width: 100%;
-
- &:hover {
- background: #eaeaea;
- }
-
- .llms-achievement-img {
- display: block;
- margin: 0 auto;
- max-width: 80%;
- }
-
- .llms-achievement-title {
- color: $color-black;
- font-size: 16px;
- margin: 0;
- padding: 10px;
- text-align: center;
- }
-
- .llms-certificate-title {
- color: $color-black;
- font-size: 16px;
- margin: 0;
- padding: 0 0 10px;
- }
-
- .llms-achievement-info,
- .llms-achievement-date {
- display: none;
- }
-
- .llms-achievement-content {
- padding: 20px;
- &:empty {
- padding: 0;
- }
- *:last-child {
- margin-bottom: 0;
- }
- }
-
-}
-
-.llms-certificate {
- border: 4px double $color-border;
- padding: 20px 10px;
- background: $color-white;
- text-align: center;
- &:hover {
- background: $color-white;
- border-color: #eaeaea;
- }
-}
-
-.llms-achievement-modal {
- .llms-achievement {
- background: #fff;
- }
- .llms-achievement-info {
- display: block;
- }
- .llms-achievement-title {
- display: none;
- }
-}
diff --git a/assets/scss/frontend/_llms-author.scss b/assets/scss/frontend/_llms-author.scss
deleted file mode 100644
index 63f77ead98..0000000000
--- a/assets/scss/frontend/_llms-author.scss
+++ /dev/null
@@ -1,69 +0,0 @@
-.llms-author {
- .name {
- margin-left: 5px;
- }
- .label {
- margin-left: 5px;
- }
- .avatar {
- border-radius: 50%;
- }
- .bio {
- margin-top: 5px;
- }
-}
-
-
-.llms-instructor-info {
- margin: 40px 0;
- .llms-meta-title {
- margin: 0;
- }
- .llms-instructors {
-
- .llms-col {
- &:first-child .llms-author {
- margin-left: 0;
- }
- &:last-child .llms-author {
- margin-right: 0;
- }
- }
-
- .llms-author {
- background: $color-white;
- border: 1px solid $color-border;
- border-top: 4px solid $color-blue;
- border-bottom-right-radius: $radius-small;
- border-bottom-left-radius: $radius-small;
- color: $color-black;
- text-align: center;
- margin: 45px 0 0;
- padding: 0 20px 20px;
-
- .avatar {
- background: $color-brand-blue;
- border: 4px solid $color-blue;
- display: block;
- margin: -35px auto 10px;
- }
-
- .llms-author-info {
- display: block;
- // margin: 0 0 5px;
- &.name {
- font-weight: 700;
- }
- &.label {
- font-size: 85%;
- }
- &.bio {
- font-size: 90%;
- margin-bottom: 0;
- }
- }
- }
-
- }
-
-}
diff --git a/assets/scss/frontend/_llms-notifications.scss b/assets/scss/frontend/_llms-notifications.scss
deleted file mode 100644
index 134078dd30..0000000000
--- a/assets/scss/frontend/_llms-notifications.scss
+++ /dev/null
@@ -1,214 +0,0 @@
-.llms-notification {
-
- @include clearfix();
-
- background: $color-white;
- box-shadow: 0 1px 2px -2px #333, 0 1px 1px -1px #333;
- border-top: 4px solid $color-blue;
- color: $color-black;
- opacity: 0;
- padding: 12px;
- position: fixed;
- right: -800px;
- top: 24px;
- transition:
- opacity 0.4s ease-in-out,
- right 0.4s ease-in-out,
- ;
- visibility: hidden;
- width: auto;
- z-index: 9999999;
-
- &.visible {
- left: 12px;
- opacity: 1;
- right: 12px;
- transition:
- opacity 0.4s ease-in-out,
- right 0.4s ease-in-out,
- top 0.1s ease-in-out,
- background 0.2s ease-in-out,
- transform 0.2s ease-in-out
- ;
- visibility: visible;
-
- &:hover {
- .llms-notification-dismiss {
- opacity: 1;
- }
- }
-
- }
-
- .llms-notification-content {
- align-items: center;
- display: flex;
-
- }
-
- .llms-notification-main {
- align-self: flex-start;
- flex: 4;
- order: 2;
- }
-
- .llms-notification-title {
- color: $color-black;
- font-size: 18px;
- margin: 0;
- }
-
- .llms-notification-body {
- font-size: 14px;
- line-height: 1.4;
- p, li {
- font-size: inherit;
- }
- p {
- margin-bottom: 8px;
- img {
- max-width: 100%;
- }
- }
-
- .llms-mini-cert {
- background: #f6f6f6;
- border: 1px solid #d0d0d0;
- box-shadow: inset 0 0 0 3px #fefefe, inset 0 0 0 4px #dedede;
- padding: 16px 16px 24px;
- margin-top: 12px;
- .llms-mini-cert-title {
- font-size: 16px;
- font-weight: 700;
- margin: 12px auto;
- text-align: center;
- }
- .llms-mini-cert--body {
- width: 100%;
- > div {
- &:nth-child(1) { width:65%; }
- &:nth-child(2) { width:35%; }
- &:nth-child(3) { width:85%; }
- &:nth-child(4) { width:75%; margin-top: 18px; }
- &:nth-child(5) { width:70%; }
- &:nth-child(6) { margin-left: 12px; margin-bottom:-24px; } // Dot.
- &:nth-child(7) { width:65%; margin-right: 12px; }
- }
- }
- .llms-mini-cert--mock-line {
- border-radius: 2px;
- height: 8px;
- background: #b0b0b0;
- background-image: linear-gradient( to right, #b0b0b0 0%, #a0a0a0 20%, #b0b0b0 40%, #b0b0b0 100% );
- background-repeat: no-repeat;
- margin: 4px auto;
- }
- .llms-mini-cert--mock-dot {
- background: #b0b0b0;
- border-radius: 50%;
- display: inline-block;
- content: '';
- height: 24px;
- width: 24px;
- }
- p { margin-bottom: 0; }
- }
- }
-
- .llms-notification-aside {
- align-self: flex-start;
- flex: 1;
- margin-right: 12px;
- order: 1;
- }
-
- .llms-notification-icon {
- display: block;
- max-width: 64px;
- }
-
- .llms-notification-footer {
- border-top: 1px solid #e5e5e5;
- font-size: 12px;
- margin-top: 12px;
- padding: 6px 6px 0;
- text-align: right;
-
- a {
- color: $color-black;
- }
- }
-
- .llms-notification-dismiss {
- color: $color-danger;
- cursor: pointer;
- font-size: 22px;
- position: absolute;
- right: 10px;
- top: 8px;
- transition: opacity 0.4s ease-in-out;
- }
-
-}
-
-.llms-sd-notification-center {
-
- .llms-notification-list,
- .llms-notification-list-item {
- list-style-type: none;
- margin: 0;
- padding: 0;
- }
-
- .llms-notification-list-item {
- &:hover .llms-notification {
- background: #fcfcfc;
- }
- }
-
- .llms-notification {
- opacity: 1;
- border-top: 1px solid #e5e5e5;
- left: auto;
- padding: 24px;
- position: relative;
- right: auto;
- top: auto;
- visibility: visible;
- width: auto;
- .llms-notification-aside {
- max-width: 64px;
- }
- .llms-notification-footer {
- border: none;
- padding: 0;
- text-align: left;
- }
- .llms-progress {
- display: none !important;
- }
- .llms-notification-date {
- color: #515151;
- float: left;
- margin-right: 6px;
- }
- .llms-mini-cert {
- margin: 0 auto;
- max-width: 380px;
- }
- }
-}
-
-@media all and (min-width: 480px) {
- .llms-notification {
- right: -800px;
- width: 360px;
- &.visible {
- left: auto;
- right: 24px;
- }
- .llms-notification-dismiss {
- opacity: 0;
- }
- }
-}
diff --git a/assets/scss/frontend/_llms-outline-collapse.scss b/assets/scss/frontend/_llms-outline-collapse.scss
deleted file mode 100644
index ad109277a6..0000000000
--- a/assets/scss/frontend/_llms-outline-collapse.scss
+++ /dev/null
@@ -1,39 +0,0 @@
-.llms-widget-syllabus--collapsible {
-
- .llms-section {
-
- .section-header {
-
- cursor: pointer;
-
- }
-
- &.llms-section--opened {
-
- .llms-collapse-caret {
- .fa-caret-right { display: none; }
- }
-
- }
-
- &.llms-section--closed {
-
- .llms-collapse-caret {
- .fa-caret-down { display: none; }
- }
-
- .llms-lesson {
- display: none;
- }
-
- }
-
- }
-
- .llms-syllabus-footer {
-
- text-align: left;
-
- }
-
-}
diff --git a/assets/scss/frontend/_llms-pagination.scss b/assets/scss/frontend/_llms-pagination.scss
deleted file mode 100644
index f466b37ffa..0000000000
--- a/assets/scss/frontend/_llms-pagination.scss
+++ /dev/null
@@ -1,31 +0,0 @@
-.llms-pagination {
-
- ul {
- list-style-type: none;
- margin: 40px 0;
- padding: 0;
- @extend %cf;
-
- li {
-
- float: left;
-
- a {
- border-bottom: 0;
- text-decoration: none;
- }
-
- .page-numbers {
- padding: 0.5em;
- text-decoration: underline;
-
- &.current {
- text-decoration: none;
- }
- }
-
- }
-
- }
-
-}
\ No newline at end of file
diff --git a/assets/scss/frontend/_llms-progress.scss b/assets/scss/frontend/_llms-progress.scss
deleted file mode 100644
index d9911c74e0..0000000000
--- a/assets/scss/frontend/_llms-progress.scss
+++ /dev/null
@@ -1,32 +0,0 @@
-/* progress bar */
-.llms-progress {
- clear: both;
- display: flex;
- flex-direction: row-reverse;
- position: relative;
- height: 1em;
- width: 100%;
- margin: 15px 0;
-}
-
-.llms-progress .llms-progress-bar {
- background-color: $color-border;
- position: relative;
- height: .4em;
- top: .3em;
- width: 100%;
-}
-
-.llms-progress .progress-bar-complete {
- background-color: $color-brand-pink;
- height: 100%;
-}
-
-.progress__indicator {
- float: right;
- text-align: right;
- height: 1em;
- line-height: 1em;
- margin-left: 5px;
- white-space: nowrap;
-}
diff --git a/assets/scss/frontend/_llms-quizzes.scss b/assets/scss/frontend/_llms-quizzes.scss
deleted file mode 100644
index 1719261690..0000000000
--- a/assets/scss/frontend/_llms-quizzes.scss
+++ /dev/null
@@ -1,368 +0,0 @@
-.single-llms_quiz {
- #llms-quiz-wrapper {
- @import "../_includes/quiz-result-question-list";
- }
- .llms-return {
- margin-bottom: 10px;
- }
-
- .llms-quiz-results {
- @include clearfix();
-
- .llms-donut {
- &.passing {
- color: $color-success;
- svg path {
- stroke: $color-success;
- }
- }
- &.pending {
- color: #555;
- svg path {
- stroke: #555;
- }
- }
- &.failing {
- color: $color-danger;
- svg path {
- stroke: $color-danger;
- }
- }
- }
-
- .llms-quiz-results-aside,
- .llms-quiz-results-main,
- .llms-quiz-results-history {
- margin-bottom: 20px;
- }
-
-
- @media all and (min-width: 600px) {
- .llms-quiz-results-aside {
- float: left;
- width: 220px;
-
- + .llms-quiz-results-main {
- float: right;
- width: calc( 100% - 300px );
- + .llms-quiz-results-history {
- float: right;
- width: calc( 100% - 300px );
- }
- }
- }
- .llms-quiz-results-history {
- clear: right;
- }
- }
-
- }
-
- ul.llms-quiz-meta-info {
- list-style-type: none;
- margin: 0;
- padding: 0;
-
- li {
- list-style-type: none;
- margin: 10px 0 0;
- padding: 0
- }
- }
-
- ul.llms-quiz-meta-info {
- margin-bottom: 10px;
- }
-
- .llms-quiz-buttons {
- margin-top: 10px;
- text-align: left;
-
- form { display: inline-block; }
- }
-
-}
-
-.llms-quiz-question-wrapper {
- min-height: 140px;
- position: relative;
-
- .llms-quiz-loading {
- bottom: 20px;
- left: 0;
- position: absolute;
- right: 0;
- text-align: center;
- z-index: 1;
- }
-
- .llms-question-image {
-
- img {
- height: auto;
- max-width: 100%;
- }
-
- }
-}
-
-.llms-quiz-ui {
- position: relative;
-
- .llms-quiz-header {
- align-items: center;
- display: flex;
- margin: 0 0 40px;
- }
-
- .llms-progress {
- background-color: $color-border;
- flex-direction: row;
- height: 8px;
- margin: 0;
- overflow: hidden;
- .progress-bar-complete {
- transition: width 0.3s ease-in;
- width: 0;
- }
- }
-
- .llms-error {
- @include clearfix();
- background: rgba( $color-red, .15 );
- border: 1px solid $color-red;
- border-radius: $radius-small;
- margin: 20px 0;
- padding: 15px;
-
- a {
- color: $color-red;
- float: right;
- font-size: 22px;
- line-height: 1;
- text-decoration: none;
- }
-
- }
-
- .llms-quiz-counter {
- display: none;
-
- color: #6a6a6a;
- float: right;
- font-size: 18px;
-
- .llms-sep {
- margin: 0 5px;
- }
- }
-
- .llms-quiz-nav {
- margin-top: 20px;
- button {
- margin: 0 10px 0 0;
- }
- }
-
-}
-
-// single question wrapper
-.llms-question-wrapper {
-
- .llms-question-text {
- font-size: 30px;
- font-weight: 400;
- margin-bottom: 15px;
- }
-
- ol.llms-question-choices {
- list-style-type: none;
- margin: 0;
- padding: 0;
-
- li.llms-choice {
- border-bottom: 1px solid #e8e8e8;
- margin: 0;
- padding: 0;
- position: relative;
-
- &:last-child {
- border-bottom: none;
- }
-
- &.type--picture {
- border-bottom: none;
- label {
- display: inline-block;
- padding: 0;
- }
- .llms-marker {
- bottom: 10px;
- margin: 0;
- position: absolute;
- right: 10px;
- }
- .llms-choice-image {
- margin: 2px;
- padding: 20px;
- transition: background 0.4s ease;
- img {
- display: block;
- height: auto;
- width: 100%;
- }
- }
- input:checked ~ .llms-choice-image {
- background: #efefef
- }
- }
-
- input {
- display: none;
- left: 0;
- pointer-events: none;
- position: absolute;
- top: 0;
- visibility: hidden;
- }
-
- label {
- display: block;
- margin: 0;
- padding: 10px 20px;
- position: relative;
- // &:hover {
- &.hovered {
- .llms-marker:not(.type--lister) {
- .iterator {
- display: none;
- }
- .fa {
- display: inline;
- }
- }
- }
- }
-
- .llms-marker {
-
- background: $color-white;
- color: $color-black;
- display: inline-block;
- font-size: 20px;
- height: 40px;
- line-height: 40px;
- margin-right: 10px;
- text-align: center;
- transition: all 0.2s ease;
- vertical-align: middle;
- width: 40px;
-
- .fa {
- display: none;
- }
-
- &.type--lister,
- &.type--checkbox { border-radius: 4px; }
- &.type--radio { border-radius: 50%; }
-
- }
-
- input:checked + .llms-marker {
- background: $color-brand-pink;
- color: #fff;
- .iterator {
- display: none;
- }
- .fa {
- display: inline;
- }
- }
-
- .llms-choice-text {
- display: inline-block;
- font-size: 18px;
- font-weight: 400;
- line-height: 1.6;
- margin: 0;
- padding: 0;
- vertical-align: middle;
- width: calc( 100% - 60px );
- }
-
- }
- }
-
-}
-
-.llms-quiz-timer {
- background: #fff;
- border: 1px solid $color-green;
- border-radius: 4px;
- color: $color-green;
- float: right;
- font-size: 18px;
- line-height: 1;
- margin-left: 20px;
- padding: 8px 12px;
- position: relative;
- white-space: nowrap;
- z-index: 1;
-
- &.color-half {
- border-color: $color-orange;
- color: $color-orange
- }
-
- &.color-empty {
- border-color: $color-danger;
- color: $color-danger
- }
-
- .llms-tiles {
- display: inline-block;
- margin-left: 5px;
- }
-}
-
-
-// /* My Quizzes */
-// .llms-quiz-results {
-// @extend %cf;
-// font-family: "Open Sans",Verdana,Geneva,sans-serif,sans-serif;
-// position: relative;
-// }
-// .llms-quiz-results > h3 {
-// background-color: #f5f5f5;
-// padding: 4px;
-// }
-
-// .llms-quiz-result-details {
-// float: left;
-// ul {
-// list-style-type: none;
-// float: left;
-// li {
-// list-style-type: none;
-// font-size: 20px;
-// }
-// }
-// }
-// .llms-attempts {
-// font-weight: bold;
-// }
-
-// .llms-pass-perc {
-// font-weight: bold;
-// }
-// .llms-content-block {
-// margin: 6px 0;
-// }
-// .llms-question-wrapper {
-// margin: 40px 0 20px 0;
-// }
-// .llms-question-count {
-// margin-bottom: 20px;
-// }
-
-
diff --git a/assets/scss/frontend/_llms-table.scss b/assets/scss/frontend/_llms-table.scss
deleted file mode 100644
index 0d015d7265..0000000000
--- a/assets/scss/frontend/_llms-table.scss
+++ /dev/null
@@ -1,60 +0,0 @@
-.llms-table {
- border: 1px solid $color-border;
- border-spacing: 0;
- width: 100%;
-
- thead {
- th,td {
- font-weight: 700;
- }
- }
-
- tbody {
- tr:nth-child( odd ) {
- td, th {
- background: #f9f9f9;
- }
- }
- tr:last-child {
- border-bottom-width: 0;
- }
- }
-
- tfoot {
- tr {
- background: #f9f9f9;
- .llms-pagination .page-numbers {
- margin: 0;
- }
- .llms-table-sort {
- text-align: right;
- form, select, input, button {
- margin: 0;
- }
- }
- }
- }
-
- th {
- font-weight: 700;
- }
-
- th, td {
- border-bottom: 1px solid $color-border;
- padding: 15px 20px;
-
- // launchpad compat...
- &:first-child { padding-left: 12px; }
- &:last-child { padding-right: 12px; }
-
- }
-
-}
-
-// launchpad compat...
-#page .llms-table tfoot label {
- display: inline;
-}
-#page .llms-table tfoot select {
- height: auto;
-}
diff --git a/assets/scss/frontend/_loop.scss b/assets/scss/frontend/_loop.scss
deleted file mode 100644
index ed27dcc482..0000000000
--- a/assets/scss/frontend/_loop.scss
+++ /dev/null
@@ -1,270 +0,0 @@
-.llms-loop-list {
- @extend %clearfix;
-
- list-style: none;
- margin: 0 -10px;
- padding: 0;
-
- @media all and (min-width: 600px) {
- $cols: 1;
- @while $cols <= 6 {
- &.cols-#{$cols} .llms-loop-item {
- width: calc( 100% / $cols );
- }
- $cols: $cols + 1;
- }
- }
-
-
-}
-
-.llms-loop-item {
- float: left;
- list-style: none;
- margin: 0;
- padding: 0;
- width: 100%;
-}
-
-
- .llms-loop-item-content {
- background: $color-white;
- border: 1px solid $color-border;
- border-radius: $radius-small;
- overflow: hidden;
- padding-bottom: 15px;
- margin: 10px;
-
- .llms-loop-link {
- color: $color-black;
- display: block;
- text-decoration: none;
- &:visited {
- color: $color-black;
- }
- }
-
- .llms-featured-image {
- display: block;
- max-width: 100%;
- }
-
- .llms-loop-title {
- color: $color-black;
- margin: 15px 0;
- &:hover {
- color: $color-brand-blue;
- }
- }
-
- .llms-meta,
- .llms-author,
- .llms-loop-title {
- padding: 0 15px;
- }
-
- .llms-meta,
- .llms-author {
- color: $color-cinder;
- display: block;
- font-size: 14px;
- margin-bottom: 10px;
- &:last-child {
- margin-bottom: 0;
- }
- }
-
- .llms-author {
- align-items: center;
- display: flex;
- gap: 5px;
- }
-
- .llms-featured-img-wrap {
- overflow: hidden;
- }
-
- p {
- margin-bottom: 0;
- }
-
- .llms-progress {
- margin: 0;
- height: .4em;
-
- .progress__indicator {
- display: none;
- }
-
- .llms-progress-bar {
- background-color: #f6f6f6;
- right: 0;
- top: 0;
- }
- }
-
- }
-
-
-
-// .llms-membership-list .memberships {
-// border-top: 1px solid #f6f6f6;
-// width: 100%;
-// display: inline-block;
-// text-align: center;
-// list-style: none;
-// clear: both;
-// margin: 0;
-// padding: 0;
-// }
-
-
-
-// .llms-course-list {
-
-// .llms-membership-link {
-// @extend %llms-element;
-
-// display: block
-// }
-
-// .llms-membership-footer {
-// border-top: 3px solid $color-white;
-// margin: 15px -15px 0;
-// padding: 15px 15px 0;
-// text-align: center;
-// }
-
-// }
-
-
-
-
-// .llms-membership-list .memberships li {
-// width: 300px;
-// margin: 15px;
-// list-style: none;
-// vertical-align: top;
-// display: inline-block;
-// text-align: left;
-// }
-
-// .llms-membership-list .memberships li.first {
-// margin-left: 0;
-// }
-
-// .llms-membership-list .memberships li.last {
-// margin-right: 15px;
-// }
-
-// .llms-membership-list .memberships li .llms-title {
-// display: block;
-// font-weight: 700;
-// margin-bottom: .5em;
-// font-size: 18px;
-// text-decoration: none;
-// line-height: 30px;
-// }
-
-// .llms-membership-list .memberships li .llms-price {
-// display: block;
-// font-weight: 700;
-// // margin-bottom: .5em;
-// // font-size: 24px;
-// text-decoration: none;
-// line-height: 30px;
-// }
-
-// .llms-course-list {
-// //margin: 30px 0;
-// padding: 30px;
-// //background: #FFF;
-// // border-radius: 2px;
-// display: inline-block;
-// width: 100%;
-// box-sizing: border-box;
-
-// .llms-course-link {
-// @extend %llms-element;
-
-// display: block
-// }
-
-// .llms-course-footer {
-// border-top: 3px solid $color-white;
-// margin: 15px -15px 0;
-// padding: 15px 15px 0;
-// text-align: center;
-// }
-
-// .llms-progress {
-// margin-top: 0;
-// // .progress-bar {
-// // background-color: $color-white;
-// // }
-// }
-
-// }
-
-// .llms-course-list .courses {
-// //border-top: 1px solid #f6f6f6;
-// width: 100%;
-// display: inline-block;
-// text-align: center;
-// list-style: none;
-// clear: both;
-// margin: 0;
-// padding: 0;
-// }
-
-// .llms-course-list .courses li {
-// width: 300px;
-// padding-top: 0; // twentyfifteen compat
-// margin: 15px;
-// list-style: none;
-// vertical-align: top;
-// display: inline-block;
-// text-align: left;
-// }
-// @media screen and (max-width: $break-small) {
-// .llms-course-list {
-// padding: 30px 10px;
-
-// .courses li {
-// width: auto;
-// }
-// }
-// }
-
-// // .llms-course-list .courses li.first {
-// // margin-left: 0;
-// // }
-
-// .llms-course-list .courses li.last {
-// margin-right: 15px;
-// }
-
-// .llms-course-list .courses li .llms-title {
-// display: block;
-// font-weight: 700;
-// margin-bottom: .5em;
-// font-size: 18px;
-// text-decoration: none;
-// line-height: 30px;
-// }
-
-// .llms-course-list .courses li .llms-price {
-// display: block;
-// font-weight: 700;
-// // margin-bottom: .5em;
-// // font-size: 24px;
-// text-decoration: none;
-// line-height: 30px;
-// }
-
-
-
-
-// .courses a.llms-course-link:hover {
-// text-decoration: none;
-// }
diff --git a/assets/scss/frontend/_main.scss b/assets/scss/frontend/_main.scss
deleted file mode 100644
index c6d7b8cac2..0000000000
--- a/assets/scss/frontend/_main.scss
+++ /dev/null
@@ -1,516 +0,0 @@
-
-
-
-
-.llms-membership-image {
- display: block;
- margin: 0 auto;
-}
-
-
-
-.llms-course-image {
- display: block;
- margin: 0 auto;
- max-width: 100%;
-}
-.llms-featured-image {
- display: block;
- margin: 0 auto;
-}
-.llms-image-thumb {
- width: 150px;
-}
-
-// Responsive Videos.
-.llms-video-wrapper {
-
- .center-video {
- height: auto;
- max-width: 100%;
- overflow: hidden;
- position: relative;
- padding-top: 56.25%;
- text-align: center;
-
- & > .wp-video,
- .fluid-width-video-wrapper,
- iframe, object, embed {
- height: 100%;
- left: 0;
- position: absolute;
- top: 0;
- width: 100%;
- }
-
- & > .wp-video {
- width: 100% !important;
- }
- .fluid-width-video-wrapper {
- padding-top: 0 !important;
- }
- }
-
-}
-
-
-
-
-
-
-
-
-
-
-
-.clear {
- clear: both;
- width: 100%;
-}
-.llms-featured-image {
- text-align: center;
-}
-
-#main-content .llms-payment-options p {
- margin: 0;
- font-size: 16px;
-}
-
-.llms-option {
- display: block;
- position: relative;
- margin: 20px 0;
- padding-left:40px;
- font-size: 16px;
-
- label {
- cursor: pointer;
- position: static;
- }
-}
-.llms-option:first-child {
- margin-top:0;
-}
-.llms-option:last-child {
- margin-bottom:0;
-}
-#main-content .llms-option:last-child {
- margin-bottom:0;
-}
-
-.llms-option input[type="radio"] {
- display: block;
- position: absolute;
- top:3px;
- left:0;
- z-index: 0;
-}
-
-.llms-option input[type="radio"] {
- display: inline-block;
-}
-.llms-option input[type="radio"] + label span.llms-radio {
- display: none;
-}
-
-.llms-option input[type="radio"] + label span.llms-radio {
- appearance: none;
-
- z-index: 20;
- position: absolute;
- top: 0;
- left: -2px;
- display: inline-block;
- width: 24px;
- height: 24px;
- border-radius: 50%;
- cursor: pointer;
- vertical-align: middle;
- box-shadow: hsla(0,0%,100%,.15) 0 1px 1px, inset hsla(0,0%,0%,.5) 0 0 0 1px;
-
- background: #efefef;
- background-image: radial-gradient(ellipse at center, $color-red 0%,$color-red 40%,#efefef 45%);
- background-repeat: no-repeat;
-
- transition: background-position .15s cubic-bezier(.8, 0, 1, 1);
-}
-.llms-option input[type="radio"]:checked + label span.llms-radio {
- transition: background-position .2s .15s cubic-bezier(0, 0, .2, 1);
-}
-
-.llms-option input[type="radio"] + label span.llms-radio {
- background-position: -24px 0;
-}
-.llms-option input[type="radio"]:checked + label span.llms-radio {
- background-position: 0 0;
-}
-
-.llms-option input[type="submit"] {
- border:none;
- background:$color-red;
- color:#fff;
- font-size:20px;
- padding:10px 0;
- border-radius:3px;
- cursor:pointer;
- width:100%;
-}
-.llms-styled-text {
- padding: 14px 0;
-}
-.llms-notice-box {
- border-radius: 3px;
- z-index: 10;
- margin: 10px 0;
- padding: 15px 20px;
- //background: #fffef4;
- border: 1px solid #ccc;
- list-style-type: none;
- width: 100%;
- overflow: auto;
- input[type="text"] {
- height: auto;
- }
- .col-1-1 {
- width: 100%;
- input[type=text] {
- width: 100%;
- }
- }
- .col-1-2 {
- width: 50%;
- float: left;
- @media screen and (max-width: $break-medium) {
- width: 100%;
- }
- }
- .col-1-3 {
- width: 33%;
- float: left;
- margin-right: 10px;
- }
- .col-1-4 {
- width: 25%;
- float: left;
- margin-right: 10px;
- @media screen and (max-width: $break-medium) {
- width: 100%;
- }
- }
- .col-1-6 {
- width: 16.6%;
- float: left;
- margin-right: 10px;
- }
- .col-1-8 {
- width: 11%;
- float: right;
- }
- .llms-pad-right {
- padding-right: 10px;
- @media screen and (max-width: $break-medium) {
- padding-right: 0;
- }
- }
-}
-input[type="text"].cc_cvv,
-#cc_cvv {
- margin-right: 0;
- width: 23%;
- float: right;
-}
-.llms-clear-box {
- border-radius: 3px;
- z-index: 10;
- margin: 10px 0;
- padding: 15px 20px;
- list-style-type: none;
- width: 100%;
- overflow: auto;
-}
-.llms-price-label {
- font-weight: normal;
-}
-.llms-final-price {
- font-weight: bold;
- float: right;
-}
-.llms-center-content {
- text-align: center;
-}
-.llms-input-text {
- background-color: #fff;
- border: 1px solid #ddd;
- color: #333;
- font-size: 18px;
- font-weight: 300;
- padding: 16px;
- width: 100%;
-}
-.llms-price {
- margin-bottom: 0;
- font-weight: bold;
-}
-.llms-price-loop {
- margin-bottom: 0;
- font-weight: bold;
-}
-
-// hentry overrides
-.courses .entry {
- padding: 0
-}
-.list-view .site-content .llms-course-list .hentry, .list-view .site-content .llms-membership-list .hentry {
- border-top: 0;
- padding-top: 0;
-}
-.llms-content {
- width: 100%;
-}
-
-.llms-lesson-button-wrapper {
- width: 100%;
- display: block;
- clear: both;
- text-align: center;
-}
-.llms-template-wrapper {
- width: 100%;
- display: block;
- clear: both;
-}
-.llms-button-wrapper {
- width: 100%;
- display: block;
- clear: both;
- text-align: center;
-}
-
-
-//custom select box
-.llms-styled-select {
- border: 1px solid #ccc;
- box-sizing: border-box;
- border-radius: 3px;
- overflow: hidden;
- position: relative;
-}
-.llms-styled-select, .llms-styled-select select {
- width: 100%;
-}
-select:focus { outline: none; }
-.llms-styled-select select {
- height: 34px;
- padding: 5px 0 5px 5px;
- background: transparent;
- border: none;
- -webkit-appearance: none;
- font-size: 16px;
- color: #444444;
-}
-
-@-moz-document url-prefix(){
- .--ms-styled-select select { width: 110%; }
-}
-
-.llms-styled-select .fa-sort-desc {
- position: absolute;
- top: 0;
- right: 12px;
- font-size: 24px;
- color: #ccc;
-}
-
-select::-ms-expand { display: none; }
-
-_:-o-prefocus, .selector {
- .llms-styled-select { background: none; }
-}
-
-.llms-form-item-wrapper {
- margin-bottom: 1em;
-}
-
-/* Circle Graph */
-.llms-progress-circle {
- position: relative;
- width: 200px;
- height: 200px;
- float: left;
-}
-
-.llms-progress-circle-count {
- top: 27%;
- position: absolute;
- width: 94%;
- text-align: center;
- color: #666;
- font-size:44px;
-}
-.llms-progress-circle svg {
- position: absolute;
- width: 200px;
- height: 200px;
-}
-.llms-progress-circle circle {
- fill: transparent;
-}
-svg .llms-background-circle {
- fill: transparent;
- stroke-width: 10px;
- stroke: #f1f2f1;
- stroke-dasharray: 430;
-}
-
-svg .llms-animated-circle {
- fill: transparent;
- stroke-width: 10px;
- stroke: #e5554e;
- stroke-dasharray: 430;
- stroke-dashoffset: 430 - 20
-}
-
-
-
-
-
-
-
-.llms-widget-syllabus {
-
- .llms-lesson.current-lesson .lesson-title {
- font-weight: 700;
- }
-
- .section-header {
- display: flex;
- gap: 5px;
-
- .llms-collapse-caret {
- text-align: left;
- width: 14px;
- }
- }
-
- .llms-lesson-complete, .lesson-complete-placeholder {
- font-size: 18px;
- margin-right: 5px;
- color: #ccc;
- &.done {
- color: $color-brand-blue;
- }
- }.section-title {
- font-weight: bold;
- }.lesson-title {
- a {
- text-decoration: underline;
- }
- &.done {
- a {
- color: $color-darkgrey;
- text-decoration: line-through;
- }
- }
- }
- ul {
- list-style-type: none;
- margin: 0;
- padding: 0;
- li {
- list-style-type: none;
- margin: 0 0 10px 0;
- ul {
- margin: 0 0 15px 0;
- li {
- align-items: flex-start;
- display: flex;
- margin: 0 0 10px 0;
- padding: 0;
- }
- }
- }
- }
-}
-
-
-
-.llms-remove-coupon {
- float: right;
-}
-
-
-
-
-
-/*.llms-lesson-link-locked, .llms-lesson-link-locked:hover {
- background: #f1f1f1;
- display: block;
- color: #a6a6a6;
- min-height: 85px;
- padding: 15px;
- text-decoration: none;
- position: relative;
-}*/
-
-.llms-lesson-preview.is-complete .llms-lesson-link-locked {
- padding-left: 75px;
-}
-
-.llms-lesson-tooltip { display: none;
- position:absolute;
- color: #000000;
- background-color: #c0c0c0;
- padding:.25em;
- border-radius: 2px;
- z-index: 100;
- top:0;
- left:50%;
- text-align: center;
- -webkit-transform: translateX(-50%) translateY(-100%);
- transform: translateX(-50%) translateY(-100%);
- }
-
-/* arrows - :after */
-.llms-lesson-tooltip:after {
- content: "";
- width: 0;
- height: 0;
- border-top: 8px solid #c0c0c0;
- border-left: 8px solid transparent;
- border-right: 8px solid transparent;
- position:absolute;
- bottom:-8px;
- left:50%;
- transform: translateX(-50%);
-}
-
-.llms-lesson-tooltip.active {
- display: inline-block;
-}
-
-// Favorites.
-.llms-favorite-wrapper {
- cursor: pointer;
-
- .fa-heart {
- color: #EF476F;
- }
-}
-
-.llms-has-favorite .llms-parent-course-link {
- display: inline-block;
- margin-bottom: 20px;
-
- + .llms-favorite-wrapper {
- float: right;
- margin: 0;
- }
-}
-
-.llms-syllabus-wrapper .llms-has-favorite {
- text-align: left;
-
- .llms-favorite-wrapper {
- display: inline-block;
- }
-}
diff --git a/assets/scss/frontend/_notices.scss b/assets/scss/frontend/_notices.scss
deleted file mode 100644
index 8ec3f459d0..0000000000
--- a/assets/scss/frontend/_notices.scss
+++ /dev/null
@@ -1,46 +0,0 @@
-.llms-notice {
- background: rgba( $color-brand-blue, .3 );
- border-color: $color-brand-blue;
- border-style: solid;
- border-width: 1px;
- border-radius: $radius-small;
- padding: 15px;
- margin-bottom: 40px;
-
- a {
- color: inherit;
- }
-
- p, ul {
- &:last-child { margin-bottom: 0; }
- }
-
- li {
- list-style-type: none;
- }
-
- &.llms-debug {
- background: rgba( #cacaca, .3 );
- border-color: #cacaca;
- }
-
- &.llms-error {
- background: rgba( $color-red, .15 );
- border-color: $color-red;
- }
-
- &.llms-success {
- background: rgba( $color-green, .15 );
- border-color: $color-green;
- }
-
-}
-
-// this helps genesis and numerous other themes out a bit
-// by being slightly more specific
-.entry-content .llms-notice {
- margin: 0 0 40px;
- li {
- list-style-type: none;
- }
-}
diff --git a/assets/scss/frontend/_reviews.scss b/assets/scss/frontend/_reviews.scss
deleted file mode 100644
index 6df33a0307..0000000000
--- a/assets/scss/frontend/_reviews.scss
+++ /dev/null
@@ -1,33 +0,0 @@
-.llms_review {
- margin: 20px 0px;
- padding: 10px;
-
- h5 {
- font-size: 17px;
- margin: 3px 0px;
- }
-
- h6 {
- font-size: 13px;
- }
-
- p {
- font-size: 15px;
- }
-}
-
-.review_box {
-
- [type=text] {
- margin: 10px 0px
- }
-
- h5 {
- color: red;
- display: none;
- }
-
- + .thank_you_box {
- display: none;
- }
-}
diff --git a/assets/scss/frontend/_student-dashboard.scss b/assets/scss/frontend/_student-dashboard.scss
deleted file mode 100644
index 7781be0c8e..0000000000
--- a/assets/scss/frontend/_student-dashboard.scss
+++ /dev/null
@@ -1,484 +0,0 @@
-.llms-student-dashboard {
-
- .llms-sd-title {
- align-items: center;
- display: flex;
- gap: 15px;
- margin: 40px 0 20px 0;
-
- small {
- font-size: 18px;
-
- + a {
- text-decoration: none;
- }
- }
- }
-
- .llms-sd-items { // ul
- list-style-type: none;
- margin: 0 0 25px 0;
- padding: 0;
- }
- .llms-sd-item { // li
- display: inline-block;
- list-style-type: none;
- margin: 5px 0;
- padding: 0;
-
- &:last-child {
- .llms-sep {
- display: none;
- }
- }
-
- .llms-sep {
- color: $color-darkgrey;
- margin: 0 5px;
- }
- }
-
- .llms-sd-section {
- h2 {
- margin: 0 0 15px 0;
- }
-
- .llms-sd-section-title {
- margin: 0;
- padding: 0;
- }
-
- margin-bottom: 40px;
-
- .llms-sd-section-title:first-child {
- margin: 0 0 10px 0;
- }
-
- .llms-sd-section-footer {
- margin-top: 10px;
-
- a.llms-button-secondary {
- display: inline-block;
- }
- }
-
- .llms-certificates-loop {
- margin: 0 0 0 -10px;
- }
-
- .llms-certificate {
- padding: 20px 0;
- }
- }
-
- .orders-table {
- border: 1px solid $color-border;
- border-spacing: 0;
- width: 100%;
-
- thead {
- display: none;
- th,td {
- font-weight: 700;
- }
- @media all and ( min-width: 600px ) {
- display: table-header-group;
- }
- }
-
- tbody {
- tr:nth-child( odd ) {
- td, th {
- background: #f9f9f9;
- }
- }
- tr:last-child {
- border-bottom-width: 0;
- }
- }
-
- tfoot {
- tr {
- background: #f9f9f9;
- }
- th, td {
- padding: 10px;
- text-align: right;
- &:last-child { border-bottom-width: 0; }
- }
- }
-
- th {
- font-weight: 700;
- }
-
- th, td {
- border-color: $color-border;
- border-style: solid;
- border-width: 0;
- display: block;
- padding: 15px 20px;
- text-align: center;
-
- .llms-button-primary {
- display: inline-block;
- }
-
- &:last-child {
- border-bottom-width: 1px;
- }
-
- &:before {
- content: attr( data-label );
- }
-
- @media all and ( min-width: 600px ) {
- border-bottom-width: 1px;
- display: table-cell;
- text-align: left;
- &:first-child { width: 220px; }
- &:before { display: none; }
- }
-
- }
-
- @media all and ( min-width: 600px ) {
- &.transactions th:first-child {width: auto; }
- }
-
- }
-
- @include order_status_badges();
-
- .order-title {
- .llms-status {
- font-size: 18px;
- }
- }
-
- .llms-person-form-wrapper {
- .llms-change-password { display: none; }
- }
-
- .order-primary {
-
- @media all and ( min-width: 600px ) {
- float: left;
- width: 68%;
- }
-
- }
- .order-secondary {
-
- @media all and ( min-width: 600px ) {
- float: left;
- width: 32%;
- }
-
- form {
- margin-bottom: 0;
- }
-
- }
-
- // stack columns when alternate layout declared via filter
- @media all and ( min-width: 600px ) {
- .llms-view-order.llms-stack-cols {
- .order-primary,
- .order-secondary {
- float: none;
- width: 100%;
- }
- }
- }
-
- .llms-switch-payment-source {
- .llms-notice,
- .entry-content .llms-notice {
- margin-left: 10px;
- margin-right: 10px;
- }
- }
-
- .llms-switch-payment-source-main {
- border: none;
- display: none;
- margin: 0;
- ul.llms-payment-gateways {
- padding: 10px 15px 0;
- margin: 0;
- }
- .llms-payment-method,
- ul.llms-order-summary {
- padding: 0 25px 10px;
- margin: 0;
- list-style-type: none;
- li { list-style-type: none; }
- }
- }
-
- /**
- * Dashboard Home
- */
- &.dashboard {
- .llms-sd-section {
- border: 1px solid $color-border;
- border-radius: $radius-small;
- padding: 20px;
- margin-bottom: 40px;
- }
- }
- .llms-loop-list {
- margin: 0 -10px;
- }
-
-}
-
-.logged-in {
- .llms-sd-layout-columns {
- align-items: start;
-
- @media all and ( min-width: 600px ) {
- display: grid;
- grid-gap: 25px;
- grid-template-areas: "nav header" "nav tab";
- grid-template-columns: 200px 1fr;
- grid-template-rows: auto 1fr;
- }
-
- .llms-sd-nav {
- grid-area: nav;
-
- .llms-sd-items {
-
- @media all and ( min-width: 600px ) {
- .llms-sd-item {
- display: block;
- float: none;
-
- a {
- display: block;
- padding: 10px 0;
- }
-
- .llms-sep {
- display: none;
- }
- }
- }
-
- }
-
- }
-
- .llms-sd-header {
- grid-area: header;
- }
-
- .llms-sd-tab {
- grid-area: tab;
- }
-
- }
-
-}
-
-// My Grades course list
-.llms-sd-grades {
- .llms-table {
- .llms-progress {
- display: block;
- margin: 0;
- .llms-progress-bar {
- top: 0;
- height: 1.4em;
- }
- .progress__indicator {
- font-size: 1em;
- position: relative;
- right: 0.4em;
- top: 0.2em;
- z-index: 1;
- }
- }
- }
-}
-
-// grades table for a single course
-.llms-table.llms-single-course-grades {
-
- tbody {
- tr:first-child td, tr:first-child th {
- background-color: #eaeaea;
- }
- }
-
- th {
- font-weight: 400;
- text-align: left;
- }
-
- td {
- .llms-donut {
- display: inline-block;
- vertical-align: middle;
- }
- .llms-status {
- margin-right: 4px;
- }
- .llms-donut + .llms-status {
- margin-left: 4px;
- }
- }
-
- th.llms-section_title {
- font-size: 110%;
- font-weight: 700;
- }
-
- td.llms-lesson_title {
- max-width: 40%;
- }
- td.llms-associated_quiz {
- .llms-donut {
- display: inline-block;
- margin-right: 5px;
- vertical-align: middle;
- }
- }
- td.llms-lesson_title {
- a[href="#"] {
- pointer-events: none;
- }
- a[href^="#"] {
- color: inherit;
- position: relative;
- .llms-tooltip {
- max-width: 380px;
- width: 380px;
- &.show {
- top: -54px;
- }
- }
- }
- }
-}
-
-.llms-sd-widgets {
- display: flex;
-
- .llms-sd-widget {
- background: $color-white;
- border: 1px solid $color-border;
- border-bottom-right-radius: $radius-small;
- border-bottom-left-radius: $radius-small;
- flex: 1;
- margin: 10px 10px 20px;
- padding: 0 0 20px;
- &:first-child {
- margin-left: 0;
- }
- &:last-child {
- margin-right: 0;
- }
-
- .llms-sd-widget-title {
- background: $color-brand-blue;
- color: #fff;
- font-size: 18px;
- line-height: 1;
- margin: 0 0 20px;
- padding: 10px;
- }
-
- .llms-sd-widget-empty {
- font-size: 14px;
- font-style: italic;
- opacity: 0.5;
- text-align: center;
- }
-
- .llms-donut {
- margin: 0 auto;
- }
-
- .llms-sd-date {
- opacity: 0.8;
- text-align: center;
- font-size: 22px;
- line-height: 1.1;
- span {
- display: block;
- &.day {
- font-size: 52px;
- }
- &.diff {
- font-size: 12px;
- font-style: italic;
- margin-top: 8px;
- opacity: 0.75;
- }
- }
- }
-
- .llms-achievement {
- background: transparent;
- margin: 0 auto;
- max-width: 120px;
- .llms-achievement-title {
- display: none;
- }
- }
-
- }
-
-
-}
-
-.redeem-voucher {
- .form-row {
- label {
- display: block;
- font-weight: 700;
- }
- input[type="text"] {
- background-color: $color-white;
- background-clip: padding-box;
- border: 1px solid $color-grey;
- border-radius: $radius-small;
- box-sizing: border-box;
- font-size: 16px;
- line-height: 1;
- padding: 8px 12px;
- transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
- }
- }
-}
-
-
-.llms-sd-pagination {
- margin-top: 24px;
- @include clearfix;
- .llms-button-secondary {
- display: inline-block;
- &.prev { float: left; }
- &.next { float: right; }
- }
-}
-
-
-.llms-sd-notification-center {
- background: $color-white;
- border: 1px solid $color-border;
- border-radius: $radius-small;
- padding: 20px;
-
- .llms-notification-list-item {
- .llms-notification {
- z-index: 1;
- &:hover {
- background-color: inherit;
- }
- }
- }
-}
diff --git a/assets/scss/frontend/_syllabus.scss b/assets/scss/frontend/_syllabus.scss
deleted file mode 100644
index 7810dd3946..0000000000
--- a/assets/scss/frontend/_syllabus.scss
+++ /dev/null
@@ -1,181 +0,0 @@
-.llms-syllabus-wrapper {
-
- margin: 20px 0;
- text-align: left;
-
- .llms-section-title {
- margin: 40px 0 10px;
-
- + .llms-lesson-preview {
- border-top: 1px solid $color-border;
- }
- }
-
-}
-
-.llms-lesson-preview {
- border-right: 1px solid $color-border;
- border-bottom: 1px solid $color-border;
- border-left: 1px solid $color-border;
- display: block;
- margin: 0;
- max-width: 100%;
- position: relative;
-
- &.current-lesson {
- .llms-lesson-title {
- font-weight: 400;
- }
- }
-
- .llms-lesson-link {
- background: $color-white;
- color: $color-black;
- display: block;
- padding: 15px;
- text-decoration: none;
- transition: background-color 0.3s ease;
-
- &:hover {
- background: $el-background-hover;
- }
-
- &:visited {
- color: #212121;
- }
-
- &.llms-lesson-link-locked {
- background: #EFEFEF;
- color: $color-darkgrey;
-
- &:hover {
- background: $color-border;
- }
-
- }
-
- .llms-lesson-preview-row {
- display: flex;
- flex-direction: row-reverse;
- }
- }
-
- .llms-lesson-thumbnail {
- margin-bottom: 15px;
- img {
- display: block;
- height: auto;
- width: 100%;
- }
- }
-
- .llms-lesson-title {
- font-weight: 700;
- margin: 0 auto 5px;
- &:last-child {
- margin-bottom: 0;
- }
- }
-
- .llms-lesson-excerpt {
- margin-top: 05px;
-
- p {
- margin: 0 0 10px 0;
- padding: 0;
- &:last-of-type {
- margin: 0;
- }
- }
- }
-
- .llms-main {
- flex-grow: 1;
- }
- .llms-extra {
- min-width: 50px;
- text-align: right;
- }
-
- .llms-lesson-counter,
- .llms-free-lesson-svg,
- .llms-lesson-complete,
- .llms-lesson-complete-placeholder {
- display: block;
- }
-
- &.is-free,
- &.is-complete {
- .llms-lesson-complete {
- color: $color-brand-blue;
- }
- }
-
- &.is-complete {
- .llms-lesson-title:not(.llms-student-dashboard .llms-lesson-title):not(.llms-course-navigation .llms-lesson-title) {
- text-decoration: line-through;
- }
- }
-
- .llms-icon-free {
- background: $color-brand-blue;
- border-radius: $radius-small;
- color: $color-white;
- display: inline-block;
- font-size: 14px;
- font-weight: bold;
- line-height: 1;
- padding: 5px 8px 4px;
- white-space: nowrap;
- }
-
- &.is-incomplete {
- .llms-lesson-complete {
- color: #cacaca;
- }
- }
-
- .llms-lesson-counter {
- font-size: 16px;
- margin-bottom: 5px;
- }
-
- .llms-free-lesson-svg {
- fill: currentColor;
- height: 23px;
- width: 50px;
- }
-
-}
-
-.llms-course-navigation {
- display: flex;
- gap: 20px;
- .llms-prev-lesson,
- .llms-next-lesson,
- .llms-back-to-course {
- flex: 1;
- }
-
- .llms-prev-lesson {
- & + .llms-back-to-course {
- text-align: right;
- }
- }
-
- .llms-next-lesson {
- .llms-lesson-preview {
- .llms-lesson-link {
- text-align: right;
- }
- }
- }
-
- .llms-lesson-preview {
- border: 1px solid $color-border;
- }
-
- .llms-lesson-link {
- display: block;
- }
-}
diff --git a/assets/scss/frontend/_tooltip.scss b/assets/scss/frontend/_tooltip.scss
deleted file mode 100644
index afa87788eb..0000000000
--- a/assets/scss/frontend/_tooltip.scss
+++ /dev/null
@@ -1,63 +0,0 @@
-.llms-tooltip {
-
- background: #2a2a2a;
- border-radius: 4px;
- color: #fff;
- font-size: 14px;
- line-height: 1.2;
- opacity: 0;
- top: -20px;
- padding: 8px 12px;
- left: 50%;
- position: absolute;
- pointer-events: none;
- transform: translateX( -50% );
- transition: opacity .2s ease, top .2s ease;
- max-width: 320px;
-
- &.show {
- top: -28px;
- opacity: 1;
- }
-
- &:after {
-
- bottom: -8px;
- border-top: 8px solid #2a2a2a;
- border-left: 8px solid transparent;
- border-right: 8px solid transparent;
- content: '';
- height: 0;
- left: 50%;
- position: absolute;
- transform: translateX( -50% );
- width: 0;
-
- }
-
-}
-
-
-
-.webui-popover-title {
- font-size: initial;
- font-weight: initial;
- line-height: initial;
-}
-.webui-popover-inverse {
- .webui-popover-inner .close {
- color: #fff;
- opacity: 0.6;
- text-shadow: none;
- &:hover {
- opacity: 0.8;
- }
- }
- .webui-popover-content a {
- color: #fff;
- text-decoration: underline;
- &:hover {
- text-decoration: none;
- }
- }
-}
diff --git a/assets/scss/frontend/_voucher.scss b/assets/scss/frontend/_voucher.scss
deleted file mode 100644
index 6c950121af..0000000000
--- a/assets/scss/frontend/_voucher.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.voucher-expand {
- display: none;
-}
\ No newline at end of file
diff --git a/assets/scss/lifterlms.scss b/assets/scss/lifterlms.scss
deleted file mode 100644
index b3474e9a0e..0000000000
--- a/assets/scss/lifterlms.scss
+++ /dev/null
@@ -1,40 +0,0 @@
-//
-// Main Frontend CSS File
-//
-
-@import "_includes/vars";
-@import "_includes/extends";
-@import "_includes/grid";
-@import "_includes/mixins";
-@import "_includes/buttons";
-@import "_includes/llms-donut";
-@import "_includes/tooltip";
-
-@import "frontend/main";
-@import "frontend/loop";
-@import "frontend/course";
-@import "frontend/syllabus";
-@import "frontend/llms-progress";
-@import "frontend/llms-author";
-@import "frontend/reviews";
-
-@import "frontend/notices";
-@import "frontend/llms-achievements-certs";
-@import "frontend/llms-notifications";
-@import "frontend/llms-pagination";
-@import "frontend/tooltip";
-
-
-@import "frontend/llms-quizzes";
-
-@import "frontend/voucher";
-@import "frontend/llms-access-plans";
-@import "frontend/checkout";
-@import "_includes/llms-form-field";
-
-@import "frontend/llms-outline-collapse";
-
-@import "frontend/student-dashboard";
-@import "frontend/llms-table";
-
-@import "_includes/vendor/_font-awesome";
diff --git a/babel.config.js b/babel.config.js
deleted file mode 100644
index 507dc879b2..0000000000
--- a/babel.config.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Babel config
- *
- * @package LifterLMS/Dev/Scripts
- *
- * @since Unknown
- * @version 6.0.0
- */
-
-const
- presets = [ '@wordpress/default' ],
- plugins = [ '@babel/plugin-proposal-class-properties' ];
-
-module.exports = { plugins, presets };
diff --git a/blocks/certificate-title/block.json b/blocks/certificate-title/block.json
new file mode 100644
index 0000000000..cc3b8d0a70
--- /dev/null
+++ b/blocks/certificate-title/block.json
@@ -0,0 +1,67 @@
+{
+ "$schema": "https://schemas.wp.org/trunk/block.json",
+ "apiVersion": 2,
+ "name": "llms/certificate-title",
+ "title": "Certificate Title",
+ "category": "text",
+ "description": "Displays the title of a certificate.",
+ "textdomain": "lifterlms",
+ "attributes": {
+ "textAlign": {
+ "type": "string",
+ "default": "center"
+ },
+ "content": {
+ "type": "string",
+ "source": "html",
+ "selector": "h1,h2,h3,h4,h5,h6",
+ "default": "",
+ "__experimentalRole": "content"
+ },
+ "level": {
+ "type": "number",
+ "default": 1
+ },
+ "placeholder": {
+ "type": "string"
+ },
+ "fontFamily": {
+ "type": "string",
+ "default": "default"
+ }
+ },
+ "supports": {
+ "align": [
+ "wide",
+ "full"
+ ],
+ "anchor": true,
+ "className": false,
+ "color": {
+ "link": true
+ },
+ "spacing": {
+ "margin": true
+ },
+ "typography": {
+ "fontSize": true,
+ "lineHeight": true,
+ "__experimentalFontStyle": true,
+ "__experimentalFontFamily": true,
+ "__experimentalFontWeight": true,
+ "__experimentalLetterSpacing": true,
+ "__experimentalTextTransform": true,
+ "__experimentalDefaultControls": {
+ "fontSize": true,
+ "fontAppearance": true,
+ "textTransform": true
+ }
+ },
+ "__experimentalSelector": "h1,h2,h3,h4,h5,h6",
+ "__unstablePasteTextInline": true,
+ "__experimentalSlashInserter": true,
+ "multiple": false,
+ "llms_visibility": false
+ },
+ "editorScript": "file:./index.js"
+}
\ No newline at end of file
diff --git a/blocks/certificate-title/index.asset.php b/blocks/certificate-title/index.asset.php
new file mode 100644
index 0000000000..19bfd3bd52
--- /dev/null
+++ b/blocks/certificate-title/index.asset.php
@@ -0,0 +1 @@
+ array('lodash', 'react', 'react-dom', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-editor', 'wp-element', 'wp-i18n', 'wp-primitives', 'wp-url'), 'version' => '21202751aea163da6910');
diff --git a/blocks/certificate-title/index.js b/blocks/certificate-title/index.js
new file mode 100644
index 0000000000..ead7f0f5ed
--- /dev/null
+++ b/blocks/certificate-title/index.js
@@ -0,0 +1,13 @@
+(()=>{var e={184:(e,t)=>{var r;!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";const e=window.wp.blocks,t=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"llms/certificate-title","title":"Certificate Title","category":"text","description":"Displays the title of a certificate.","textdomain":"lifterlms","attributes":{"textAlign":{"type":"string","default":"center"},"content":{"type":"string","source":"html","selector":"h1,h2,h3,h4,h5,h6","default":"","__experimentalRole":"content"},"level":{"type":"number","default":1},"placeholder":{"type":"string"},"fontFamily":{"type":"string","default":"default"}},"supports":{"align":["wide","full"],"anchor":true,"className":false,"color":{"link":true},"spacing":{"margin":true},"typography":{"fontSize":true,"lineHeight":true,"__experimentalFontStyle":true,"__experimentalFontFamily":true,"__experimentalFontWeight":true,"__experimentalLetterSpacing":true,"__experimentalTextTransform":true,"__experimentalDefaultControls":{"fontSize":true,"fontAppearance":true,"textTransform":true}},"__experimentalSelector":"h1,h2,h3,h4,h5,h6","__unstablePasteTextInline":true,"__experimentalSlashInserter":true,"multiple":false,"llms_visibility":false},"editorScript":"file:./index.js"}'),n=window.wp.element,a=window.wp.i18n,i=window.wp.data,o=window.wp.editor,s=window.wp.components;window.wp.compose;const c=window.React;function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?w($,--T):0,A--,10===O&&(A=1,S--),O}function z(){return O=T2||N(O)>3?"":" "}function q(e,t){for(;--t&&z()&&!(O<48||O>102||O>57&&O<65||O>70&&O<97););return I(e,j()+(t<6&&32==M()&&32==z()))}function G(e){for(;z();)switch(O){case e:return T;case 34:case 39:34!==e&&39!==e&&G(O);break;case 40:41===e&&G(e);break;case 92:z()}return T}function W(e,t){for(;z()&&e+O!==57&&(e+O!==84||47!==M()););return"/*"+I(t,T-1)+"*"+m(47===e?e:z())}function U(e){for(;!N(M());)z();return I(e,T)}var V="-ms-",X="-moz-",Y="-webkit-",K="comm",Z="rule",J="decl",Q="@keyframes";function ee(e,t){for(var r="",n=_(e),a=0;a6)switch(w(e,t+1)){case 109:if(45!==w(e,t+4))break;case 102:return v(e,/(.+:)(.+)-([^]+)/,"$1-webkit-$2-$3$1"+X+(108==w(e,t+3)?"$3":"$2-$3"))+e;case 115:return~b(e,"stretch")?re(v(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==w(e,t+1))break;case 6444:switch(w(e,x(e)-3-(~b(e,"!important")&&10))){case 107:return v(e,":",":"+Y)+e;case 101:return v(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Y+(45===w(e,14)?"inline-":"")+"box$3$1"+Y+"$2$3$1"+V+"$2box$3")+e}break;case 5936:switch(w(e,t+11)){case 114:return Y+e+V+v(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Y+e+V+v(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Y+e+V+v(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return Y+e+V+e+e}return e}function ne(e){return B(ae("",null,null,null,[""],e=F(e),0,[0],e))}function ae(e,t,r,n,a,i,o,s,c){for(var l=0,u=0,d=o,f=0,p=0,h=0,g=1,y=1,w=1,k=0,_="",S=a,A=i,P=n,T=_;y;)switch(h=k,k=z()){case 40:if(108!=h&&58==T.charCodeAt(d-1)){-1!=b(T+=v(D(k),"&","&\f"),"&\f")&&(w=-1);break}case 34:case 39:case 91:T+=D(k);break;case 9:case 10:case 13:case 32:T+=H(h);break;case 92:T+=q(j()-1,7);continue;case 47:switch(M()){case 42:case 47:C(oe(W(z(),j()),t,r),c);break;default:T+="/"}break;case 123*g:s[l++]=x(T)*w;case 125*g:case 59:case 0:switch(k){case 0:case 125:y=0;case 59+u:p>0&&x(T)-d&&C(p>32?se(T+";",n,r,d-1):se(v(T," ","")+";",n,r,d-2),c);break;case 59:T+=";";default:if(C(P=ie(T,t,r,l,u,a,s,_,S=[],A=[],d),i),123===k)if(0===u)ae(T,t,P,P,S,i,d,s,A);else switch(f){case 100:case 109:case 115:ae(e,P,P,n&&C(ie(e,P,P,0,0,a,s,_,a,S=[],d),A),a,A,d,s,n?S:A);break;default:ae(T,P,P,P,[""],A,0,s,A)}}l=u=p=0,g=w=1,_=T="",d=o;break;case 58:d=1+x(T),p=h;default:if(g<1)if(123==k)--g;else if(125==k&&0==g++&&125==R())continue;switch(T+=m(k),k*g){case 38:w=u>0?1:(T+="\f",-1);break;case 44:s[l++]=(x(T)-1)*w,w=1;break;case 64:45===M()&&(T+=D(z())),f=M(),u=d=x(_=T+=U(j())),k++;break;case 45:45===h&&2==x(T)&&(g=0)}}return i}function ie(e,t,r,n,a,i,o,s,c,l,u){for(var d=a-1,f=0===a?i:[""],p=_(f),m=0,g=0,b=0;m0?f[w]+" "+x:v(x,/&\f/g,f[w])))&&(c[b++]=C);return E(e,t,r,0===a?Z:s,c,l,u)}function oe(e,t,r){return E(e,t,r,K,m(O),k(e,2,-2),0)}function se(e,t,r,n){return E(e,t,r,J,k(e,0,n),k(e,n+1,-1),n)}var ce=function(e,t,r){for(var n=0,a=0;n=a,a=M(),38===n&&12===a&&(t[r]=1),!N(a);)z();return I(e,T)},le=new WeakMap,ue=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,r=e.parent,n=e.column===r.column&&e.line===r.line;"rule"!==r.type;)if(!(r=r.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||le.get(r))&&!n){le.set(e,!0);for(var a=[],i=function(e,t){return B(function(e,t){var r=-1,n=44;do{switch(N(n)){case 0:38===n&&12===M()&&(t[r]=1),e[r]+=ce(T-1,t,r);break;case 2:e[r]+=D(n);break;case 4:if(44===n){e[++r]=58===M()?"&\f":"",t[r]=e[r].length;break}default:e[r]+=m(n)}}while(n=z());return e}(F(e),t))}(t,a),o=r.props,s=0,c=0;s-1&&!e.return)switch(e.type){case J:e.return=re(e.value,e.length);break;case Q:return ee([L(e,{value:v(e.value,"@","@"+Y)})],n);case Z:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return ee([L(e,{props:[v(t,/:(read-\w+)/,":-moz-$1")]})],n);case"::placeholder":return ee([L(e,{props:[v(t,/:(plac\w+)/,":-webkit-input-$1")]}),L(e,{props:[v(t,/:(plac\w+)/,":-moz-$1")]}),L(e,{props:[v(t,/:(plac\w+)/,V+"input-$1")]})],n)}return""}))}}];const pe=function(e){var t=e.key;if("css"===t){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var n,a,i=e.stylisPlugins||fe,o={},s=[];n=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),r=1;r=4;++n,a-=4)t=1540483477*(65535&(t=255&e.charCodeAt(n)|(255&e.charCodeAt(++n))<<8|(255&e.charCodeAt(++n))<<16|(255&e.charCodeAt(++n))<<24))+(59797*(t>>>16)<<16),r=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&r)+(59797*(r>>>16)<<16);switch(a){case 3:r^=(255&e.charCodeAt(n+2))<<16;case 2:r^=(255&e.charCodeAt(n+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(n)))+(59797*(r>>>16)<<16)}return(((r=1540483477*(65535&(r^=r>>>13))+(59797*(r>>>16)<<16))^r>>>15)>>>0).toString(36)},me={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var ge=/[A-Z]|^ms/g,ye=/_EMO_([^_]+?)_([^]*?)_EMO_/g,ve=function(e){return 45===e.charCodeAt(1)},be=function(e){return null!=e&&"boolean"!=typeof e},we=u((function(e){return ve(e)?e:e.replace(ge,"-$&").toLowerCase()})),ke=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(ye,(function(e,t,r){return _e={name:t,styles:r,next:_e},t}))}return 1===me[e]||ve(e)||"number"!=typeof t||0===t?t:t+"px"};function xe(e,t,r){if(null==r)return"";if(void 0!==r.__emotion_styles)return r;switch(typeof r){case"boolean":return"";case"object":if(1===r.anim)return _e={name:r.name,styles:r.styles,next:_e},r.name;if(void 0!==r.styles){var n=r.next;if(void 0!==n)for(;void 0!==n;)_e={name:n.name,styles:n.styles,next:_e},n=n.next;return r.styles+";"}return function(e,t,r){var n="";if(Array.isArray(r))for(var a=0;a96?Re:ze},je=function(e,t,r){var n;if(t){var a=t.shouldForwardProp;n=e.__emotion_forwardProp&&a?function(t){return e.__emotion_forwardProp(t)&&a(t)}:a}return"function"!=typeof n&&r&&(n=e.__emotion_forwardProp),n},Ie=function(e){var t=e.cache,r=e.serialized,n=e.isStringTag;return Le(t,r,n),Pe((function(){return function(e,t,r){Le(e,t,r);var n=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var a=t;do{e.insert(t===a?"."+n:"",a,e.sheet,!0),a=a.next}while(void 0!==a)}}(t,r,n)})),null};var Ne=function e(t,r){var n,a,i=t.__emotion_real===t,o=i&&t.__emotion_base||t;void 0!==r&&(n=r.label,a=r.target);var s=je(t,r,i),u=s||Me(o),d=!u("as");return function(){var f=arguments,p=i&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==n&&p.push("label:"+n+";"),null==f[0]||void 0===f[0].raw)p.push.apply(p,f);else{p.push(f[0][0]);for(var h=f.length,m=1;m(0,n.createElement)(He.SVG,{className:"llms-block-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512"},(0,n.createElement)(He.Path,{d:"M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z"})),edit:function(t){let{attributes:r,setAttributes:s,mergeBlocks:c,onReplace:l,style:u,clientId:d}=t;const{getBlockType:f}=(0,i.useSelect)(e.store),{getEditedPostAttribute:p,getCurrentPostType:h}=(0,i.useSelect)(o.store),{edit:m}=f("core/heading"),g="llms_certificate"===h()?"certificate_title":"title";return r.placeholder=r.placeholder||(0,a.__)("Certificate of Achievement","lifterlms"),r.content=r.content||p(g),(0,n.createElement)(n.Fragment,null,(0,n.createElement)(m,{attributes:r,setAttributes:e=>{const{content:t}=e;return void 0!==t&&function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!t){const{getCurrentPostType:e}=(0,i.select)(o.store);t=e()}const{editPost:r}=(0,i.dispatch)(o.store),n={};"llms_certificate"===t?n.certificate_title=e:"llms_my_certificate"===t&&(n.title=e),r(n)}(t),s(e)},mergeBlocks:c,onReplace:l,style:u,clientId:d,context:[]}))},save:function(e){let{attributes:t}=e;const{textAlign:r,content:a,level:i}=t,o="h"+i,s=Be()({[`has-text-align-${r}`]:r});return(0,n.createElement)(o,De.useBlockProps.save({className:s}),(0,n.createElement)(De.RichText.Content,{value:a}))}})})()})();
\ No newline at end of file
diff --git a/blocks/my-account/block.json b/blocks/my-account/block.json
new file mode 100644
index 0000000000..18f54b47bd
--- /dev/null
+++ b/blocks/my-account/block.json
@@ -0,0 +1,33 @@
+{
+ "$schema": "https://schemas.wp.org/trunk/block.json",
+ "apiVersion": 2,
+ "name": "llms/my-account",
+ "title": "My Account",
+ "category": "llms-blocks",
+ "description": "Outputs the login, registration, dashboard, profile and reset password templates.",
+ "textdomain": "lifterlms",
+ "attributes": {
+ "layout": {
+ "type": "string"
+ },
+ "login_redirect": {
+ "type": "string"
+ },
+ "llms_visibility": {
+ "type": "string"
+ },
+ "llms_visibility_in": {
+ "type": "string"
+ },
+ "llms_visibility_posts": {
+ "type": "string"
+ }
+ },
+ "supports": {
+ "align": [
+ "wide",
+ "full"
+ ]
+ },
+ "editorScript": "file:./index.js"
+}
\ No newline at end of file
diff --git a/blocks/my-account/index.asset.php b/blocks/my-account/index.asset.php
new file mode 100644
index 0000000000..5d4aa06cec
--- /dev/null
+++ b/blocks/my-account/index.asset.php
@@ -0,0 +1 @@
+ array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-primitives', 'wp-server-side-render'), 'version' => '5fce44700afe24a79301');
diff --git a/blocks/my-account/index.js b/blocks/my-account/index.js
new file mode 100644
index 0000000000..55c7a803bc
--- /dev/null
+++ b/blocks/my-account/index.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e={n:l=>{var t=l&&l.__esModule?()=>l.default:()=>l;return e.d(t,{a:t}),t},d:(l,t)=>{for(var s in t)e.o(t,s)&&!e.o(l,s)&&Object.defineProperty(l,s,{enumerable:!0,get:t[s]})},o:(e,l)=>Object.prototype.hasOwnProperty.call(e,l)};const l=window.wp.element,t=window.wp.blocks,s=window.wp.components,n=window.wp.blockEditor,r=window.wp.i18n,c=window.wp.serverSideRender;var o=e.n(c);const i=JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"llms/my-account","title":"My Account","category":"llms-blocks","description":"Outputs the login, registration, dashboard, profile and reset password templates.","textdomain":"lifterlms","attributes":{"layout":{"type":"string"},"login_redirect":{"type":"string"},"llms_visibility":{"type":"string"},"llms_visibility_in":{"type":"string"},"llms_visibility_posts":{"type":"string"}},"supports":{"align":["wide","full"]},"editorScript":"file:./index.js"}'),a=window.wp.primitives;(0,t.registerBlockType)(i,{icon:()=>(0,l.createElement)(a.SVG,{className:"llms-block-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},(0,l.createElement)(a.Path,{d:"M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304h91.4c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7v.9c0 9.2 2.7 18.5 7.9 26.3H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8v30.6c7.9 3.4 15.4 7.7 22.3 12.8l24.9-14.3c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-25 14.4c.4 4 .7 8.1 .7 12.3s-.2 8.2-.7 12.3l25 14.4c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-24.9-14.3c-6.9 5.1-14.3 9.4-22.3 12.8l0 30.6c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8V454.8c-8-3.4-15.6-7.7-22.5-12.9l-24.7 14.3c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l24.8-14.3c-.4-4.1-.7-8.2-.7-12.4s.2-8.3 .7-12.4L343.8 325c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l24.8 14.3c6.9-5.1 14.5-9.4 22.5-12.9V218.2zm92.1 133.5a48.1 48.1 0 1 0 -96.1 0 48.1 48.1 0 1 0 96.1 0z"})),edit:e=>{const{attributes:t,setAttributes:c}=e,a=(0,n.useBlockProps)(),m=(0,l.useMemo)((()=>(0,l.createElement)(o(),{block:i.name,attributes:t,LoadingResponsePlaceholder:()=>(0,l.createElement)(s.Spinner,null),ErrorResponsePlaceholder:()=>(0,l.createElement)("p",{className:"llms-block-error"},(0,r.__)("Error loading content. Please check block settings are valid. This block will not be displayed.","lifterlms")),EmptyResponsePlaceholder:()=>(0,l.createElement)("p",{className:"llms-block-empty"},(0,r.__)("Account preview not available. This block will not be displayed.","lifterlms"))})),[t]);return(0,l.createElement)(l.Fragment,null,(0,l.createElement)(n.InspectorControls,null,(0,l.createElement)(s.PanelBody,{title:(0,r.__)("My Account Settings","lifterlms")},(0,l.createElement)(s.PanelRow,null,(0,l.createElement)(s.SelectControl,{label:(0,r.__)("Layout","lifterlms"),options:[{label:(0,r.__)("Columns","lifterlms"),value:"columns"},{label:(0,r.__)("Stacked","lifterlms"),value:"stacked"}],value:t.layout,onChange:e=>c({layout:e})})),(0,l.createElement)(s.PanelRow,null,(0,l.createElement)(s.TextControl,{label:(0,r.__)("Login redirect URL","lifterlms"),value:t.login_redirect,onChange:e=>c({login_redirect:e})})))),(0,l.createElement)("div",a,(0,l.createElement)(s.Disabled,null,m)))}})})();
\ No newline at end of file
diff --git a/class-lifterlms.php b/class-lifterlms.php
index 995a59f047..ad521c5c17 100644
--- a/class-lifterlms.php
+++ b/class-lifterlms.php
@@ -34,7 +34,7 @@ final class LifterLMS {
*
* @var string
*/
- public $version = '7.8.1';
+ public $version = '7.8.2';
/**
* LLMS_Assets instance
diff --git a/composer.json b/composer.json
deleted file mode 100644
index 78ec050bbb..0000000000
--- a/composer.json
+++ /dev/null
@@ -1,143 +0,0 @@
-{
- "name": "gocodebox/lifterlms",
- "description": "LifterLMS, the #1 WordPress LMS solution, makes it easy to create, sell, and protect engaging online courses.",
- "keywords": [
- "WordPress",
- "LMS"
- ],
- "homepage": "https://lifterlms.com",
- "license": "GPL-3.0+",
- "authors": [
- {
- "name": "LifterLMS",
- "email": "help@lifterlms.com",
- "homepage": "https://lifterlms.com"
- }
- ],
- "type": "wordpress-plugin",
- "support": {
- "forum": "https://wordpress.org/support/plugin/lifterlms",
- "issues": "https://github.com/gocodebox/lifterlms/issues",
- "source": "https://github.com/gocodebox/lifterlms"
- },
- "autoload": {
- "psr-4": {
- "LLMS\\": "includes"
- }
- },
- "require": {
- "php": ">=7.4",
- "composer/installers": "~1.9.0",
- "deliciousbrains/wp-background-processing": "1.0.2",
- "lifterlms/lifterlms-blocks": "2.5.8",
- "lifterlms/lifterlms-cli": "0.0.4",
- "lifterlms/lifterlms-helper": "3.5.4",
- "lifterlms/lifterlms-rest": "1.0.2",
- "woocommerce/action-scheduler": "3.5.4"
- },
- "require-dev": {
- "lifterlms/lifterlms-tests": "^4.4",
- "lifterlms/lifterlms-cs": "dev-trunk"
- },
- "archive": {
- "exclude": [
- ".*",
- "*.lock",
- "*.xml",
- "*.xml.dist",
- "*.config.js",
-
- "CHANGELOG.md",
- "composer.json",
- "docker-compose.yml",
- "lerna.json",
- "package.json",
- "package-lock.json",
- "README.md",
-
- "/assets/scss",
-
- "_private",
- "dist",
- "docs",
- "gulpfile.js",
- "node_modules",
- "packages",
- "src",
- "tests",
- "tmp",
- "wordpress",
- "!/vendor",
-
- "!/libraries",
- "/libraries/README.md",
- "/libraries/**/composer.*",
- "/libraries/**/i18n",
-
- "/vendor/bin",
- "/vendor/**/**/composer.*",
- "/vendor/**/**/*.md",
- "/vendor/**/**/.*",
- "/vendor/composer/installers",
- "/vendor/composer/lifters",
-
- "!/assets/maps/js/vendor",
- "!/assets/vendor",
- "!/assets/js/vendor",
- "!/assets/js/builder/vendor"
- ]
- },
- "scripts": {
- "check-cs": "\"vendor/bin/phpcs\" --colors",
- "check-cs-errors": "\"vendor/bin/phpcs\" --colors --error-severity=1 --warning-severity=6",
- "config-cs": [
- "\"vendor/bin/phpcs\" --config-set default_standard 'LifterLMS Core'",
- "\"vendor/bin/phpcs\" --config-set ignore_warnings_on_exit 1"
- ],
- "env": "\"vendor/bin/llms-env\"",
- "env:setup": "./tests/bin/setup-e2e.sh",
- "fix-cs": "\"vendor/bin/phpcbf\"",
- "post-install-cmd": "@post-update-install-cmd",
- "post-update-cmd": "@post-update-install-cmd",
- "post-update-install-cmd": [
- "@config-cs",
- "rm -rf ./wp-content/",
- "rm composer.lock"
- ],
- "tests-remove": "\"vendor/bin/llms-tests\" teardown ${TESTS_DB_NAME:-llms_tests} ${TESTS_DB_USER:-root} \"${TESTS_DB_PASS:-password}\" ${TESTS_DB_HOST:-127.0.0.1}",
- "tests-install": "\"vendor/bin/llms-tests\" install ${TESTS_DB_NAME:-llms_tests} ${TESTS_DB_USER:-root} \"${TESTS_DB_PASS:-password}\" ${TESTS_DB_HOST:-127.0.0.1} ${WP_VERSION:-latest} false \"${WP_TESTS_VERSION:-false}\"",
- "tests-reinstall": [
- "@tests-remove",
- "@tests-install"
- ],
- "tests": [
- "Composer\\Config::disableProcessTimeout",
- "\"vendor/bin/phpunit\""
- ],
- "tests-run": [
- "Composer\\Config::disableProcessTimeout",
- "\"vendor/bin/phpunit\""
- ],
- "install-php8": "composer install --ignore-platform-reqs"
- },
- "extra": {
- "installer-paths": {
- "libraries/{$name}": [
- "lifterlms/lifterlms-blocks",
- "lifterlms/lifterlms-cli",
- "lifterlms/lifterlms-helper",
- "lifterlms/lifterlms-rest"
- ],
- "vendor/{$vendor}/{$name}": [
- "type:wordpress-plugin"
- ]
- }
- },
- "config": {
- "allow-plugins": {
- "dealerdirect/phpcodesniffer-composer-installer": true,
- "composer/installers": true
- }
- },
- "minimum-stability": "dev"
-}
diff --git a/docker-compose.yml b/docker-compose.yml
deleted file mode 100644
index b773b52d93..0000000000
--- a/docker-compose.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-version: '3.1'
-services:
- wordpress:
- volumes:
- - ./:/var/www/html/wp-content/plugins/lifterlms:rw
diff --git a/docs/block-development.md b/docs/block-development.md
deleted file mode 100644
index 4bd156ee24..0000000000
--- a/docs/block-development.md
+++ /dev/null
@@ -1,144 +0,0 @@
-# Block Development
-
-Below are the steps for creating and registering a new block for LifterLMS.
-
-Please note that before beginning you will need to have Node and NPM installed on your machine. Please see [https://github.com/gocodebox/lifterlms/blob/trunk/docs/installing.md](https://github.com/gocodebox/lifterlms/blob/trunk/docs/installing.md) for installation details.
-
-#### Table of Contents
-- [1. Create block files](#1-create-block-files)
-- [2. Add block JSON data](#2-add-block-json-data)
-- [3. Adding Block JS](#3-adding-block-js)
-- [4. Compiling blocks](#4-compiling-blocks)
-- [5. Register with PHP](#5-register-with-php)
-- [6. Block design guidelines](#6-block-design-guidelines)
-
-### 1. Create block files
-
-Create a new folder in the `src/blocks` directory for your block. E.g. `/src/blocks/example-block/`. Then, add a `block.json` file and an `index.jsx` file to the new folder.
-
-The block directory structure should now look like this:
-
-```shell
-.
-└── project/
- ├── src/
- │ └── blocks/
- │ └── block/
- │ ├── block.json
- │ ├── index.jsx
- │ └── index.scss # optional.
- ├── package.json
- └── webpack.congif.js
-```
-
-### 2. Add block JSON data
-
-Next, add block information to the `block.json` file. Below is an example of a block.json file. Note that the category should be `lifterlms` to match the other LifterLMS blocks:
-
-```json
-{
- "$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
- "name": "llms/example-block",
- "title": "Example",
- "category": "llms-blocks",
- "description": "Block description",
- "textdomain": "lifterlms",
- "attributes": {},
- "supports": {},
- "editorScript": "file:./index.js"
-}
-```
-
-### 3. Adding Block JS
-
-Next, add the block’s JavaScript to the `index.jsx` file. We use the JSX file extension to indicate that the file contains JSX code.
-
-Below is an example of how to register a new block and access the block.json data to set the block’s name and attributes:
-
-```jsx
-import { registerBlockType } from '@wordpress/blocks';
-import blockJson from './block.json';
-
-registerBlockType( blockJson, {
- edit: ( props ) => {
- return { props.name }
;
- },
- save: ( props ) => {
- return { props.name }
;
- },
-} );
-```
-
-*Note that while it is common practise to separate the `edit` and `save` functions into separate files, this is not necessary unless the code becomes too complex to manage in a single file. We prefer to keep the code in a single file where possible.*
-
-### 4. Compiling blocks
-
-To compile the block, open the Terminal and run the following NPM script from the plugin root directory. This will compile all blocks to the main `/blocks/` directory:
-
-`npm run build:blocks`
-
-### 5. Register with PHP
-
-The last step is to register the block with PHP. This should be added to a PHP file or class where it makes sense. For example, shortcode blocks are registered in the `/includes/shortcodes/class.llms.shortcodes.blocks.php` file. Below is an example of how to register a block with PHP and allow WordPress to handle the loading of scripts and styles:
-
-```php
-add_action( 'init', 'llms_register_example_block' );
-/**
- * Register the example block.
- *
- * @since 1.0.0
- *
- * @return void
- */
-function llms_register_example_block() {
- register_block_type( LLMS_PLUGIN_DIR . 'blocks/example-block' );
-}
-```
-
-### 6. Block design guidelines
-
-Blocks should be designed to be as simple as possible.
-
-#### Icons
-
-Blocks should use FontAwesome icons. The complete list of icons can be found at [https://fontawesome.com/icons](https://fontawesome.com/icons). SVG icons need to be converted to React components and added to blocks with the `registerBlockType` function:
-
-```jsx
-import { registerBlockType } from '@wordpress/blocks';
-import { SVG, Path } from '@wordpress/primitives';
-
-const Icon = () => (
-
-
-
-);
-
-registerBlockType( blockJson, {
- icon: Icon,
- edit: Edit
-} );
-```
-
-#### Colors
-
-Blocks use the default core admin color palette. This ensures that hover and active states are consistent with other blocks.
-
-## Shortcodes
-
-For blocks with Server Side Rendering functionality, a shortcode should also be registered to support users who are not using the block editor. The shortcode should follow LifterLMS shortcode naming conventions and be registered in the `/includes/shortcodes/` directory and extend the `LLMS_Shortcode` class.
-
-Shortcode blocks can use the `llms_shortcode_blocks` filter provided by the `LLMS_Shortcode_Block` class to handle the block registration and rendering. Below is an example of how to register a block with the class from within a LifterLMS add-on plugin:
-
-```php
-add_filter( 'llms_shortcode_blocks', register_blocks( array $config ): array {
- $config['group-list'] = array(
- 'render' => array( 'LLMS_Groups_Shortcode_Group_List', 'output' ),
- 'path' => LLMS_GROUPS_PLUGIN_DIR . 'assets/blocks/group-list',
- );
-
- return $config;
-} );
-```
diff --git a/docs/coding-standards.md b/docs/coding-standards.md
deleted file mode 100644
index e25d33af7f..0000000000
--- a/docs/coding-standards.md
+++ /dev/null
@@ -1,141 +0,0 @@
-LifterLMS Coding Standards
-==========================
-
-The purpose of the LifterLMS Coding Standards is to create a baseline for collaboration and review within the open source LifterLMS codebase, project, and community.
-
-The WordPress community has developed coding standards and documented them in the [WordPress codex](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/). Wherever possible, the LifterLMS Coding Standards aim to obey these coding standards.
-
-## Naming Conventions
-
-### camelCase should not be used.
-
-LifterLMS avoids `camelCase` for class names, class methods, functions, and variables. Words should instead be separated by underscores.
-
-### Class Names
-
-Class names should use capitalized words separated by underscores.
-LifterLMS core class names should be prefixed with `LLMS_`.
-
-
-```php
-class LLMS_Student extends LLMS_Abstract_User_Data { [...] }
-class LLMS_Data { [...] }
-```
-
-LifterLMS add-on class names should be prefixed with `LLMS_` as well as an additional add-on prefix.
-
-```php
-class LLMS_AQ_Question_Types { [...] }
-class LLMS_SL_Story extends LLMS_Abstract_Database_Store { [...] }
-```
-
-### Trait Names
-
-Trait names should use capitalized words separated by underscores.
-LifterLMS core trait names should be prefixed with `LLMS_Trait`.
-
-```php
-trait LLMS_Trait_Singleton { [...] }
-```
-
-### Constants
-
-Constants should be in all upper-case with underscores separating words.
-LifterLMS core constants should be prefixed with `LLMS_`.
-
-```php
-define( 'LLMS_PLUGIN_FILE', __FILE__ );
-```
-
-LifterLMS add-on class names should be prefixed with `LLMS_` as well as an additional add-on prefix.
-
-```php
-define( 'LLMS_FORMIDABLE_FORMS_PLUGIN_FILE', __FILE__ );
-```
-
-### File names
-
-Files should be named descriptively using lower case letters. Hyphens should be used to separate words.
-
-```
-my-plugin-file.php
-```
-
-Class file names should be based on the class name with `class-` prepended and the underscores in the class name replaced with hyphens, for example `LLMS_Data` becomes:
-
-```
-class-llms-data.php
-```
-
-Files containing model classes should prepend `model-` instead of `class-`. For example the `LLMS_Student` model class becomes:
-
-```
-model-llms-student.php
-```
-
-Trait file names should be based on the trait name with underscores replaced by hyphens and the file stored in the
-`includes/traits` directory. For example `LLMS_Trait_Singleton` becomes:
-
-```
-includes/traits/llms-trait-singleton.php
-```
-
-### Functions & Variables
-
-Lowercase letters should be used for function names and variables. Separate words with underscores.
-LifterLMS core functions should be prepended with the prefix `llms_`.
-
-```php
-llms_current_time( $type, $gmt = 0 ) { [...] }
-```
-
-LifterLMS add-on function names should be prefixed with `llms_` as well as an additional add-on prefix.
-
-```php
-llms_ck_consent_form_field() { [...] }
-```
-
-### Hooks: Actions & Filters
-
-Lowercase letters should be used for hook names. Separate words with underscores.
-LifterLMS core hooks should be prepended with the prefix `llms_`.
-
-```php
-do_action( 'llms_user_enrolled_in_course', [...] );
-apply_filters( 'llms_get_enrollment_status', [...] );
-```
-
-LifterLMS add-on hook names should be prefixed with `llms_` as well as an additional add-on prefix.
-
-```php
-do_action( 'llms_pa_post_created_from_automation', [...] );
-apply_filters( 'llms_sl_story_can_user_manage', [...] );
-```
-
-When actions are set to run before and after items (templates, as an example) it is acceptable to use additional prefixes `before_` and `after_` prior to the `llms_` prefix.
-
-There are a number of legacy hooks which use the prefix `lifterlms_` instead of `llms_`. These are retained for backwards compatibility but should not be used as an example of an acceptable naming convention for new code.
-
-### CSS Classes and IDs
-
-Class names and IDs should be lowercase and prefixed with `llms-`.
-
-Words should be separated with hyphens (AKA "kebab case").
-
-```html
-
-```
-
-### Form Element `name` attributes
-
-The `name` attribute of HTML form elements should be prefixed with `llms_`.
-
-Lowercase letters should be used and words should be separated by underscores.
-
-```html
-
-```
-
-
diff --git a/docs/contributing.md b/docs/contributing.md
deleted file mode 100644
index aca594f40c..0000000000
--- a/docs/contributing.md
+++ /dev/null
@@ -1,4 +0,0 @@
-Contributor Guidelines
-----------------------
-
-See contributing guidelines at https://github.com/gocodebox/lifterlms/blob/trunk/.github/CONTRIBUTING.md
diff --git a/docs/documentation-standards.md b/docs/documentation-standards.md
deleted file mode 100644
index 865691d955..0000000000
--- a/docs/documentation-standards.md
+++ /dev/null
@@ -1,395 +0,0 @@
-LifterLMS Inline Documentation Standards
-========================================
-
-The LifterLMS documentation standard is heavily inspired by the [WordPress core's documentation standards][wp-core-docs]. We have made customizations to these standards in areas where it aids our core team's development and release workflows. By using the WordPress core documentation standard as a starting point any contributor already familiar with the WordPress core should be able to quickly add inline documentation to LifterLMS without the need to study our standards at length.
-
-## What should be documented
-
-The following elements should be documented using formatted documentation blocks (DocBlocks):
-
-+ Functions
-+ Classes
-+ Class methods
-+ Class members (including properties and constants)
-+ Requires and includes
-+ Hooks (actions and filters)
-+ File headers
-
-## DocBlock Formatting Guidelines
-
-Inline documentation in the LifterLMS code base is automatically parsed and output to the code reference [developer.lifterlms.com][llms-dev]. Adhering to these guidelines is essential to ensure optimum readability via the code reference.
-
-
-### Spacing
-
-DocBlocks should directly precede the element (hook, function, method, class, etc...). There should not be any opening/closing tags, white space, or anything else between the DocBlock and the declarations. This will ensure the parser can correctly associate the DocBlock with it's element.
-
-
-### Summary
-
-A short piece of text, usually one line, providing the basic function of the associated element. A good summary concisely describes what the element does and should not attempt to describe why the element exists.
-
-HTML may not be used in the summary. For example, if the function outputs an ` ` tag, the summary should read ```Outputs an image tag.``` instead of ```Outputs an ` ` tag.```.
-
-
-### Description
-
-An optional longer piece of text providing more details on the associated element’s function.
-
-HTML may not be used in the summary but markdown can be used to format a complicated description.
-
-**1. Lists**
-
-Use a hyphen (`-`) to create an unordered list, with a blank line before and after.
-
-```
- * Description which includes an unordered list:
- *
- * - This is item 1.
- * - This is item 2.
- * - This is item 3.
- *
- * The description continues on ...
-```
-
-Use numbers to create an ordered list, with a blank line before and after.
-
-```
- * Description which includes an ordered list:
- *
- * 1. This is item 1.
- * 2. This is item 2.
- * 3. This is item 3.
- *
- * The description continues on ...
-```
-
-**2. Code Samples**
-
-A code sample may be created by indenting every line of the code by 4 spaces, with a blank line before and after. Blank lines in code samples also need to be indented by four spaces. Note that examples added in this way will be output in `` tags and are not syntax-highlighted in the code reference.
-
-```
- * Description including a code sample:
- *
- * $status = array(
- * 'draft' => __( 'Draft' ),
- * 'pending' => __( 'Pending Review' ),
- * 'private' => __( 'Private' ),
- * 'publish' => __( 'Published' )
- * );
- *
- * The description continues on ...
-```
-
-**3. Links**
-
-A link in the form of a URL, such as related GitHub issue or other documentation, should be added in the appropriate place in the DocBlock using the `@link` tag.
-
-```
- * Description text.
- *
- * @link https://github.com/gocodebox/lifterlms/issues/1234567890
-```
-
-### Changelogs
-
-Whenever any code is changed within an element, a `@since`, `@version`, or `@deprecated` tag should be added to the element to document the change(s) which have been made.
-
-No HTML should be used in the descriptions for these tags, though limited Markdown can be used as necessary, such as for adding backticks around variables, e.g. `$variable`.
-
-All descriptions for any of these tags should be a full sentence ending with a full stop (a period, for example).
-
-#### Changes Warranting a Changelog Entry
-
-Most code changes warrant a changelog entry to be recorded for the element but there are some exceptions.
-
-+ **Classes**: Any breaking changes, deprecations, or the introduction of new class elements (elements which do not have their own changelog, such as class properties) require an accompanying `@since` tag entry. Changes to a class method should be recorded on the method's changelog, not on the class changelog.
-+ **Functions and class methods**: Any change made requires an accompanying `@since` tag entry
-
-Changes which do not affect the functionality or execution of the element *should not* be recorded on the element's changelog. For example, a coding standards change such as alignment or spacing should not be recorded.
-
-#### Recording the Version Number
-
-Versions should be expressed in the 3-digit `x.x.x` style.
-
-```
- * @since 3.29.0
-```
-
-When any change has been made to the element an additional `@since` tag can be added with a short description of the changes which were made.
-
-```
- * @since 3.3.0
- * @since 3.5.0 Added optional 3rd argument.
-```
-
-#### Deprecations
-
-When an element is marked for deprecation this should be recorded at the end of the changelog with an `@deprecated` tag.
-
-A short description may be added to provide additional information about the deprecation. If a replacement function has been added in it's place, note as much with an `@see` tag.
-
-```
- * @since 3.3.0
- * @since 3.5.0 Added optional 3rd argument.
- * @deprecated 3.10.0 Use `llms_new_function_name()` instead.
- *
- * @see llms_new_function_name()
-```
-
-When adding documentation on an existing element which does not yet have a changelog (common in code added prior to the creation and enforcement of these standards) if it is impossible to determine when the element was added the version may be expressed with `Unknown` instead of the `x.x.x` version number.
-
-#### File Headers
-
-Whenever an element within a file is updated, the `@version` tag in the header should be updated to the current version of the codebase.
-
-#### Tag alignment and order
-
-All changelog tags, `@since`, `@version`, and `@deprecated` should be grouped together with a space before the first `@since` tag and after the last tag in the group.
-
-```
- * @since 3.3.0
- * @since 3.5.0 Changelog entry description.
- * @deprecated 3.10.0 Use `llms_new_function_name()` instead.
-```
-
-When multiple lines are required for a single entry, subsequent lines should be indented to match the starting point of the description.
-
-```
- * @since 3.3.0
- * @since 3.5.0 Changelog entry description.
- A second entry aligned to with the first entry.
-```
-
-Multiple logs with version numbers of differing lengths should not be aligned to one another.
-
-```
- * @since 3.3.0
- * @since 3.25.0 Changelog entry description.
- * @since 4.0.0 This entry should not be aligned with the 3.25.0 entry above it.
-```
-
-#### Using Placeholders
-
-When contributing code we recommend using the placeholder `[version]` in favor of trying to guess what version the element will be released with.
-
-Our release workflow automatically replaces with `@since`, `@version`, and `@deprecated` followed by `[version]` with the actual version of the release being packaged.
-
-For a new element:
-
-```
- * @since [version]
-```
-
-When updating an existing element:
-
-```
- * @since 3.5.0
- * @since [version] Updated element.
-```
-
-
-### Additional Tags
-
-#### 1. Parameters and Returns
-
-Functions and methods should define all parameter arguments and returns with the `@param` and `@return` tags.
-
-No HTML should be used in the descriptions for these tags, though limited Markdown can be used as necessary, such as for adding backticks around variables, e.g. `$variable`.
-
-All descriptions for any of these tags should be a full sentence ending with a full stop (a period, for example).
-
-```
- * @param string $var1 Description of the argument.
- * @param bool $var2 Description of the argument.
- * @return string
- */
-function my_function( $var1, $var2 = false ) {
- ...
- return $var1;
-}
-```
-
-Parameters that are arrays should be documented using WordPress’ flavor of hash notation style, each array value beginning with the `@type` tag, and and describing the value as follows:
-
-```
- * @type type $key Description. Default 'value'. Accepts 'value', 'value'.
- * (aligned with Description, if wraps to a new line)
-```
-
-A full array parameter would look like this:
-
-```
- * @param array $args {
- * Optional. An array of arguments.
- *
- * @type type $key Description. Default 'value'. Accepts 'value', 'value'.
- * (aligned with Description, if wraps to a new line)
- * @type type $key Description.
- * }
-```
-
-#### 2. Types
-
-Variables, constants, and class members should use the `@var` tag to describe the member's type.
-
-```
- * @var string
- */
-public $var = 'text';
-```
-
-#### 3. Relations and References
-
-Use `@see` to perform automatic links to other areas of the codebase. For example `{@see 'is_lifterlms'}` to link to the filter `is_lifterlms`.
-
-
-#### 4. Thrown Exceptions
-
-A function or method which throws an exception should document the thrown exception using an `@throws` tag.
-
-When present, the `@throws` tag should be added to the end of the docblock below the `@return` tag. An empty line should separate the `@return` and `@throws` tag.
-
-```
- * @return string
- *
- * @throws Exception A description of the raised exception.
- */
-```
-
-## DocBlock Examples
-
-
-### Functions and Class Methods
-
-Functions and class methods should be formatted as follows:
-
-+ Summary
-+ Description (optional)
-+ Changelog
-+ Links and References (where appropriate)
-+ Parameters
-+ Return
-
-```
-/**
- * Summary.
- *
- * Description.
- *
- * @since x.x.x
- * @since x.x.x Description of function/method changes.
- *
- * @see Function/method/class relied on
- * @link URL
- *
- * @param type $var Description.
- * @param type $var Optional. Description. Default.
- * @return type Description.
- */
-```
-
-
-### Classes
-
-Class DocBlocks should be formatted as follows:
-
-+ Summary
-+ Description (Optional)
-+ Links and References (as an example use `@see` to reference a super class when documenting a sub class)
-+ Changelog
-
-```
-/**
- * Summary.
- *
- * Description.
- *
- * @see Super_Class
- *
- * @since x.x.x
- * @since x.x.x Description of class changes.
- */
-```
-
-
-### Class Members
-
-Class properties and constants should be formatted as follows:
-
-+ Summary
-+ Changelog
-+ Type
-
-```
-/**
- * Summary.
- *
- * @since x.x.x
- * @since x.x.x Description of member changes.
- * @var type Optional description.
- */
-```
-
-
-### Hooks (Actions and Filters)
-
-Both action and filter hooks should be documented on the line immediately preceding the call to `do_action()` or `do_action_ref_array()`, `apply_filters()`, or `apply_filters_ref_array()`, and formatted as follows:
-
-+ Summary
-+ Description (Optional)
-+ Changelog
-+ Parameters
-
-Note that `@return` is not used for hook documentation, because action hooks return nothing, and filter hooks always return their first parameter.
-
-```
-/**
- * Summary.
- *
- * Description.
- *
- * @since x.x.x
- * @since x.x.x Description of hook changes.
- *
- * @param type $var Description.
- * @param array $args {
- * Short description about this hash.
- *
- * @type type $var Description.
- * @type type $var Description.
- * }
- * @param type $var Description.
- */
-```
-
-
-### File Headers
-
-The file header DocBlock is used to give an overview of what is contained in the file and should be formatted as follows:
-
-+ Summary
-+ Description (optional)
-+ Links and references
-+ Package
-+ Changelog
-
-```
-/**
- * Summary (no period for file headers)
- *
- * Description. (use period)
- *
- * @link URL
- *
- * @package LifterLMS/SecondaryPackage/TertiaryPackage
- *
- * @since x.x.x
- * @since x.x.x Description of file changes.
- * @version x.x.x
- */
-```
-
-
-[llms-dev]: https://developer.lifterlms.com/reference/
-[wp-core-docs]: https://developer.wordpress.org/coding-standards/inline-documentation-standards/
diff --git a/docs/e2e-tests-real.md b/docs/e2e-tests-real.md
deleted file mode 100644
index d4b4c2ba65..0000000000
--- a/docs/e2e-tests-real.md
+++ /dev/null
@@ -1,72 +0,0 @@
-Running E2E (End to End) Tests Against a Real Website
-=====================================================
-
-_The core E2E test suite is primarily designed to be run locally against managed Docker containers. However, it is possible to run the test suite against any WordPress website with a publicly accessible URL by following this guide._
-
-_To run tests locally against managed Docker containers, see the [E2E Testing README](../tests/e2e/README.md)._
-
-**NOTE: This is an experimental process! Proceed with caution. We are developing this process for internal use and thought it might be useful to some other folks.**
-
-**Another note: This process will import courses, create fake users, and add other data to your website and there is no cleanup proccess. If you choose to use this against a live production site that means that the database will have a bunch of fake test data added to it. So don't run this against a real production website. Use a staging website instead!**
-
-## Prerequisites
-
-+ Ability to use a terminal
-+ git
-+ node.js
-+ npm
-
-
-## Setup your local environment
-
-+ Install the LifterLMS repo: `git clone https://github.com/gocodebox/lifterlms`
-+ Move into the cloned directory: `cd liferlms`
-+ Install node packages: `npm ci`
-+ Create a new file in the created directory named `.llmsenv`.
-+ Use your favorite text editor to edit the file and add the following to the file (replacing the example data with your site's information):
-
-```
-WP_BASE_URL=https://yourwebsiteurl.tld
-WP_USERNAME=adminusername
-WP_PASSWORD=adminpassword
-```
-
-**This will store a password in a PLAIN TEXT which we know is wrong. Our internal use case uses this process with temporary sites which are regularly destroyed so the danger is acceptable to our use case. If you decide to use this process on a real website with real user information you have been warned that storing your production site's WP admin password in a plain text file in order to use this process is a bad idea. We recommend instead using environment variables to pass your password to the script later and removing the WP_PASSWORD from the `.llmsenv` file.**
-
-+ Save the file
-
-
-## Setup your production site
-
-+ Install and activate the LifterLMS plugin on your site
-
-
-## Run the tests
-
-There are two ways to run the E2E tests:
-
-### Headless mode
-
-Runs the tests and shows you the results.
-
-If errors are encountered, a screenshot of the page will be taken and saved in the `tmp/e2e-screenshots/` directory so you can see what the page looked like when things went sour.
-
-Error logs will be output in your terminal to review.
-
-Run headless tests by executing `npm run tests` in your terminal.
-
-
-### Interactive mode
-
-Launches an automated Chromium browser and runs the tests in "slow motion" so you can watch as the tests run.
-
-No screenshots are takeng in interactive mode.
-
-Error logs are output to the terminal for review.
-
-Run interactive tests by executing `npm run tests:dev` in your terminal.
-
-
-### Using environment variables
-
-If you don't want to store you admin password in a plaintext file you can define the WP_PASSWORD variable at runtime `WP_PASSWORD=yourpassword npm run tests`
diff --git a/docs/installing.md b/docs/installing.md
deleted file mode 100644
index 49fbca5a23..0000000000
--- a/docs/installing.md
+++ /dev/null
@@ -1,83 +0,0 @@
-Installing for Development
-==========================
-
-## Requirements
-
-In order to build and develop LifterLMS locally, you'll need the following:
-
-+ PHP
-+ MySQL / MariaDB
-+ [Composer](https://getcomposer.org/download/)
-+ [Node.js](https://nodejs.org/en/download/)
-+ [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
-
-
-## Building LifterLMS
-
-### 1. Clone source from GitHub
-
-```sh
-$ git clone https://github.com/gocodebox/lifterlms
-$ cd lifterlms
-```
-
-If you're planning to contribute code, you should fork this repository and clone your fork instead and switch to the dev branch before continuing the install.
-
-```sh
-$ git checkout dev
-```
-
-### 2. Install composer dependencies:
-
-```sh
-$ composer install
-```
-
-### 3. Install npm dependencies:
-
-```sh
-$ npm install --global gulp
-$ npm install
-```
-
-### 4. Build static assets
-
-```sh
-$ npm run build
-```
-
-The `lifterlms` directory is now an installable plugin that can be moved into your local server's `wp-content/plugins` directory.
-
-
-## Running PHPCS
-
-When contributing you should ensure your contributions follow our [coding](./coding-standards.md) and [documentation](./documentation-standards.md) standards.
-
-To check for errors and warnings in your code, run PHPCS:
-
-```sh
-$ composer run check-cs
-```
-
-To check for errors only:
-
-```sh
-$ composer run check-cs-errors
-```
-
-These reports may include issues that can be automatically fixed using PHPCBF:
-
-```sh
-$ composer run fix-cs
-```
-
-## Running Test Suites
-
-New code should also strive to be covered by automated tests.
-
-LifterLMS has unit and integration tests via phpunit and End-to-End tests via Jest and Puppeteer.
-
-For guides on running and contributing tests, see the relevant guides:
-
-+ [phpunit](../tests/phpunit/README.md)
-+ [e2e](../tests/e2e/README.md)
diff --git a/docs/releases.md b/docs/releases.md
deleted file mode 100644
index 120ada8d3b..0000000000
--- a/docs/releases.md
+++ /dev/null
@@ -1,163 +0,0 @@
-Releasing LifterLMS Builds
-==========================
-
-This document outlines the workflow used by LifterLMS core maintainers to build and publish LifterLMS releases.
-
-This document assumes you have already installed LifterLMS for development following the [Installing for Development guide](./installing.md).
-
-## 0. Get ready
-
-Make sure you have your local repository up to date. If your origin is set to the gocodebox/lifterlms repo, these commands will get you up to date.
-
-1. `git checkout dev` and `git pull`
-2. `git checkout trunk` and `git pull`
-
-Make sure your @lifterlms/dev package in package.json is on the latest version. If it needs to be updated, update it, commit to the dev branch, and then run `npm install`.
-
-Make sure you are back on the dev branch.
-
-1. `git checkout dev`
-
-Make sure you have installed composer requirements via `composer install`.
-
-Make sure you have the latest `@lifterlms` JS packages. Note that this will update node_modules using the latest published/stable version of the packages, and won't include any updates made to those packages by this release itself.
-
-1. `npm install`
-
-Make sure that the dev version (or trunk since it will merge automatically) are tested up to the latest version of WordPress.
-
-For Add-ons, also confirm that the plugin headers include appropriate values for LLMS minimum version and LLMS tested up to as follows:
-
-1. Adjust these lines in the header of the main plugin .php file.
-
-* ` * Tested up to: 6.4.1` (this is the WordPress tested up to value)
-* ` * LLMS requires at least: 6.0.0` (only update this value if you are sure that the update breaks backwards compatibility)
-* ` * LLMS tested up to: 7.5.0 ` (this should be updated to the latest LifterLMS stable version)
-
-## 1. Build the Release
-
-Prepare the release: `npm run dev release prepare`:
-
-When running this command, the following happens:
-
-1. Determines the version number based on the significance values found in `.changelogs/` files. Unless `-F` is passed to the command to force a specific version number.
-2. Write the changelog entries to `CHANGELOG.md`.
-3. Updates version numbers of placeholder `[version]` tags, `package.json`, etc...
-4. Runs the release build command, `npm run build`.
-
-## 2. Run tests and coding standards checks
-
-0. Ensure phpunit tests are installed: `composer run tests-install`.
-1. Ensure phpunit tests pass: `composer run tests-run`.
-2. Ensure phpcs checks pass: `composer run check-cs-errors`.
-3. Ensure e2e tests pass: `npm run test`.
-4. Ensure eslint checks pass: `npm run lint:js`.
-
-## 3. Commit and push
-
-After building and testing the built release, all changes should be committed and pushed to GitHub.
-
-1. `git commit -a`
-2. Enter something like "build version 7.1.1" for the commit message.
-3. `git push`
-
-## 4. Generate the Distribution Archive
-
-Run `npm run dev release archive -- -i`.
-
-This is a more pedantic version of `npm run dev release archive` that will allow to easily inspect
-the archive: once created, the archive will be unpacked into the `dist` directory so that its content
-could be easily inspected. E.g. make sure it doesn't contain undesired files such as unwanted dependencies
-into the `vendor` directory, and so on.
-
-## 5. Run pre-release tests on the archived
-
-Install and activate the zip file on a temporary sandbox site.
-
-Note: If you are reusing a testing site that already has LifterLMS installed, you can add this line to your wp-config.php and then uninstall and delete LifterLMS from the plugins screen and it will delete all of the LifterLMS data.
-
-`define( 'LLMS_REMOVE_ALL_DATA', true );`
-
- 1. Run the setup wizard.
- 2. Import sample course
- 3. Enroll a student into the course.
- 4. Complete a lesson.
-
-_This manual testing ensures no errors occurred in the build steps above._
-
-## 6. Publish the Release
-
-Run `npm run dev release create`.
-
-The following steps are performed automatically by the above task:
-
-1. Publish to GitHub
- 1. The contents of the distribution archive is force-pushed to the `release` branch.
- 1. A new release tag draft is created for the current version number using `release` as the commit target.
- 1. The distribution archive is uploaded to the release.
- 1. The release is published.
- 1. A webhook ping notifies the `llms-releaser` server which performs the remaining steps of the release:
-1. Publish to WordPress plugin repository
- 1. Create a new SVN tag using the release asset (distribution archive) as the base.
- 1. Update the `trunk` branch to match the new tag.
-1. A changelog blog post is published to make.lifterlms.com.
-1. The number is updated at LifterLMS.com
-1. The distribution archive is synced to the release asset bucket in AWS S3 as a backup.
-
-## 7. Update Trunk
-
-After everything is complete, the final version of should be committed and pushed to GitHub trunk branch. It is possible this can also be done on GitHub.com directly by create a Pull Request from `dev` to `trunk`
-
-1. `git checkout trunk`
-2. `git merge dev`
-3. `git push`
-
-## 8. Push to WordPress.org (If Needed)
-
-As of this writing, only the core LifterLMS plugin, the LifterLMS Labs plugin, and the Lite LMS Prgress Tracker are hosted on wordpress.org.
-
-Note: The feature of the llms-releaser server that pushes updates to wordpress.org has been disabled due to some bugs there. The steps below can be used to "manually" push a release to wordpress.org.
-
-1. If you don't have a lifterlms-svn folder, create it. (The first time you create this, it will take many minutes to download.)
- 1. Navigate to your plugins folder.
- 1. `mkdir lifterlms-svn`
- 1. `cd lifterlms-svn`
- 1. `svn co http://plugins.svn.wordpress.org/lifterlms .`
-1. Make sure your svn repo is up to date with the remote repo by running `svn update`.
-1. Make room for the update by clearing out trunk: `rm -f -f trunk/*`
-1. Copy the new dist files into trunk. `cp -r -f ../lifterlms/dist/lifterlms/* trunk/`
-1. Check what has changed: `svn status`
-1. svn add any new files
- 1. If there are a lot of files to add, you can use `svn add --force trunk/*`
-1. svn rm any deleted files
- 1. If there are a lot of files to remove, you can use `svn st | grep ^! | awk '{print " --force "$2}' | xargs svn rm`
-1. Run `svn status` one more time to review changes and make sure all files are being properly modified, added, or removed from the repo.
-
-These next step is optional for point releases, but should be done for major and minor releases and whenever the deployment process is updated enough to warrant a double check.
-
-1. Update stable version in trunk readme to point to the last stable version.
- 1. `nano trunk/readme.txt`
- 1. Change stable to previous version. (not this version)
-
-1. Commit to SVN
- 1. `svn commit -m "7.6.2 - bug fixes and enhancements"`
-1. Run svn status again to make sure there are no files that still need to be added.
- 1. `svn status`
-1. Create a tag for the new version
- 1. `svn cp trunk/ tags/7.6.2`
- 1. `svn commit -m "tag for new version"`
-1. Wait (about 15min) for each commit to go out to WP repo.
-
-If you updated the stable version to point to the previous version, test then update to the latest version.
-
-1. Test trunk by visiting [the Advanced Tab of the plugin page](https://wordpress.org/plugins/lifterlms/advanced/)
- 1. scroll to the bottom of the page
- 1. Choose "Development Version" from the dropdown.
- 1. Click download.
- 1. Install the zip on a fresh dev site and run the standard set up and enroll test or any other tests you want.
-1. If the test goes well, update the stable tag to the latest version.
- 1. `nano trunk/readme.txt`
- 1. `nano tags/7.6.2/readme.txt`
- 1. `commit -m "updating stable version"`
-
-
diff --git a/gulpfile.js/index.js b/gulpfile.js/index.js
deleted file mode 100644
index e79cf6ffc6..0000000000
--- a/gulpfile.js/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Main Gulp File
- *
- * Requires all task files
- */
-var gulp = require('gulp');
-
-// All custom tasks.
-require( './tasks/hacky-clean' );
-require( './tasks/js-additional' );
-require( './tasks/js-builder' );
-
-// All tasks from lib-tasks.
-require( 'lifterlms-lib-tasks' )( gulp );
diff --git a/gulpfile.js/tasks/hacky-clean.js b/gulpfile.js/tasks/hacky-clean.js
deleted file mode 100644
index d4bfd14bbc..0000000000
--- a/gulpfile.js/tasks/hacky-clean.js
+++ /dev/null
@@ -1,22 +0,0 @@
-const gulp = require( 'gulp' ),
- { unlinkSync } = require( 'fs' ),
- filesToRemove = [
- 'assets/css/dancing-script-rtl.css',
- 'assets/css/imperial-script-rtl.css',
- 'assets/css/pirata-one-rtl.css',
- 'assets/css/unifraktur-maguntia-rtl.css',
- ];
-
-/**
- * A hacky clean script that deletes RTL css files generated by the legacy styles-rtl tasks.
- *
- * The deleted files are webfont definition files which we don't need RTL stylesheets for.
- */
-gulp.task( 'hacky-clean', function( cb ) {
-
- filesToRemove.forEach( file => {
- unlinkSync( file );
- } );
-
- return cb();
-} );
diff --git a/gulpfile.js/tasks/js-additional.js b/gulpfile.js/tasks/js-additional.js
deleted file mode 100644
index 6e13545bab..0000000000
--- a/gulpfile.js/tasks/js-additional.js
+++ /dev/null
@@ -1,49 +0,0 @@
-var gulp = require( 'gulp' )
- , header = require( 'gulp-header' )
- , include = require( 'gulp-include' )
- , maps = require( 'gulp-sourcemaps' )
- , pump = require( 'pump' )
- , rename = require( 'gulp-rename' )
- , uglify = require( 'gulp-uglify' )
- , gulpignore = require( 'gulp-ignore' )
-
- , path = require( 'path' )
-;
-
-gulp.task( 'js-additional', function( cb ) {
-
- var notice = [
- '/****************************************************************',
- ' *',
- ' * Contributor\'s Notice',
- ' * ',
- ' * This is a compiled file and should not be edited directly!',
- ' * The uncompiled script is located in the "assets/private" directory',
- ' * ',
- ' ****************************************************************/',
- '',
- '',
- ];
-
- pump( [
- gulp.src( 'assets/js/private/**/*.js' ),
- include(),
- maps.init(),
- header( notice.join( '\n' ) ),
- maps.write('../maps/js', { destPath: 'assets/js' } ),
- gulp.dest( 'assets/js' ),
-
- // Don't pass maps any further.
- gulpignore.exclude( file => '.js' !== path.extname( file.basename ) ),
-
- uglify(),
- rename( {
- suffix: '.min',
- } ),
- maps.write('../maps/js', { destPath: 'assets/js' } ),
- gulp.dest( 'assets/js' )
- ],
- cb
- );
-
-} );
diff --git a/gulpfile.js/tasks/js-builder.js b/gulpfile.js/tasks/js-builder.js
deleted file mode 100644
index 22be2d3059..0000000000
--- a/gulpfile.js/tasks/js-builder.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * -----------------------------------------------------------
- * js-builder
- * -----------------------------------------------------------
- * Compile Admin builder Javascript
- */
-
-var gulp = require( 'gulp' )
- , requirejsOptimize = require( 'gulp-requirejs-optimize' )
- , rename = require( 'gulp-rename' )
- , sourcemaps = require( 'gulp-sourcemaps' )
-;
-
-gulp.task( 'js-builder', function( cb ) {
-
- gulp.src( 'assets/js/builder/main.js' )
- // unminified
- .pipe( sourcemaps.init() )
- .pipe( requirejsOptimize( function( file ) {
- return {
- name: 'vendor/almond',
- optimize: 'none',
- wrap: {
- start: "(function($){",
- end: "}(jQuery));"
- },
- baseUrl: 'assets/js/builder/',
- include: [ 'main' ],
- preserveLicenseComments: false
- };
- } ).on( 'error', ( err ) => console.log( err ) ) )
- .pipe( rename( 'llms-builder.js' ) )
- .pipe( sourcemaps.write( '../maps/js', { destPath: 'assets/js' } ) )
- .pipe( gulp.dest( 'assets/js/' ) )
-
- // minified
- .pipe( sourcemaps.init() )
- .pipe( requirejsOptimize( function( file ) {
- return {
- name: 'vendor/almond',
- optimize: 'uglify2',
- wrap: {
- start: "(function($){",
- end: "}(jQuery));"
- },
- baseUrl: 'assets/js/builder/',
- include: [ 'main' ],
- preserveLicenseComments: false
- };
- } ).on( 'error', ( err ) => console.log( err ) ) )
- .pipe( rename( 'llms-builder.min.js' ) )
- .pipe( sourcemaps.write( '../maps/js', { destPath: 'assets/js' } ) )
- .pipe( gulp.dest( 'assets/js/' ) );
-
- cb();
-
-});
diff --git a/includes/admin/views/access-plans/access-plan.php b/includes/admin/views/access-plans/access-plan.php
index 6474a05364..410f91ae3f 100644
--- a/includes/admin/views/access-plans/access-plan.php
+++ b/includes/admin/views/access-plans/access-plan.php
@@ -663,9 +663,9 @@
do_action( 'llms_access_plan_mb_after_row_six', $plan, $id, $order );
?>
-
+
-